DEVOPS Flashcards

1
Q

Qu’est ce que le DEVOPS ?

A

Automatiser les tests et le déploiement des apps. Améliorer la communication et briser la frontière entre devs et ops.

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

Selon LEAN, est ce que le fonctionnement par pile fonctionne ?

A

Non, il est plus efficace d’avoir des salariés autonomes sur chaque pièces, plutôt que par pile. On réduit aussi les goulots d’étranglements, et les dégats lorsqu’un salarié part (plus personne ne sais faire son taff)

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

Comment faire un déploiement sans arrêt de service ?

A

Il faut un load balancer. On va sortir une partie du cluster, la mettre à jour. Si tout va bien, on migre le reste du cluster. Il faut pour ça une redondance de BD. C’est du canary deploy

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

Qu’est ce que le test A/B ?

A

On donne 2 versions aux utilisateurs. On divise avec un load balancer. On implémente des metrics pour quelle version est la meilleure.

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

Qu’est ce que le feature toogle ?

A

Le fait d’activer ou de désactiver manuellement des fonctionnalités sur un site. Pratique si une feature bug, ou qu’elle n’est pas nécessaire. On peut lier ça avec un test A/B, pour désactiver que pour 20% des utilisateurs par exemple.

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

Comment analyser facilement les features de nos apps ?

A

Il faut installer des métrics. On peut, avec ça, se créer un dashboard pour analyser les features. Par exemple avec metabase…

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

Qu’est ce que Chaos Monkey ?

A

Une app developée par Netflix pour créer des pannes dans ses infrastructures prod. C’est de l’ingénierie du chaos.

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

Quel est l’avantage de l’ingénieurie du chaos ?

A

Les tests ne peuvent pas reproduire parfaitement l’infrastructure prod. Avec les tests chaos, on test dans de réelles conditions.

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

Comment se déroule un test du chaos ?

A

Définir la question, le périmètre, identifier les métriques, communiquer aux équipes pour éviter la panique, réaliser, analyser, elargir

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

Les compétences d’un servant leadership

A

A l’écoute, Empathique, Apporter son aide, Maître de ses émotions, Convaincre par les arguments, Se projeter vers le futur, Anticiper les situations, utilise son intuition, Exemplaire au niveau pro, Construire une communauté

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

Quels sont les 3 composants de la communication Docker ?

A

Docker client, docker socket, docker daemon (backend)

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

Comment fonctionne le docker daemon ?

A

Il va gérer les actions sous formes de requêtes API. On peut se connecter à un docker deamon distant. C’est le docker HOST.

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

Qu’est ce qu’un conteneur Docker ?

A

C’est un processus isolé, stateless, construit sur une image (son skelette)

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

Quand se termine un conteneur Docker ?

A

Soit on l’arrête manuellement, soit lorsque son processus principal (commande de lancement) s’arrête.

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

A quoi servent les options -i -t dans Docker ?

A

t indique qu’on veut ouvrir un TTY(terminal), i indique que souhaite laisser ouvert l’input

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

Comment configurer les ports en CLI dans Docker ?

A

-p [port_local]:[port_conteneur]

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

Quels sont les 2 types de volumes dans Docker ?

A

Les volumes isolés et les volumes hôtes

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

Qu’est ce qu’un volume isolé ?

A

C’est un volume qui va persister les données du conteneur mais qui ne va être relié à aucun dossier de l’hôte.

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

Qu’est ce qu’un volume hôte ?

A

C’est un volume qui va persister les données du conteneur et qui va être relié à un dossier sur la machine hôte.

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

Que peut on limiter en ressources sur un conteneur ?

A

La RAM, le nombre de CPU, le nombre de fichiers ou threads utilisés par le conteneur, le nombre de pids, la bande passante, la place sur le disque.

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

Quel est l’utilisateur par défaut d’un conteneur ?

A

C’est root

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

De quoi est composé une image Docker ?

A

Des plusieurs layers

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

Quelle est la commande pour créer une image à partir d’un container existant ?

A

docker commit

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

Quel est l’inconvénient de faire un docker commit ?

A

Pas de Dockerfile, donc pour la maintenance c’est compliqué. (pas de versionning)

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

Quel est le principe du multistage ?

A

Permet de réduire considérablement la taille d’une image, en découpant le build. Par exemple : stage 1, build le front avec npm, stage 2 : récupérer le build et le mettre sur un nginx. Le conteneur ne contiendra pas npm car besoin uniquement lors du build.

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

A quoi sert le fichier .dockerignore ?

A

Lors du build, Docker va lire ce fichier. Si il trouve des patterns qui matche, il n’ajoutera pas ces fichiers dans l’image lors du ADD, ou COPY.

27
Q

Qu’est ce qu’un Registery Docker ?

A

C’est un répertoire d’image, en cloud.

28
Q

Quel est le registery open source Docker ?

A

C’est Docker Registry.

29
Q

A quoi sert les networks dans Docker ?

A

Des canaux qui vont indiquer quels containers peuvent communiquer ensembles.

30
Q

A quoi sert docker-compose ?

A

A faire communiquer plusieurs containers entre eux

31
Q

Quel est le nom DNS des conteneurs ?

A

C’est simplement le nom des conteneurs.

32
Q

Qu’est ce que Docker Swarm ?

A

C’est un orchestrateur de conteneur. Il permet de gérer en production les conteneurs. Il a été dépassé par Kubernetes.

33
Q

Comment peut on facilement attaquer un hôte avec un conteneur docker ?

A

On peut mettre une petite fork bomb par exemple dans l’image, que l’on va lancer automatiquement.

34
Q

Quels sont les avantages des conteneurs ?

A

Infrastructure as code, donc automatisation de l’envrionnement, gestion plus flexible en prod des applications, installation et partage de projet plus facile.

35
Q

A quoi sert Portainer ?

A

C’est une UI qui permet d’afficher les conteneurs géré par le docker daemon. C’est pratique pour les Ops.

36
Q

Comment avoir une GUI pour un conteneur Docker (pour installer une app dedans par ex)

A

Il faut installer un client VNC. On peut utiliser NoVNC pour se connecter via un navigateur

37
Q

A quoi sert la commande docker save ?

A

A sauvegarder une image docker dans un fichier .tar

38
Q

A quoi sert la commande docker load ?

A

A charger une image docker depuis un fichier .tar

39
Q

Quel est le problème docker avec les CPU M1 Mac ?

A

Certains container/image ne peuvent pas tourner car l’architecture du CPU est différente (M1 ⇒ ARM64, Intel ⇒ AMD64). Les instructions binaires sont donc différentes.

40
Q

Qu’est ce que le multi-arch dans Docker ?

A

Une image/tag contient plusieurs versions de lui même pour plusieurs os/archi. On va par exemple avec une image python:alpine pour linux/amd64, et une autre image python:alpine pour linux/arm (qui marchera pour M1)

41
Q

Comment résoudre simplement le problème de compatibilité CPU architecture pour une image Docker ?

A

Soit on émule l’os/archi lors du run du container, soit on construit une autre version de l’image qui part de notre architecture (préciser l’os/archi dans le dockerfile)

42
Q

Combien de perte de performances on a avec une émulation d’archi pour faire tourner les conteneurs Docker ?

A

Environ 6%

43
Q

Quelles sont les 2 méthodes pour avoir de la GUI dans docker ?

A

Installer un serveur VNC ou partager un serveur X .

44
Q

Quelle est la méthode pour avoir des apps d’un conteneur docker sur le bureau Windows ?

A

Il faut installer un serveur X sur windows, puis modifier la variable DISPLAY dans le conteneur

45
Q

Qu’est ce que docker.host.internal ?

A

C’est l’ip de la machine local, injectée dans les conteneurs sous forme de variable d’environnement

46
Q

Qu’est que l’option tty : true OU -t dans docker ?

A

Garde le conteneur actif, même si la command 1 est terminée.

47
Q

Qu’est que l’option tty : true OU -t dans docker ?

A

Garde le conteneur actif, même si la command 1 est terminée.

48
Q

A quoi sert l’option -P sur docker ?

A

Publie tous les ports exposés dans l’image docker (avec EXPOSE ) sur des ports randoms.

49
Q

A quoi servent les profiles avec docker compose ?

A

A filtrer les services que nous voulons lancer, au sein d’un même fichier. Pratique quand on veut avoir la config dev et prod dans le même fichier

50
Q

A quoi servent les profiles avec docker compose ?

A

A filtrer les services que nous voulons lancer, au sein d’un même fichier. Pratique quand on veut avoir la config dev et prod dans le même fichier

51
Q

Comment faire de l’héritage avec docker-compose ?

A

On peut spécifier plusieurs fichier avec -f , et c’est le dernier fichier précisé qui prendra le dessus en terme de clés. C’est de l’override.

52
Q

Comment déployer en prod avec docker-compose quand on a des configs différentes selon prod et dev ?

A

Avec des profiles ou de l’override (héritage de config)

53
Q

Qu’est ce qui peut être dangereux avec les utilisateurs docker ?

A

Les utilisateurs docker sont tous reliés par le uid à un vrai user sur le host. Donc si on lance le conteneur en mode root avec le uid à 001, ça va matcher avec le root de notre machine, et donc avoir les droits en 777 sur tous les volumes !

54
Q

Quelle est la bonne pratique d’une mise en prod avec Docker au niveau des utilisateurs Linux ?

A

Une bonne pratique est de créer un utilisateur dans le conteneur qui n’est pas un root, puis de créer un groupe qui va posséder les droits sur le volume. On va ensuite propager ce groupe à l’utilisateur du conteneur.

55
Q

Qu’est ce que la norme OCI ?

A

Les images Docker respectent une norme nommée OCI. Cette norme permet de pouvoir changer facilement de Container Runtime, en gardant les mêmes images.

56
Q

Quelles sont les couches d’architecture Docker ?

A

Docker CLI → DockerD → ContainerD → RunC

57
Q

Quelles fonctionnalités LINUX utilise RunC ?

A

RunC va utiliser 2 features de Linux pour fonctionner, les Cgroups et les namespaces.Les Cgroups permettent de limiter les ressources que certains PID vont consommer. Les namespaces permettent d’isoler les PID des autres.

58
Q

Comment exclure un dossier lors d’un docker cp ?

A

On fait un tar des dossiers voulus, on le copie et on le décompresse en local.

59
Q

Quel est le principe de Fargate ?

A

Un service qui permet de ne pas s’occuper des serveurs, on lui fournissant uniquement une image docker et une config de puissance. En mode lamda ou web service

60
Q

Qu’est ce qu’une lambda ?

A

Une lambda est une fonction qui va s’executer sur le cloud, qui est serverless et qui ne coûte que le temps d’exécution.

61
Q

Comment ouvrir un port Docker uniquement en localhost ?

A

Il faut préciser 127.0.0.1 dans le mapping de port : 127.0.0.1:80:8080 par exemple

62
Q

Comment builder une image Docker avec une clé SSH ?

A

On peut utiliser docker buildx, puis dans l’image Docker utiliser –mount=type=ssh, puis donner le paramètre –ssh default dans la commande.

63
Q

Comment fonctionner les users docker ?

A

Les users du conteneur sont bindés avec ceux du host. Donc si le user est root a l’intérieur du container alors il sera mappé avec le root du host

64
Q

Comment utiliser le user root a l’intérieur du conteneur mais un user classique sur le docker host ?

A

Il faut faire un mapping de user. Pour se faire, il faut changer le user remap