Microservice Flashcards
What are microservices?
It is an architectural development style
which builds an application as a collection of many independently smaller components or services.
What do you understand by Monolithic Architecture?
Monolithic architecture is like a big container that contains all the software components of an application inside a single package
What are the main components of Microservices?
1- Containers, Clustering, and Orchestration 2- IaC [Infrastructure as Code] 3- Cloud Infrastructure 4- API Gateway 5- Enterprise Service Bus 6- Service Delivery
What are the main features of Microservices?
Decoupling:
Microservices systems are largely decoupled from within which can be easily built, altered, and scaled.
Componentization:
Microservices can be easily replaced and upgraded as independent components.
Business Capabilities:
Microservices focus on a single capability.
Autonomy:
Developers and teams can work independently without much dependency, thus increasing speed.
Continuous Delivery:
Microservices is here to update frequently, through systematic automation of software creation, testing, and approval.
Responsibility:
Microservices is responsible enough to focus on products.
Decentralized Governance:
Microservices do not have a standardized pattern that makes the developers have the freedom to choose useful tools to solve their problems.
Agility:
Microservice is known for quick adaptation of any new feature and even discard the feature.
1 - Multiple Individually Deployable Components.
2 -Service Distribution based on Business Capabilities.
3 - Decentralized Data Management.
4 - DevOps Implementation.
5 - Technical Independence.
6 - Hidden Component Complexity to avoid unnecessary microservices dependencies.
Microservice advantages and disadvantages
Advantages:
- Greater support for smaller and parallel team
- Scalability
- Fault isolation
- independent modules.
- Use of containers,( quick deployment and development of the application)
- ## Developer freedom to develop and deploy services independentlyDisadvantages
- High memory use
- Time required to fragment different microservices
- Complexity of managing a large number of services
- Developer need to solve problems such as network latency or load balancing
- Complex testing over the distributed deployment
API gateways
An API gateway sits between external clients and the applications running in your datacenter and clouds. APIs define how applications can communicate, without the client having to know where or how they are implemented.
Serverless
Name three commonly used tools for Microservices
- ) WireMock,
- ) Docker
- ) Hystrix are important Microservices tool.
What is Spring Cloud?
Spring cloud is an Integration software that integrates with external systems.
It allows microservices framework to build applications which perform restricted amounts of data processing.
What are main differences between Microservices and Monolithic Architecture?
Microservices
- Service Startup is fast
- Microservices are loosely coupled architecture.
- Changes done in a single data model does not affect other Microservices.
- Microservices focuses on products, not projects
Monolithic
- Service startup takes time
- Monolithic architecture is mostly tightly coupled.
- Any changes in the data model affect the entire database
- Monolithic put emphasize over the whole project
What is RESTful?
Representational State Transfer (REST)/RESTful web services is an architectural style that helps computer systems to communicate over the internet uses HTTP requests to access and use data.
That data can be used to GET, PUT, POST and DELETE data types.
These web services make microservices easier to understand and implement.
What is the meaning of OAuth?
OAuth means open authorization protocol.
This protocol allows you to access the client applications on HTTP for third-party providers GitHub, Facebook, etc.
It helps you to share resources stored on one site with another site without the need for their credentials.
What is the use of Docker?
It encapsulates your microservice into what we call as Docker container which can then be independently maintained and deployed.
Each of these containers will be responsible for one specific business functionality.
How independent micro-services communicate with each other?
It depends upon your project needs. However, in most cases, developers use HTTP/REST with JSON or Binary protocol. However, they can use any communication protocol.
What is a CDC?
CDC is Consumer-Driven Contract. It is a pattern for developing Microservices so that external systems can use them.