# 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 ?