# Présentation DevOps + Docker
- 30-40 minutes
- docker
- pédagogie
- pourquoi pousser nos environnements vers de la dockerisation
- spécificités du DevOps : accès de prod, investigation, fiabilisation,
- mes taches aujourd'hui
---
- Le Devops chaine de valeur continue (dev2prod)
- containers et orchestrateurs
- Pipeline et automatisation
Ce que cela offre : fiabilité, résilence, fluidité et réduction du TTM
zoom sur containers orchestration et pipeline(tests)
https://cours-ece.github.io/dockerkube/#/3/1
https://www.netapp.com/fr/devops-solutions/what-is-devops/
## Orchestrateur :
1) lifecycle des containers est géré (restart lors d'une failure, démarrage et arret)
2) aspect application (conteneurs tout seul c'est bien mais en groupe c'est plus puissant) afin qu'une appli rende le service attendu initialement
3) gestion de briques infra :
- volumes et persistence de données
- réseau avec des fonctionnalités avancées (circuit breaker, test A/B, blue/green deployment)
- infra as code (fichiers qui décrivent notre infra et on peut rejouer facilement)
*rejouer les points fiabilité résilience fluidité*
définir les acteurs, les process et les automatiser : a discuter
## Docker
### Contexte de Docker :
Aujourd'hui les organisations doivent conjuguer avec différentes technologies en places. D'un coté, les machines physiques, le on premise, Linux et le système monolithe. De l'autre la virtualisation, le Cloud, Windows et les microservices.
Egalement en interne, il y'a des conflits d'intérets entre les développeurs et les admins Sys. D'un coté on veut pouvoir développer sans limites et rapidement, alors que le coté infra voudra standardiser, sécuriser et manager toute cette phase de développement. Ce qui se passe au final, c'est qu'on se retrouve dans un système soit en microservices avec des applications modernes, ou alors dans du monolithe avec de l'applicatif historique.
Ce que Docker peut permettre aujourd'hui, c'est cette versatilité a pouvoir aussi bien fournir du micro service, des appplication traditionnelles en mode agile (plusieurs containers) ou alors simplement containeriser des applications historiques. Ce modèle est en plus past and future proof.
### Rapidement :
#### Virtualisation : plusieurs systèmes d'exploitation, avec chacun son noyau propre -> gourmand en ressources
#### Containerisation : pareil mais chaque système ou image container utilise le meme noyau, celui de la machine hôte. On virtualise un système d'exploitation au lieu de virtualiser du matériel
Résout le soucis de "ça marche sur ma machine", leader dans l'industrie du container et plus grand innovateur.
Transformation des applis et de leur infrastructure, sécurité, portabilité, agilité et efficience.
Docker est aujourd'hui au centre de stratégies IT majeures : DevOps, Cloud et Modernisation d'applications.
Docker engine, tourne a un niveau appplicatif sur la machine qui l'héberge. Chaque container n'a pas besoin d'un OS entièrement dédié par container, il utilise le noyau de la machine hote.
"Présenter le système docker a l'aide de Legos"
Comparaison Redhat de Docker et VMs
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.0_release_notes/sect-red_hat_enterprise_linux-7.0_release_notes-linux_containers_with_docker_format-comparison_with_virtual_machines
Notes a développer :
Docker en production
- Dockerisation de bout en bout, ISO par rapport a nos périmètres.
- Migration vers du cloud facilement, macro chiffrage rapide
- Bien accentuer et expliquer la différence entre VM et Docker
- Faire une simulation de chiffrage, voir quels couts on peut sauver, facilité de faire des economies avec Docker
- Tableau de couts, comparatif 1 semaine 1 mois 1 an
## Devops
### **Assurer du run et de l’assistance sur les différents environnements (développement, recette, préproduction et production) afin de garantir la continuité des services**.
Il faut aller chercher dans du log applicatif ou système afin d’identifier des points bloquants, des défaillances ou des décalages de configuration entre environnements.
### **Faire un suivi auprès des équipes de développement afin de pouvoir mettre le doigt sur des points bloquants**
Que ce soit sur leur machines ou sur des environnements dédiés lors de mise en recette par exemple. La tendance actuelle de basculer sur des applications dockerisées nécessite d’avoir du recul et des connaissances sur ce sujet afin de pouvoir expliquer clairement et calmement pourquoi des blocages surviennent. Le but étant de transmettre ces connaissances afin que les développeurs adoptent une mentalité dite “DevOps” et ainsi les rendre plus autonomes sur leurs sujets.
### **Proposer des évolutions sur l’infrastructure existante afin d’être pro-actif**
Ceci dans le but de ne plus courir après les problèmes mais de les anticiper et les réduire au maximum. C’est nécessaire pour dégager du temps et ne plus être pris par le run qui est très chronophage. La réflexion autour de la CI/CD et son implémentation permettent d'améliorer et d'automatiser nos processus de livraison de code.
### **Documenter les procédures en places, ainsi que les résolutions d’incidents**.
Il est vital aujourd’hui en tant que DevOps d’inculquer cette mentalité de documenter dès qu’on effectue une tâche, afin que le transfert de savoir et de connaissance puisse substituer.
### **Analyser et pointer les potentielles failles de sécurité, en termes d’accès aux différents environnements**.
Ce point est souvent négligé mais il est en réalité un des plus critique, tout le monde ne doit pas pouvoir se loguer avec des droits super admin sur n’importe quel environnement ou machine. Les conséquences sont nombreuses et il est surtout difficile de tracer qui a fait quoi sur quel environnement.
### **Enfin, ne pas prendre les gens de haut et montrer qu’on a tout autant à apprendre d’eux qu’ils ont à apprendre de nous-même**.
La culture DevOps repose sur l’échange et le partage de savoir, et toute information ou connaissance est bonne à recevoir comme à donner.
## Notes :
- Rôle du devops au sein des etudes et developpement, et infra
- Trouver des axes par rapports aux slides (responsabilités et rôles )
- Au quotidien, quelqu'un de non expérimenté prend du temps a prendre en main de l'orchestration, accompagnement des devs
- Connaissances applicatives à mettre en oeuvre dans ses taches de tout les jours.
# Notes de réunion 17/02 avec Karim et Arthur :
-
- https://openclassrooms.com/fr/courses/6093671-decouvrez-la-methodologie-devops/6183392-mettez-en-place-le-devops-en-evitant-les-pieges
- https://web.devopstopologies.com/
-