Vous êtes sur la page 1sur 63

Afin d'éviter la fuite de questions, ce rapport ne doit pas être partagé avec les candidats.

Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)

Campagne : Data Science, Data Science - Python, SQL, Python 3, ... - Senior

Domaine(s) : AWS, Azure, Data Science, Data Science - Python, Docker, Git, Kubernetes, Python 3, SQL Langage : Français Date : 15/03/2023

MEILLEUR QUE
RANG 1/1

80% DURÉE 1h20 / 1h24

des professionnels SCORE 1 555 / 2 600 (60%)

AWS 60 / 180pts (33%) MEILLEUR QUE 44% des professionnels

Connaissance du langage 60 / 140pts

Résolution de problèmes 0 / 40pts

Azure 120 / 140pts (86%) MEILLEUR QUE 98% des professionnels

Cloud Fundamentals 60 / 60pts

Cloud Storage/Database 40 / 40pts

Data Analytics and AI 20 / 20pts

DevOps 0 / 20pts

1 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Data Science 240 / 240pts (100%) MEILLEUR QUE >99% des professionnels

Machine Learning 150 / 150pts

Operations Research 40 / 40pts

Statistics 50 / 50pts

Data Science - Python


0 / 300pts (0%) MEILLEUR QUE <1% des professionnels

Fiabilité 0 / 100pts

Résolution de problèmes 0 / 200pts

Docker 80 / 200pts (40%) MEILLEUR QUE 25% des professionnels

Connaissance du langage 20 / 60pts

Modélisation 60 / 80pts

Résolution de problèmes 0 / 60pts

Git 180 / 220pts (82%) MEILLEUR QUE 76% des professionnels

Connaissance du langage 180 / 220pts

2 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Kubernetes 210 / 260pts (81%) MEILLEUR QUE 81% des professionnels

Connaissance du langage 210 / 260pts

Python 3 485 / 680pts (71%) MEILLEUR QUE 64% des professionnels

Connaissance du langage 155 / 215pts

Fiabilité 133 / 133pts

Résolution de problèmes 197 / 332pts

SQL 180 / 380pts (47%) MEILLEUR QUE 84% des professionnels

Connaissance du langage 40 / 240pts

Modélisation 140 / 140pts

Accéder au rapport détaillé

3 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 1: Données quantitatives
Data Science 00:31 / 01:00 50 / 50 pts

Question
Lequel des éléments suivants n'est pas un exemple de données quantitatives ?

Réponse

Le coût de l'essence par gallon dans la ville de New York

L'année d'obtention du diplôme d'un étudiant

Le nombre de diplômes universitaires qu'un employé d'une entreprise a


obtenus

Le salaire annuel d'un ingénieur en apprentissage automatique aux États-


Unis

Résultat
Réponse correcte
Statistics +50pts

4 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 2: Méthode des k plus proches voisins
Data Science 01:00 / 01:00 100 / 100 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelle affirmation est fausse concernant la valeur de K pour un modèle de classification basé sur le
KNN (algorithme des K plus proches voisins) ?

Réponse

La formation d'un modèle basé sur le KNN est moins coûteuse en termes de
calcul que la prédiction des classes de nouveaux points de données

Diminuer la valeur de K augmente la variance du modèle

L'augmentation de la valeur de K augmente le biais du modèle

La valeur de K doit être inférieure ou égale au nombre de classes

Résultat
Réponse correcte
Machine Learning +100pts

5 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 3: Méthodes non supervisées
Data Science 01:00 / 01:00 50 / 50 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Les méthodes non supervisées sont celles qui ne nécessitent pas d'ensembles de données étiquetées.
Quelle méthode n'est pas un exemple de méthode non supervisée ?

Réponse

Clustering K-means

Auto-encodeurs

Classification naïve bayésienne

Réseaux antagonistes génératifs

Résultat
Réponse correcte
Machine Learning +50pts

6 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 4: [OperationsResearch] Pivot simplexe
Data Science 01:45 / 01:45 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
À partir du tableau simplexe suivant cherchant à maximiser la fonction Z, déterminez la colonne qui
contiendra le prochain pivot et la valeur qui vous a permis de sélectionner cette colonne.

Réponse

la colonne x3 ou x4, sélectionnée grâce à la valeur z = 0

la colonne x1, sélectionnée grâce à la valeur z = 2.5

la colonne x2, sélectionnée grâce à la valeur z = 10

la colonne x3, sélectionnée grâce à la valeur x3 = 1

la colonne x4, sélectionnée grâce à la valeur x4 = 1

la colonne x3, sélectionnée grâce à la valeur x3 = 0

la colonne x4, sélectionnée grâce à la valeur x4 = 0

7 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Résultat
Réponse correcte
Operations Research +40pts

8 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 5: [Preprocessing] Athlétisme
Data Science - Python 19:55 / 20:00 11x (2 min) 0 / 300 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

9 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question
Votre objectif est de compléter la fonction count_top3 qui transforme un dataframe (en utilisant
pandas) en un autre dataframe.
Entrée L'argument d'entrée ( df ) est un objet DataFrame avec cinq colonnes : EventName , Year ,
FirstPlace , SecondPlace , et ThirdPlace . Chaque ligne de DataFrame représente une épreuve
d'athlétisme particulière, ainsi que les trois premiers athlètes à l'arrivée. Par exemple :

EventName Year FirstPlace SecondPlace ThirdPlace


0 100m 2030 John Smith John Doe Mike Jones
1 200m 2030 Sharon Jean John Smith Lisa Truman
2 Discus 2030 Abigail White Sharon Jean John Smith
3 100m 2031 Mike Jones Henry Hung Brett Turner
4 200m 2031 John Doe Tom Williams Tim Smith
5 Discus 2031 John Smith Gordon Jay Jack Mann

Sortie Votre fonction count_top3 doit renvoyer une DataFrame avec quatre colonnes (dans l'ordre
suivant) : AthleteName , NumFirst , NumSecond et NumThird . Chaque ligne de la sortie DataFrame
doit avoir une valeur unique AthleteName , qui représente le nom de l'athlète. Les colonnes NumFirst
, NumSecond , et NumThird contiendront le nombre de fois où l'athlète a terminé premier, second,
troisième, respectivement, dans une épreuve donnée. Notez que la somme des colonnes NumFirst ,
NumSecond , et NumThird pour toute ligne sera au moins égale à 1. Votre sortie DataFrame doit être
triée par AthleteName , dans l'ordre alphabétique. Pour l'exemple ci-dessus, la sortie DataFrame
serait :

AthleteName NumFirst NumSecond NumThird


0 Abigail White 1 0 0
1 Brett Turner 0 0 1
2 Gordon Jay 0 1 0
3 Henry Hung 0 1 0
4 Jack Mann 0 0 1
5 John Doe 1 1 0
6 John Smith 2 1 1
7 Lisa Truman 0 0 1
8 Mike Jones 1 0 1
9 Sharon Jean 1 1 0
10 Tim Smith 0 0 1
11 Tom Williams 0 1 0

N'hésitez pas à utiliser les bibliothèques NumPy et pandas dans votre code.

10 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Réponse

1 # Python code below


2 # Use print("Debug messages...") to debug your solution.
3
4 import pandas as pd
5 import numpy as np
6 def count_top3(df):
7
8 top_df = pd.DataFrame()
9 first = df.FirstPlace.value_counts()
10 second = df.SecondPlace.value_counts()
11 third = df.ThirdPlace.value_counts()
12
13 set(df.FirstPlace.unique()) + set(df.SecondPlace.unique()) #+ set(df.ThirdPlace.
unique())
14 return 0

Voir le code playback

Résultat
Cas simple
Résolution de problèmes +150pts

Cas complexe
Fiabilité +50pts

Long data frame


Fiabilité +50pts

Court data frame


Résolution de problèmes +50pts

11 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 6: Du désordre le plus grand gagne
Python 3 02:11 / 05:00 100 / 100 pts

Question
Implémentez la fonction find_largest(numbers) afin qu'elle retourne le plus grand nombre dans la
liste numbers .

Note : La liste contient toujours au moins un nombre.

Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3
4 import numpy as np
5 def find_largest(numbers):
6 return max(np.array(numbers))

Voir le code playback

Résultat
Fonctionne dans des cas simples
Résolution de problèmes +32pts

Fonctionne quand le tableau contient seulement Integer.MIN_VALUE


Fiabilité +58pts

Fonctionne quand le plus grand élément est à la position 0


Fiabilité +5pts

Fonctionne quand le plus grand élément est à la fin du tableau


Fiabilité +5pts

12 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 7: String split
Python 3 02:11 / 02:30 100 / 100 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Implémentez la fonction solution telle que l'exécution de la ligne suivante :

print(solution('Hello you !'))

Donne la sortie suivante (un mot par ligne avec \n ) :

Hello
you
!

Le paramètre d'entrée est toujours une chaîne de caractères.

Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3
4 def solution(string):
5 words = string.split(' ')
6 string = '\n'.join(words)
7 return string

Voir le code playback

13 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Résultat
La solution répond à l'énoncé
Connaissance du langage +35pts

La solution traite n'importe qu'elle chaîne de caractères


Fiabilité +65pts

Question 8: Chaine en colonne


Python 3 09:48 / 12:00 165 / 300 pts

Question
La fonction reshape(n, line) retourne la chaine line sans les espaces et formatée en lignes de n
caractères maximum.

Exemples :

Appel Valeur retour

reshape(3, "abc de fghij")

abc
def
ghi
j

reshape(2, "1 23 456")

12
34
56

Écrivez le corps de la méthode reshape(n, line) .

Note : n'ajoutez pas de caractère \n final.

14 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3
4
5 def reshape(n, line):
6 line1 = ''.join(line.split(' '))
7 words = []
8 i=0
9 while i < len(line1)-1:
10 words.append(line1[i: i+n])
11 i = i+n
12 words.append(line1[i:])
13 return '\n'.join(words)

Voir le code playback

Résultat
Tests simples
Résolution de problèmes +165pts

Tests espaces et lignes uniques


Résolution de problèmes +100pts

Tests caractère final


Résolution de problèmes +35pts

15 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 9: import os
Python 3 00:35 / 00:35 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Vous vous apprêtez à écrire du code Python permettant de gérer les fichiers dans un répertoire donné.
Quel module importerez-vous afin de naviguer dans le système de fichiers ?

Réponse

import os

import fs

import inspect

import filesystem

Résultat
Réponse correcte
Connaissance du langage +20pts

16 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 10: Déclaration de fonction
Python 3 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Comment déclare-t-on une fonction name en Python ?

Réponse

def name():

name():

function name():

void name():

Il n'y a pas de fonctions en Python

Résultat
Réponse correcte
Connaissance du langage +20pts

17 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 11: __eq__()
Python 3 01:00 / 01:00 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Comment sera utilisée la méthode __eq__ de l'objet suivant ?

class Point():
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return (self.x, self.y) == (other.x, other.y)

Réponse

point1.eq(point2)

Elle surcharge l'opérateur ==

Elle surcharge l'opérateur is

Ce code n'est pas valide

Résultat
Réponse correcte
Connaissance du langage +40pts

18 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 12: Max()
Python 3 00:45 / 00:45 0 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Parmi les propositions suivantes, quelle est celle qui permet d'obtenir la valeur maximale de la liste
values=[0,1,2] ?

Réponse

max(values)

math.max(values)

values.max()

Aucune des propositions ci-dessus

Résultat
Réponse incorrecte
Connaissance du langage +40pts

19 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 13: Intersection d'ensembles
Python 3 01:10 / 01:10 40 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Parmis les propositions suivantes, lesquelles permettent d'obtenir l'intersection des deux ensembles
set1 et set2 ?

Cochez toutes les propositions valides.

Réponse

set1 ^ set2

set1 & set2

set1.keep(set2)

set(x for x in set1 if x in set2)

set1.intersection(set2)

Résultat
Réponse partiellement correcte
Connaissance du langage +40/60pts

20 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 14: Sous-requête avec ROUND() et CAST()
SQL 07:59 / 08:00 6x (40 sec) 0 / 200 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question

Modèle de données Objectif


Dans cet ensemble de données, il y a un expéditeur ( shipper_id ) qui a récupéré plus de 50 %
(strictement) de ses envois ( shipment_id ) dans un seul état ( pickup_state ). Extraire cet expéditeur
et cet état d'enlèvement, ainsi que le taux pour cet état d'enlèvement. Le taux est défini comme le
nombre d'envois provenant de l'état d'enlèvement (nombre de lignes avec le même pickup_state )
par rapport au nombre total d'envois effectués par l'expéditeur. Conditions
Colonnes attendues : shipper_id , pickup_state , rate , dans cet ordre. rate doit être arondi pour
ne garder que deux décimales. Exemple :

------------------------------------
| SHIPPER_ID | PICKUP_STATE | RATE |
------------------------------------
| shipper_8 | CA | 0.73 |
------------------------------------

Réponse

1 -- SQL request(s) below


2 SELECT shipper_id, pickup_state, count(*) AS RATE
3 FROM convoy
4 GROUP BY shipper_id, pickup_state

Voir le code playback

21 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Résultat
Résultat
Connaissance du langage +200pts

Question 15: SQL - INSERT


SQL 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelle commande SQL permet d'ajouter une ligne dans une table de base de données ?

Réponse

INSERT

ADD

UPDATE

MORE

Résultat
Réponse correcte
Connaissance du langage +20pts

22 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 16: SQL - DELETE
SQL 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelle commande SQL permet d'effacer des lignes dans une table ?

Réponse

REMOVE FROM table WHERE ...

UPDATE table REMOVE WHERE ...

DELETE FROM table WHERE ...

DROP FROM table WHERE ...

Résultat
Réponse correcte
Connaissance du langage +20pts

23 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 17: SQL - Clé primaire
SQL 01:00 / 01:00 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Indiquer quelles propositions sont vraies pour une colonne déclarée en tant que clé primaire.

(plusieurs réponses possibles)

Réponse

Elle ne peut pas contenir de doublons

Elle peut contenir la valeur NULL

Elle ne peut pas être en plus une clé étrangère

Elle peut être déclarée avec un type "caractère" tel que "VARCHAR"

Résultat
Réponse correcte
Modélisation +40pts

24 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 18: SQL - Table association
SQL 01:10 / 01:10 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question

Dans le schéma de base de données ci-dessus, en parlant de la table ORDER_PRODUCT , quelles sont les
affirmations qui vous semblent vrai ?

(plusieurs réponses possibles)

25 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Réponse

Cette table permet une relation n-n entre PURCHASE_ORDER et PRODUCT

Cette table ne devrait contenir qu'un seul enregistrement pour une valeur de
order_id donnée

Cette table est une table de liaison/association/jointure

Cette table peut contenir plusieurs order_id différents pour une valeur
de product_id donnée

Résultat
Réponse correcte
Modélisation +40pts

26 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 19: SQL - Clé étrangère n°2
SQL 01:10 / 01:10 60 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Parmi les proposition suivantes concernant les clés étrangères, choisissez celles qui vous paraissent vrai.

(plusieurs réponses possibles)

Réponse

Une clé étrangère garantit l'intégrité référentielle entre deux tables

La valeur d'une clé étrangère peut être NULL

La colonne associée à une clé étrangère ne peut être que d'un type
numérique

Un clé étrangère est utilisée lorqu'il y a une relation 1-n entre deux tables

Un index est systèmatiquement associé à une clé étrangère

Résultat
Réponse correcte
Modélisation +60pts

27 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 20: Azure Log Analytics - Requête Kusto
Azure 01:30 / 01:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
À des fins d'audit, vous voulez récupérer certaines données de Azure Monitor. Vous écrivez la requête
Kusto suivante pour voir les catégories de la table AzureDiagnostics :

AzureDiagnostics
| summarize count() by Category

Résultats :

A quoi devrait ressembler la requête Kusto pour récupérer les 10 derniers événements de la catégorie
AuditEvent ?

28 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Réponse

AzureDiagnostics
| where Category -eq 'AuditEvent'
| top 10 by TimeGenerated asc

AzureDiagnostics
| where Category -eq 'AuditEvent'
| top 10 by TimeGenerated desc

AzureDiagnostics
| where Category == 'AuditEvent'
| top 10 by TimeGenerated desc

AzureDiagnostics
| where Category == 'AuditEvent'
| top 10 by TimeGenerated asc

Résultat
Réponse correcte
Data Analytics and AI +20pts

29 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 21: Commande Powershell
Azure 00:50 / 00:50 0 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Vous souhaitez exécuter un runbook Azure Automation depuis un ordinateur Windows 10 à l'aide du
planificateur de tâches Windows et d'un script PowerShell.

Pour cela, vous créez un webhook pour le runbook et vous déclarez les variables suivantes dans le script
PowerShell : $uri , $body .

Quelle commande devez-vous utiliser pour exécuter le runbook à partir du script PowerShell ?

Écrivez le nom de cla commande sans les paramètres (un seul mot).

Réponse

Résultat
Réponse incorrecte
DevOps +20pts

Réponse(s) correcte(s)
Invoke-WebRequest
(?i).*invoke-webrequest.*

30 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 22: Load balancer et persistance de session
Azure 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
À quoi sert le paramètre "persistance de la session" présente dans le Load balancer Azure ?

Réponse

Autoriser les sessions à distance pour les utilisateurs

Configurer le délai d'inactivité

Veiller à ce que les utilisateurs finals soient servis par le même serveur
Web pour chaque demande

Résultat
Réponse correcte
Cloud Fundamentals +20pts

31 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 23: Azure VM - Template ARM
Azure 01:10 / 01:10 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Vous avez autorisé plusieurs VM Azure à envoyer des données à Log Analytics. À l'aide d'un modèle
ARM, vous souhaitez configurer Windows Event Logs pour collecter uniquement les événements
Warning depuis le System event log.

Dans le template ARM affiché ci-dessous, que devez-vous écrire à la place de <selection1> ,
<selection2> et <selection3> ?

{
"name": "Windows_Event_Log",
"type": "datasources",
"apiVersion": "2015-11-01-preview",
"dependsOn": [
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('WorkspaceName'))]"
],
"kind": "<selection1>",
"properties": {
"eventLogName": "<selection2>",
"eventTypes": [
{
"eventType": "<selection3>"
} ]
}
}

32 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Réponse

<selection1> : WindowsEvent
<selection2> : System
<selection3> : Warning

<selection1> : System
<selection2> : WindowsEvent
<selection3> : Warn

<selection1> : WindowsLog
<selection2> : Sys
<selection3> : Warning

<selection1> : LogEvent
<selection2> : Sys
<selection3> : Warn

Résultat
Réponse correcte
Cloud Fundamentals +40pts

33 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 24: Connaissance du stockage Azure
Azure 00:40 / 00:40 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quels propositions sont vraies à propos d'Azure Storage ?

Sélectionnez toutes les bonnes réponses.

Réponse

Vous ne pouvez donner accès qu'à un seul dossier dans un conteneur blob

Vous pouvez générer un lien public du conteneur blob qui est valide
pendant 5 jours

Vous pouvez héberger un site web dans Azure Storage

Vous ne pouvez pas créer de politiques d'accès pour un conteneur blob

Résultat
Réponse correcte
Cloud Storage/Database +40pts

34 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 25: [IAM] Bonnes pratiques
AWS 00:45 / 00:45 0 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Parmi les propositions ci-contre, quelle est celle qui n'est pas une bonne pratique vis-à-vis de la gestion
du service IAM AWS ?

Réponse

Placer en lieu sûr les clés d'accès du compte root AWS

Activer le MFA pour les utilisateurs privilégiés

Utiliser des Policies pour déléguer les permissions

Accorder le moins de permissions possible aux ressources

Ne pas partager les clés d'accès

Effectuer une rotation des credentials régulièrement

Résultat
Réponse incorrecte
Connaissance du langage +40pts

35 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 26: [IAM] Profil d'instance
AWS 00:35 / 00:35 0 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Qu'est-ce qu'un Profil d'instance ?

Réponse

Un ensemble de rôles spécifiques à une instance EC2

Un template utilisé pour lancer des instances EC2

Un conteneur pour un rôle IAM qui peut être utilisé pour affecter des rôles
à une machine EC2 une fois qu'elle est démarrée

Un profil utilisé pour se connecter en SSH sur une machine EC2

Résultat
Réponse incorrecte
Connaissance du langage +20pts

36 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 27: [Fargate] Introduction
AWS 00:40 / 00:40 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Qu'est-ce qui caractérise le mieux AWS Fargate ?

Réponse

C'est un service qui permet d'optimiser les conteneurs au niveau hardware

C'est un service qui vont permet d'utiliser des conteneurs en tant


qu'éléments constitutifs de votre application tout en vous libérant de la
gestion des instances EC2

C'est un service qui vous permet d'ajouter des options de configuration au


niveau de l'OS sur vos clusters ECS

C'est un service qui vous permet de construire des images Docker dans
l'environnement AWS sans que vous ayiez à installer Docker sur votre
machine

Résultat
Réponse correcte
Connaissance du langage +20pts

37 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 28: [S3] Taille des objets
AWS 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelles sont les tailles minimale et maximale d'un objet dans S3 ?

Réponse

Maximum : 15TB

Minimum : 1B

Maximum : 5TB
Minimum : 0B

Maximum : 500GB
Minimum : 1B

Maximum : 15TB
Minimum : 0B

Résultat
Réponse correcte
Connaissance du langage +20pts

38 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 29: [CodeDeploy] Types de déploiement
AWS 00:30 / 00:30 0 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quels sont les types de déploiement supportés par le service CodeDeploy ?

Plusieurs réponses attendues.

Réponse

Rolling deployment

In-place deployment

Immutable deployment

Canary deployment

Blue-green deployment

Résultat
Réponse incorrecte
Connaissance du langage +20pts

39 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 30: [Kinesis] Identifier le service
AWS 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Dans l'image ci-dessous, quel service AWS est reponsable du traitement ?

Réponse

DynamoDB Streams

Kinesis

Code Pipeline

Step Functions

Simple Workflow Service

40 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Résultat
Réponse correcte
Connaissance du langage +20pts

41 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 31: [S3] CORS: AllowedOrigin
AWS 01:30 / 01:30 0 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Vous souhaitez configurer votre bucket S3 pour qu'il accepte les "cross origins" pour toutes les requêtes
GET .

Vous décrivez une configuration CORS pour votre bucket S3 en utilisant l'éditeur de configuration CORS.
Mais, lorsque vous tentez de sauver, vous obtenez l'erreur suivante :

Un élément semble manquer dans votre configuration !

Quel est cet élément manquant vis-à-vis de la configuration ci-dessous ?

<?xml version="1.0" encoding="UTF-8"?>


<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
[ -------- Missing tag -------- ]
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
</CORSRule>
</CORSConfiguration>

Écrivez l'élément manquant complet (tag d'ouverture, valeur, tag de fermeture)

Réponse

42 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Résultat
Réponse incorrecte
Résolution de problèmes +40pts

Réponse(s) correcte(s)
<AllowedOrigin>*</AllowedOrigin>

43 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 32: git bisect
Git 01:00 / 01:00 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quel est l'usage typique de la commande git bisect ?

Réponse

Pour diviser l'historique de commit d'un projet afin de filtrer les logs

Pour recherche un fichier particulier commité dans le dépôt

Pour retrouver quel commit dans votre historique de projet a introduit un


bug

Pour trouver le dernier commit sans récupérer les changements du dépôt


distant

Résultat
Réponse correcte
Connaissance du langage +20pts

44 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 33: [Github] readme.md
Git 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quel fichier mis à la racine de votre dépôt est utilisé par Github pour afficher un résumé ou de la
documenation relative à votre projet ?

Réponse

README.md

README.doc

document.md

introduction.doc

Résultat
Réponse correcte
Connaissance du langage +20pts

45 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 34: git revert
Git 00:30 / 00:30 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelle commande devrait être utilisée pour annuler un commit sans supprimer le commit de
l'historique ?

Réponse

git revert

git commit --undo

git reset

git undo

Résultat
Réponse correcte
Connaissance du langage +40pts

46 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 35: .gitconfig
Git 00:30 / 00:30 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quel fichier permet de spécifier les options de configuration globale de Git ?

Réponse

.git

.gitconf

.settings

.gitconfig

Résultat
Réponse correcte
Connaissance du langage +40pts

47 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 36: git status n°2
Git 01:15 / 01:15 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Qu'est-ce qui est vrai à propos de la commande git status ?

Plusieurs réponses attendues

Réponse

Elle permet de voir quels changements ont été mis dans la "staging area"
et quels fichiers ne sont pas versionnés par Git

Elle permet de voir l'historique du projet, le filtrer et rechercher des


changements spécifiques

Elle affiche les changements de code entre 2 commits

Elle permet de vérifier l'état de votre dépôt avant de commiter afin


d'éviter le commit accidentel de mauvaise données

Résultat
Réponse correcte
Connaissance du langage +40pts

48 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 37: Chapeau et tilde (avancé)
Git 01:00 / 01:00 20 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Dans l'image ci-dessous, on considère l'historique de commit des branches master et feature :

La " HEAD " est en G. Parmi les propositions ci-contre, quelles commandes permettent de faire un
checkout du commit D ?

Plusieurs réponses attendues.

Réponse

git checkout HEAD~1^2

git checkout HEAD^1^2

git checkout HEAD~1^^

git checkout HEAD~2^1

49 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Résultat
Réponse partiellement correcte
Connaissance du langage +20/60pts

50 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 38: Dockerfile : EXPOSE
Docker 00:45 / 00:45 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quel est le rôle de l'instruction EXPOSE dans un Dockerfile ?

Réponse

Elle indique au démon Docker que le container sera à l'écoute d'un port
donné

Elle indique au démon Docker qu'un répertoire spécifique du container sera


exposé au niveau de l'hôte

Elle indique au démon Docker qu'il devra se mettre à l'écoute de tous les
ports du container

EXPOSE n'est pas une instruction possible du Dockerfile

Elle indique au démon Docker qu'il devra router l'ensemble du trafic du


container vers l'hôte par utilisation de NAT

Résultat
Réponse correcte
Connaissance du langage +20pts

51 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 39: Dockerfile : choix entre CMD et ENTRYPOINT
Docker 01:00 / 01:00 0 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Y-a-t-il des différences entre les instructions CMD et ENTRYPOINT d'un Dockerfile ?

Réponse

Il n'y a pas de différences. Ce sont des alias.

Oui, CMD permet de spécifier une commande par défaut qui sera exécutée
seulement si aucune commande n'est spécifiée au lancement d'un
container alors que les arguments de ENTRYPOINT seront toujours
exécutés

Oui, ENTRYPOINT doit toujours être utilisé en conjonction avec CMD alors
que CMD peut être utilisé seul

Oui, ENTRYPOINT permet de spécifier le répertoire par défaut dans lequel


s'exécutera la commande spécifiée par CMD

Résultat
Réponse incorrecte
Modélisation +20pts

52 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 40: Docker network : utilisation d'un serveur DNS
custom
Docker 00:40 / 00:40 0 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelle commande permet de créer un container avec pour serveur DNS personnalisé 8.8.8.8 ?

Réponse

docker container create --dns=8.8.8.8

docker container create --custom-dns=8.8.8.8

docker container create --add-dns=8.8.8.8

docker container create --resolve=8.8.8.8

Résultat
Réponse incorrecte
Connaissance du langage +40pts

53 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 41: Docker troubleshooting : autoriser un utilisateur
non-root
Docker 01:30 / 01:30 0 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question

[root@ans1 ~]# systemctl status docker


# docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2018-10-12 14:28:08 WIB; 1h 12min ago
Docs: http://docs.docker.com
Main PID: 28215 (dockerd-current)
Memory: 4.1M
CGroup: /system.slice/docker.service
##28215 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-
runc-current --default-runtime=docker-runc --authorization-plugin=rhel-push-plugin --exec...
##28223 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd
/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m...
...

[root@ans1 ~]# su - john


[john@ans1 ~]$ docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Vous avez voulu exécuter la commande $ docker images en tant qu'utilisateur "john" mais vous
rencontrez l'erreur ci-dessus.

Quel commande vous permettra d'exécuter docker images sans erreur ?

54 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Réponse

# usermod -aG docker john

# service restart docker

# chown -R john:john /var/lib/docker

# dockerd --allow-user john

Résultat
Réponse incorrecte
Résolution de problèmes +60pts

55 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 42: Docker command : cas d'utilisation avancé
Docker 01:00 / 01:00 60 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Vous souhaitez exécuter une webapp dans un container docker. Cette webapp est censée être capable
d'exécuter à la demande une commande docker qui lancera un nouveau container.

Quel est le meilleur moyen de donner au container de la webapp la possibilité d'exécuter ce type de
commande ?

Réponse

Installer Docker dans le container de la webapp

Faire un "mount" de "/var/run/docker.sock" à l'intérieur du container de la


webapp

Utiliser docker-ssh à l'intérieur du container de la webapp

Installer "docker agent" sur l'hôte

Résultat
Réponse correcte
Modélisation +60pts

56 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 43: LimitRange
Kubernetes 00:45 / 00:45 60 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quel objet Kubernetes peut aider à positionner la valeur maximum de mémoire utilisée par les
conteneurs s'exécutant dans un namespace donné ?

Réponse

PodSecurityPolicy

LimitRange

PodSecurityContext

SecurityContext

Résultat
Réponse correcte
Connaissance du langage +60pts

57 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 44: Readiness probe
Kubernetes 01:00 / 01:00 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
On souhaite exécuter sur Kubernetes une application qui charge un fichier de données volumineux à
chaque démarrage et qui ne peut accepter les requêtes entrantes qu'une fois le fichier complètement
chargé.

Quelle probe doit-on mettre en place pour être certain qu'aucune requête n'est aiguillée vers le pod tant
que ce n'est pas le cas ?

Réponse

readinessProbe

livenessProbe

startupProbe

pingProbe

Résultat
Réponse correcte
Connaissance du langage +40pts

58 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 45: Namespace kube-system
Kubernetes 00:45 / 00:45 0 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Dans quel namespace Kubernetes crée-t-il ses objets internes ?

Réponse
kube-syt

Résultat
Réponse incorrecte
Connaissance du langage +40pts

Réponse(s) correcte(s)
.*kube-system.*

59 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 46: Commande replace
Kubernetes 00:40 / 00:40 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelle commande efface et recrée une ressource ?

Réponse

kubectl apply

kubectl edit

kubectl patch

kubectl replace

Résultat
Réponse correcte
Connaissance du langage +40pts

60 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 47: QoS
Kubernetes 00:35 / 00:35 60 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quel terme n'est pas une classe QoS (Quality of Service) valide ?

Réponse

Guaranteed

Burstable

BestEffort

Confirmed

Résultat
Réponse correcte
Connaissance du langage +60pts

61 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Question 48: Commande création service
Kubernetes 00:45 / 00:45 10 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quelles commandes peuvent être utilisées pour créer un Service sur Kubernetes ?

Réponse

kubectl expose

kubectl run

kubectl service

kubectl create service

Résultat
Réponse partiellement correcte
Connaissance du langage +10/20pts

62 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)
Glossaire

Connaissance du langage

La mesure de cette compétence permet de déterminer l'expérience du candidat dans la pratique d'un langage de
programmation. Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui devra être
rapidement opérationnel.

Modélisation

Cette mesure fournit une indication sur la capacité du candidat à appliquer des solutions standard pour résoudre des
problèmes récurrents. Un développeur ayant un bon niveau dans cette compétence augmentera la qualité
(maintenabilité, évolutivité) de vos applications. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui sera amené à travailler sur les
briques qui structurent vos applications, à anticiper les besoins de demain pour développer des solutions pérennes.

Résolution de problèmes

Cette compétence correspond aux aptitudes du candidat à comprendre et à structurer son raisonnement pour trouver
des solutions à des problèmes complexes. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vos applications ont une composante technique importante (R&D,
innovation).

Fiabilité

La fiabilité caractérise la capacité du candidat à réaliser des solutions qui prennent en compte les cas particuliers. Plus
cette compétence est élevée, plus vos applications sont robustes (moins de bugs).

63 / 63
Emmanuel Kuidjo (emmanuelkuidjo@gmail.com)

Vous aimerez peut-être aussi