AWS Cloud Developer: Microservices - Basics Flashcards

1
Q

Microservices

A

Independently-deployed services that communicate with one another through networks

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

Monoliths

A

Self-contained applications that are deployed as one unit.

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

Microservices vs Monolith Architecture

A

Monolith

Utilize a powerful, more costly machine

Codebase is centralized and easy manage

Code is easily shared across the project

Scoped for worst-case usage across all parts of the application

Microservice

Utilize smaller, cost-effective machines for what we need

Flexibility to implement logic in a way that makes sense for the team and business

Lean to be targeting a specific business purpose
Interfaces set up for building out other applications

Try not to overcommit and pay for resources that aren’t needed

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

Deploying code

A

The act of releasing code changes to an environment

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

3 Main consideration when deploying code

A
  1. Down time
  2. Potential bugs
  3. Downstream effects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

The business value of microservices architecture

A

Business Requirements Drive Teams

Teams can be organized around business needs and have a clearer focus on customer requirements. There is clear ownership on who owns what.

Teams Can Work in Parallel

Since projects are deployed independently, teams can develop and deploy code without stepping on each others’ toes.

Flexibility in Technology

We are not limited to a certain technology and can choose what may work best for the business need or team.

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

3 things to consider when deciding on Microservices Architecture vs Monolithic architecture

A

System Complexity

Rather than deploying a single application, we would be deploying multiple modules separately. There is more overhead in setting up projects.

Network Latency

By introducing a network between modules, we have increased latency in application performance and will find it harder to debug our application.

Difficulty with Debugging

We can no longer rely on a stack trace or tools that can help us pinpoint where a bug is. We may end up relying on logging to find causes of issues.

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