The foundation of microservices To create true native cloud applications requires differ- ent thinking, collaboration and manageability ap- proaches. Cloud-enabled applications are designed to be modular, distributed, deployed and managed in an auto- mated way. These characteristics require technologies that go beyond what was typical for the development of traditional software. The technologies start with an architectural style that in- corporates the modularity concept. Cloud native applica- tions are built as a collection of multiple, independent microservices. Each of these microservices is designed to support one discrete, bounded piece of application func- tionality. Although these microservices are independent, they can be linked together in a coordinated fashion to provide all the functionality the application is intended to deliver. Microservices provide a number of significant benefits: ▪ Application development is simplified since each microservice is built to serve a specific and lim- ited purpose. Small development teams can fo- cus on writing code for narrowly defined and more easily understood functions. ▪ Code changes will be smaller and less complex than with a complex integrated application, making it easier and faster to make changes, whether to fix a problem or to upgrade a service with new requirements. ▪ Scalability - both up and down - makes it simpler to deploy an additional instance of a service or change that service as needs evolve. 37

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