Architecture Flashcards

1
Q

Quel est l’objectif d’une API Gateway ?

A

Cacher l’url des micros service, pour n’exposer qu’une seule URL, celle de la Gateway. Cela devient plus simple pour les clients.

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

Pour qui est utile une API Gateway ?

A

Pour les clients externes. Mais aussi peut être pour gérer la découverte des services…

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

Que peut accomplir une API Gateway ?

A

Routage, authentification, logs, suivi des requêtes, metrics

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

Qu’est ce que Cloudflare ?

A

C’est un reverse proxy

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

Qu’est ce que va améliorer Cloudflare ?

A

Va nous améliorer la sécurité, la performance et la fiabilité de notre site

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

Comment cloudflare va améliorer la sécurité de notre site ?

A

Etant un reverse proxy, il va pouvoir nous protéger des bots, et surtout des attaques DDOS. En ayant plusieurs datacenter, on s’assure que le proxy ne va jamais tomber. Cloudflare est aussi spécialisé dans la détéction de DDOS.

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

Comment cloudflare va améliorer les performances de notre site ?

A

Il a une mise en cache, répartie en plusieurs datacenter. C’est le plus proche qui va nous délivrer le document. Il est aussi bon dans la compression de documents

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

Comment cloudflare va améliorer la fiabilité de notre site ?

A

Il va pouvoir fonctionner comme un load balancer, qui ne peut pas tomber grâce à ses datacenter.

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

Comment mettre en place Cloudflare ?

A

Suivre les consignes du dashboard, mais surtout changer les champ NS du DNS pour rediriger vers un serveur Cloudflare.

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

Qu’est ce qu’un application monolithique ?

A

un seul bloc, c’est à dire 1 application qui contient beaucoup de service. Une application monolithique a donc beaucoup de responsabilité.

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

Qu’est ce qu’une architecture micro-services ?

A

Plusieurs applications, avec chacune une seule grosse responsabilité. Ces applications font communiquer entre elles, pour former un système solide

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

Quels sont les avantages d’une architecture monolithique ?

A

Maintenance simplifiée, déploiement facile, cohérence (les micro services, quand l’api saute, c’est des erreurs au runtime)

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

Quels sont les avantages d’une architecture micro-service ?

A

Diviser le travail entre plusieurs développeurs est plus simple (choix du langage, diviser de la responsabilité, sa propre manière de dev…), réduction de l’impact des pannes (un seul service, pas le gros bloc entier), Scalibilité simplifée : on donne des ressources que aux services critiques

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

Quels sont les défis d’une archi micro service ?

A

Données : le relationnel devient plus compliqué, les tests deviennent plus compliqués (il faut mocker les retours des autres services), déploiement (il faut mettre en place des outils pour automatiser les deploy), les logs sont centraux, il faut des outils pour surveiller le système

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

Définition SI ?

A

Ensemble organisé de ressources qui permet de collecter, stocker, traiter et distribuer de l’information

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

Qu’est ce qu’un développeur architecte ?

A

Responsable conception/modélisation SI, s’assurer une bonne orchestration des composants, veille technologique et anticipation, positionnement stratégique du SI dans la boîte.

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

Que veut dire CORBA ?

A

Common Object Request Broker Architecture

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

Quel est l’objectif de CORBA ?

A

Fournir des interfaces entre client/server, indépendament du langage de programmation utilisé

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

Qu’est ce que la phase de mapping dans CORBA ?

A

On créé un fichier .idl qui va représente l’interface de nos objets à faire communiquer. On va ensuite compiler, une fois pour le client, une fois pour le serveur. On va à chaque fois préciser le langage utilisé

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

Quels sont les fichiers générés par CORBA ?

A

Chien, l’objet métier, ChienOperations, ChienPOA , ChienStub, ChienHelper. (Chien est un exemple)

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

A quoi sert le fichier Operations dans CORBA ?

A

Interface des méthodes de l’objet

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

A quoi sert le fichier Operations dans CORBA ?

A

Interface des méthodes de l’objet

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

A quoi sert le fichier POA dans CORBA ?

A

Le skeleton qui va englober l’objet CORBA. Réalise le déballage des opérations (requêtes CORBA envoyées par le client) et l’emballage des résultats (réponse à retourner au client). Créé une référence pour l’objet si n’existe pas

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

A quoi sert le fichier Stub dans CORBA ?

A

Le Stub est une portion de code côté client qui réalise l’emballage des opérations (requêtes CORBA à envoyer au serveur) et le déballage des résultats (réponse du serveur).

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

A quoi sert le fichier Helper dans CORBA ?

A

Utilisé pour la communication CORBA (read, write, create, instantiate…)

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

Qu’est ce que IIOP ?

A

C’est le protocole qui permet de communiquer avec CORBA. Indépendant du langage, de l’OS ou de la machine.

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

Qu’est ce que l’annuaire CORBA ?

A

Un service qui associe un nom (string) à une référence d’objet (l’id d’un objet CORBA)

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

Qu’est ce que ORB ?

A

C’est un middleware qui fait le lien entre les requêtes client et serveur. Il va coordoner les objets CORBA (la gestion de la connectivité, de la communication, de la conversion de types de données et de la sécurité entre les objets distants. Il est également responsable de la localisation des objets distants et de l’acheminement des demandes des clients vers ces objets.)

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

Que veut dire MOM ?

A

Message Oriented Middleware

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

Quels sont les objectifs de MOM ?

A

Permettre la communication asynchrone entre différents systèmes distribués. Modèle de communication plus fiable et plus tolérant aux pannes

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

Quels sont les avantages de MOM ?

A

Communication asynchrone / non bloquante, Couplage faible, puisqu’on a plus besoin de connaitre les config des composants, seulement envoyer un message au MOM. Fonctionne quand il n’y a pas de dépendances temporelle entre les services

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

Quels sont les message brokers les plus connus ?

A

Apache Kafka, RabbitMQ

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

Qu’est ce qu’une communication transiante ?

A

Dépendance temporelle entre les services (auth qui va chercher à se login dans tous les users services). C’est le principe du REST.

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

Qu’est ce qu’une communication persistante?

A

Pas besoin de dépendances temporelle entre les services (par exemple le user service qui appelle les seeders). C’est le principe des MOM. On stocke la requête

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

Unicast vs Multicast ?

A

Unicast un seul destinataire, multicast plusieurs destinataires

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

Qu’est ce qu’une communication PUSH avec MOM ?

A

En push, c’est le message broker qui va envoyer la notification d’un nouveau message aux clients

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

Qu’est ce qu’une communication PULL avec MOM ?

A

En pull, c’est les clients qui va taper dans le MOM pour voir si il y a des nouveaux messages.

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

Les avantages de Pull vs Push avec MOM ?

A

Les clients peuvent choisir plus facilement le taux de pull, alors qu’avec le push, ils le subissent. Le pull est plus efficace pour gérer des consommateurs diversifiés

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

Quels sont les 3 modèles de communication du message broker ?

A

Queue, Topic, RPC

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

Qu’est ce que le modèle Queue dans MOM ?

A

Chaque message est stocké dans une file. Le message va être consommé un seule fois, par un seul destinataire. Le destinataire peut acquitter le message reçu. Donc le client va traiter dans l’ordre de la file les messages reçus.

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

Qu’est ce que le modèle Topic dans MOM ?

A

Les messages sont envoyés à un channel, et tous les clients qui sont abonnés au channel vont recevoir le message.

42
Q

Quelles sont les 3 typologies possibles de MOM ?

A

Centralisée, décentralisée, hybride.

43
Q

Que veut dire SOAP ?

A

Simple Object Access Protocole

44
Q

Quel est l’objectif de SOAP ?

A

Définir la structure des messages échangés via HTTP, acheminer les messages en utilisant HTTP

45
Q

Quelle est la structure d’une requête SOAP ?

A

Enveloppe/Header/Body/MyCustomRequest

46
Q

Quelle est la structure d’une réponse SOAP ?

A

Enveloppe/Header/Body/MyCustomRequest

47
Q

Quelle est la méthode HTTP impossible avec SOAP ?

A

C’est le GET, car il faut forcément envoyer un body.

48
Q

Qu’est ce que WSDL ?

A

C’est un fichier XML pour définir la structure et le comportement d’une app web.

49
Q

Quelles sont les balises de WSDL ?

A

types, message, portType, binding, service

50
Q

A quoi sert la balise types dans WSDL ?

A

description des types utilisés en XSD.

51
Q

A quoi sert la balise message dans WSDL ?

A

décrit la structure du body, en décrivant les types décrits

52
Q

A quoi sert la balise binding dans WSDL ?

A

Décrit le protocole de transport utilisé (http, smtp…)

53
Q

A quoi sert la balise service dans WSDL ?

A

définit l’adresse de base du service.

54
Q

Quelles sont les différentes manières de scaler un monolith ?

A

vertical, horizontal, asynchronisité, caching, bdd répartie, bdd séparée. bdd read/write

55
Q

Comment est géré la dépassement de mémoire du cache ?

A

LRU : La donnée en cache la moins utilisée par l’application est dégagée en première

56
Q

Comment rafraichir le cache dans un env micro service ?

A

implémenter un message broker, (MOM), et le service serveur va envoyer un event, à chaque fois que ses données sont modifiées, pour que le client vide son cache.

57
Q

Qu’est ce qu’un cache froid ?

A

Un cache vide, souvent au lancement d’une app

58
Q

Comment réchauffer un cache ?

A

On va faire des appels asynchrone, sans attendre qu’un utilisateur le remplisse.

59
Q

Qu’est ce que le RPS et le QPS ?

A

Requests per seconds et Queries per seconds

60
Q

Qu’est ce que le DAU ?

A

Daily active users

61
Q

Qu’est ce que le usage per DAU ?

A

Pour chaque features, combien de pourcentage de DAU utilisent la feature

62
Q

Qu’est ce que les peeks ?

A

A quel moments de la journée on a une charge importante de requête (ex : Twitter au réveil)

63
Q

Qu’est ce que le back of the envelop ?

A

Une méthode pour simplifier le calcul de charge du SI. On va réduire les nombres en puissance de 10, et on va calculer l’ensemble comme ça.

64
Q

Quel est l’avantage des classes statiques par rapport à l’injection de dépendance ?

A

Code simplifié, pas de paramètres dans les fonctions.

65
Q

Quels sont les avantages de l’injection de dépendance par rapport aux classes statiques ?

A

Modification logique métier/technique sans toucher au code, mocking dans les tests unitaires

66
Q

Quand utiliser l’injection de dépendance ?

A

Quand notre classe statique peut être modifiée par un contexte différent, quand on veut mocker un comportement, quand on créé une framework et qu’on veut permettre aux utilisateurs d’override nos comportements.

67
Q

Quel est l’avantage des Facades dans Laravel ?

A

Permet d’utiliser l’injection de dépendance sans devoir passer de paramètres, donc d’allier l’avantage des classes statique et l’injection de dépendance

68
Q

Qu’est ce que l’injection de dépendance ?

A

C’est quand le framework va instancier une interface dynamiquement lors du runtime. La classe instanciée peut être modifiée selon le contexte

69
Q

Que sont les protocoles RTMP et SRT ?

A

Ces sont des protocoles utilisés pour faire du streaming en direct

70
Q

SRT vs RTMP ?

A

SRT utilise UDP, RTMP utilise du TCP

71
Q

Comment les plateformes de streaming détecte le serveurs le plus proche ?

A

En utilisant du latecy-based routing

72
Q

Que fait un streaming server ?

A

Il segmente une vidéo et la transforme en plusieurs résolutions (qualité). C’est gourmant en ressource

73
Q

Quel est le format de fichier produit par le streaming server ?

A

Le HLS (HTTP Live Streaming), conçu par Apple.

74
Q

Ou sont stockés les fichiers HLS produits par le streaming server ?

A

Sur un CDN, qui va utiliser du cache

75
Q

Qu’est ce qu’un webhook ?

A

C’est lorsqu’on fournit une URL d’API en callback suite à un évènement d’une application tierce.

76
Q

Comment fonctionne un webhook ?

A

On relie une URL a un évènement d’une application source (C’est elle qui doit les lister). Cette URL va être appelée lorsque l’évènement a lieu. On peut fournir un body.

77
Q

Comment fonctionne le paiement Wallet sur téléphone (Apple pay et Google Pay) ?

A

C’est basé sur un token d’authentification, généré en envoyant les infos de la carte. Le token est ensuite déchiffré par la banque.

78
Q

Apple Pay vs Google Pay ?

A

Apple pay stocke le token dans un composant spécifique, sécurisé. Google pay le stocke dans l’application Wallet.

79
Q

Qu’est ce qu’un proxy ?

A

Un serveur entre la machine client et le serveur target

80
Q

De quel côté agit le proxy ?

A

Côté client

81
Q

Quels sont les autres noms d’un proxy ?

A

Forward proxy ou outbound proxy

82
Q

Quelle est l’utilité d’un proxy ?

A

Anonymiser l’IP du client, bypass certaines restrictions du navigateurs (géolocalisation par exemple), bloquer du contenu dans les entreprises, Contourner un firewall trop restrictif

83
Q

Lien entre VPN et proxy ?

A

Un VPN est un type de proxy

84
Q

Qu’est ce qu’un reverse proxy ?

A

Un serveur entre la requête client et le serveur qui contient la ressource.

85
Q

De quel côté agit le reverse proxy ?

A

Côté serveur

86
Q

Quelle est l’utilité d’un reverse proxy ?

A

Cacher la structure interne du serveur, mettre en cache des ressources statiques, agit en tant que load balancer, gérer le SSL, compresser les données…

87
Q

Exemple de reverse proxy ?

A

Nginx ou Apache

88
Q

Quel est l’autre nom de reverse proxy ?

A

Inbound proxy

89
Q

Qu’est ce que la complexité cyclomatique ?

A

Représente le nombre d’embranchement possible dans le code et donc sa complexité a debugger

90
Q

Qu’est ce que les LOC ?

A

C’est le nombre de lignes de codes d’un projet

91
Q

Qu’est ce que la métrics “couplage” dans le code ?

A

On regarde si le code est trop fortement couplés (des objets possèdent toutes les références du monde…)

92
Q

De quoi est composé l’indice de maintenabilité ?

A

C’est la somme de la complexité cyclomatique, du LOC, et du volume halstead

93
Q

Qu’est ce que le volume halstead ?

A

Mesure le nombre de variables dans le code

94
Q

Qu’est ce que le rework ratio ?

A

Pourcentage qui indique quels sont les fichiers qui sont les plus édités par les dev.

95
Q

Quels sont les problèmes des ID générés séquentiellement ?

A

Pas unique dans le SI (pleins d’entité avec l’id 1 par ex), pas scalable car autorité pour produire les ID, pas sécurisé car on peut deviner la suite.

96
Q

Quelle est la meilleure méthode pour générer un id unique, scalable et sécurisé dans le SI?

A

Utiliser les UUID

97
Q

Quelle est la meilleure méthode pour générer un id court dans le SI?

A

Un nombre aléatoire

98
Q

Quelle est la meilleure méthode pour générer un id humain readable dans le SI ?

A

Se baser sur le user input et rajouter un uuid a la fin

99
Q

Quand se baser sur un external ID pour définir l’ID de notre entité ?

A

Uniquement lorsqu’on a assez confiance dans le service externe pour qu’il ne change pas ses ids.

100
Q
A