Gitlab Devops
Gitlab Devops
DevOps
2
Sommaire
03 INTRODUCTION 13 LA RAISON POUR LAQUELLE APPRENDRE LE
DEVOPS EST UN ATOUT POUR VOTRE CARRIÈRE
04 QU'EST-CE QUE LE DEVOPS ET COMMENT PEUT-IL
AIDER VOTRE ENTREPRISE ? 14 RESSOURCES
Introduction
Technologies et
• Création – Il s'agit de la première étape du pipeline CI/CD.
C'est à ce moment-là que le code est conçu et développé. Les
processus de base
développeurs utilisent le contrôle de version pour coordonner
toutes les modifications qu'ils apportent à la même base de
code. C'est l'un des moyens d'accélérer le processus.
• Vérification – Cette étape consiste à confirmer la qualité
du code. Elle s'appuie sur les tests de sécurité, l'analyse de
la qualité du code, l'exécution parallèle et l'automatisation
Les étapes du processus DevOps pour garantir que les retours parviennent rapidement aux
développeurs et aux testeurs, et que chaque commit peut être
Votre apprentissage en matière de DevOps n'est pas terminé tant
visualisé immédiatement. Si les développeurs peuvent trouver
que vous n'avez pas compris les étapes du cycle de développement,
et corriger les erreurs lors du codage, c'est moins cher et plus
c'est-à-dire le processus allant de la planification au lancement de
efficace.
nouvelles fonctionnalités, en passant par l'analyse et la collecte des
retours. • Empaquetage – Cette étape est lancée une fois que le
code a été écrit et testé. L'empaquetage des applications et
Lorsque vous travaillez dans le DevOps, vous devez impérativement des dépendances, la gestion des conteneurs et la création
connaître ces étapes, car chacune d'entre elles fait partie intégrante d'artefacts contribuent à créer une chaîne logistique fiable.
du processus. Dans l'ensemble, il comprend trois étapes globales
• Livraison ou déploiement – Cette phase consiste à transférer
qui s'exécutent dans un ordre logique : le build, le test et le
les mises à jour du code dans l'environnement de production.
déploiement. Il s'agit là du cours naturel des opérations. Vous créez
Avec le DevOps, les versions peuvent être déployées lorsque les
le code, puis vous le testez et, si tout fonctionne, vous le déployez.
itérations sont créées, testées et prêtes, et non à une date de
livraison groupée statique et pré-planifiée.
Il faut y regarder de plus près pour déceler les couches plus
complexes de ces étapes. Chacune est déterminante pour générer • Configuration – Elle comprend la mise en place, la gestion et
de la valeur logicielle et métier. Une fois que vous comprendrez et la maintenance des environnements d'application. La gestion
utiliserez ce processus, vous gagnerez en efficacité, en fiabilité, en automatisée de la configuration est conçue pour gérer ces
rapidité et en agilité. Voici un aperçu plus détaillé des neuf étapes environnements complexes sur les serveurs, les réseaux et les
clés : systèmes de stockage.
• Surveillance – Cette partie proactive et automatisée
• Planification – Cette étape du DevOps englobe tout ce qui se du processus se concentre sur le suivi des logiciels, de
passe avant que la première ligne de code ne soit écrite. Elle l'infrastructure et du réseau afin de garder un œil sur leur statut
consiste à créer une feuille de route du produit qui guidera et d'émettre des alertes en cas de problèmes. Elle permet
le développement à venir et aidera l'équipe à organiser les d'augmenter la sécurité, la fiabilité et l'agilité.
ressources et les priorités, et à aligner et suivre les projets.
• Protection – Cette étape vise à protéger les applications et leur partager un repository de code sans que les modifications d'une
environnement d'exécution contre les intrusions et les nouvelles personne ne remplacent celles d'une autre. Le code est divisé et
vulnérabilités. organisé en projets et groupes de projets. Lorsqu'un développeur
teste le code existant ou ajoute du code, l'outil SCM identifie
• Supervision – Elle implique d'avoir une visibilité et un contrôle
les modifications conflictuelles apportées au même code et
sur l'ensemble du cycle de développement logiciel par le biais de
signale qu'elles doivent être corrigées. Ce processus permet à
la gestion des autorisations, de la standardisation des processus
plusieurs développeurs de travailler simultanément sur un projet,
de création et de déploiement DevOps et de l'automatisation des
un facteur essentiel pour déployer plus rapidement les mises à
garde-fous afin de garantir que les directives de sécurité et de
jour logicielles. Le DevOps prospère sur les repositories Git (une
conformité sont respectées.
différence importante par rapport aux anciens systèmes de contrôle
de version), car leur architecture moderne offre des fonctions
Qu'en est-il de la sécurité ? C'est une bonne question. Et c'est puissantes.
la beauté du DevOps : la sécurité n'est pas une considération
secondaire. Elle intervient dans CHAQUE étape du processus, de la INTÉGRATION CONTINUE
documentation des exigences aux tests automatisés en passant par
L'étape de l'intégration continue (Continuous Integration ou CI en
la validation de ces exigences. Cela garantit que le nouveau code et
anglais) rend l'itération possible en validant les modifications à
les nouvelles fonctionnalités fonctionnent exactement comme ils ont
temps et fréquemment (plusieurs fois par jour) dans un repository
été conçus et qu'aucun bug, qu'aucune menace pour la sécurité ou
de code source commun, en testant automatiquement chaque
qu'aucun problème de conformité ne puisse apparaître.
modification et en lançant un build.
Ces étapes font toutes partie d'un cycle continu. Toutes les
L'intégration continue est étroitement liée à l'efficacité. En
informations créées au cours du processus sont instantanément
automatisant le travail manuel et en testant le code plus
disponibles via la plateforme pour toutes les personnes impliquées
fréquemment, les équipes peuvent itérer plus rapidement et
à toutes les étapes. Elles constituent ainsi une source unique
déployer de nouvelles fonctionnalités plus souvent avec moins
d'informations qui favorise la visibilité et la collaboration. L'autre
de bugs. Parmi ses autres avantages, la CI permet également
avantage intéressant d'une plateforme commune est la possibilité de
d'identifier et de résoudre les problèmes plus facilement, de réduire
gérer et de contrôler l'ensemble du cycle de développement logiciel
le nombre des changements de contexte pour l'équipe et d'améliorer
à partir d'une seule interface.
la satisfaction des utilisateurs et des clients.
Outils qui optimisent ces étapes du cycle Si vous souhaitez tirer le meilleur parti de l'intégration continue, vous
DevOps devez vous assurer que votre configuration comprend ces éléments
GESTION DU CODE SOURCE clés :
• des builds automatisés grâce à des scripts qui incluent tout le Lorsque la livraison continue est bien configurée, les processus de
nécessaire pour compiler en une seule commande ; livraison de logiciels deviennent monotones, car ils présentent un
faible risque, sont cohérents et reproductibles. Vous pouvez alors
• des builds avec autotest qui automatisent vos politiques (par
planifier en toute confiance les processus et les calendriers de
exemple, mise en échec si un test échoue) ;
livraison, automatiser l'infrastructure et les déploiements, et gérer
• des itérations et des commits fréquents afin de réduire le plus efficacement vos ressources cloud.
nombre de conflits ;
TESTS AUTOMATISÉS
• des environnements de test stables qui reflètent fidèlement
l'environnement de production ; Les tests automatisés sont essentiels pour adopter pleinement
le DevOps et l'intégration continue, ainsi que pour livrer plus
• de la visibilité pour que chaque développeur puisse accéder aux
fréquemment du code de meilleure qualité. Lorsque les tests
derniers exécutables et visualiser les modifications apportées au
sont intégrés au pipeline CI, chaque modification de code validée
repository.
déclenche la création d'un build. Le build exécute ensuite des
tests pour s'assurer que les modifications réussissent tous les
LIVRAISON CONTINUE tests et respectent les politiques et les normes de conformité de
La livraison continue (Continuous Delivery ou CD en anglais) est code définies pour votre application. De cette façon, les bugs
un processus de développement logiciel utilisé conjointement avec sont identifiés plus tôt et avec plus de contexte pour simplifier la
l'intégration continue pour automatiser le processus de livraison correction, vos équipes peuvent effectuer des déploiements plus
d'une application. Une fois que le code a été testé et compilé fréquemment et en toute confiance, et vous réduisez au strict
dans le cadre du processus d'intégration continue, les étapes minimum les tests manuels et les retouches en fin de processus.
finales sont prises en charge par la livraison continue pour garantir
que les paquets de code contiennent tout le nécessaire pour se
déployer dans n'importe quel environnement, à tout moment.
La livraison continue peut englober une multitude d'opérations,
du provisionnement de l'environnement de l'infrastructure au
déploiement de l'application testée en environnement de test/pré-
production ou de production.
Répondre à l'enquête
Autres technologies
des compétences. De plus, 56 % d'entre elles affirment que leur
priorité absolue au travail est la gestion des services cloud.
Le cloud
Si vous travaillez dans le DevOps, il est préférable de comprendre
comment fonctionne le cloud. La plupart des logiciels modernes
s'appuient sur une infrastructure cloud et cloud-native, y compris Une culture de collaboration
les conteneurs et les orchestrateurs qui aident à automatiser le
La collaboration est essentielle, c'est même l'un des principes de la
processus de développement et de livraison des logiciels. Les
pratique et de la philosophie du DevOps. En invitant les membres
applications ainsi développées offrent aux spécialistes du DevOps
de l'équipe, qu'ils soient expérimentés ou récemment arrivés, à
la possibilité d'effectuer un déploiement n'importe où et de tirer le
discuter, à apporter leur contribution et à offrir leur aide, il est
meilleur parti des différentes plateformes cloud, voire des clouds
possible de créer une culture d'apprentissage et de confiance basée
privés de leur datacenter.
sur l'expertise des autres. Pour faire partie d'une véritable culture
DevOps, vous devez également être capable d'écouter, de rester
Une approche cloud-native est plus évolutive, car le code ne dépend
calme sous pression, d'instaurer une relation de confiance entre
plus du matériel utilisé. Afin d'aider leur entreprise et de booster leur
les membres de l'équipe et de vous approprier une situation ou un
carrière, les professionnels doivent avoir une bonne connaissance
problème donné.
des fournisseurs, des services et des plateformes cloud, c'est même
un point crucial pour nombreux spécialistes du DevOps. Selon
Cependant, la collaboration ne concerne pas seulement les
l'enquête intitulée 2021 Global DevSecOps Survey, les personnes
collaborateurs DevOps qui travaillent ensemble. Elle implique
interrogées ont déclaré vouloir en savoir plus sur les compétences
également d'autres composantes de l'entreprise comme les équipes
cloud et l'architecture sans serveur dans le cadre de l'amélioration
de sécurité, du marketing, de la finance, du service client et même
la direction. La collaboration entre le DevOps et la sécurité, par interrogées ont déclaré utiliser HTML/CSS, 48 % ont répondu qu'ils
exemple, est un moyen d'intégrer la sécurité dans l'ensemble du utilisent Python, 47 % ont recours à SQL et plus de 35 % ont affirmé
processus de développement. employer Java. Il est également primordial de développer vos
propres compétences. Selon le rapport 2021 Upskilling Enterprise
Ne commettez pas l'erreur de considérer cet aspect comme une DevOps Skills Report du DevOps Institute, il est préférable de ne
compétence non technique qui a moins d'importance que les pas se spécialiser dans un seul langage, mais plutôt d'en maîtriser
capacités techniques. Il vous faut développer des compétences plusieurs.
clés telles que la communication pour savoir parler des besoins de
l'entreprise et collaborer de manière à résoudre des problèmes. Vous avez besoin de pratique ? Pourquoi ne pas offrir votre temps
Dans l'enquête 2021 Global DevSecOps Survey, la communication et en tant que bénévole ou contribuer à des projets open source pour
la collaboration ont souvent été classées comme des compétences enrichir votre CV ?
importantes. D'ailleurs, un nombre égal de participants ont cité
l'expertise en la matière et ces compétences comme étant les plus
Automatisation
utiles pour leur avenir professionnel.
Les équipes DevOps ont de plus en plus tendance à automatiser
les processus tout au long du cycle de développement et de
Langages de programmation essentiels déploiement. Par conséquent, il va sans dire que vous devez
Les ingénieurs DevOps doivent être capables d'écrire du code, mais savoir comment fonctionne l'automatisation et comment l'utiliser.
ils doivent surtout tenir compte des processus, des outils et des L'automatisation permet de réduire le temps et l'argent consacrés
méthodologies qui sont utilisés tout au long des étapes du cycle aux tâches répétitives et d'éliminer les erreurs humaines en
DevOps décrites ci-dessus. Certains langages se prêtent mieux à ce rationalisant l'ensemble du processus DevOps.
processus de bout en bout que d'autres, mais il existe de nombreux
langages de programmation et il peut être très difficile de savoir par Grâce à l'automatisation, chaque tâche est effectuée de manière
où commencer. Vous devez d'abord déterminer ce dont vos équipes identique et avec cohérence, fiabilité et précision. Cela accélère
DevOps ont besoin. Sur quels projets travaillez-vous ? De quels le processus et augmente le nombre de livraisons (et donc de
langages avez-vous actuellement besoin ? Quels langages seront déploiements). L'automatisation n'exclut pas les humains, elle
nécessaires pour les projets futurs ? minimise seulement la nécessité de faire appel à eux pour la gestion
des tâches récurrentes, comme la surveillance de la disponibilité,
Certains des langages de programmation les plus populaires sont des performances ou des problèmes de sécurité, la configuration
Python, Golang, Ruby, JavaScript, Perl, Java, Bash et PHP. Selon homogène des environnements logiciels, le test des nouvelles
l'enquête intitulée Stack Overflow 2021 Developer Survey, le versions des applications selon des normes de qualité prédéfinies,
langage de programmation le plus utilisé pour la neuvième année l'intégration de code, l'accélération des déploiements, la prise
consécutive est JavaScript, tandis que Python est le langage que la en charge des logiciels de test CI/CD pendant le processus de
plupart des professionnels souhaitent apprendre pour la cinquième développement et la gestion des journaux et de la documentation.
année consécutive. Quant aux autres langages, 56 % des personnes Oui, ça fait beaucoup.
Selon l'enquête 2021 Global DevSecOps Survey, plus de 55 % cherchent à exceller dans le domaine travailleront de plus en plus
des équipes ont déclaré que leur cycle de développement logiciel avec la surveillance, vous devez donc bien connaître cet outil.
est « entièrement » ou « presque entièrement » automatisé. 27 %
ont quant à elles affirmé qu'il est « partiellement automatisé ». Conteneurs
Cela signifie que si vous travaillez dans le DevOps, vous devriez
normalement déjà posséder quelques connaissances en Le domaine du DevOps a pleinement adopté les conteneurs, que
automatisation. l'on pourrait comparer à des paquets de code logiciel, avec leur
configuration, leurs bibliothèques système, leur environnement
d'exécution et le reste. Les conteneurs contiennent tout ce dont
Surveillance l'application a besoin pour s'exécuter. Ils garantissent que les
À mesure que la pile d'applications de votre entreprise et le applications créées dans un environnement s'exécutent de manière
nombre d'équipes DevOps qui y travaillent augmentent, le nombre cohérente et fluide dans d'autres environnements. Ils permettent
d'éléments mobiles ne fera que se multiplier, et les suivre à la trace ainsi d'exécuter un logiciel de manière fiable lorsqu'il est déplacé
peut être une tâche compliquée. Par conséquent, une surveillance d'un environnement à l'autre. Ces unités modulaires (ou éléments de
continue est une condition sine qua non pour pouvoir garder un œil base) sont conçues pour permettre aux équipes DevOps de réaliser
sur la situation de votre écosystème de bout en bout et en temps le build, tester, déployer et maintenir des applications efficacement,
réel. Grâce au DevOps, les applications les plus complexes peuvent avec moins de ressources, extrêmement rapidement et en toute
être mises à jour et déployées quotidiennement, voire plusieurs fois sécurité.
par jour. Une surveillance poussée et automatisée est un moyen
proactif de réduire les bugs, d'améliorer la vitesse et l'efficacité Puisque les conteneurs peuvent être facilement partagés entre
des déploiements, d'identifier les menaces de sécurité et les plusieurs équipes, non seulement ils accélèrent le développement
problèmes de conformité, d'éliminer les modifications indésirables et le déploiement, mais ils favorisent également une culture de
et de conserver la documentation. Elle doit être appliquée de la collaboration, qui est le fondement même du DevOps. Si vous savez
planification au développement, y compris lors de l'intégration, des comment fonctionnent les conteneurs, vous devez également
tests, du déploiement et même des opérations. connaître Docker, une technologie populaire de conteneurs pour
les applications, et Kubernetes, un système d'orchestration de
En d'autres termes, la surveillance est un processus indispensable conteneurs open source qui régit comment et où les conteneurs
non seulement pour les développeurs, mais aussi pour les chefs s'exécutent. Le rapport Accelerate State of DevOps de 2021 a révélé
de projet et les équipes sécurité. Elle ne se résume pas à suivre qu'une bonne connaissance des conteneurs est un aspect essentiel
les processus, elle sert également à générer des alertes en cas du travail dans le DevOps, puisque 64 % des professionnels ont
de problèmes de performance et de menaces dans le pipeline. déclaré les utiliser, une tendance qui émerge dans les entreprises de
Selon le rapport Accelerate State of DevOps de 2021, les meilleurs toutes tailles.
professionnels DevOps qui atteignent leurs objectifs de fiabilité
sont 4,1 fois plus susceptibles d'utiliser des solutions qui incluent
une surveillance complète du système. Les équipes DevOps qui
Comment le DevOps
résout les problèmes
concrets
apprendre le DevOps
pour les nouveaux venus dans le domaine du DevOps : si vous
n'avez qu'un an d'expérience, vous pouvez toujours vous attendre
à un salaire de 112 785 $, et avec au moins 10 ans d'expérience,
est un atout pour votre vous pouvez atteindre 165 980 $. Ces chiffres sont globalement
cohérents avec ceux de sites comme ZipRecruiter et Glassdoor.
Nous savons que cela représente beaucoup d'informations à Donc, si vous décrochez un emploi dans le DevOps, vous
assimiler, alors laissez-nous vous expliquer quelles sont les bénéficierez d'un bon salaire. Toutefois, quelle est la probabilité que
implications pour vous et votre carrière. Si vous avez récemment vous puissiez gravir les échelons au sein de votre équipe DevOps ou
rejoint une équipe DevOps, nous avons une bonne nouvelle à vous trouver un emploi mieux rémunéré et offrant une meilleure culture et
annoncer : vous venez de prendre une excellente décision pour de meilleurs avantages dans une autre entreprise ? Selon les chiffres
votre carrière. Si vous travaillez déjà dans l'informatique, vous êtes du guide des salaires 2021 de Randstad, vos chances sont plutôt
également sur la bonne voie. Des études ont montré que l'industrie bonnes, car de nombreuses entreprises affirment que des postes
technologique dans son ensemble est parvenue à rester forte face dans leurs équipes DevOps restent vacants pendant de longues
aux difficultés économiques, mais le DevOps en particulier est sur périodes (plus de 50 jours en moyenne).
une pente ascendante. Selon les rapports d'organisations comme
Glassdoor ou la société de conseil en ressources humaines
Robert Half International, Inc., de nombreuses entreprises
cherchent à embaucher des spécialistes du DevOps.
Vérifier vos connaissances en DevOps
De plus, les sociétés offrent une bonne rémunération aux
professionnels du DevOps qu'elles embauchent ou promeuvent
à ces postes en interne. Amanda Stansell, Data Scientist chez
Glassdoor, a classé les ingénieurs DevOps parmi les 10 meilleurs Testez comment votre équipe utilise sa
emplois en Amérique pour 2021 sur la base des revenus potentiels, plateforme DevOps
de la satisfaction globale au travail et du nombre d'offres d'emploi Répondez à ce questionnaire de 5 minutes pour découvrir où en
répertoriées sur Glassdoor. est votre équipe DevOps au niveau des efforts qu'elle déploie
non seulement pour utiliser le DevOps, mais aussi pour exploiter
Mais quel est le salaire des spécialistes du DevOps ? efficacement la plateforme. Vous serez ensuite redirigé(e) vers des
ressources qui peuvent aider votre équipe à pratiquer le meilleur
DevOps possible.
GitLab est une plateforme open source qui s'appuie sur sa communauté
grandissante, constituée de milliers de développeurs et de millions d'utilisateurs,
pour proposer en permanence des innovations dans le domaine du DevOps. Plus de
30 millions d'utilisateurs enregistrés (comptes payants et gratuits confondus), allant
de start-ups aux multinationales, comme Ticketmaster, Jaguar Land Rover, Nasdaq,
Dish Network et Comcast, font confiance à GitLab pour créer de formidables
logiciels plus rapidement. Avec son modèle 100 % télétravail depuis sa création,
GitLab compte aujourd'hui plus de 1 350 collaborateurs répartis dans plus de
65 pays.