# DevOps ##### Arnaud Morin ##### La culture et la pratique du DevOps
## A propos de moi * Arnaud Morin * Ingénieur DevOps / SRE * Team Public Cloud chez OVH * OpenStack Ansible Docker Kubernetes Puppet
## A propos de vous

Definition

“Le DevOps est un mouvement qui s’attaque au conflit existant structurellement entre le développement de logiciels et les opérations.
Ce conflit résulte d’objectifs et de motivations divergents.
Le DevOps améliore la collaboration entre les départements du développement et des opérations et rationalise l’ensemble de l’organisation.”
Citation de Hütterman 2012 - Devops for developers
## Avant devops, le probleme * Systemes complexes * Peu / pas confiances dans les developpeurs
## Avant devops, le resultat * Culture de la prudence * Procedures longues
## La solution * Intégration et déploiement continus (CI/CD) * Suivi de version (git) * Tests automatises / robots
![devops](data/devops.png "devops")
## DevOps * polyvalence * Infrastructure as Code * automatisation pousse a l'extreme
## Attention ![automation](data/xkcd_automation.png "automation")
# C'est beau la theorie # La pratique?
## Mots clefs * cloud * CI / CD * Infrastructure As Code * Event Driven Architecture
## cloud * automate installation of new servers

Pet versus Cattle

## Outils * OpenStack * Kubernetes * Docker * Etc.
## CI/CD
“Release early, release often.”
Eric S. Raymond - La Cathédrale et le Bazar
* accélérer la livraison des nouvelles versions du logiciel * tests systématiques et automatisés pour ne pas se reposer sur la vérification humaine * deploiement progressif (1/10/1000)
## Outils * Git / Gitlab / Github Actions / etc. * CDS * Jenkins * Tox, etc.
![gitlab](data/gitlab_workflow_example.png "gitlab")
## Infrastructure As Code
* ecriture de l'etat desire de l'infrastructure avec du code * suivi de version dans git
## Effets interessants * permet de faire des tests + CI/CD, meme sur l'infra! * connaitre l'etat de l'infra a tout moment * automatisation et reproductabilite * pas de sysadmin ad-hoc (ou presque pas) * ops travaille comme des devs (ou presque) * on peut revenir sur une version anterieur (git)
## Outils * Ansible * Puppet * Terraform * Kubernetes * etc.
## Questions ?