MicroServices Flashcards

1
Q

Write main features of Microservices.

A

Decoupling: Within a system, services are largely decoupled. The application as a whole can therefore be easily constructed, altered, and scalable

Componentization: Microservices are viewed as independent components that can easily be exchanged or upgraded

Business Capabilities: Microservices are relatively simple and only focus on one service
Team autonomy: Each developer works independently of each other, allowing for a faster project timeline

Continuous Delivery: Enables frequent software releases through systematic automation of software development, testing, and approval

Responsibility: Microservices are not focused on applications as projects. Rather, they see applications as products they are responsible for

Decentralized Governance: Choosing the right tool according to the job is the goal. Developers can choose the best tools to solve their problems
Agility: Microservices facilitate agile development. It is possible to create new features quickly and discard them again at any time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Esb?

A

An Enterprise Service Bus (ESB) is a type of software platform known as middleware, which works behind the scenes to aid application-to-application communication. Think of an ESB as a “bus” that picks up information from one system and delivers it to another.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Write main components of Microservices.

A
Containers, Clustering, and Orchestration 
IaC [Infrastructure as Code Conception] 
Cloud Infrastructure 
API Gateway 
Enterprise Service Bus 
Service Delivery
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the benefits and drawbacks of Microservices?

A

Benefits:

Self-contained, and independent deployment module.

Independently managed services.
In order to improve performance, the demand service can be deployed on multiple servers.
It is easier to test and has fewer dependencies.
A greater degree of scalability and agility.
Simplicity in debugging & maintenance.
Better communication between developers and business users.
Development teams of a smaller size.

Drawbacks:

Due to the complexity of the architecture, testing and monitoring are more difficult.
Lacks the proper corporate culture for it to work.
Pre-planning is essential.
Complex development.
Requires a cultural shift.
Expensive compared to monoliths.
Security implications.
Maintaining the network is more difficult.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Name three common tools mostly used for microservices

A

iremock
Docker
Hystrix

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is docker?

A

Docker is an open source containerization platform. It enables developers to package applications into containers—standardized executable components combining application source code with the operating system (OS) libraries and dependencies required to run that code in any environment.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what is Hystrix?

A

Hystrix is a library that controls the interaction between microservices to provide latency and fault tolerance. Additionally, it makes sense to modify the UI to let the user know that something might not have worked as expected or would take more time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Explain the working of Microservice Architecture

A

Clients: Different users send requests from various devices.
Identity Provider: Validate a user’s or client’s identity and issue security tokens.
API Gateway: Handles the requests from clients.
Static Content: Contains all of the system’s content.
Management: Services are balanced on nodes and failures are identified.
Service Discovery: A guide to discovering the routes of communication between microservices.
Content Delivery Network: Includes distributed network of proxy servers and their data centers.
Remote Service: Provides remote access to data or information that resides on networked computers and devices

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Write difference between Monolithic, SOA and Microservices Architecture.

A

Monolithic Architecture: It is “like a big container” where all the software components of an application are bundled together tightly. It is usually built as one large system and is one code-base.
SOA (Service-Oriented Architecture): It is a group of services interacting or communicating with each other. Depending on the nature of the communication, it can be simple data exchange or it could involve several services coordinating some activity.
Microservice Architecture: It involves structuring an application in the form of a cluster of small, autonomous services modeled around a business domain. The functional modules can be deployed independently, are scalable, are aimed at achieving specific business goals, and communicate with each other over standard protocols.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explain spring cloud and spring boot.

A

Spring Cloud: In Microservices, the Spring cloud is a system that integrates with external systems. This is a short-lived framework designed to build applications quickly. It contributes significantly to microservice architecture due to its association with finite amounts of data processing. Some of the features of spring cloud are shown below:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the role of actuator in spring boot?

A

A spring boot actuator is a project that provides restful web services to access the current state of an application that is running in production. In addition, you can monitor and manage application usage in a production environment without having to code or configure any of the applications.

  1. Explain how you can ov
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explain how you can override the default properties of Spring boot projects.

A

By specifying properties in the application.properties file, it is possible to override the default properties of a spring boot project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What issues are generally solved by spring clouds

A

Complicated issues caused by distributed systems: This includes network issues, latency problems, bandwidth problems, and security issues.
Service Discovery issues: Service discovery allows processes and services to communicate and locate each other within a cluster.
Redundancy issues: Distributed systems can often have redundancy issues.
Load balancing issues: Optimize the distribution of workloads among multiple computing resources, including computer clusters, central processing units, and network links.
Reduces performance issues: Reduces performance issues caused by various operational overheads

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What do you mean by Cohesion and Coupling?

A

Coupling: It is defined as a relationship between software modules A and B, and how much one module depends or interacts with another one. Couplings fall into three major categories. Modules can be highly coupled (highly dependent), loosely coupled, and uncoupled from each other. The best kind of coupling is loose coupling, which is achieved through interfaces.

Cohesion: It is defined as a relationship between two or more parts/elements of a module that serves the same purpose. Generally, a module with high cohesion can perform a specific function efficiently without needing communication with any other modules. High cohesion enhances the functionality of the module.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What do you mean by Bounded Context?

A

A Bounded Context is a central pattern in DDD (Domain-Driven Design), which deals with collaboration across large models and teams. DDD breaks large models down into multiple contexts to make them more manageable. Additionally, it explains their relationship explicitly. The concept promotes an object-oriented approach to developing services bound to a data model and is also responsible for ensuring the integrity and mutability of said data model.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Write the fundamental characteristics of Microservice Design

A

Based on Business Capabilities: Services are divided and organized around business capabilities.
Products not projects: A product should belong to the team that handles it.
Essential messaging frameworks: Rely on functional messaging frameworks: Eliminate centralized service buses by embracing the concept of decentralization.
Decentralized Governance: The development teams are accountable for all aspects of the software they produce.
Decentralized data management: Microservices allow each service to manage its data separately.
Automated infrastructure: These systems are complete and can be deployed independently.
Design for failure: Increase the tolerance for failure of services by focusing on continuous monitoring of the applications.

17
Q

What are the challenges that one has to face while using Microservices?

A

Require heavy infrastructure setup.
Need Heavy investment.
Require excessive planning to handle or manage operations overhead.