- Agility
- High availability
- Scalability
- Elasticity
Answer – (C) Scalability
When a cloud app can allocate and release resources it has “(C) scalability”. In simple terms, it is the ability to handle both growth as well as demand without facing issues like crashing or slowing down. Let’s say that you own a shop and you make sure that customers do not have to wait long to check out by hiring more cashiers and adding more checkout lanes. This is what scalability is.
Now in terms of cloud apps, you can split them into two ways: Vertical Scalability and Horizontal Scalability.
Vertical Scalability or Scaling Up
In this, you simply increase the capacity of resources within your virtual machine or server that you are connected with. You are just upgrading your computer by replacing your older or slower processor with a newer processor with higher speeds and adding more RAM to increase the memory capacity.
However, there is a limit which means you cannot upgrade your computer configuration infinite times. For example, you might have to change your motherboard in order to add a faster processor or you have to ditch your existing RAM sticks to add more memory which can get expensive.
Horizontal Scalability or Scaling Out
In this, instead of upgrading your existing computer systems or server, you are adding more on top of it to share the overall load that you are experiencing. For example, instead of hiring more cashiers for faster checkout time, you are adding more checkout places onto it for an efficient and hassle-free workload.
In terms of cloud apps, you can increase the number of instances or add more servers for the increased workload. This method will make sure that your app can handle a lot more users at one time with the ability to be flexible as well as cost effective.
In addition to all this, you can find cloud services that offer toolsets such as auto scaling, elasticity, and load balancing to better Horizontal scaling.
- Auto Scaling is to make sure that your store hires more cashiers automatically at the time of rush.
- Load Balancing is to make sure all the cashiers attending to the customers get equal amount of work.
- Elasticity is to make sure that at the time of rush, there are more cashiers, and when there is no rush you have no extra staff working.
Things You Need to Consider When Talking About Scalability in Cloud Apps
There are several factors that you need to make sure of when discussing scalability in cloud apps besides the technical aspects such as cost efficiency, performance monitoring, data management, storage, etc.
Cost Efficiency is one of those aspects that you can easily forget when you are scaling either vertically or horizontally. Upgrading and adding more resources can get very expensive very quickly therefore you have to pay close attention and balance your strategy in such a way that you get the most performance with your investment.
After that, you need to check regularly whether your cloud app is showing results as expected or not. If not then you have to learn how your app reacts under different situations. You can also take the help of tools to see values like response time, resource usage, and system errors.
Lastly, you need to learn about data management as with scaling it becomes very important to have a reasonable storage solution to handle the increased workload. You can use methods like partitioning the data, caching, and sharding the database to manage all your data as you scale.
Conclusion
When a cloud app can allocate and release resources it has “scalability”. Without scalability, you cannot handle the growth or increased demand. In case the cloud app is able to handle it then you will face different issues and problems with it. To better understand the whole concept of scalability you can read the article above.