Scale-up or scale-out: Is there one solution that ﬁts all problem sizes?
By: Marcel Stolin
Tags: Essay, Cloud, University, Programming, Computer Science

I wrote this essay while applying for the Data Engineering and Analytics master program of Technical University of Munich. It may serve future applicants as an example for the scientific essay you need to append to you application.

Abstract

The scalability of a computing environment impacts the performance and the ability to serve business needs. Two approaches to scale a computing environment are scale-up and scale-out. The objective of this paper is to describe the scale-up and scale-out approaches while mentioning their limitations. In addition, this paper describes why a computing environment should be designed to scale-out in the ﬁrst place to save costs.

1 Introduction

With the increase of interest in Artiﬁcial Intelligence and the growing complexity of modern computing architectures, more powerful resources are needed to adapt to business needs. If a computing environment has reached the limits of its computational power and can‘t serve the requests of its concurrent users eﬃciently, it has reached the limit of its scalability [3]. The limit of scalability can be extended by providing more resources. Although, increasing the resources also increases the cost of running the environment. The two primary approaches to increase the capacity of a computing environment are vertical scaling-up and horizontal scaling-out [2]. Both approaches are not exclusive and a computing environment can be designed to scale vertically, horizontally or both [3]. Although both strategies can be used to increase the capacity of a computing environment, each strategy follows a diﬀerent approach. Choosing the right scaling approach in the ﬁrst place is beneﬁcial to scale according to business needs and saving costs.

The contribution of this paper is as follows. First, the approach of each scaling strategy is introduced. Second, the limitations of both scaling approaches are described. Third, a recommended scaling strategy is introduced. Lastly, a summary of this essay is given with a logical conclusion.

2 Background

This section introduces the concept of the scaling-up and scaling-out approaches.

2.1 Scale-up

Scale-up refers to improving the hardware of individual nodes [3]. By adding more powerful resources to a node, a node can take more throughput and perform more specialized tasks [2]. An increase of the computing capacity of a node can include adding memory or adding more CPU cores [3]. Due to the low complexity of scaling-up, it is the easiest scaling approach [3].

2.2 Scale-out

Scaling-out is achieved by adding more nodes to the computing environment [3]. Adding more nodes increases the overall computing capacity of the environment and in addition, the workload can be distributed across all nodes to handle an increasing number of concurrent users [3, 2]. To scale eﬃciently, nodes should be homogeneous. Homogeneous nodes are able to perform the same work and will respond as other nodes [2].

A typical example for using a scale-out strategy is, to create new instances of a database to serve read-operations for rapidly increasing requests.

3 Limitations of scaling

This section describes the limitations of both scaling approaches.

Overall, scalability is limited by the resource capacity it is able to provide to each concurrent user [3]. If a computing environment reaches the limitations of its hardware capacity, options are to scale-up by adding more powerful resources or to scale-out to distribute the work across multiple nodes. If a computing environment is not designed to scale-out, the only option remaining is to add more powerful hardware [1].

3.1 Limitations of scaling-up

Scaling-up by adding more powerful hardware to the computing environment, is limited by maximum hardware capacity and causes downtimes due to IT resource replacements [4]. An economical threshold can be reached, where buying more powerful hardware is not aﬀordable. Another limitation can be that no more powerful hardware is available by the provider [1, 3].

3.2 Limitations of scaling-out

If the environment is designed to scale-out, buying more powerful resources is not needed in the ﬁrst place. The computing capacity can be increased by adding more nodes which are instantly available [1].

Designing an environment to scale-out, shifts the focus from infrastructure to development. The goal of scaling-out is to increase the computing capacity by combining the computing power of several nodes, which makes a scale-out design more complex compared to a scale-up architecture [3]. The computing capacity of a scale-out architecture is limited by the computing power of each additional node. Therefore, scaling-out is more eﬃcient with homogeneous nodes, where each node adds the same amount of computing power to the system. With non-homogeneous nodes, the complexity of capacity planning and distributing work across nodes grows [3].

4 Recommended scaling-strategy

In this section, a reasonable recommendation of a scaling strategy for a computing environment is given.

In general, choosing the right scaling approach should be a business related decision. The goal is to improve the performance experience of each concurrent user. Although, scaling-up is the simpler scaling approach due to its low complexity, it has signiﬁcant drawbacks compared to scaling-out. Computing environments should be designed to scale-out in the ﬁrst place. If a computing environment is designed to scale-up, it is possible that no more powerful hardware is available. In addition, more powerful hardware can become unaﬀordable. While the cost of buying more powerful hardware grows proportionally, the cost of investing engineering power to design an environment to scale-out grows linear [1]. With a scaling-out architecture, the environment can adapt to business needs without interruptions. If the limitation of a scaling-out architecture is reached, scaling-up is still a remaining option.

5 Conclusion

The ability to scale is a critical characteristic of modern and complex computing environments. With the ability to scale, a computing environment is able to adapt to business needs. Scaling-up and scaling-out are two scaling approaches to increase the computing capacity of a computing environment. Scaling-up is the simpler approach, but it is limited and comes with signiﬁcant disadvantages according to cost and ﬂexibility. On the other hand, scaling-out adds more complexity to the environment but is able to scale the environment without increasing the cost proportionally. A modern computing environment should be designed to scale-out in the ﬁrst place to handle performance spikes and keeping the cost low.

References

[1] Abbott Martin L. and Fisher Michael T. Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley Professional, May 2011.

[2] Abbott Martin L. and Fisher Michael T. The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, Second Edition. Addison-Wesley Professional, June 2015.

[3] Bill Wilder. Cloud Architecture Patterns. O’Reilly Media, Inc., September 2012.

[4] Mahmood Zaigham, Puttini Ricardo, and Erl Thomas. Cloud Computing: Concepts, Technology & Architecture. Pearson, May 2013.