Unit 2 Microservices Architecture and Cloud Natice Development Flashcards
What is a monolithic application?
It is an architecture where all the software components of an application are integrated in the one large package
OR
All the functionalities of a project exist in a single code base, where all services are tightly coupled together
What does a traditional application have?
Front-end
API
Services
Load balancer
Database
Advantages of monolithic applications
Easier to develop
Easier to test
Easier to deploy
Less complex and less overhead
Disadvantages of monolithic applications
- Difficult to manage
- Need to deploy whole application for small change
- new developers joining find it difficult to understand
- as size increases startup and deployment becomes time consuming
- for load balancing deployment of more than one instances in multiple servers and increases the cost (more resources)
- change in technology is difficult
- single error brings down the whole application
What is microservice architecture?
Architecture style in which the couple all the services from one another
They can be created deployed scaled and maintained independently
Implementing a micro services architecture:
- Communication
- Integration
- Deployment
Pros of microservices
Improved CI/CD
Better testing
Easier deployment
Improved distributed team functionality
Eaiser to understand
Faster performance
Fault isolation
Less code and stack lock-in
Cons of microservices
Additional complexity
Transition challenges
Complicated testing
Inter service communication needs
Careful deployments
Increase resource consumption
Characteristics of microservice architecture
Decoupling
Componentization
Business capabilities
Autonomy
Continuous delivery
Responsibility
Decentralised governance
Business agility
Micro services best practices
- Single responsibility principle
- Have a separate data store for your micro service
- Use acynchronous communication
- Fail fast by using circuit breaker
- Proxy your microservice request through API gateway
- Ensure your API changes are backwards compatible
- Versioning your microservices for breaking changes
- Have dedicated infrastructure hosting your microservices
- Create a separate release train
- Create Organisational efficiency
Deployment strategies of micro services
Recreate
Ramped
Blue / green
Canary
A/B testing
Shadow
What is orchestration?
Automated configuration coordination and management computer systems and software