Thursday, July 14, 2016

Scale-Out Vs Scale-Up

Scale-Out Vs Scale-Up
 
What is Scale-Out Architecture
Scale Out or Horizontal Scaling refers to adding more identical Units like Cloud Controllers of similar type linearly in order to generate more horse power.
New

Current
This way of scaling is usually cheaper overall and can literally scale infinitely (although we know that there are usually limits imposed by software or other attributes of an environment’s infrastructure).
  • Pros
    • Much cheaper than scaling vertically
    • Easier to run fault-tolerance
    • Easy to upgrade
  • Cons
    • More licensing fees
    • Bigger footprint in the Data Center
    • Higher utility cost (Electricity and cooling)
    • Possible need for more networking equipment (switches/routers)


What is Scale-Up Architecture
Scaling upward or scale vertically is adding more powerful controller(s) to increase the overall throughput. Obviously the newer controllers come with more CPU power and more memory.

New

Current


  • Pros
    • Less power consumption than running multiple servers
    • Cooling costs are less than scaling horizontally
    • Generally less challenging to implement
    • Less licensing costs
    • (sometimes) uses less network hardware than scaling horizontally (this is a whole different topic that we can discuss later)
  • Cons
    • PRICE, PRICE, PRICE
    • Greater risk of hardware failure causing bigger outages
    • generally severe vendor lock-in and limited upgrade-ability in the future


Scaling out takes the infrastructure you’ve got, and replicates it to work in parallel. This has the effect of increasing infrastructure capacity roughly linearly. Data centers often scale out using pods. Build a compute pod, spin up applications to use it, then scale out by building another pod to add capacity. Actual application performance may not be linear, as application architectures must be written to work effectively in a scale-out environment.

Application delivery controllers (A10 Networks, F5 Networks) are examples of networking tools that help with scaling out. ADCs host a virtual IP that is the front end to pool members (real servers) on the back end. As the demand for an application grows, the application can be scaled out by adding additional pool members behind the virtual IP.

Leaf-spine network architectures are also “scale out” designs. As a new pod or rack is installed, top of rack leaf switches plumbed to the spine layer add capacity.

Scaling up is taking what you’ve got, and replacing it with something more powerful. From a networking perspective, this could be taking a 1GbE switch, and replacing it with a 10GbE switch. Same number of switchports, but the bandwidth has been scaled up via bigger pipes. The 1GbE bottleneck has been relieved by the 10GbE replacement.

Scaling up is a viable scaling solution until it is impossible to scale up individual components any larger. For example, 10GbE is a practical limit for uplinking hosts to the network until such time as 25GbE and higher ports are readily available on hosts. In that context, what happens when 10GbE is no longer enough bandwidth for the uplinked host? Rather than scaling up, you scale out.

No comments:

Post a Comment