Microservices & Evolution
Pre-SOA(Monolithic) | SOA | Microservices
Image source: RoboMQ
What is SOA?
A service-oriented architecture (SOA) is a style of computer software where services are provided to the other components by application components, through a communication protocol over a network. The basic fundamental principles of service-oriented architecture are independent of vendors, products and technologies
Key Characteristics of SOA
? Reusable
? Autonomous units of business functionality
? Contract-based
? Loosely coupled
? Platform-independent
? Discoverable and location independent
? Standards-based
Image source: InfoQ
What is Microservices?
An approach to developing a single application as a suite of small services, each running of its own process and communication with lightweight mechanism, often HTTP resource API.
Key Characteristics of Microservices
? Componentization via services
? Organized around Business Capabilities
? Products not Projects
? Smart endpoints and dumb pipes
? Decentralized Governance
? Decentralized Data Management
? Infrastructure Automation
? Design for failures
? Evolutionary Design
Microservices Architecture
Key Decision Criteria for Microservice Architecture
? Better scalability of autonomous acting services.
? Faster response time to new technologies.
? Each microservice is a single product.
? The functionality of a single microservice can be used in several other applications.
? Employment of several distributed teams & Faster onboarding of new developers and employees.
? Introduction of the continuous delivery model.
? Microservices can be developed more easily and faster for a specific business purpose.
? Integration complexity can be reduced since a single service contains less functionality and thus less complexity.
? Errors can be isolated easier & small things can be tested easier.
Benefits of Microservices
? Agility and productivity
? Small Codebase
? Easy to understand & deployment
? Technology independent & easy integration
? Highly Scalable & easy to enhance
? Resilient/Flexible
? Single Responsibility Principle
Qualitative Differences
Conclusion
Microservices architecture provides a range of technical benefits that contributes to development velocity and product quality in software projects, while also contributing to overall business agility such as Gateway is undoubtedly make the mark on the Microservices Architecture Landscape.
Project Manager @ TheGatewayGroup, Autofacets & DILX
6 年Great article!
Agile coach
6 年No biased but to have micro service or not is more of contextual secession depending on many things. Microseconds for every SOA is not mandatory