Uploaded by Mygarden Delicious

devops4null.2020 intro devops

advertisement
DevOps 4 Null
Une introduction à devops
@alaindelafosse
@elisev_
Des Visions Différentes
Développement
Opérations
Planning et la date de livraison
Qualité de service et disponibilité
Couts de développement
Cout d’exploitation
Release plannings
Changements, Incidents
Dernières technologies
Technologies standards
Environnements de « développement »
Environnements de “production”
Fréquents et importants changements
Minimisent les changements en production
Méthodes agiles
Organisation et processus structurés (ITIL)
Pensent à ce qui va faire marcher les choses
Pensent à tout ce qui ne va pas marcher
2
Des cycles différents
Déploiement
Release
Tests
DEV
Changements
Conception
Gestion des
Problèmes
Bugfixing
OPS
Monitoring
Détection
Développement
Analyse
Incident
3
DevOps
Méthodes Agiles
Idée
Responsables
Produit
Développeurs
Produit
Opérations
Service
DevOps
4
Etendre les limites de l’équipe
AGILE
DEVOPS
DevOps buzzword
Ne pas se laisser embrouiller par l’usage abusif du terme dans des contextes parfois farfelus
Equipes ou postes de devops
Dénomination pas très pertinente, reflète des choix d’organisation ou une
volonté de mettre en avant le coté automatisation dans un poste.
Outils devops
Supportant la démarche.
Parfois des outils d’automatisation ou de déploiement « rebrandés ».
Logiciel voire matériel devops, si si !
« Leading edge storage technologies enable DevOps to use actual
production data in a test environment. »
6
Les piliers: CAMS
Partage
« Sharing »
Mesure
Culture
Automatisation
7
Devops Culture
CULTURE
Respect mutuel
Engagements
respectés
Célébration
des succès
Partage de
connaissances
Retours et feedback
valorisés
Refus du blâme
Communication
honnête et franche
Développer les
interactions
Favoriser
l’écoute
Erreurs
admises
8
DevOps Automatisation: Pipeline
Au delà de l’automatisation, un vrai pipeline d’outils
Gestion
de source
Build
Intégration
continue
Tests
Archive
Déploiement
Monitorer
GitLab
Zoom
Page suivante
•
•
On aurait pu rajouter la génération et collection des logs, gestion de release, revue de code, etc
Plein de langages de scripts utilisables (Python, Powershell, Shellscripts) avec des librairies (libcloud, vmware, etc)
9
DevOps Automatisation : Périmètre
Software
- Binaires (scripts, exécutables, librairies)
- Ressources (fichiers de traduction, images)
- Templates de configuration (composant,
instances)
- Information de version
- Monitoring
- Outils d’administration (scripts)
Middleware
-
Version, instances, ports
Structures de données (BDD, etc)
OS
-
Version, Comptes,
Configuration AD/DNS, partitionnement
VM / Serveur
Stockage
Réseau
- Spécifications (CPU, RAM, Disques, interfaces
réseau)
Espace, Niveau de RAID, SAN, Backup
Adresses, VLAN d’appartenance, load-balancer,
firewall
10
DevOps Automatisation:
évolution des outils
Configuration
Configuration
OS & applicative
Déploiement logiciel
Configuration
OS & applicative
Déploiement des logiciels
et de leur dépendances.
Déploiement plateforme
Orchestration
de service
Configuration
OS & applicative
Configuration
OS & applicative
Déploiement des
logiciels et des
dépendances
logicielles.
Déploiement des
logiciels et des
dépendances
logicielles.
Approvisionnement et
Configuration de
l’infrastructure
and provisioning
Approvisionnement et
Configuration de
l’infrastructure
and provisioning
Orchestration
du déploiement
Orchestration
du déploiement
Orchestration de
services (instances,
loadbalancing, gestion
de charge)
11
DevOps Automatisation:
Zoom sur
3
outils
Ansible
Terraform
Puppet
Approche centralisée (agentless)
d’exécution de scénarios de déploiement
procédurés (playbooks) rédigés en YAML.
Approche centralisée (agentless) mais
orienté déclaratif et plus focalisé
orchestration que déploiement
Approche avec agent; orienté déclaration
d’état cible plus orienté gestion de
configuration
+
Code plus simple
Courbe d’apprentissage
Outil complémentaire (Tower)
+
Plus connoté cloud
Pas du YAML ;-)
+
Scalable
-
-
Ruby & DSL
Plus orienté infrastructure et moins
applicatif
Quand l’utiliser ?
Performance (attention à l’échelle)
Pas (peu) d’introspection, bcp de variables
Quand l’utiliser ?
Mise en place rapide et centralisée
Déploiement important et hétérogènes
Quand l’utiliser ?
Quand le déploiement est traité par une
approche conteneur et que l’on utilise
de/des clouds
12
DevOps
Mesures:
Indicateurs
de
performance
Nombre de
déploiements
ou changes par
semaine
Cela peut être le nb de lignes de
code, le nb de composants
impliqués, voire le nombre de
user stories intégrés.
Capacité à remettre en service une
plateforme par le redéploiement
des configurations; des logiciels et
des éléments d’infrastructures
Volume des
changements
Temps de cycle
de l’idée à la
production
Délai de remise
en service
Pourcentage de
déploiements
ratés
Permet de mesurer le degré de
maturité pour l’intégralité du
pipeline: qualité du code,
pratiques de développement,
automatisation
(« time to market »)
Les échecs et erreurs sont
normaux (qui ne fait jamais de
bug?) mais il faut surveiller
l’évolution du pourcentage.
Délai de
déploiement
Mesurer le délai nécessaire
entre la fin de l’écriture d’un
patch et la disponibilité en
production.
13
DevOps Partage
Outillage
Processus
Tous les acteurs
participent
à toutes les étapes du
processus.
Les mêmes outils pour
toutes les équipes pour
toutes les plateformes.
Priorités
Les équipes doivent
partager les mêmes
priorités !
Responsabilité
Tout le monde se
mobilise lorsque le build,
le déploiement, ou
l’application buguent.
Emplacement
Objectifs
Les équipes doivent
partager les mêmes
objectifs ! Temps de
cycle et stabilité
Moyens de
communication
Colocaliser les équipes !
Tout ce qui peut
rapprocher les équipes
Donner accès aux chat
rooms de prod aux
développeurs.
Donner des accès JIRA
aux ops !
14
DevOps
vs ITIL
DEVOPS
ITIL / ITSM
Mouvement avec des bonnes pratiques s’appliquant à tout le
cycle du développement aux opérations.
Catalogue structuré de pratiques à mettre en œuvre dans les
opérations.
Un changement continu ET contrôlé
Processus ITIL
Détail
Outillage
Nouvelles pratiques possibles
Change management
Mise en place d’un suivi précis des
changements sur la plateforme avec
un processus d’approbation
préalable (CAB)
Changements et rollback automatisés
par outil de gestion de clefs de
configuration.
Audit automatiques.
Changement et rollback auto.
Canary testing, A/B testing
Configuration management
Description de l’infrastructure dans
une base de données
Mise en place et renseignement d’une
CMDB
Découverte et déploiement
automatique de l’infrastructure
Incident management
Processus de gestion des incidents
de production: inventaire,
communication, analyse d’impact
Monitoring fullstack
Réserver du temps dans un sprint
aux équipes (dev+ops) pour
investiguer les incidents à chaud !
Problem management
Processus de gestion des incidents
récurrents: cad problème
Discuter avec les responsables
produits pour mettre des
problèmes à traiter dans le backlog
15
DevOps Transition
La réalité
L’objectif
Dans nos organisations, pour plein de bonnes et mauvaises
raisons, et même si nous savons que ce n’est pas optimal
nous avons des pratiques et des organisations en place, des
contraintes en terme de budget et de temps.
Pourtant, nous avons tous un objectif ambitieux pour notre
organisation.
16
Transition DevOps: recette
Vision en rapport avec la
stratégie de l’entreprise (définir
des objectifs SMART: par ex un
déploiement par jour dans un
an), ne pas se bloquer sur une
organisation cible.
Vision
+
Développer à la fois les
compétences
techniques (avec quoi:
maitrise des outils) mais
aussi organisationnelles
(pourquoi, comment) et
pour tout le monde !
Compétences
+
Priorité globale,
reconnaissance et
célébration des
succès et des efforts
Motivation
+
Du temps, de
l’argent, des
compétences
extérieures, des
conférences …
Partager la vision aux
équipes, s’assurer du support
du top management, laisser
décider les équipes des
itérations et des objectifs
associés (carpaccio)
Ressources
+
Plan d’action
Pas de Vision
=
Pas de Compétences
=
Pas de Motivation
=
Pas de Ressources
=
Pas de Plan
=
Confusion
Anxiété
Changement
partiel
Frustration
Faux départ
=
Changement
17
DevOps Transition: Six Trucs
Commencer par la culture
Tout est automatisable !
Approche Carpaccio
Automatiser ce qui fait mal
Penser ROI
Intégrer la sécurité
18
Pratiques DevOps
Gestion du
changement
automatisé
Tests de DRP
Disponibilité
Tests de Rollback
Système de déploiement
configurable
Monitoring
Code maintenable
Déploiement Continu
A/B
Canary testing
Architecture
couplage faible
Trunk based
développement
Automatisation
déploiement
Automatisation
build
Tests automatisés
Gestion configuration
En résumé
• Devops est un mouvement qui étend Agile en intégrant les opérations dans les itérations
• Quatre axes: culture, automatisation, mesure, partage
• L’outillage peut se voir comme un pipeline et couvre tout le workflow
• Complémentaire ITIL
• Pour adopter devops il faut : une vision, des compétences, une motivation, des ressources et un plan
MERCI !
DES QUESTIONS?
Download