Skip to content

Commit 16fa963

Browse files
authored
Add microservices introduction in English (#205)
* Add microservices introduction in English * docs: correction text microservices and add links
1 parent 3241c34 commit 16fa963

File tree

5 files changed

+56
-1
lines changed

5 files changed

+56
-1
lines changed
66.8 KB
Loading
102 KB
Loading

docs/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ microservices with Python which handles cross-cutting concerns:
1313
PyMS is powered by [Flask](https://flask.palletsprojects.com/en/1.1.x/), [Connexion](https://github.com/zalando/connexion)
1414
and [Opentracing](https://opentracing.io/).
1515

16-
Get started with [Installation](installation.md) and then get an overview with the [Quickstart](quickstart.md).
16+
Get started with an [Introduction to Microservices](microservices.md) and then the [Installation](installation.md). Get an overview with the [Quickstart](quickstart.md).
1717

1818
## Motivation
1919

@@ -38,6 +38,7 @@ Nowadays, is not perfect and we have a looong roadmap, but we hope this library
3838

3939
## Index
4040
* [Installation](installation.md)
41+
* [Introduction to microservices](microservices.md)
4142
* [Quickstart](quickstart.md)
4243
* [Configuration](configuration.md)
4344
* [Services](services.md)

docs/microservices.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Introduction to Microservices
2+
3+
Typically, the application structure is based on a monolithic architecture scheme. In this architecture, all the elements implemented are included in a single application. The monolithic architecture has some disadvantages, such as it becomes more difficult to solve problems and add new functionalities as the application grows. The microservicies architecture pattern is proposed in order to solve these problems.
4+
5+
![Productivity](imgs/productivity_martin_fowler.png)
6+
7+
*Figure 1: Microservice vs Monolith architecture. Source: [Martin Fowler](https://www.martinfowler.com/bliki/MicroservicePremium.html)*
8+
9+
## What are the microservices?
10+
11+
Microservices - also known as the *microservice architecture* - structures an application as a collection of services. The idea is to split the application into a set of smaller, interconnected services instead of building a single monolithic application. Thus, each microservice is a small application.
12+
13+
Ideally, a microservice or service has to be specialized in solving the problems of a single domain using the best available technology. In addition, each service must have an API in order to facilitate communication and interaction with the other microservices. The microservices architecture propose a new type of relationship between the application and the database. Instead of sharing a single database schema with other services, each service has its own database schema. Having a database schema per service is essential if you want to benefit from microservices, because it ensures loose coupling.
14+
15+
Normally, the communication with the client is mediated by an intermediary known as an API Gateway. The API Gateway is responsible for tasks such as load balancing, caching, access control, API metering, and monitoring.
16+
17+
![Application implemented following the microservices architecture](imgs/Microservice_Architecture.png)
18+
19+
*Figure 2: Example of application implemented following the microservices architecture. Source: [Microservices.io](https://microservices.io/)*
20+
21+
Companies using microservice architecture: Netflix, Amazon, Ebay, Uber, Sound Cloud, etc.
22+
23+
## Beneficts
24+
25+
* If one microservice fails, the whole system does not crash
26+
* Facilitates scalability of the application.
27+
* Gives developers the freedom to independently develop and deploy services.
28+
* Different programming languages can be used in different modules.
29+
* Easy to maintain, modify and reuse.
30+
* The most recommended technology can be used for each problem.
31+
* Easy to scale and manage development teams.
32+
33+
## Disadvantages
34+
35+
* Testing can be difficult due to distributed deployment.
36+
* If the design is not done properly, this architecture could lead with latency problems, load balancing, etc.
37+
* High memory consumption
38+
* Complexity in integrating and managing a large number of services.
39+
* The members of a development group must have good background training.
40+
41+
42+
## Additional resources
43+
1. [Microservices](https://microservices.io/) (ENG)
44+
45+
1. [Microservices Guide by James Lewis and Martin Fowler](https://www.martinfowler.com/microservices/) (ENG)
46+
47+
1. [Wikipedia: Microservices](https://en.wikipedia.org/wiki/Microservices) (ENG)
48+
49+
1. [Workshop Module 1: Introduction to Microservices](https://www.youtube.com/watch?v=jMDufMYAsmw) dotNet (ENG)
50+
51+
52+
53+

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ repo_name: GitHub
55
site_author: Alberto Vara
66
nav:
77
- Home: index.md
8+
- Introduction to microservices: microservices.md
89
- Installation: installation.md
910
- Quickstart: quickstart.md
1011
- Configuration: configuration.md

0 commit comments

Comments
 (0)