Microservice Architecture
Hi guys, I have heared numours buzz regarding the microservice architecture. So here in this post I tried to shed light on it. Its a simple software architecture or design. As you can see in the above picture , the left side picture of iron man, its suite designed in only 1 strangled suite signifyies monolitic architecture whereas in second , each part of its suite is being independently deployed/worn and then integrated at the end with the help of the integrator machine signifying the microservice architecture.
Agenda
1.) Microservices
2.) Microservices Architecture & dev tools
3.) Microservices Design Patterns
4.) Twelve – Factor App
What are Microservices ?
A Microservice is a small unit that has only one responsibility or single logic which solves a specific problem.
Multiple Microservices work together to build high independent software or problem.
Here, the term “Service” can be anything, a frontend piece of code or a backend piece of code or anything. It can be any type of unit.
What are Microservices Advantages ?
Language & framework is independent.
Each Unit or service can be independently developed, deployed, or versioning.
Better Scaling.
Fault Isolation
Zero downtime upgrades.
Monolithic vs N-Layer vs SOA vs Microservices
What are Microservices Principles ?
Modeled Around Business Domain
Culture of Automation (configuration, deployment etc….)
Implementation Details should be abstract
When to use Microservice Architecture?
Large Application that requires a high release
Complex Application that requires scaling
Challenges of Microservices?
Complexity
developloment & testing
Network congestion &Latency
Explain Microservices Architecture ?
Design Pattern for Microservices ?
Decomposition Pattern : loosely coupled , single responsisbility service by business capability
Integration Pattern : Multiple & different types of call :
1. API gateway Pattern 2.) Aggregator Pattern
Database Pattern : Database Per service , Command Query Responsiblity Segregation
Communication Pattern :
Request/Response : HTTP/HTTPS synchronus protocl
messaging pattern : push & subscribe via common channel
Event driven pattern: services reacts to occurrence of any envent
Cross-Cutting Concern Pattern : configuration should be at database , service discovery
Observability Pattern: For Troubleshoot pattern
Deployment Pattern :
what is 12-factor App ?
Its a fundamental guidelines for any cloud ready application.
- Codebase
- Dependencies
- Config
- Backing Service
- Build , Release & Run
- Process
- Port Binding :
- Concurrency
- Disponsbility
- Dev/prod parity
- Logs
- Admins