Requiring scalability One of the most important benefits of the cloud is the ability to scale your infrastructure as your needs change. With traditional applications hosted in the cloud, the need for resources is typically determined at deployment time. However, as you move to a cloud native approach it is critical to scale horizontally - often called scaling out. The continuous development and deployment environ- ment requires horizontal scalability to function effec- tively. While there are a number of orchestration platforms, Ku- bernetes has emerged as the de facto standard. For more details about Kubernetes, take a look at Chapter 4. In a Kubernetes-based cloud environment where clustering is foundational, horizontal scaling is mandatory for perfor- mance of servers and nodes because it adds more in- stances to spread and balance the load. Moving from VMs to cloud native Cloud computing has evolved significantly over the past decade making it easier for developers to quickly gain ac- cess to compute and storage capabilities and create a platform for applications creation and deployment. Tra- ditionally, developers have relied on virtual machines as a technique to create cloud services. In essence, virtual machine software makes a single system act as though it were a discrete collection of independent services. How- ever, virtual machines sit on a layer of software including the operating system, middleware and tools, which makes the VM more complex and slows down the process of con- tinuous integration and rapid applications development. 33

Building Cloud Native Apps Painlessly - Page 38 Building Cloud Native Apps Painlessly Page 37 Page 39