Microservices Flashcards

1
Q

What is a microservice architecture?

A

A microservice architecture is an architecture where an application is composed of small, independent components

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

Whar are the advantages of using a microservice architecture?

A
  1. Horizontal scaling
  2. Isolated evolution
  3. Fault isolation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the disadvantages of using a microservice architecture?

A
  1. Increased complexity
  2. Increased possibility of network failures and latency
  3. Increased security risk
  4. Increased costs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the 2 primary ways microservices can communicate with each other?

A
  1. HTTP RESTful APIs (sync)
  2. AMQP Message brokers (sync or async)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How big should a microservice be?

A

Big enough to not hurt performance and small enough to be understood by a developer

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

What are the most commonly used design patterns for microservices?

A
  1. Service discovery
  2. Configuration server
  3. Gateway
  4. Load balancer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Microservices best practices:
1. Requests to a microservice should be load-balanced over its available instances
2. If microservice is not healthy, requests should not be routed to it
3. A microservice should be capable of returning a response even if a dependent service fails

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

Conway’s law: Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

In other words, the architecture of software systems are surprisingly similar to the organization of the development team that built it.

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

What is Domain-driven design?

A

DDD is an approach to software development that centers the development on programming a domain model that has a rich understanding of the processes and rules of a domain.

DDD can help determine the boundaires of a microservice

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

When microservices become containers, each container will have its own host name. This means that microservices that become containers can have the same port without colliding with one another.

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

Running unit and integration tests for each microservice in isolation is important during development. However, these isolated tests are not enough when the entire application as whole moves to the operation side. Being able to run a script at any time to ensure that all microservices work together as expected is extremely important.

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

The dev and ops organizations should be organized into teams that are responsible for the full Software Development Lifecycle (SDLC) of one or more microservices

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

Using a versioning schema (samver) for the APIs exposed by microservices allows clients to migrate to new major versions at their

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