4. Making Architecture Choices Flashcards

1
Q

At which step of developing a Microservices architecture should you consider CI/CD pipelines?

A

They’re one of the first things you should consider. Don’t write any code until you have a plan on how to handle this task. It is such an important concept in a microservices architecture that it should ideally be task number one.

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

What is the second aspect to consider when developing a Microservices architecture, and what are the considerations around it?

A

Logging and tracing. This should really be a primary function of every service, so the code required to do this work should be in a common library for every artefact to consume.

Consider how you will aggregate and evaluate your logs and metrics, and design your code to solve that need. Consider the use of log aggregators and search mechanisms for those logs early on so you can structure your data in your log messages appropriately.

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

What should you consider leveraging when it comes to your service code in developing a Microservices architecture, and why?

A

Domain-Driven Design.

You need to do some real analysis on the system as a whole and use that knowledge to help you define service boundaries. Consider how you will build your services and what functions they will perform.

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

What should be the considerations around latency in developing a Microservices architecture and why?

A

The use of non-blocking code when possible and standardising your stack no matter which way you go.

If you design your services asynchronous first unless you can prove that a certain service needs synchronous operations. This will not only reduce latency on your system as a whole, but will allow you to improve your skills on these operations while reducing error rates.

Also, standardisation allows us to shift resources much more easily as the business needs change.

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

What are the drawbacks associated with the distribution tax in a microservices architecture, what are some of the benefits?

A

There’s a significant cost of building out a distributed system, but you also get several benefits from this. One of the significant benefits is well-defined module boundaries — it is a lot harder to write tightly coupled code when you go across the service boundary to make a call. In addition, you get a much easier path of scaling your system.

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

What are the issues of complexity in a microservices architecture?

A

The ability to scale that comes with microservices increases the complexity of our deployments. There are just so many moving parts in microservices that the complexity of this process is increased dramatically.

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

What are the tradeoffs associated with the ability to have diversity in your tech stack in a microservices architecture?

A

The ability to write your services in any technology comes with real operational costs. You can fully embrace polyglot development if you want, but managing these services in production when they follow different rules can be a huge challenge. It is oftentimes better to embrace smaller set of technologies to improve your ability to manage operations.

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

What are outbound edge services used for?

A

Exposing your client’s specific needs to the outside world.

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

What is inbound/translation edge services used for?

A

Abstracting you from third-party dependencies.

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

What are the two kinds of edge services?

A
  1. Outbound Edge Services

2. Inbound/Translation Edge Services

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

What are the key benefits of edge services?

A
  1. Manage code transformations similar to other code in your system.
  2. Provide a consistent interface even if underlying services change
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the single most effective way to be successful in a microservices architecture?

A

To build it into your culture. A DevOps culture is a perfect fit for building out a microservices architecture because the two compliments each other’s strengths while mitigating the weaknesses.

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

What does DevOps aim to do?

A

Bring the conversation between operations and development into the same sphere.

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

Why is a DevOps culture a perfect fit for a team that leverages a microservices architecture?

A

Most of the issues of microservices can be seen as operational issues and monitoring the system remains the most important aspect. A platform of continuous monitoring and automated responses become a necessity for operations. DevOps aims to leverage automation and embed the work into the development function.

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

What does the combination of unified logging practices and leveraging DevOps bring to the table for a microservices architecture?

A

Automated monitoring. Once we have the data in a unified and structured format, we can write code to respond in an automated fashion. This allows increased response times or increased error messages to trigger re-paving of the infrastructure or at the very least a pager call, providing better response time to system events.

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

What does DevOps bring to the table in regards to CI/CD pipelines in a microservices architecture?

A

Automation of deployments and testing improves the agility of the team. The operational events that are manual in a traditional model are improved with automation, which in turn provides more throughput from the team as a whole.

17
Q

What does automation help us achieve in a microservices architecture, and what does it help mitigate?

A
  1. Scaling
  2. Agility
  3. Distribution
    - ——————————
  4. Latency
  5. Complexity of deployments
  6. Complexity of general operations