Application Architecture Patterns Flashcards

1
Q

Patterns

A

Monolithic architecture

Microservice architecture

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

Monolithic architecture: context

A

You are developing a server-side enterprise application.

server-side, different clients, api, integration, request-logic-database-response, multiple contexts

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

Monolithic architecture: problem

A

What’s the application’s deployment architecture?

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

Monolithic architecture: forces

A
  • There is a team of developers working on the application
  • New team members must quickly become productive
  • The application must be easy to understand and modify
  • You want to practice continuous deployment of the application
  • You must run multiple instances of the application on multiple machines in order to satisfy scalability and availability requirements
  • You want to take advantage of emerging technologies (frameworks, programming languages, etc)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Monolithic architecture: solution

A

Build an application with a monolithic architecture. For example:

a single Java WAR file.
a single directory hierarchy of Rails or NodeJS code

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

Monolithic architecture: example

A

Browser
Apache
Tomcat (WAR)
Mysql Database

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

Monolithic architecture: result benefits

A

Simple to develop, deploy, scale

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

Monolithic architecture: result drawbacks

A

intimidates developers,
Overloaded IDE,
Overloaded web container,
Continuous deployment is difficult,
Scaling the application can be difficult,
Requires a long-term commitment to a technology stack

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

Monolithic architecture: related patterns

A

microservice architecture

is an alternative pattern that addresses the limitations of the monolithic architecture.

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

Microservice architecture: context

A

You are developing a server-side enterprise application.
server-side, different clients, api, integration by messaging or rpc, request-logic-database-message-response, multiple contexts

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

Microservice architecture: problem

A

What’s the application’s deployment architecture?

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

Microservice architecture: solution

A
Define an architecture that structures the application as a set of loosely coupled, collaborating services
    *   Y-axis scale cube
Highly maintanable and testable
Loosely coupled with other services
Independently deployable
Capable of being developed by a small team
Communication can be synch or asynch
Private database
Data consistency by saga pattern
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Microservice architecture: example

A

client -> api gateway or web front -> services -> their databases

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

Microservice architecture: result benefits

A
Improved maintainability 
Better testability
Better deployability
autonomous teams
Easier for a developer to understand
The IDE is faster making developers
The application starts faster
Improved fault isolation
Eliminates any long-term commitment to a technology stack
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Microservice architecture: result drawbacks

A

additional complexity to developers
Deployment complexity
Increased memory consumption

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

Microservice architecture: issues

A

When to use the microservice architecture?
How to decompose the application into services?
How to maintain data consistency?
How to implement queries?