Microservices Architecture
This overview delves into the fundamentals of microservices architecture, discussing the emergence of microservices, design principles, service sizing, and the transition from traditional monolithic systems to microservices. It explores the benefits of microservices, such as efficient scalability, flexibility, and high performance in applications, alongside characteristics like lightweight communication mechanisms, technology-agnostic APIs, and independently deployable services. The accompanying images visually represent key aspects of microservices architecture and the shift towards smaller, focused services.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Microservices Architecture Introduction
Overview Microservice Second Module DesignApproach FirstModule Introduction VM VM VM Host FourthModule Moving Forwards ThirdModule Technology
Module Overview Microservices Emergence of Microservices Microservices Design Principles
Microservices What is a Service? | Introduction | TheMonolithic
Microservices: What is aService? Account Orders Offers Basket Shopping website Website Account Service Database MobileApp DesktopApp Network
Microservices: What is aService? Account Orders Offers Basket Website Server1 Account Load Balancer MobileApp Database Server Server2 Server3 DesktopApp Network
Microservices:Introduction SOA done well Knowing how to size a service Traditional SOA resulted in monolithic services Micro sized services provide Service UI Efficiently scalable applications Service Flexible applications High performance applications Client Application(s) powered by multiple services Small service with a single focus Service Lightweight communication mechanism Both client to service and service to service Technology agnostic API Independent data storage Independently changeable Service Independently deployable Distributed transactions Centralized tooling for management
Microservices:Introduction Accounts Service Shopping website Promotions Service Orders Service Account Orders Internal Support website Inventory Service Offers Basket Products Service Client API Internet Gateway
Microservices What is a Service? | Introduction | TheMonolithic
Microservices: TheMonolithic Typical enterprise application No restriction on size Large codebase Longer development times Accounts Shopping website Challenging deployment Account Orders Orders Inaccessible features Offers Basket Fixed technology stack Data Access Database Service Promotions High levels of coupling Customer Between modules Inventory Between services Internal Support website Failure could affect whole system Products Scaling requires duplication of the whole Single service on server Internet Minor change could result in complete rebuild Easy to replicate environment
Microservices: TheMonolithic Accounts Account Orders Orders Offers Basket Shopping website Data Access Database Promotions Customer Inventory Products UI Internet Business Layer Data Layer Layer
Emergence ofMicroservices Why Now? | Benefits
Emergence of Microservices : WhyNow? Need to respond to change quickly Need for reliability Business domain-driven design Accounts Service Shopping website Automated test tools Promotions Service Release and deployment tools Orders Service On-demand hosting technology Account Orders Internal Support website On-line cloud services Inventory Service Offers Basket Need to embrace new technology Products Service Client Asynchronous communication technology API Simpler server side and client side technology Internet Gateway
Emergence of Microservices :Benefits Shorter development times Reliable and fasterdeployment Enables frequent updates Accounts Service Shopping website Decouple the changeable parts Promotions Service Security Increased uptime Orders Service Account Orders Fast issue resolution Internal Support website Inventory Service Offers Basket Highly scalable and betterperformance Products Service Betterownership and knowledge Client Right technology API Internet Gateway Enables distributed teams
Microservices Design Principles Introduction | Principles | Summary
Microservices Design Principles:Introduction Business Domain Centric High Cohesion Autonomous Observable Resilience Automation
Microservices Design Principles: HighCohesion Single focus Single responsibility Accounts Service SOLID principle Only change for one reason Postage Service Reason represents A business function Orders Service A business domain Encapsulation principle OOP principle Stock Service Easily rewritable code Why Products Service Scalability Flexibility Reliability
Microservices Design Principles:Autonomous Loose coupling Accounts Service V1 Honor contracts and interfaces Stateless Independently changeable Postage Service V6 Orders Service V3 Independently deployable Backwards compatible Stock Service V4 Concurrent development Products Service V2
Design Principles: Business DomainCentric Service represents business function Accounts Department Accounts Service Postage calculator Scope of service AccountsDepartment Bounded context from DDD Orders Service Identify boundaries\seams OrdersDepartment Shuffle code if required Group related code into a service Products Service Aim for high cohesion StockDepartment Responsive to business change
Microservices Design Principles:Resilience Embrace failure Another service Specific connection Accounts Service Third-party system ! Degrade functionality Default functionality Postage Service Multiple instances Register on startup Deregister on failure Orders Service Types of failure Exceptions\Errors Delays Stock Service Unavailability Network issues Delay Products Service Unavailability Validate input Service to service Client to service
Microservices Design Principles:Observable System Health Status Logs Central Monitoring Errors Centralized monitoring Centralized logging Why Distributed transactions Quick problem solving Quick deployment requires feedback Data used for capacity planning Data used for scaling Central Logging Whats actually used Monitor business data
Microservices Design Principles:Automation Tools to reduce testing Manual regression testing Time taken on testing integration Environmentsetup fortesting Tools to provide quick feedback Integration feedback on check in Continous Integration X Tools to provide quick deployment Pipeline to deployment Deploymentready status Automateddeployment Reliable deployment ContinuousDeployment Why X Distributed system Multiple instances of services Manual integration testing too time consuming Manual deployment time consuming and unreliable