Vous êtes sur la page 1sur 15

People’s Democratic Republic of Algeria

‫الجمهورية الجزائرية الديمقراطية الشعبية‬


Ministry of Higher Education and Scientific Research
‫وزارة التعليم العالي و البحث العلمي‬

Ecole Nationale Supérieure des


Télécommunications et des technologies de
l’Information et de la Communication

IGE 43

Option : Télécoms et réseaux IP

Rapport de stage de fin d’études

Stagiaire :
Superviseur :
Mme. Aoumeur Badra Narimene
Mr. Talaa Ayoub

Promotion : 2022/2023
Contents

1 Informations Générales sur l’entreprise . . . . . . . . . . . . . . . . . . . . 1

Informations Générales sur l’entreprise . . . . . . . . . . . . . . . . . . . . . . 1


1.1 Qui est Lablabee ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Emplacement géographique : . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Le Personnel : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 L’architecture : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Leurs Services : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 DevOps : une approche agile pour le développement des produits . . . 5

DevOps : une approche agile pour le développement des produits . . . . . 5


2.1 C’est quoi le DevOps ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 DevOps : Les principes et les avantages : . . . . . . . . . . . . . . . . . . . 6
2.3 Les défis de la mise en oeuvre du DevOps : . . . . . . . . . . . . . . . . . 8

3 Contributions et expériences acquises : . . . . . . . . . . . . . . . . . . . . 9

Contributions et expériences acquises : . . . . . . . . . . . . . . . . . . . . . . 9


3.1 Test des labs : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1 Hardening lab - level 1 : . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.2 Containers - level 1 : . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.3 Containers - level 2 : . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.4 OAM - level 1 : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.5 CI/CD - level 1 : . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Validation des sous-challenges : . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Conclusion : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

I
Chapter 1

Informations Générales sur


l’entreprise

1
Chapter 1. Informations Générales sur l’entreprise

1.1 Qui est Lablabee ?


Lablabee est une startup innovante qui propose des laboratoires virtuels pour l’apprentissage
des services telco-cloud. Elle a été fondée en 2019 par 2 alumnis de l’ENSTTIC (ex - INT-
TIC): TAHRAOUI Samir et SIDI ALI MEBAREK Mahfoud.
Samir et Mahfoud étaient amis et faisaient partie de la même promotion (IGE 36), et au
cours de leurs années d’apprentissage, le manque d’opportunités pour mettre en pratique
ce qu’ils avaient appris a eu un impact négatif sur la qualité de leur éducation et les a
empêchés de donner un sens aux connaissances qu’ils ont acquises. Après l’obtention de
leur diplôme, et malgré leur parcours professionnel différent, le problème initial ne leur est
pas sorti de l’esprit, car même dans leurs vies professionnelles, il était difficile de mettre
en pratique les technologies de la télécommunication. Ainsi, et avec les connaissances
qu’ils ont acquises au fil des ans, Samir en télécommunications et Mahfoud en gestion de
produits et EdTech, ils ont décidé de mettre fin une fois pour toutes à ce problème en
créant eux même des environnement d’apprentissage et de pratique (hands on labs) pour
les étudiants.
C’est ainsi que LabLabee est née, avec une tentative sincère de rendre l’apprentissage
de la télécommunication en nuage plus accessible, agréable et interactif pour les généra-
tions actuelles et à venir. Le concept de Lablabee repose sur la fourniture de laboratoires
virtuels à ses clients, leur permettant ainsi d’expérimenter en temps réel des configurations
et des architectures telco-cloud complexes, sans avoir à investir dans des infrastructures
coûteuses. La plateforme Lablabee offre une expérience immersive pour les apprenants,
leur permettant de tester et de mettre en pratique des concepts théoriques, tout en béné-
ficiant de l’assistance d’instructeurs expérimentés.
C’est une startup en pleine croissance, qui s’appuie sur une équipe talentueuse et pas-
sionnée, ainsi que sur des technologies de pointe pour offrir des solutions de formation
de qualité supérieure. Elle est en train de changer la manière dont les gens apprennent
les services telco-cloud, en leur offrant des expériences pratiques et immersives, qui les
préparent à relever les défis de l’avenir.

2
Chapter 1. Informations Générales sur l’entreprise

1.2 Emplacement géographique :

Le bureau qui était situé à l’avenue de choupot (Rue Bessol Allel, Oran 00213), se trouve
maintenant au complexe Hasnaoui :

Figure 1.1: Emplacement géographique de l’entreprise.

1.3 Le Personnel :

Il y 3 équipes qui interagissent et travaillent ensemble afin d’assurer les services proposés
par Lablabbe :

Équipe Web :

Ils sont responsables du développement de l’application web de Lablabee, de son efficacité


et de son intéractivité.
Cette équipe est composée de développeurs front-end, de développeurs back-end, de de-
signers UX/UI et de testeurs de qualité.

3
Chapter 1. Informations Générales sur l’entreprise

Équipe Lab :
Ils sont responsables de la gestion et la maintenance des infrastructures cloud, des réseaux
et de la conception des labs de pratique (les challenges éducatifs que propose la plate-
forme).
Cette équipe est composée d’ingénieurs DevOps, d’administrateurs systèmes, ainsi que
d’agents de support technique, qui doivent tous avoir, en plus, une connaissance suffisante
en télécommunications, pour assurer le design et la maintenance des labs qui tournent
autour les solutions telco-cloud.
C’est avec cet équipe que j’ai eu la chance de faire mon stage.

Équipe marketing :
C’est l’équipe responsable de la stratégie marketing, de la recherche de marché et de la
promotion des produits et services de l’entreprise. Ils veillent à étudier les besoins des
clients afin de concevoir des labs adéquatement.
C’est donc cette équipe qui passe les demandes pour la création de nouveaux labs, selon
le besoin du marché.

1.4 L’architecture :
L’entreprise utilise une architecture où des serveurs AWS et des repositories GitLab sont
utilisés pour chaque lab.
Ce qui permet au membres de l’équipe lab de travailler sur des projets collaboratifs en
utilisant des ressources partagées tout en conservant un environnement isolé pour chaque
lab.
Les serveurs AWS fournissent une plate-forme cloud fiable et sécurisée pour exécuter
des applications et stocker des données, tandis que les repositories GitLab permettent
une gestion efficace du code source et des processus de développement logiciel ce qui
permet à l’entreprise de gérer efficacement ses ressources informatiques tout en offrant
une expérience fluide et collaborative pour ses équipes.

1.5 Leurs Services :


Lablabee est une plate-forme purement éducative qui offre du hans-on-expérience sur les
télco-clouds, en donnant accès à des équipement logiciels de télécommunication hébergés
sur le cloud, ce qui permet à l’étudiant d’apprendre en pratiquant, et donc d’acquérir une
certaine expérience par rapport aux équipements ou technologies qu’il a pu pratiquer.
Lablabee a aussi des conventions avec plusieurs opérateurs qui demandes des labs spé-
cialement pour leurs ingénieurs afin qu’ils puissent apprendre une certaine technologie et
acquérir l’expérience nécessaire à son intégration à leurs infrastructures.

4
Chapter 2

DevOps : une approche agile pour le


développement des produits

5
Chapter 2. DevOps : une approche agile pour le développement des
produits

2.1 C’est quoi le DevOps ?


Le développement de logiciels est un processus complexe qui implique une collaboration
étroite entre les développeurs, les opérations et les équipes de gestion de projet. Ces
équipes ont traditionnellement travaillé de manière isolée, ce qui a souvent entraîné des
retards dans le développement, des erreurs dans la livraison de logiciels et des coûts
élevés. DevOps est une approche qui vise à améliorer la collaboration entre les équipes
de développement, d’exploitation et de gestion de projet, afin de fournir une livraison de
logiciels plus rapide et plus efficace.

2.2 DevOps : Les principes et les avantages :


Les principes :

• Collaboration :
DevOps repose principalement sur la collaboration. Les équipes de développement
et opérationnelles s’unifient en une équipe fonctionnelle qui communique, partage
du feedback et collabore tout au long du cycle de développement et de déploiement.
Souvent, cela signifie que les équipes de développement et opérationnelles fusionnent
en une seule équipe qui travaille sur l’ensemble du cycle de vie des apps.

• Automatisation :
Les membres d’une équipe DevOps sont chargés de garantir la qualité des livrables
pour chaque aspect du produit. Ainsi, le développement est plus « full stack ».
En effet, toutes les responsabilités liées à une fonctionnalité ou un produit, du
back-end au front-end, incombent à l’équipe. Les équipes sont responsables d’une
fonctionnalité ou d’un projet tout au long du cycle de vie, de l’état de concept à
celui de produit livré. Ce niveau accru d’investissement et d’attachement de la part
de l’équipe permet d’obtenir des résultats de meilleure qualité.

• Amélioration continue :

6
Chapter 2. DevOps : une approche agile pour le développement des
produits

Une pratique DevOps essentielle consiste à automatiser autant que possible le cycle
de vie du développement logiciel. Les développeurs ont ainsi plus de temps pour
écrire du code et développer de nouvelles fonctionnalités. L’automatisation est un
élément clé d’un pipeline de CI/CD. De plus, elle permet de réduire les erreurs
humaines et augmente la productivité des équipes. Grâce à des processus automa-
tisés, les équipes parviennent à une amélioration continue avec des durées d’itération
courtes, ce qui leur permet de répondre rapidement au feedback client.

• Action centrée sur le client :


Les équipes DevOps utilisent des boucles de feedback courtes avec les clients et
les utilisateurs finaux. Ainsi, elles développent des produits et des services centrés
sur les besoins des utilisateurs. Les pratiques DevOps permettent de recueillir du
feedback utilisateur et d’y répondre rapidement grâce à une surveillance en temps
réel et à un déploiement rapide. Les équipes obtiennent une visibilité immédiate
sur la façon dont les utilisateurs interagissent avec un système logiciel et utilisent
ces informations pour développer de nouvelles améliorations.

• Tenir en compte de la finalité :


Ce principe implique de comprendre les besoins des clients et de créer des produits ou
services qui résolvent des problèmes réels. Les équipes ne devraient pas développer
en vase clos ou créer des logiciels en se fondant sur leur utilisation hypothétique par
les consommateurs. Les équipes DevOps doivent plutôt avoir une compréhension
holistique du produit, de sa création à son implémentation.

Les Avantages :

• Collaboration et confiance :
L’instauration d’une culture de responsabilité partagée, de transparence et de feed-
back plus rapide est le fondement de toute équipe DevOps ultra performante. En
fait, la collaboration et la résolution de problèmes sont les éléments les plus impor-
tants d’une culture DevOps fructueuse

• Livrez plus rapidement et travaillez plus intelligemment :


Tout est question de vitesse. Les équipes qui adoptent la livraison DevOps livrent
plus souvent, de façon plus qualitative et plus stable. En fait, le rapport « State of
DevOps 2019 » de l’équipe DORA a révélé que les équipes qui adoptent l’approche
DevOps déploient 208 fois plus souvent et 106 fois plus rapidement que les équipes
peu performantes.

• Réduisez le délai de résolution :


L’équipe dont la boucle de feedback est la plus rapide prospère. Grâce à une trans-
parence totale et une grande fluidité de communication, les équipes DevOps peuvent
réduire les temps d’arrêt et résoudre les tickets plus rapidement.

• Gérez plus efficacement les tâches non planifiées :


Chaque équipe est confrontée à des tâches non planifiées, une réalité qui se répercute
bien souvent sur la productivité. Grâce aux processus établis et à la hiérarchisation

7
Chapter 2. DevOps : une approche agile pour le développement des
produits

claire des tâches, les équipes de développement et opérationnelles peuvent mieux


gérer les tâches non planifiées, tout en se concentrant sur celles qui le sont.

2.3 Les défis de la mise en oeuvre du DevOps :


– Briser les habitudes culturelles profondément enracinées :
Le DevOps ne se résume pas à une équipe. Il s’agit d’une culture de la collabo-
ration qui donne lieu à un ensemble de pratiques exemplaires et fait naître une
culture opérationnelle globale. Il peut cependant arriver que les entreprises qui
souhaitent adopter une approche DevOps se heurtent à la résistance d’employés
peu à l’aise avec le changement.
– Changer des processus historiques pour des processus plus efficaces
:
La meilleure façon d’identifier les inefficacités est de cartographier les processus
et de reconnaître franchement ce qui fonctionne et ce qui ne fonctionne pas.
– Se méfier des DevOps pour le bien des DevOps :
Avec le DevOps, les entreprises peuvent rationaliser et automatiser chaque
tâche. Cela ne veut pas dire qu’il faille le faire à tout prix!

8
Chapter 3

Contributions et expériences
acquises :

9
Chapter 3. Contributions et expériences acquises :

3.1 Test des labs :


Au début du stage j’ai eu l’opportunité d’avoir accès aux labs que propose Lablabee et
de pratiquer quelques technologies afin de tester les labs et reporter l’expérience, le but
était pour l’équipe d’avoir des retours constructifs sur les labs qui était sont en phase de
testing pour ensuite devenir publique ( prêt à l’utilisation par les clients finaux ).
J’ai pu tester plusieurs labs donc je pourrais citer :

3.1.1 Hardening lab - level 1 :


Le hardening est un processus de sécurisation qui consiste à renforcer la sécurité d’un sys-
tème en réduisant les vulnérabilités potentielles. Ce processus implique l’identification des
failles de sécurité et la mise en place de mesures préventives pour les contrer. Les mesures
de hardening peuvent inclure l’installation de pare-feux, la configuration de politiques
de sécurité strictes, la suppression de logiciels non essentiels, la limitation des privilèges
d’accès et la mise en place de procédures de sauvegarde régulières. L’objectif est de rendre
le système plus résistant aux attaques potentielles en limitant les points d’entrée possibles
et en renforçant les couches de sécurité existantes. Le processus de hardening peut être
effectué sur différents types de systèmes, y compris les serveurs, les postes de travail et
les périphériques réseau, et doit être constamment mis à jour pour garantir une sécurité
maximale.

• La manipulation des OS linux.

• L’implémentation des techniques de hardening sur le système.

• Réduire les risques de sécurité.

• Automatiser le processus de hardening .

3.1.2 Containers - level 1 :


Les conteneurs Docker sont une technologie de virtualisation légère qui permet l’exécution
d’applications dans un environnement isolé et portatif. Contrairement à la virtualisation
traditionnelle, où chaque machine virtuelle contient son propre système d’exploitation
complet, les conteneurs Docker partagent le noyau du système hôte, ce qui les rend plus
légers et plus rapides à déployer. Chaque conteneur Docker contient une application
ou un service spécifique, ainsi que toutes les dépendances nécessaires pour son exécu-
tion. Les conteneurs peuvent être créés à partir d’images Docker, qui contiennent toutes
les informations nécessaires pour installer et configurer une application dans un con-
teneur. Les conteneurs Docker sont conçus pour fonctionner sur n’importe quel système
d’exploitation compatible Docker, ce qui facilite leur portabilité et leur déploiement sur
différentes plates-formes. Ils offrent également une isolation des ressources, une sécurité
accrue et une gestion plus facile des applications et des services, ce qui en fait une tech-
nologie populaire pour les déploiements d’applications modernes. Les conteneurs Docker
sont devenus un élément clé de l’infrastructure informatique moderne et sont utilisés par

10
Chapter 3. Contributions et expériences acquises :

de nombreuses organisations pour accélérer le développement, la livraison et la gestion de


leurs applications.

• Comprendre les bénéfices de l’utilisation des containers.

• Comprendre les bases des containers.

• Créer et configurer les containers.

• Introduction à l’orchestration des containers.

3.1.3 Containers - level 2 :


Une introduction à kubernetes qui est une plateforme d’orchestration de conteneurs open-
source qui automatise le déploiement, la mise à l’échelle et la gestion d’applications con-
teneurisées. Il a été initialement développé par Google et est maintenant maintenu par
la Cloud Native Computing Foundation (CNCF). Kubernetes fournit une manière agnos-
tique de la plate-forme de gérer les conteneurs, permettant aux applications de s’exécuter
de manière cohérente dans différents environnements, tels que les centres de données sur
site, les fournisseurs de cloud public ou les environnements hybrides. Il est conçu pour être
hautement évolutif, tolérant aux pannes et extensible, avec une large gamme de plugins
et d’extensions disponibles. Il permet aussi de définir et de gérer votre application à l’aide
d’un langage de configuration déclaratif, appelé YAML. Vous pouvez définir les besoins
de votre application, tels que le nombre de réplicas à exécuter, la quantité de CPU et
de mémoire à allouer et les services auxquels elle doit se connecter, et Kubernetes gérera
automatiquement le déploiement et la mise à l’échelle de votre application.

• Comprendre l’architecture du cluster Kubernetes.

• Comprendre le flux de travail de Kubernetes.

• Sécuriser un cluster Kubernetes.

• Créer des applications de microservices dans Kubernetes.

• Débogage et dépannage.

3.1.4 OAM - level 1 :


Operations, Administration, and Maintenance (OAM) est un ensemble de fonctions de
gestion et de maintenance utilisées dans les réseaux de télécommunications pour assurer
un fonctionnement efficace et fiable des équipements et des services réseau. Les fonctions
d’opérations comprennent la surveillance des performances, la gestion des alarmes et des
événements, la gestion des modifications de configuration et l’optimisation des ressources.
Les fonctions d’administration incluent la gestion des utilisateurs, la gestion des politiques
de sécurité et la gestion des ressources. Les fonctions de maintenance comprennent la
détection, l’isolement et la résolution des problèmes de réseau, ainsi que la gestion des
mises à jour logicielles et du matériel. En utilisant OAM, les opérateurs de réseau peuvent

11
Chapter 3. Contributions et expériences acquises :

surveiller et gérer efficacement leurs réseaux, minimiser les temps d’arrêt et garantir la
qualité de service pour les utilisateurs finaux. OAM est une partie intégrante de la gestion
des réseaux de télécommunications et est largement utilisé dans les réseaux de téléphonie
mobile, les réseaux de transmission de données et les réseaux de télévision par câble.

• Le principe de fonctionnement de SNMP.

• Configurer SNMP sur Linux.

• Manipuler Zabbix, sa configuration ( items, triggers and alarms ).

• Les types de sauvegarde.

3.1.5 CI/CD - level 1 :

(Continuous Integration/Continuous Delivery) est une pratique de développement de logi-


ciels qui permet de livrer des applications plus rapidement et plus fréquemment en au-
tomatisant le processus de construction, de test et de déploiement des applications. La
partie CI consiste à automatiser la construction et les tests de l’application chaque fois
que des modifications de code sont apportées à la base de code. Les tests automatisés
permettent de détecter rapidement les erreurs, ce qui permet de corriger les problèmes
plus tôt dans le processus de développement, réduisant ainsi le risque de bogues dans
le code. L’objectif est d’assurer que le code est fonctionnel et de qualité avant d’être
déployé. La partie CD consiste à automatiser le déploiement de l’application sur les en-
vironnements de production après qu’elle a passé les tests. Cela permet de déployer plus
rapidement et plus fréquemment de nouvelles fonctionnalités ou des correctifs, tout en
réduisant les risques d’erreurs manuelles lors du déploiement. En utilisant CI/CD, les
équipes de développement peuvent réduire les temps de développement, augmenter la
qualité de leur code et améliorer la satisfaction des utilisateurs en livrant des applications
plus rapidement et plus fiables.

• Création d’une chaîne de déploiement automatisée avec Gitlab.

12
Chapter 3. Contributions et expériences acquises :

3.2 Validation des sous-challenges :


Cette tâche, qui consistait à la mise en oeuvre de scripts qui permettent de valider les sous-
challenges du lab CI/CD, m’a permis d’apprendre beaucoup plus sur l’infrastructure sur
laquelle dépend l’entreprise et d’avoir une vue complète sur la manière dont ils déploient
leurs labs.
J’ai pu aussi maîtriser linux, bash et le fonctionnement de git qui est un système de
contrôle de version distribué open-source, utilisé pour gérer et suivre les modifications
apportées à un ensemble de fichiers ou de codes source.

3.3 Conclusion :
Ce stage m’a été une expérience complète et bénéfique, qui m’a permis de comprendre
mes lacunes et donc, de travailler dessus plus ardemment.
Je tiens à remercier le staff de l’entreprise pour m’avoir accordé cette chance, ainsi que
Ayoub Talaa et toute l’équipe lab qui ont toujours su répondre à mes questions sans gène.

13

Vous aimerez peut-être aussi