Hey all,

Hope you are safe and healthy during pandemic.

This is the first post of a series to talk about some interesting subject: AutoScaling.

This post will not talk about DB. It’s a post to talk about some resources of Oracle Cloud Infrastructure.

When we have application servers or web servers, it’s important that not always those applications/websites are installed in only 1 server.

The question is: why is not installed in only 1 server?

Well, we always discussed about high-availability in this blog. So, if the application/website is installed in only 1 server, this means that if this server become unavailable, your application will become unavailable too.

Because of this, it’s very common to install applications in more than one server. So, the company must guarantee that all the servers will run the same version for deployed code and an unique endpoint must be used, this can be achieved using load balancers, with application servers behind of them.

If we think about On-Premises environment, we still have a big challenge: computational capacity.

In an On-Premises environment, the company must use a DataCenter (doesn’t matter if it’s a colocation or not), install their servers, eletric power, networking (switches, cabling, etc), operating systems, VM hypervisors, etc. So, even if a company has a farm of servers (more than one), the application will be limited to computational capacity. So, if a client has 20 VMs distributed in 2 physical servers, let’s suppose that both physical servers are operating using the maximum capacity of CPU and farm must be increased, the company needs to buy a new physical server, proceed with physical installation in the rack, power on the server, connect cables to server, install OS, hypervisor, etc, and then after that the server will be ready to add new VM’s. After that, a new challenge: if company install only one physical server, if my workload not increase linearly, my server will remain underutilized (and already paid for it).

So, On-Premises computing can be challenging when is sizing servers to accomodate Workload, because if company allocate a huge amount of computing power, the machines will be underutilized. If sizing is small for Workload, the servers will be overutilized and there will no resources to expand the farm.

Beyond that, when we are talking about expand power computing, let’s imagine that company suffers a huge increase on Workload. Some questions must be answered:

– The scaling is automatic?
– The scaling can be scheduled?
– How fast is to scaling-out (increase) On-Premises farm if Workload increases?
– How fast is to scaling-it On-Premises farm if Workload decreases?
– The scaling has capability to add/remove servers to/from Load Balancer?

For some questions, the answer is to use DevOps solutions or something related to Kubernetes or Docker. But, if the solution used actually is under VM hypervisor in a IaaS model, the above questions should be done. But for sure we’ll have another questions.

In Oracle Cloud Infrastructure there is an interesting solution for scaling, this solution is automatic, can be scheduled (for predicted increase on Workloads – Black Friday for example). This solution also can be automatic if a threshold for CPU or memory is reached. Even if a Workload decreases, this solucion can remove servers from farm. In OCI, scaling solution also has the capability to add/remove servers to/from load balancers.

So, follow this blog, the next blog posts will be related to this subject, showing in theory and also on hands-on in how to implement an autoscaling solution.

Hope this helps.

Peace!

Vinicius