The promise of microservices is the ability to increase developer agility by breaking the application into smaller, more manageable components with clear interfaces. As a result, making changes to a microservice requires less coordination between components and less testing. These smaller components significantly improve the agility, scalability, and availability of applications, which offers significant benefits to developers as they seek to deploy new application features rapidly to meet customer demands.
While unquestionably adding to agility, microservices aren't for every application. When starting with microservices, it's important to remember that it's not something you can adopt in a vacuum. Microservices require significant development and delivery skills, including security built in and automated at every layer of development, a mature DevOps environment, and a high degree of standardization and automation using technology such as containers and Kubernetes for container orchestration.
While microservices can be used in any industry, right now it makes the most sense to adopt them in organizations that use Agile development methodologies and need to make changes to customer facing applications quickly. Highly regulated industries and those that use Waterfall development methodologies and have less frequent software releases, such as healthcare, government, oil and gas, and manufacturing, may not benefit from a move to microservices architectures. Other industries, such as financial services, already have an agile development environment and a customer base that demands innovation and rapid delivery and, therefore, benefit greatly from the adoption of microservices. Industries that require services to always be available, reliable, and responsively scalable based on real-time demand benefit from a move to microservices.
This is a preview of the Managing Microservices Refcard. To read the entire Refcard, please download the PDF from the link above.