There are a lot of advantages to a microservices architecture. The autonomy of services that it provides can be worth the cost of segregating the services.
• Services have independent lifecycles.
• Services have independent scaling and performance.
• It is easier to optimally tune the performance of each service.
A microservices architecture does come at a cost and there are a number of challenges and trade-offs that must be considered.
• More services must be deployed and managed.
• Many small repositories must be administered.
• A stronger need exists for sophisticated tooling and dependency management.
• Network latencies are a risk.
Organizations need to consider whether they are ready to adopt this approach and what they need to change to be successful with it.
• Can the organization adopt a devops culture of freedom and accountability?
• Does the team have the skills and experience?
• Is continuous delivery possible?
• Is the organization utilizing cloud technology (private or public) so it can easily provision resources?
In the following chapters we will discuss containers and how they can be used in a microservices architecture. We will also work through designing microservices and all the important processes for developers, operations, and releasing an application based on a microservices architectural style.
3.141.37.10