Introduction au Métier
1
DevOps Cloud
Dr. Ing. Sami Achour
12/01/2021
2 Objectifs du cours
Savoir les origines de Devops
Découvrir les objectifs et les principes de Devops
Comprendre les pratiques Devops
Découvrir des outils Devops
Comprendre les principes du cloud computing
Découvrir les principaux acteurs de cloud
Découvrir des solutions Devops offertes par les fournisseurs cloud
3 Plan
Origines de DevOps Cloud Devops et
DevOps Cloud
Origines de DevOps
4
5 Origines de Devops
Processus de développement
Modèles en cascade
Code and Fix
Waterfall model
Cycle en V
Modèles évolutifs/incrémentaux
Modèle en spirale
Modèles agiles
XP
Scrum
6 Origines de Devops
Scrum
7 Origines de Devops
Agile
Avantages
Intégration du client dans le processus de développement
Deadlines intégrées
Visibilité continue
Focus et flexibilité
8 Origines de Devops
Agile
On n’a pas atteint l’idéal !!!
Le cercle de communication n’a pas intégré les « Ops »
Concentration seulement sur les changements/incréments
Buts conflictuels entre l’équipe de développement et celle
d’exploitation
9 Origines de Devops
Equipe « Dev »
Scrum Master
Product Owners
Développeurs
Testeurs
10 Origines de Devops
Equipe « Ops »
Administrateur système
Administrateur BD
Ingénieur sécurité
Administrateur Réseaux
11 Origines de Devops
Problématique
12 Origines de Devops
Problématique
DevOps
13
14 Devops
Définition
« Le devops — est un mouvement en ingénierie informatique et une
pratique technique visant à l'unification du développement
logiciel (dev) et de l'administration des infrastructures
informatiques (ops), notamment l'administration système.»
[Wikipédia]
« "devops" est un terme issu de la contraction des mots anglais
"development" (développement) et "operations" (exploitation). »
[[Link]]
15 Devops
Définition
12/10/2021
16 Devops
Les 3 chemins
17 Devops
Les 3 chemins
Objectif du premier chemin : Comprendre et maximiser le flux de travail
Comprendre le flux de travail
Maximiser le flux de travail en éliminant les contraintes
Ne jamais omettre un défaut connu
Ne jamais accepter une optimisation locale qui génèrera une dégradation
globale
18 Devops
Les 3 chemins
Objectif du second chemin : Avoir du feedback coté « Ops »
Qui doit être bref et rapide
19 Devops
Les 3 chemins
Objectif du troisième chemin : On a le droit d’apprendre tout au long du
processus de développement
Nouveaux langages
Nouvelles bibliothèques
20 Devops
Principes
Fitec
21 Devops
Culture
Relative aux personnes et au processus relatifs à Devops
Avoir la culture de communication et de collaboration
Avoir l’esprit d’automatisation
Avoir l’esprit d’apprentissage
22 Devops
Automatisation
Consiste à utiliser des technologies pour réaliser des
tâches, avec une intervention humaine réduite, afin de
faciliter les flux de feedback entre les équipes
d'exploitation et de développement pour accélérer le
déploiement en production des mises à jour itératives
apportées aux applications.
23 Devops
Lean
créé par Toyota au Japon et introduit au sein de ses usines dans les années
1970
La participation de l'ensemble des employés d'une entreprise à la lutte
contre le gaspillage en éliminant toute les activités non rentables de
l'entreprise.
Augmenter la productivité tout en améliorant les conditions de travail.
Sources de gaspillage :
Surproduction, Défauts
Compétences
Communication et formation
Coûts
Stocks
Délais
Transports
24 Devops
Mesures
Ce qu’on doit mesurer et enregistrer :
Projets terminés et fréquence de publication
Pourcentage de déploiements réussis / infructueux
Temps moyen de récupération (MTTR)
Lead time (du développement au déploiement)
Lead time (du développement au déploiement)
Fréquence des nouveaux déploiements
Qualité du code
25 Devops
Partage
Coding dojos
Conférences internes
Brown bag meetings
eXtreme Programming
<vos idées ici>
26 Devops
Chaine
27 Devops
Catégories des Outils
28 Devops
CI/CD
29 Devops
Différence CDelilvery/CDeployement
30 Devops
Différence CDelilvery/CDeployement
31 Devops
CI, Comment?
Un serveur de configuration des versions logicielles (SCM) qui va permettre aux
développeurs de travailler sur leur poste tout en centralisant au fur et à mesure
les modifications effectuées et gérer ainsi toutes les évolutions ; dès qu’un
nouveau code est jugé prêt, il est “poussé” vers le serveur d’intégration. Les
outils SCM les plus répandus sont actuellement Git (et Github) et Subversion
(SVM), idéalement dans un mode collaboratif.
Un serveur d’intégration (CI) qui vient récupérer le code et va réaliser une série
de tests et, si le résultat est au vert, l’intégrer dans une nouvelle branche du
code qui sera poussée à la fois sur le serveur SCM et vers la recette. Les outils
phares sont ici Jenkins, CircleCI, CodeShip ou TravisCI.
Ainsi les développeurs peuvent se concentrer sur leurs actions de
conception/développement. Ils disposent d’un serveur pour gérer leurs sources
tout en travaillant de manière décentralisée et, dès qu’un lot de code est prêt,
il est traité par le serveur de CI sans nécessité de planification et en réduisant les
tâches manuelles au minimum.
32 Devops
CD Comment?
Un serveur de configuration d’infrastructures sur lequel seront stockées les
modèles de configuration des serveurs (production et recette), ainsi tout
nouveau serveur provisionné l’est bien selon le modèle en cours. Les outils
utilisés sont Chef, Puppet, SaltStalk, ou Ansible.
Une automatisation maximale des tests de recette, via un outil
comme Selenium, qui permet d’enregistrer et dérouler des scénarios
complets de test.
Un serveur de déploiement qui va orchestrer les opérations de déploiement
sur le serveur de recette, déclencher les tests, puis lancer le passage en
production si ces derniers sont positifs, Parmi les outils d’orchestration
fréquemment utilisés pour les applications web, on peut citer Spinnaker.
33 Devops
CI/CD
34 Devops
Rôle des « Ops »
Avant Devops:
Réaliser les opérations de déploiement,
Avec Devops :
Créer des modèles de configurations
Créer des chaînes d’automatisation,
Mettre à jour ces chaines
Superviser
35 Devops
Outils CI
Jenkins
Travis CI
Appveyor
Circle CI
Gitlab CI
36 Devops
Les tests
37 Devops
Outils de test
Junit
Selenium
38 Devops
Outils de Collaboration
Slack
Microsoft Teams
Mattermost
Stack Overflow
39 Devops
Le marché de travail
Cloud Computing
40
41 Cloud
Définition
Le cloud computing ou informatique en nuage est une
infrastructure dans laquelle la puissance de calcul et le stockage
sont gérés par des serveurs distants auxquels les usagers se
connectent via une liaison Internet sécurisée. L'ordinateur de
bureau ou portable, le téléphone mobile, la tablette tactile et
autres objets connectés deviennent des points d'accès pour
exécuter des applications ou consulter des données qui sont
hébergées sur les serveurs. Le cloud se caractérise également par
sa souplesse qui permet aux fournisseurs d'adapter
automatiquement la capacité de stockage et la puissance de
calcul aux besoins des utilisateurs. [futura-sciences]
42 Cloud
Services
43 Cloud
Avantage d’utilisation
C’est un écosystème permettant d’améliorer
La réduction des coûts
L’évolutivité/Scalabilité
La sécurité
La fiabilité
La continuité des activités
44 Cloud
Déploiement
Le cloud public : les ressources informatiques de l’entreprise sont stockées
sur un serveur mutualisé, autrement dit partagé entre plusieurs clients, et
accessibles par Internet. Ces serveurs sont partitionnés de manière à
interdire les fuites de données.
Le cloud privé : comme son nom l’indique, il est dédié à un seul utilisateur.
L’avantage du cloud privé est son important niveau de sécurité, renforcé
par une connexion VPN. Le cloud privé est administré par l’entreprise elle-
même ou un prestataire de services.
Le cloud hybride : l’entreprise utilise à la fois le cloud privé et le cloud
public pour mettre en œuvre certaines activités. Par exemple, le cloud
public est utilisé par les collaborateurs pour les tâches opérationnelles,
tandis que le cloud privé sert à héberger le site web e-commerce de
l’entreprise ou ses données financières, pour réduire le risque de piratage.
45 Cloud
Recettes et prévisions
Gartner
46 Cloud
Les Leaders
47 Cloud
Comapratif
48 Cloud
Virtualisation
Types de virtualisation
Virtualisation des serveurs
Virtualisation des systèmes d’exploitation
Virtualisation des postes de travail
Virtualisation des applications
Virtualisation du stockage
Virtualisation de réseau
49 Cloud
Virtualisation
un hyperviseur est une plate-forme de virtualisation qui permet à plusieurs
systèmes d'exploitation de travailler sur une machine physique en même
temps.
Hyperviseurs type 1
Hyper-V · VMware ESX (vSphere et vCloud) · Xen · KVM · Oracle VM
Hyperviseurs type 2
QEMU, Virtual PC, Virtual Server, VirtualBox
50 Cloud
Virtualisation
Un conteneur est un environnement d'exécution virtuel qui s'exécute sur un
noyau de système d'exploitation (OS) unique et émule un système
d'exploitation plutôt que le matériel sous-jacent.
Docker
51 Devops et Cloud
Serverless
Aucun serveur à provisionner
Mise à l’échelle à l’usage
Vous ne payez pas quand votre application attend
Disponibilité et tolérance aux pannes intégrées
52 Devops et Cloud
Serverless et Microservices
Devops & Cloud
53
54 Devops et Cloud
AWS
12/10/2021
55 Devops et Cloud
AWS
56 Devops et Cloud
AWS
57 Devops et Cloud
Azure
58 Devops et Cloud
google
Cloud Source Repositories → source
Cloud Build → Build et test
Container Registery & cloud Storage → Artifact Storage
App Engine → Delivery
59 Devops et Cloud
google
Google Kubernetes Engine
60 Rappel sur les thématiques abordées
Agile et motivation pour Devops
Principes de Devops
Les chemins de Devops
CI/CD
Clouds et principes
Les acteurs dominant cloud
Merci
pour
votre Attention