coupled services. Each service can be developed by a rel- atively small team of developers - or even a single devel- oper - allowing for parallel development that can make the process more efficient and development time shorter in addition to simplifying testing. Microservices in a very real sense serves as an enabler of CI/CD. The decentralized, modular architecture that character- ize many cloud-based implementations have also encour- aged the adoption of containers. Containers provide a means of packaging applications such that they are ab- stracted from their runtime environments. Developers can now spend their energies on creating the application logic and dependencies. Operations can focus only on how and where the logic is deployed and how it is man- aged without worrying about version numbers and appli- cation-specific configuration issues. Containers build on the virtualization concept by virtualizing at the operating system level, allowing for a container – or many contain- ers - to run directly on top of the operating system kernel. These technology advances are driving the following three cornerstones of modern software development. As depicted in Figure 1-1, these cornerstones are: ▪ Standards-based tools that can support highly distributed and flexible architectures based on the hybrid cloud. ▪ The use of microservices, containers and standard APIs to provide a consistent way to achieve mod- ularity and service orientation. ▪ Orchestration and management of services that support flexible deployment and predictable per- formance and reliability. The orchestration of the 20
Building Cloud Native Apps Painlessly Page 22 Page 24