What type of scaling involves replacing an existing server with another that has more capabilities?

April 9, 2014 | Written by:

Categorized: Infrastructure

Share this post:

What type of scaling involves replacing an existing server with another that has more capabilities?
In this world of cloud, one of the biggest features is the ability to scale. There are different ways to accomplish scaling, which is a transformation that enlarges or diminishes. One is vertical scaling and the other is horizontal scaling.

What is the difference between the two? If you look at just the definitions of vertical and horizontal you might see the following:

• Vertical: something that is standing directly upright at a right angle to the flat ground
• Horizontal: something that is parallel to the horizon (the area where the sky seems to meet the earth)

If you are a visual kind of person you may be able to see this. Let’s add some technology to this and see what we get.

Vertical scaling can essentially resize your server with no change to your code. It is the ability to increase the capacity of existing hardware or software by adding resources. Vertical scaling is limited by the fact that you can only get as big as the size of the server.

Horizontal scaling affords the ability to scale wider to deal with traffic. It is the ability to connect multiple hardware or software entities, such as servers, so that they work as a single logical unit. This kind of scale cannot be implemented at a moment’s notice.

So, having said all that, I always like to provide an example that you might be able to visually imagine.

Imagine, if you will, an apartment building that has many rooms and floors where people move in and out all the time. In this apartment building, 200 spaces are available but not all are taken at one time. So, in a sense, the apartment scales vertically as more people come and there are rooms to accommodate them. As long as the 200-space capacity is not exceeded, life is good.

This could even apply to a restaurant. You have seen the signs that tell you how many people could be held in the establishment. As more patrons come in more tables may be set up and more chairs added (scaling vertically). However when capacity is reached no more patrons would be able to fit. You can only be as big as the building and patio of the restaurant. This is much like in your cloud environment, where you could add more hardware to the existing machine (RAM and hard drive space) but you are limited to capacity of your actual machine.

On the horizontal scaling side, imagine a two lane expressway. The expressway is good to handle the 2,000 or so vehicles that travel the expressway. As commerce begins to expand, more buildings are constructed and more homes are built. As a result the expressway that once handled 2,000 or so vehicles is now having an increase to 8,000 vehicles. This makes a major traffic jam during rush hour. To alleviate this problem of traffic jams and an increase in accidents, the expressway can be scaled horizontally by constructing more lanes and quite possibly adding an overpass. In this example the construction will take some time. Much like scaling your cloud horizontally, you add additional machines to your environment (scaling wider). This requires planning and making sure you have resources available as well as making sure your architecture can handle the scalability.

I think this could be a simple way to explain scalability to a customer if they wanted to know the difference between vertical and horizontal scaling in the cloud. What are your thoughts? How have you described scalability? Leave a comment below and let me know.

Horizontal cloud scaling, also known as scaling out, is defined as the enhancement of cloud bandwidth by adding new computing nodes or machines. This article explains the definition, scaling out process, and best practices of horizontal cloud scaling in detail.

What Is Horizontal Cloud Scaling?

Horizontal cloud scaling, also known as scaling out, is the enhancement of cloud bandwidth by adding new computing nodes or machines. In simple terms, horizontal cloud scaling means adding a new server to a data center to help the existing servers handle the increased workload.

What type of scaling involves replacing an existing server with another that has more capabilities?

How Horizontal Cloud Scaling Works
Source:
Nitrix

In the most basic sense, the term ‘scalability’ refers to the flexibility of a system. In the context of horizontal (and vertical) cloud scaling, it refers to the ability of a cloud system to grow or shrink as per the user’s requirements.

Horizontal cloud scaling is normally used for websites, applications, and other internet platforms hosted on the cloud that see wide fluctuations in network traffic. Through horizontal scaling, the servers that host and process the data for these services are increased or decreased as needed. This enables the service to adapt to fluctuations in demand, prevent downtime, and ensure high-quality service delivery.

Horizontal vs. vertical cloud scaling: An analogy

Think about cloud scaling as managing a team. Vertical cloud scaling is like letting go of a less-efficient employee and hiring a highly skilled replacement. Naturally, the salary you need to pay this new employee would be higher than what the old employee was paid. The output the new employee gives would be higher in terms of both quantity and quality; however, at the end of the day, this is still just one employee and can only deliver the output of one (very capable) person. Also, if this new employee falls sick or is otherwise unavailable for some reason, work would come to a standstill.

On the other hand, horizontal cloud scaling is like retaining the old employee and hiring a bunch of new, regularly skilled employees alongside. None of these new employees are as skilled as the rockstar employee hired in the case of vertical scaling. However, they work together to ensure that all tasks are performed as efficiently as possible. Unlike vertical scaling, there is no need to worry if an employee falls sick or is otherwise unavailable–the others will pitch in to make sure that all the work is completed as scheduled.

Key benefits of scaling out

Horizontal cloud scaling has various benefits, such as:

  • Simpler process: Scaling out is easier on the hardware front. There is no need to analyze existing specifications and calculate which ones need to be upgraded. The only thing that needs to be done is to add more compatible computing nodes or machines to the existing data center.
  • Enhanced performance: Scaling out to manage increased network traffic enhances performance better than scaling up (as vertical scaling is known). This is because the workload is shared among multiple machines, and new machines can be added as and when required.
  • Reduced downtime: Adding a machine requires minimal, if any, downtime for the existing machines. On the other hand, scaling up almost always brings with it an element of downtime if the hardware is being upgraded without adequate redundancy measures in place.
  • Higher fault tolerance: With horizontal scaling, there is no need to rely on one server or machine for all operations. By distributing the workload among many nodes, the risk of data loss is minimized in case of any fault.

Disadvantages of horizontal scaling

While horizontal scaling is preferred for many applications, it does have its own drawbacks.

Increase in the complexity of operations and maintenance is one drawback. When a data center has multiple servers, it becomes harder to manage and maintain. Things become more complicated on the software front as well because the need to add load balancing and virtualization may arise.

Backup also becomes difficult as the synchronization and communication among numerous machines need to be addressed. Finally, an increase in initial costs can be expected because adding new infrastructure is almost always more expensive than upgrading existing systems.

Horizontal Scaling Process: 6 Key Steps

The horizontal scaling process begins from the planning stage and ends at automation. The key steps for scaling out are enumerated below.

Note: If the required expertise is not available within your organization at any stage of the process, consider hiring the services of an expert consultant to fill the gaps.

What type of scaling involves replacing an existing server with another that has more capabilities?

Key Steps of Horizontal Scaling Process

Step 1: Begin with the blueprint

Like most other business processes, horizontal cloud scaling begins with the planning stage. Start by including all relevant stakeholders in the study of past demand trends for your organization. Next, brainstorm with them to determine the short-, medium-, and long-term bandwidth requirements your organization would need to fulfill in the foreseeable future. Make sure that these forecasts account for all the spikes and slumps that occur over a year.

Step 2: Plan for hardware acquisition

Once the demand forecast is crystallized, it’s time to plan the acquisition of new servers and other computing hardware for scaling out. At this stage of the process, it is important to include representatives from the IT department, as they will be responsible for the ongoing upkeep of this hardware. Work with all concerned parties to identify how you’ll go about scaling out. Aspects to be considered here should include hardware cost, compatibility, and the amount and type of infrastructure required.

Step 3: Opt for stateless scalability

Once you’ve acquired the hardware to scale out, it’s time to set it up correctly.

Businesses generally have multiple instances of their applications running on the cloud at the same time. As you scale out, it becomes more difficult to guarantee that client requests will be received by one instance every time. This makes stateful horizontal scaling (scaling that involves the storage of data between sessions for later use) unsuitable for most business applications.

On the other hand, stateless horizontal scaling is ideal for businesses because its focus lies on the application instead of infrastructure. Stateless cloud applications do not interact continuously between requests. The interactions between two requests, also known as a ‘session’, are not stored in the application memory. Stateless applications do not store past session data for use in later sessions. Essentially, each session runs ‘for the first time’.

When the service relies on tracking on the server side, sessions are bound to be tied to specific servers. By going stateless, i.e., moving all session-specific data to the client-side, sessions can be processed seamlessly across all servers. This makes the horizontal scaling process a walk in the park. Also, when hundreds, thousands, or even millions of users fire up individual sessions, stateless scalability will result in these sessions operating interchangeably across all your servers.

Step 4: Leverage microservices as required

After setting up the hardware and preparing it for horizontal scaling, the next step is to optimize the process. This can be achieved with the help of microservices.

Microservices allow the splitting of services among various business functions. Leverage them to split services according to your resource needs. Microservices can help separate resource-heavy processes from those that are on the lighter side. They also remove the need to scale up individual components of the application whenever the demand for bandwidth increases.

Step 5: Aim for multi-cloud compatibility

Now that your infrastructure is optimized for scaling, move on to ensuring the multi-cloud compatibility of your applications to future-proof your horizontal scaling needs.

It would make sense to host all your business applications in your own data centers for now. However, there might come a time when you need to expand beyond the workload that your in-house servers can handle, such as a big sale or any other popular event. That’s when ensuring multi-cloud compatibility can prove to be immensely useful. By ensuring that your applications are capable of running on any cloud platform, you can scale out into the infrastructure of a third-party cloud vendor as required.

Step 6: Finally, automate!

You’ve set up everything in a way that will help you fulfill client demand. Now, it’s time to automate it all. Automation makes it easy and cost-effective to create and replicate workloads. It also helps ensure that your servers scale out whenever there is a spike in demand, without the need for manual intervention.

Once automation processes are in place, focus on measuring the effects of your infrastructure on the workload. Track modifications to automation, measure the impact on your clients and keep making decisions that will improve the performance of your infrastructure over time.

See More: What Is Software as a Service (SaaS)? Definition, Examples, Types, and Trends           

Top 10 Best Practices for Horizontal Cloud Implementation in 2021

Cloud adoption has taken the post-COVID-19 business world by storm, with organizations digitalizing critical and regular business processes across industries. As these processes spread out, the infrastructure to support them needs to scale out as well to keep up with the rising demand for bandwidth. Here are some important best practices to keep in mind when scaling your cloud infrastructure horizontally.

What type of scaling involves replacing an existing server with another that has more capabilities?

Horizontal Cloud Implementation Best Practices

1. Keep guesswork out of capacity planning

A common problem that management teams face when planning for their cloud bandwidth needs is underestimating the traffic that their systems may have to deal with, especially if they are just starting out. Not planning your capacity needs based on industry information, past trends, and future projections could result in sub-optimal horizontal scaling. This, in turn, can lead to the crashing of your online services or at least a decline in the quality of delivery. On the other hand, commissioning too much cloud infrastructure too soon could lead to idle bandwidth eating into your budget. You need to commission additional resources on the basis of cold, hard data for the best horizontal scaling experience.

2. Scale out according to client demand

When creating a business plan for horizontal cloud scaling, consider the platforms your customers use and implement scaling measures for those platforms. For instance, a smartphone-based application may not necessarily have the same scaling out requirements as a website—segment demand based on the platform when determining where and how to scale your application.

3. Expand across locations and vendors

Compared to vertical scaling, a key benefit of horizontal cloud scaling is the ability to leverage the infrastructure placed at more than one location and with more than one vendor. This makes it easy to scale out into different regional markets to enhance the company’s presence. Expanding into different regions also allows you to meet the regulatory and compliance requirements related to local data processing.

At the same time, multi-cloud compatibility and stateless applications mean that you are no longer tied to a single cloud vendor, should you choose to go down that route. Basing your horizontal cloud scaling strategy around multiple locations and providers helps drive revenue while avoiding vendor lock-in.

4. Focus on service-oriented architecture

Developing an application that features service-oriented architecture helps enhance the efficacy of horizontal cloud scaling. By incorporating self-contained logical blocks that interact with each other, you will be able to scale out each block independently as per their demand for bandwidth. Implementing microservices-based architecture saves on costs by allowing you to scale out only those components that are in high demand. Creating independent application, web, database, and caching tiers ensures that your application is future-proof, nimble, and economical.

5. Ensure impeccable availability and resilience

Horizontal scaling measures need to be backed by robust levels of availability and resilience.

Availability is also known as system uptime, or the ability of a system to process and deliver data as and when required. Leading cloud service providers often guarantee 99.9999% availability; however, this can differ based on the provider or service you choose.

On the other hand, resilience refers to the long-term continuity of data through protection from degradation, corruption, and bad actors. Resilient cloud data is less likely to be compromised or lost over time.

Ensuring availability and resilience helps avoid costly downtime and loss of sensitive data, regardless of cause. As you scale out your cloud infrastructure, ensure that it is available and resilient enough to enable the optimum fulfillment of client demand.

6. Do not compromise on redundancy

Due to its distributed nature and lack of a single point of failure, horizontal cloud scaling helps ensure better redundancy than vertical scaling. At peak demand, data processing and storage may scale horizontally to provide sufficient bandwidth. However, business continuity can be affected if your backup and redundancy infrastructure is unable to keep up. Implement business infrastructure that has compatible levels of redundancy for when your resources scale out to their maximum levels.

7. Use metrics to drive business processes

Correctly automated cloud infrastructure does not require manual intervention to scale out. However, a monitoring mechanism is still important to ensure optimum fulfillment of the demand for your application. Keep an eye out for traffic increasing beyond a fixed threshold, as this can lead to the quality of delivery taking a hit or an increase in cloud costs.

Also, different types of transactions take up varying amounts of bandwidth. Ensuring a dynamic response to different business scenarios is easy when a list of relevant metrics is monitored and used to implement scaling rules. Conversely, the lack of a proper mechanism for monitoring metrics can lead to misdiagnosing problems, bottlenecks in delivery, and ultimately, reduced profitability.

8. Follow a centralized approach

When scaling horizontally, it is possible for the balance between processing and storage components to be disturbed. This can result from poor planning, a decentralized management system, inadequate levels of in-house expertise, or several other factors.

Compared to vertical scaling, which is easier to manage due to the limited scope of operations, horizontal scaling can sometimes sprawl too far, too quickly. Whether it is hardware acquisition, deployment, compatibility, or cybersecurity, ensure that a centralized mechanism is in place to help fight overlaps or gaps.

9. Test and improve the systems whenever possible

Over many months or years, horizontal cloud scaling can lead to a disparity in the technology being deployed. If these older systems are not tested and improved at the right time, it could lead to compatibility issues, sub-optimal scaling, unnecessarily high costs, and even system failure. Schedule regular stress tests and other measures and use the results to plan improvement in existing infrastructure and software as and when required.

10. Know when to outsource

Horizontal scaling can only go so far before you begin to run out of space to host all the machines or the personnel to manage them. Taking regular stock of expansion efforts and cloud bandwidth requirements can help decide the right time to outsource your cloud needs.

Leading vendors such as Azure, AWS, and Google Cloud offer virtually unlimited horizontal scalability at competitive prices. The resources and efforts required for hosting servers and other infrastructure, as well as the costs associated with electricity, internet, real estate, and personnel, can be minimized by outsourcing at the right time.

Another factor that outsourcing can help address is cybersecurity. Assuming all factors relevant to horizontal scalability are addressed correctly, meeting demand will not be a problem for the organization. However, this does not automatically mean that all the scaled out hardware and software is secure. Remember that leading cloud vendors are responsible for ensuring cutting-edge cybersecurity for all the data stored and processed on their infrastructure. Suppose the concern is related to sensitive data. In that case, the right service level agreement (SLA) can ensure that you own your data in perpetuity even under the most extreme circumstances, such as the vendor shutting down operations.

Finally, outsourcing removes the risk of your hardware and software becoming outdated. This is because leading cloud vendors strive to upgrade their infrastructure and provide the technology that their clients need to thrive in the business world as soon as possible to stay ahead of their competitors.

Of course, outsourcing does not mean having to give up your entire in-house cloud infrastructure. Depending on the associated costs and other factors, it might make sense to maintain your own infrastructure for some workloads and outsource the rest.

See More: What Is Elastic Computing? Definition, Examples, and Best Practices

Takeaway

Scaling out has numerous benefits, including robust availability and business continuity, lowered costs, and the ability to fulfill any level of demand. Horizontal cloud scaling can be optimized through stateless applications, cutting-edge automation, and the right mix of in-house and outsourced cloud services.

Did this article help you make a decision related to horizontal cloud scaling for your company? We would love to hear about it. Let us know on LinkedInTwitter, or Facebook!

Which of the following types of scaling involves replacing an existing server with another that has more capabilities?

Vertical scaling refers to adding more or faster CPUs, memory, or I/O resources to an existing server, or replacing one server with a more powerful server.

What type of scaling includes adding additional servers to an existing pool?

Horizontal scaling (aka scaling out) refers to adding additional nodes or machines to your infrastructure to cope with new demands. If you are hosting an application on a server and find that it no longer has the capacity or capabilities to handle traffic, adding a server may be your solution.

Which of the following is the process of upgrading or replacing a server with one that has greater capabilities?

Vertical scaling is the process of upgrading or replacing a server with one that has greater capabilities.

Which of the following is the ability to dynamically add resources such as storage CPUs memory and even servers?

Scalability is one of the most important characteristics of platform as a service (PaaS) that enables you to dynamically add more resources to your service when needed.