Examen_DevOps

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Ecole Supérieure Privée Technologies & Ingénierie

Type d’épreuve : Devoir Examen


Enseignant : Sonia BEN AISSA
Matière : DevOps II
Année Universitaire : 2023-2024 Semestre 1
Classe : GLSI-2
Documents : Autorisés Non autorisés
Date : 04/05/2024 Durée : 1 h 30mn
Nombre de pages :4 Barème : 8/12
Partie 1 (QCM):
1. Quelle commande Docker est utilisée pour démarrer un conteneur?
a. docker start
b. docker run
c. docker create
d. docker launch
2. Quelle est la différence entre COPY et ADD dans un Dockerfile?
a. Il n'y a pas de différence
b. COPY ne peut copier que des fichiers locaux, ADD peut également copier des
fichiers distants.
c. ADD permet de spécifier des URL externes, COPY ne le peut pas.
d. COPY est plus rapide que ADD.
3. Quelle est la principale fonction de Docker Compose?
a. Orchestration de conteneurs
b. Gestion des images Docker
c. Déploiement de clusters Kubernetes
d. Configuration de conteneurs multi-services
4. Quelle est l'extension du fichier de configuration Docker Compose?
a. .compose
b. .yaml
c. .dockerfile
d. .yml
5. Quelle commande est utilisée pour démarrer un ensemble de services définis dans un
fichier docker-compose.yml?
a. docker run
b. docker start
c. docker-compose up
d. docker-compose start
6. Quelle est la principale fonction de Kubernetes?
a. Conteneurisation
b. Orchestration
c. Virtualisation
d. Gestion des images Docker
7. Quelle est l'unité de base de déploiement dans Kubernetes?
a. Conteneur
b. Pod
c. Service
d. Déploiement
8. Quelle commande Kubernetes est utilisée pour créer un déploiement?
a. kubectl create

1
b. kubectl apply
c. kubectl deploy
d. kubectl run
9. Quelle pratique DevOps met l'accent sur la collaboration continue entre les équipes de
développement et d'exploitation?
a. Déploiement continu (CD)
b. Intégration continue (CI)
c. Infrastructure as Code (IaC)
d. Culture DevOps
10. Quel est l'objectif principal de la pratique "Infrastructure as Code" (IaC)?
a. Automatiser le déploiement de l'infrastructure
b. Standardiser les configurations d'infrastructure
c. Surveiller en temps réel les ressources d'infrastructure
d. Documenter manuellement l'infrastructure
11. Quel composant de Kubernetes est responsable de l'équilibrage de charge entre les
différents pods d'une application?
a. Ingress
b. Service
c. Deployment
d. Pod
12. Quel élément de GitLab est utilisé pour automatiser les tests, les builds et les
déploiements?
a. Runners
b. Pipelines
c. Jobs
d. Tags
13. Quelle commande Git est utilisée pour cloner un référentiel distant sur votre machine
locale?
a. git push
b. git clone
c. git fetch
d. git pull
14. Quelle commande Git est utilisée pour ajouter des fichiers modifiés à la zone de
staging?
a. git add
b. git commit
c. git push
d. git checkout
15. Quelle commande Git est utilisée pour fusionner une branche dans la branche actuelle?
a. git merge
b. b) git branch
c. c) git checkout
d. d) git pull
16. Quelle commande Git est utilisée pour voir les modifications apportées à un fichier
avant de les valider?
a. git status
b. git diff
c. git commit
d. git add

2
Nom: ……………………….. Prénom: ……………………….. Classe :...............................

Partie 1: QCM
Question 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Réponse

Partie 2: Étude de cas DevOps

La société TechAI sollicite l'aide de Laratech, une entreprise spécialisée dans le développement
logiciel et adapte de la méthodologie DevOps, pour améliorer l'expérience utilisateur de son
application de gestion de projet. TechAI vise à moderniser l'interface graphique de son Site Web
afin d'offrir une solution plus conviviale et efficiente à ses utilisateurs.
1. Soit la liste suivante des étapes du cycle DevOps, numéroter chacune d’entre elle.

(...) Build - ( ...) Continuous feedback - (...) Continuous Integration (...) Deploy –
(...) Operate – (...) Plan

2. L’équipe de développement travaille sur gitlab pour la gestion du code du projet. Et ils
ont mis le fichier Docker Compose suivant:

version: '3'
services:
web: …………………………………………………………………………………………………………………….

image: nginx …………………………………………………………………………………………………………………….


ports:
- "8080:80"…………………………………………………………………………………………………………………….

app: ………………………………………………………………………………………………………………………………………………

build: . ……………………………………………………………………………………………………………………………..
command: python app.py
volumes:
- .:/app ………………………………………………………………………………………………………………………..
ports:
- "5000:5000" …………………………………………………………………………………………………………….

Donner une explication de chaque ligne du fichier ci-dessus sans oublier de spécifier la différence
entre chacun des deux ports à chaque fois. Expliquer quels sont les services configurés par ce
fichier.
........................................................................................................................................................
.........................................................................................................................................................

3
3. Complétez ce fichier YAML pour déployer trois répliques de l'application "myapp" avec
l'image Docker "myapp:latest" et exposer le port 8080.
apiVersion: ………………………………………………………
kind: ………………………………………………………………………
metadata:
name: myapp-deployment
spec:
………………….: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:latest
ports:
- …………………………………..: 8080

4. Soit l’extrait du code ci-dessous:


a. Identifier le fichier en question.
........................................................................................................................................................
b. Décrire brièvement les lignes mis en gras (5 lignes)

stages:
- build
- test
- deploy

variables:
IMAGE_TAG: "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
………………………………………………………………………………………………………………………………………………………………………………………………………………….
build:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE .
- docker push $CI_REGISTRY_IMAGE
………………………………………………………………………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………………………………………………………………………….
test:
stage: test
script:
- docker-compose up -d
- docker-compose exec app python manage.py test
………………………………………………………………………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………………………………………………………………………….

deploy:
stage: deploy
script:
- kubectl apply -f deployment.yaml
………………………………………………………………………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………………………………………………………………………….
4

Vous aimerez peut-être aussi