When you deploy an application on Scalingo, the first step you’re dealing with is the build:
During the “Build” step, our deployment infrastructure is detecting the language and frameworks you are using. This step is based on open-source buildpacks. According to the chosen buildpack, the runtime and the dependencies of your application are installed. They are either gathered from the Internet or fetched from our local caches.
Then, from all the files composed by your application, the runtime of the technology you’re using and the dependencies of your app, an application image is built. This is basically a docker image which has the specificity to be composed of only one layer. This image is stored in a private docker registry. It is now ready to be used by the nodes selected by the orchestrator service. All the nodes fetch the image in order to execute your application on their own and start the correct process(es) for it.
As stated in this description, the image is the piece of data which is moving around in our internal network to allow each node of the cluster to execute your applications. So there is one important thing to understand: the lighter your image, the quicker your deployment.
How to ensure that your image stays small:
.slugignore
file to exclude files from the image (documentation). For instance all the build dependencies which have been installed alongside your application. If your Java application has built a ‘.war’ file, you don’t need to keep all the unpackaged ‘.jar’ files in the image.Those practices will help you to get a smaller image. It means, less bytes to transfer from server to server, and then, a faster deployment process. From this speed and operation repeatability, you won’t hesitate whether you should deploy your application now or after the next feature. Just do both and adopt continuous delivery.
At Scalingo (with our partners) we use trackers on our website.
Some of those are mandatory for the use of our website and can't be refused.
Some others are used to measure our audience as well as to improve our relationship with you or to send you quality content and advertising.