Microservices is an architectural style in which large, complex software applications are composed of one or more smaller services. Each of these microservices focuses on completing one task that represents a small business capability. These microservices can be developed in any programming language.
Application architecture patterns are changing in the era of cloud computing. A convergence of factors has led to the concept of “cloud native” applications:
- The general availability of cloud computing platforms
- Advancements in virtualization technologies
- The emergence of agile and DevOps practices as organizations looked to streamline and shorten their release cycles
To best take advantage of the flexibility of cloud platforms, cloud native applications are composed of smaller, independent, self-contained pieces that are called microservices.
This chapter provides a brief overview of the concepts and motivations that surround cloud native applications and microservice architectures:
- Cloud native applications
- Twelve factors
- Microservices
- Philosophy and team structure
- Examples