The principal thing you can do on a platform like Scalingo beyond hosting your web application, is to scale this application. Scaling is a tough problem, very dependent of your application, its infrastructure, how it has been built, how optimized it is. That’s why different models of scalability are co-existing. Horizontal scaling is one of them: you multiply your app containers to handle more requests in parallel. It’s built-in in Scalingo from the beginning. Today we’re introducing vertical scaling on Scalingo’s platform.
At first, we only proposed one model of scalability: the horizontal scaling. This method consists in multiplicating the amount of containers of an application and scheduling the requests among them. All the containers were strictly identical, having a similar share of CPU and 512 megabytes of memory. This model is, according to us, the healthiest. This strategy of ‘divide and conquer’ provides the best redundancy and ensure an improved availability.
However, this model does not fit all the situations and all technologies. Some of them may be a bit more greedy in their resource consumption. For instance, Ruby on Rails, Meteor or Java may consume more than 512MB. That is why we are releasing a way to achieve vertical scaling. It does not only changes the memory allocated to the instances of your application but also their CPU priority. Actually, XL and 2XL containers will be twice more prioritized compare to M and L containers.
From today, you can modify the size of the containers of your application, here is a description of the newly created sizes:
- S: 256MB, low CPU priority
- M: 512MB, standard CPU priority
- L: 1GB, standard CPU priority
- XL: 2GB, high CPU priority
- 2XL: 4GB, high CPU priority
You can find those information in our documentation too.
Of course, these models are not exclusive, you can use 3 eXtra Large containers of type ‘web’ and 1 Medium ‘worker’ for example. You have now more freedom in the choice of the resources allocated to your applications.
Example of CLI usage:
# Change the amount of web containers to 2, and use the L size. scalingo scale web:2:L # Scale web containers to 3, keep the previous type: L scalingo scale web:3
Try by yourself by creating a Scalingo account, it’s free!