BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
Introduction to Microservices_Architecture.pptx
1. For Microservices Online Training : +91-999
123 502
Introduction toMicroservices
Shailendra Chauhan
Microsoft MVP
,TechnicalConsultant and CorporateTrainer
2. For Microservices Online Training : +91-999
123 502
• Introduction to Microservices
• Microservices Principles
• Monolithic vs.N-Layervs.SOAvs.Microservices
• MicroservicesArchitecture
• When to useMicroservicesArchitecture
• Challengesof Microservices
• Tools/Platform ForBuilding Microservices
• MicroservicesAPIGateways
• DesignPatterns for Microservices
Agenda
3. For Microservices Online Training : +91-999
123 502
• Microservice is asmall unit that hasonly one responsibility or single logic
which solve aspecific problem.
• Microservices are the evolution of service-orientedarchitecture.
• Microservices are small and independent services that work together.
• Astyle of engineering to build highly automated, independent and evolving
software.
• EachMicroservice canbe deployed independently.
• AMicroservice itself persist its own data or externalstate.
• All services don't need to share the same technology stack, libraries, or
frameworks.
Introduction to Microservices
5. For Microservices Online Training : +91-999
123 502
• Modelled around business domain : Separate system capability into
different domains and each domain will focus on one thing and its
associated logic.
• Culture of Automation : Follow the culture of automation by designing it for
continues integration and continuous delivery.
• Hide implementation details : Hiding the internal details reduce the
coupling and helps to do changes and improvement without affecting the
overall architecture.
• Decentralization : There is no centralized database, usually each service is
designed to manageits own database.
Microservices Principles Contd..
6. For Microservices Online Training : +91-999
123 502
• Deploy Independently : Eachservice canbe deployed independently.
• Failure Isolation : The impact of a failure is less in microservice architecture
compares to monolithic type asit will only affect that particular service and
its associates.Other servicescankeep running.
• Highly Observable : The services should collect as much information to
analyzewhat is happening within eachof them like log events andstats.
Microservices Principles Contd..
7. For Microservices Online Training : +91-999
123 502
Monolithic vs.N-Layervs.SOAvs.Microservices
Monolithic: Single
Unit
Multi Units: N-
Layer/SOA
Smaller Units:
Microservices
8. For Microservices Online Training : +91-999
123 502
Microservices Architecture
Client API
Gateway
Service 1
Service
2
Service
9. For Microservices Online Training : +91-999
123 502
• Largeapplications that require ahigh releasevelocity.
• Complexapplications that need to be highlyscalable.
• Applications with rich domains or manysubdomains.
• Anorganization that consists of small developmentteams.
When to useMicroservices Architecture
10. For Microservices Online Training : +91-999
123 502
• Languageindependent and framework independent.
• Independently develop, deploy, redeploy, version and scalecomponent
servicesin secondswithout compromising the integrity of anapplication
• Better fault isolation keepsother servicesto work even onfailure.
• Zerodowntime upgrades.
• Servicescanbe of from different servers or even from different datacenters.
• Reliable and self-healing.
• Supports continuous integration anddelivery.
• Easyto integrate with third parties.
Advantages of Microservices
11. For Microservices Online Training : +91-999
123 502
• Complexity - A microservices application is more complex as compared to
the equivalent monolithic application.
• Development and testing - Building and testing a service that relies on other
servicesneed domains understanding and refactoring them canbe difficult.
• Lack of governance - The decentralized approach to building microservices
has advantages, but it also lead to so many problems like maintenance
becauseof many different languagesand frameworks.
• Network congestion and latency - The use of many small, services can result
into additional latency because of interservice communication and a long
chain of service dependencies. So design APIs carefully and use
asynchronous communication patterns.
Challenges of Microservices
12. For Microservices Online Training : +91-999
123 502
• Data Integrity - E
ach microservice is responsible for its own data
persistence.Asaresult, data consistency canbe achallenge.
• Management - T
o be successful with microservices requires a mature
DevOps culture. Correlated logging across services can be challenging for a
single user operation.
• Versioning - Be careful while updating a service. It must not break services
that depend on it. So without careful design, you might have problems
with backward or forwardcompatibility.
• Skillset - Microservices are highly distributed systems. Soneed a skilled and
experience team to implement it.
Challenges of Microservices Contd..
13. For Microservices Online Training : +91-999
123 502
Tools/IDE:
Getting started with Microservices
15. For Microservices Online Training : +91-999
123 502
Development Tools
Visual Studio
www.visualstudio.microsoft.co
m/
VS Code
www.code.visualstudio.co
m/
Docker
www.code.docker.co
m/
16. For Microservices Online Training : +91-999
123 502
Microservices APIGateways
Azure API
Management
Ocelot API
Gateway
Traefik
(traffic)
17. For Microservices Online Training : +91-999
123 502
DesignPatterns for Microservices
Decomposition Patterns
• Decompose by Business
Capability
• Decompose by Subdomain
• Strangler Pattern
Integration Patterns
• API Gateway Pattern
• Aggregator Pattern
• Client-Side UI Composition
Pattern
Database Patterns
• Database per Service
• Shared Database per Service
• CQRS Pattern
• Saga Pattern
Communication Patterns
• Request/Response Pattern
• Messaging Pattern
• Event Driven Pattern
Deployment Patterns
• Multiple Service Instances per Host
• Service Instance per Host
• Serverless Deployment
• Service Deployment Platform
18. For Microservices Online Training : +91-999
123 502
DesignPatterns for Microservices
Observability Patterns
• Log Aggregation
• Performance Metrics
• Distributed Tracing
• Health Check
Cross-Cutting Concern
Patterns
• Externalized Configuration
• Service Discovery Pattern
• Circuit Breaker Pattern