Chez Netflix, les équipes de dev sont responsable du cycle de vie complet de leur application jusqu'à la production. Pour les aider dans cette tâche, des équipes spécialisées (Build Tools, Deployment Pipeline, Metrics & Alerts, ...) sont chargées de développer des outils réutilisables par tous. Lorsqu'un nouveau besoin d'outillage apparait dans une équipe de dev, si ce besoin est commun à d'autres équipes, ce besoin sera pris en compte par une équipe spécialisée, si le besoin est spécifique à une seule équipe de dev, celle-ci devra le prendre en charge elle-même.
- Évènements à tracer en Production:
- Changes (who/what/when/type)
- Incidents (when/TTD/TTR/severity/root cause)
- Métriques résultantes:
- déploiements applicatif par jour
- déploiements de config par jour
- migrations de schémas DB par jour
- lignes de codes changés par déploiements
- change / incident ratio (pour chaque type de changement)
Des exemples de bonnes et mauvaises pratiques d'organisation entre les équipes dev, devops et ops
Exemple de questions a poser lors d'un entretien d'embauche pour un DevOps
Une explication du concept SRE (Site Reliability Engineering) qui est utilisée pour gérer la production chez Google.
Parmi les points marquant par rapport à DevOps:
- Error Budget:
- tant qu'on est dans les SLA (99.999...), les devs peuvent mettre en prod de nouvelles features
- dès que les SLA ne sont plus respectés, les devs ne peuvent plus mettre en prod de nouvelles features
- Les devs ont le droit à 3 "silver bullet" (et pas une de plus) pour livrer de nouvelles features en dehors des SLA.
- Pour utiliser 1 silver bullet, il faut convaincre le responsable des équipes dev
- En cas d'incident, la restoration du service est prioritaire, le troubleshooting vient après. tous les logs, traces, métriques, ... permettant de diagnostiquer l'incident doivent donc collectées automatiquement.
- La résolution des incidents connus doit être réalisée automatiquement par des bots sans intervention humaine
EDIT: en complément, l'interview du Vice President Engineering de Google qui donne plus de détails sur le fonctionnement chez Google
https://landing.google.com/sre/interview/ben-treynor.html
Un livre blanc qui recense les bonnes pratiques des acteurs du web:
de la culture devops aux architectures big data/nosql en passant par le déploiement continu, l'organisation des équipes et la conception d'api ouvertes à l'extérieur
Pour le télécharger sans s'enregistrer: https://julien.mailleret.fr/pub/octo-les-geants-du-web.pdf
3 tips for DevOps teams:
- Try to go from commit to live in production automatically.
- Use feature flags or flippers instead of branching
- Run a bunch of really small production tests, performing real interactions with your live site, such as creating new user accounts, using Selenium, or just curling some URLs. Then add them to your deployment pipeline. If any of the tests fail, just deploy the old version.