Traditional applications simply do not offer those bene- fits. The technologies used to create and deploy cloud-ena- bled applications (covered in more detail in the next sec- tion of this chapter) provide an abstraction layer away from the underlying software and hardware infrastruc- tures, including the operating system. Developers can fo- cus exclusively on building their applications without the need to deal with dependencies of the underlying infra- structure. By creating applications that do not rely on the underlying infrastructure, development and deployment teams can deploy applications on the most pragmatic platform. Well-designed cloud native applications automatically provision and configure tasks and can dynamically allo- cate resources based on application requirements. This automation is one way that scalability can be achieved and how applications can balance themselves to prevent failures. While DevOps methodologies are not unique to cloud na- tive application development, DevOps is a necessary component of cloud native applications. The collabora- tion associated with a DevOps approach involves the in- tegration of processes, tools, and of course, developers. DevOps creates an environment in which software can be written, tested and released quickly and as often as needed with minimum disruption. As we noted previ- ously, DevOps can be the enabler of an organization’s CI/CD goals because the software modules created for a cloud native application can be released continuously and in an automated fashion. 36

Building Cloud Native Apps Painlessly - Page 41 Building Cloud Native Apps Painlessly Page 40 Page 42