20 Apr 2017 | Nicola Dragoni, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, Larisa Safina
Microservices is an architectural style inspired by service-oriented computing that has gained popularity in recent years. This chapter reviews the history of software architecture, the reasons for the adoption of objects and services, and microservices. It also introduces open problems and future challenges, addressing newcomers to the discipline while offering an academic viewpoint. The chapter investigates practical issues and potential solutions.
Monolithic applications are difficult to maintain, scale, and deploy due to their complexity and interdependencies. Microservices, on the other hand, are independent, cohesive processes that communicate via messages. This allows for better maintainability, scalability, and deployment flexibility. Microservices also reduce technology lock-in and allow for more efficient resource allocation.
The microservices architectural style has evolved from earlier software architectures, including object-oriented design and service-oriented computing. It addresses the limitations of monolithic applications by enabling independent development, deployment, and scaling of services. Microservices also support continuous integration and delivery, making it easier to maintain and update systems.
Microservices have become a popular trend in software architecture, emphasizing the design and development of highly maintainable and scalable software. They decompose large systems into independent services, promoting loose coupling and high cohesion. This approach offers benefits in terms of maintainability, scalability, and other software quality attributes.
Microservices are organized around business capabilities and are developed by cross-functional teams. They support total automation, allowing for independent deployment and continuous delivery. The architecture also supports choreography over orchestration, where services communicate through events and publish/subscribe mechanisms rather than a central conductor.
Microservices have a significant impact on software quality attributes such as availability, reliability, maintainability, performance, and security. They require careful consideration of integration mechanisms and security measures to ensure reliability and prevent vulnerabilities.
The future of microservices involves addressing challenges such as dependability, trust, and security. Research is ongoing to improve the specification, verification, and synthesis of communication behaviors in microservices. Formal methods and choreographic programming are being explored to enhance the correctness and reliability of microservice systems.
In conclusion, microservices have become a popular architectural style, offering benefits in terms of maintainability, scalability, and deployment flexibility. However, they also present challenges that require careful consideration and ongoing research. The future of microservices will depend on addressing these challenges and developing robust solutions.Microservices is an architectural style inspired by service-oriented computing that has gained popularity in recent years. This chapter reviews the history of software architecture, the reasons for the adoption of objects and services, and microservices. It also introduces open problems and future challenges, addressing newcomers to the discipline while offering an academic viewpoint. The chapter investigates practical issues and potential solutions.
Monolithic applications are difficult to maintain, scale, and deploy due to their complexity and interdependencies. Microservices, on the other hand, are independent, cohesive processes that communicate via messages. This allows for better maintainability, scalability, and deployment flexibility. Microservices also reduce technology lock-in and allow for more efficient resource allocation.
The microservices architectural style has evolved from earlier software architectures, including object-oriented design and service-oriented computing. It addresses the limitations of monolithic applications by enabling independent development, deployment, and scaling of services. Microservices also support continuous integration and delivery, making it easier to maintain and update systems.
Microservices have become a popular trend in software architecture, emphasizing the design and development of highly maintainable and scalable software. They decompose large systems into independent services, promoting loose coupling and high cohesion. This approach offers benefits in terms of maintainability, scalability, and other software quality attributes.
Microservices are organized around business capabilities and are developed by cross-functional teams. They support total automation, allowing for independent deployment and continuous delivery. The architecture also supports choreography over orchestration, where services communicate through events and publish/subscribe mechanisms rather than a central conductor.
Microservices have a significant impact on software quality attributes such as availability, reliability, maintainability, performance, and security. They require careful consideration of integration mechanisms and security measures to ensure reliability and prevent vulnerabilities.
The future of microservices involves addressing challenges such as dependability, trust, and security. Research is ongoing to improve the specification, verification, and synthesis of communication behaviors in microservices. Formal methods and choreographic programming are being explored to enhance the correctness and reliability of microservice systems.
In conclusion, microservices have become a popular architectural style, offering benefits in terms of maintainability, scalability, and deployment flexibility. However, they also present challenges that require careful consideration and ongoing research. The future of microservices will depend on addressing these challenges and developing robust solutions.