What are micro services
Micro services is a structured and organized approach to software development in which software is made up of small, independent services that communicate through well-defined APIs. These services are owned by small autonomous groups
The micro services architecture makes applications easier to scale and grow faster, enabling innovation and bringing new features to market faster.
Benefits of micro services
Agile
Micro services leverage an organization of small, independent teams that take ownership of their services. Teams operate within a limited and well-understood context, and are empowered to work more independently and faster. This shortens the development cycle time. You benefit significantly from your organization's overall throughput.
Flexible Scaling
Micro services allow each service to scale independently to meet the needs of the application functionality it supports. This allows teams to properly identify infrastructure needs, accurately measure the cost of a feature, and maintain availability should a service spike in demand.
Easy Deployment
Micro services enable continuous integration and delivery, making it easy to try out new ideas and come back if something doesn't work. Low failure costs enable experimentation, make it easier to update code, and bring new features to market faster
Technological Freedom
Micro services architecture does not follow a "one size fits all" approach. Teams have the freedom to choose the best tool to solve their particular problems. As a result, micro services building teams can choose the best tool for each task.
Reusable code
Dividing software into small, well-defined modules allows teams to use functions for multiple purposes. A service written for a certain function can be used as a building block for another function. This allows an application to start on its own, as developers can create new functionality without writing code from scratch.
Resilience
Service independence increases the resilience of the application to failures. In a monolithic architecture, if one component fails, it can cause the entire application to fail. With micro services, applications handle service-wide failures by degrading functionality and not crashing the entire application.