0% ont trouvé ce document utile (0 vote)
143 vues67 pages

Introduction au DevOps et ses Outils

Transféré par

sana daassi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
143 vues67 pages

Introduction au DevOps et ses Outils

Transféré par

sana daassi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Introduction

au DevOps
Bonjour !
Guillaume Leroy
Intégrateur
[email protected]
@gleroypro

2
Credits
Cours réalisé avec Damien Pacaud,
responsable de l’infrastructure chez Teads

3
1.
Historique
Il était une fois dans une galaxie
lointaine, très lointaine...
Avant

Analystes Administrateurs
programmeurs système

5
Analystes programmeurs
⬡ Fonctionnalités
⬡ Vélocités
⬡ Nouveautés technologiques

6
Administrateurs système
⬡ Stabilité (on parle de uptime)
⬡ Scalabilité
⬡ Capacité à réparer rapidement (MTTR)
⬡ Maîtriser le changement
⬡ Mesurer les impacts

7
Problèmes
⬡ Mauvaise communication
⬡ Chez moi ça marche!
⬡ Moins de responsabilité chez un
programmeur

8
2001

Manifeste Agile

9
“ Nous découvrons de
meilleures approches
du développement
logiciel en le
pratiquant et en
aidant les autres à le
pratiquer
10
Cycle de vie d’un projet
Vie en production Développement
Corrections de bugs 4 1 Création de fonctionnalités
Maintenance

Mise en production
Recette
Accessibilité du projet par le client
3 2 Intégration des différents travaux
Satisfaire les contraintes clients
(temps de réponse, uptime…) Vérification du bon fonctionnement
Identification des bugs

11
Et techniquement parlant ?
⬡ Plus de tests automatisés !
⬡ Démocratisation de l’intégration continue
⬡ Faciliter le déploiement des applications

12
Et humainement parlant ?

?
Administrateurs
système

13
2009

Velocity Conf 09 (1)

(1) https://www.youtube.com/watch?v=LdOe18KhtT4 14
2.
DevOps mindset
Culture du DevOps
“ Automation
Culture

Measurement
Sharing

16
Culture
⬡ Casser les murs entre les équipes
⬡ Accepter le changement
⬡ Transparence

17
Automation
⬡ Automate all the things!
⬡ One-click build
⬡ One-click deploy

18
Measurement
⬡ Monitor all the things!
⬡ Ce qui ne peut être mesuré n’existe pas
⬡ Distribution

19
Sharing
⬡ Le code
⬡ Les outils
⬡ Les connaissances

20
DevOps Loop

21
3.
Les outils
Cloud, conteneurisation, IaC...
Docker

Conteneurisation

23
Conteneur
⬡ Virtualization au niveau de l’OS
⬡ Isolation des accès et des ressources
d’un processus
⬡ Chroot / CGroup / Namespace

24
Docker
⬡ A facilité la création de conteneur
⬡ Facilite la création d’environnement

25
Architecture

26
Concept
⬡ Image
⬡ Conteneur
⬡ Réseau
⬡ Volume

27
Orchestration
⬡ Management du cycle de vie des
conteneurs
⬡ Partage des ressources d’un cluster

28
Cloud

29
Solutions

IaaS PaaS SaaS

Infrastructure as a Service Platform as a Service Software as a Service

Fournit des machines Orchestre des


Boîte noire
virtuelles conteneurs

AWS, GCP Heroku, OpenShift -

30
Régions

31
VPC
⬡ Réseau privé virtuel
⬡ Un VPC par région
⬡ Un sous réseau par zone

32
Instance
⬡ Configuration de l’OS
⬡ Configuration des resources

33
Load Balancer
⬡ Composant managé
⬡ Équilibre le trafic entre plusieurs
instances
⬡ Ajoute / retire des instances de manière
autonome en fonction du trafic

34
Élasticité
⬡ Groupe d’instances
⬡ Ajuste le nombre d’instance
⬡ Condition de mise à l’échelle
configurable

35
Object storage
⬡ Espace de stockage infini
⬡ Temps d’accès très lents

36
Base de données
⬡ Configuration du SGBD
⬡ Haute disponibilité

37
Coût
⬡ On paye ce que l’on consomme
⬡ Assez complexe
⬡ Vérifier régulièrement les factures

38
IaC

Infrastructure as Code

39
IaC
⬡ Décrire une infrastructure dans du code
⬡ Automatisation
⬡ Reproductibilité
⬡ Versionable
⬡ Relecture
⬡ Documentation

40
Choix

Spécifique au vendeur Généraliste Personnalisé

Cloud formation,
Terraform Bash, Go, Perl...
Deployment manager

41
4.
L’automatisation
CI/CD
CI

Continuous Integration

43
Intégration...
⬡ Mettre en commun les différents
travaux des développeurs
⬡ S’assurer de la bonne exécution du build
et des tests

44
… continue
⬡ Automatiser l’exécution du build et des
tests
⬡ Réaliser cette opération à chaque
changement apporté au code

45
Objectifs
⬡ Réduire les impacts des bugs
⬡ Améliorer la qualité et la quantité des
tests
⬡ Augmenter la fréquence des releases
⬡ Réduire les risques

46
CD : Continuous Deployment
⬡ Déploiement automatisé
⬡ Éviter les arrêts de service
⬡ Automatisation des rollbacks si une
erreur survient

47
Stratégies de déploiement

Rolling update Blue/Green Canary

Nouvelle version dans


Nouvelle version dans un
Incrémentale, serveur un groupe de serveur,
groupe de serveur, redirection
par serveur redirection du trafic
du trafic
progressive

48
Objectifs
⬡ Limiter les impacts
⬡ Rendre les mises en production
anecdotique
⬡ Réduire le time to market d’une
fonctionnalité

49
Exemple de pipeline
⬡ Build
⬡ Exécution des tests unitaires
⬡ Conteneurisation
⬡ Lancement d’un conteneur dans un
environnement
⬡ Exécution des tests d’intégration

50
Exemple de pipeline
⬡ Exécution des tests de non régression
⬡ Release
⬡ Déploiement sur le serveur de recette
⬡ Déploiement sur le serveur de
préproduction
⬡ Déploiement en production

51
Liste non exhaustive d’outils
⬡ Jenkins
⬡ GitLab CI
⬡ Travis
⬡ GitHub Actions
⬡ ...

52
5.
Provisionnement
Un peu d’admin sys’
Définition
⬡ Installation des logiciels
⬡ Configuration
⬡ Mise à disposition

54
Manuel
⬡ Risque d’erreurs
⬡ Non uniforme sur toutes les machines
⬡ Pas de documentation
⬡ Ne passe pas la mise à l’échelle

55
Outils de provisionnement
⬡ Deux types : avec et sans agent
⬡ Deux manières : pull et push
⬡ Deux philosophies : descriptif et déclaratif

56
Quelques outils...
⬡ Salt
⬡ Puppet
⬡ Ansible

57
5.
Monitoring
S’assurer qu’un service en production
reste en production
Monitoring
⬡ Métriques
⬡ Logs
⬡ Dataviz

59
Monitoring
⬡ Système & réseau
⬡ Logs applicatif
⬡ Dataviz

60
Alerting
⬡ Passage d’un seuil
⬡ Différents niveaux d’alertes
⬡ Email, Slack...

61
Base de données temporelle
⬡ Modèle de données basé sur le temps
⬡ Temps-valide
⬡ Temps-transaction
⬡ Donnée bi-temporelle

62
Quelques outils
⬡ Elasticsearch Logstash Kibana (ELK)
⬡ Prometheus
⬡ Nagios
⬡ Grafana
⬡ ...

63
6.
Futur
Nom de Zeus...
Serverless
⬡ Pas de déploiement
⬡ Juste du code
⬡ Contraintes sur les resources fortes

65
Ops
⬡ Développement d’outils
⬡ Partage des responsabilités

66
Merci à
tous !
Des questions ?
Par mail :
[email protected]

67

Vous aimerez peut-être aussi