CodeScene runs anywhere a modern Java Virtual Machine (JVM) runs. We test the tool on Mac OS, Windows, and various Linux distributions.
You can run CodeScene on your own server or choose from many popular cloud providers like AWS or Azure. When considering a fully managed solution like Azure App Service keep in mind that CodeScene needs fast and reliable file storage to operate properly. See also the System Requirements section.
SYSTEM REQUIREMENTS
The requirements change with the size and history of the codebase you want to analyze.
Physical memory and fast disk IO are the most critical resources on the server:
-
4+ GB of RAM - we recommend adjusting the default Java heap size via -Xmx or -XX: MaxRAMPercentage. See Configure the available Memory for more details.
-
Fast (SSD) disk - crucial for analyzing large repositories with deep history.
-
Do not use shared/distributed file storage like Azure Files, Amazon EFS, or NFS! Our experience shows that this leads to serious performance problems and sometimes to stability issues (internal application errors due to the CodeScene database being hosted on a distributed file system). For this reason, you should avoid hosting CodeScene on platforms like Azure App Service, Azure Containers, or (AWS) Lambda.
-
-
4 or more vCPUs are recommended
-
Some parts of the CodeScene analysis pipeline are run in parallel
-
You can configure CodeScene to run multiple concurrent analyses as well.
-
Serverless solutions like AWS Lambda are also a poor fit for CodeScene due to max running time limitations and, again, reliance on distributed file systems.
PUBLIC CLOUD (AWS, AZURE, ET. AL.)
For performance and stability reasons outlined in the System Requirements section, we don’t recommend using managed services like Azure App Service or Azure Containers that rely on distributed file storage.
The recommended option is to deploy a plain Linux VM and run CodeScene as a standalone JAR or a Docker container as described in Installation.
Security - HTTPS & SSL/TLS certificates
If your instance is open to the general public, using HTTPS is important. CodeScene itself uses HTTP so you need to put another layer in front of it.
This can be done by using a proxy like nginx (see our example repo) or by using your cloud provider’s offering, e.g. AWS Beanstalk and ACM or Azure Key Vault.
Another popular option for SSL certificates is the Let’s Encrypt certification authority which makes it easy to renew certificates automatically - you can find more details about this option in our docker repository.
BACKUPS
You should back up your CodeScene database regularly (see DB Backup for a description of various backup options).
Cloned repositories and analysis results may be recreated by running a new analysis.