Skip to content

Commit 8e7b919

Browse files
committed
characteristics and ms
1 parent 4ddc40a commit 8e7b919

File tree

6 files changed

+41
-6
lines changed

6 files changed

+41
-6
lines changed

content/architecture_style_distribued/servicebased/apilayer.md

+23-5
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,35 @@ title = "Api Layer"
33
weight = 20
44
+++
55

6-
Nous pouvons ajouter une couche "API Layer" qui va faire office de *reverse proxy* ou de *gateway* entre nos services et l'interface utilisateur.
6+
{{% notice style="tip" title="Ressources" icon="fa fa-book" %}}
7+
[6 More Microservices Interview Questions](https://blog.bytebytego.com/p/6-more-microservices-interview-questions)
8+
{{% /notice %}}
9+
10+
Nous pouvons ajouter une couche "API Layer" qui va faire office de _reverse proxy_ ou de _gateway_ entre nos services et l'interface utilisateur.
711

812
![Alt text](../images/api_layer.png)
913

10-
## Pourquoi l'utiliser ?
14+
## API Gateway
15+
16+
> In a microservices architecture, an API gateway acts as a single entry point for client requests. The API gateway is responsible for request routing, composition, and protocol translation. It also provides additional features like authentication, authorization, caching, and rate limiting.
17+
18+
[api gateway](https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82be2aaf-c292-481e-b8d5-d47cbe9e64d7_1243x1600.png)
19+
20+
## Pourquoi l'utiliser ?
21+
22+
L'avantage de cette pratique c'est qu'elle abstrait notre système derrière un "mur". Les systèmes externes communiquent avec nos services uniquement au travers de la couche API. Cette couche peut par exemple s'assurer que l'utilisateur ait le droit de consulter la ressource (authentification et autorisation).
1123

12-
L'avantage de cette pratique c'est qu'elle abstrait notre système derrière un "mur". Les systèmes externes communiquent avec nos services uniquement au travers de la couche API. Cette couche peut par exemple s'assurer que l'utilisateur ait le droit de consulter la ressource (authentification et autorisation).
1324
1. L'utilisateur envoie une requête au service de Commande
14-
2. La couche API Layer contacte le service d'Authentification
25+
2. La couche API Layer contacte le service d'Authentification
1526
3. Le service d'authentification retourne une réponse autorisant ou non l'accès (e.g. vérifier si l'utilisateur saisi est le bon)
1627
4. Si l'authentification est réussite avec la couche API Layer transmet à requête au service Commande. Dans le cas contraire, l'API Layer ne contacte pas le service et retourne un code d'erreur au client (e.g. mot de passe incorrect)
1728

29+
> On retrouve un fonctionnement similaire avec la librairie [Spring Cloud Gateway](https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway)
30+
31+
## Rate Limiter
32+
33+
Il est parfois souhaité de limiter le nombre de de connexion d'un adresse IP, d'un utilisateur sur le serveur. Pour ce faire on utilise un Rate Limiter. Cet outil peut être mis en place sur le serveur ou sur une couche intermédiaire (middleware) entre le client et le serveur
34+
35+
![ratelimiter](../images/ratelimiter.png)
1836

19-
> On retrouve un fonctionnement similaire avec la librairie [Spring Cloud Gateway](https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway)
37+
Et si nous avons une architecture microservice possédant une API Gateway qui gère l'authentification, etc ... nous pouvons y rajouter le Rate Limiter
Loading

content/basics/abstraction.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ weight = 5
44
+++
55

66
{{% notice style="tip" title="Ressources" icon="fa fa-book" %}}
7-
[When NOT to write an Abstraction Layer](https://youtu.be/tqqH_Ib_gDc)
7+
[When NOT to write an Abstraction Layer](https://codeopinion.com/when-not-to-write-an-abstraction-layer/)
88
{{% /notice %}}
99

1010
Comme l'a noté Edsger W. Dijkstra dans son article "The Humble Programmer ", le but de l'abstraction n'est pas d'être vague mais de créer un nouveau niveau sémantique dans lequel on peut être absolument précis.
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
+++
2+
title = "Disponibilité"
3+
weight = 60
4+
+++
5+
6+
High availability is the ability of a system to be continuously operational for a desirably long period of time. High availability is measured as a percentage, with 100% means a service that has 0 downtime. Most services fall between 99% and 100%.
7+
8+
![availability](../images/availability.png)
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
+++
2+
title = "Faisabilité"
3+
weight = 50
4+
+++
5+
6+
{{% notice style="tip" title="Ressource" icon="fa fa-icon" %}}
7+
8+
- [Lesson 181 - Feasibility and Questioning Requirements ](https://youtu.be/65qOqfbQV2Y)
9+
{{% /notice %}}
Loading

0 commit comments

Comments
 (0)