Qu’est-ce que ça mange
en hiver : Le DevOps?
$ cat ~/[Link]
---
global:
name: "David Guerin"
role: "DevOps Engineer & Security Champion"
company: "Security Compass"
socials:
- name: "LinkedIn"
url: "[Link]
- name: "Discord" #hackfest
tag: "dekciw" #wicked
hobbies:
- "Course a pied"
- "Musique (neo-classique, rapQueb)"
- "Piano"
- "Hack the Planet"
Faisons comme tout le monde et demandons à chatGPT …
Prompt:
Pourrais-tu m'expliquer, de manière concise, qu'est-ce que le DevOps en me parlant comme à une grand-maman?
Réponse:
Bien sûr, ma chère grand-maman ! Le DevOps est un terme qui combine deux mots : "développement" (dev)
et "opérations" (ops). C'est une approche qui vise à améliorer et à faciliter la collaboration entre les
développeurs de logiciels et les équipes qui s'occupent de les déployer et de les maintenir.
Imagine que tu es en train de tricoter un pull. Le DevOps, c'est comme si tu travaillais en équipe avec
quelqu'un qui t'aide non seulement à choisir le bon fil et les bonnes aiguilles, mais qui vient aussi vérifier
régulièrement comment tu avances et qui s'assure que tout se passe bien. Cela permet de produire un pull de
meilleure qualité plus rapidement.
En informatique, le DevOps fonctionne de la même manière. Les développeurs utilisent des outils et des
méthodes pour créer des logiciels, tandis que les opérations s'occupent de les déployer et de les faire
fonctionner. Le DevOps encourage la communication et la collaboration entre ces deux équipes, afin que le
développement et l'opération soient harmonisés et que les logiciels fonctionnent bien dès le début.
En bref, le DevOps est une façon de travailler ensemble pour créer des logiciels de meilleure qualité, plus
rapidement et de manière plus efficace.
Revenons en arrière…
● Guerre dev vs ops
○ Faible automatisation des Ops
○ Shadow IT
○ Faible connaissance des devs en infra
● “Ça compile sur ma machine”
● Difficulté de produire des builds
$ cat ~/[Link]
---
buzzwords:
- name: "DevOps"
description:
- "Introduit par Patrick Dubois en 2009"
- "Culture et philosophie plutôt qu'un rôle"
- "Emphase sur l'intégration continue et le déploiement continu" # Build often, fail Fast
- "Lire le livre The DevOps Handbook!"
- name: "SRE"
description:
- "Introduit par Benn Treynor Sloss @ Google en 2003"
- "C'est une interface du DevOps"
- "Emphase sur la haute disponibilité et la fiabilité des services" # Performance
- "Travail généralement plus prêt des équipes de développement"
- "Demande généralement plus de connaissances en programmation"
- "Lire le livre de Google SRE!"
…
- name: "Platform Engineering"
description:
- "Une évolution du DevOps aka DevOps 2.0."
- "On demande de plus en plus au développeur de prendre le ownership du produit qu'ils développent mais on ne leur donne
pas les outils nécessaires"
- "Il y a tellement d'outils de services et de librairies dans notre écosystème qu'il devient impossible pour les devs de tout
connaître"
- "Ca rend d'autant plus le onboarding de nouveaux développeurs très difficile, non seulement à l'intérieur de la compagnie
mais de projets en projets aussi"
- "Difficile d'avoir un bon vision à haut niveau de tous les services et leurs dépendances"
- "Le Platform Engineering c'est essentiellement du DevOps As a Service" # Internal Developer Portal
- name: "DevSecOps"
description: "Application des principes du DevOps en Sécurité"
Mission et défis du DevOps?
$ cat ~/[Link] - Monitoring-Alerting-et-Journalisation:
- Applications
---
- Réseau
Devops:
- Accès
- Everything As Code:
- Centralisation
- Infrastructure As Code # Faire attention a la
- Gestion-des-coûts-infra:
techdebt!
- Gestion-des-Secrets:
- Configuration Management
- Pour les applications
- Répétable
- Pour l'infra
- Testable
- Pour le CI/CD
- Scale
- Pour l'équipe en soit
- Documentation!
- CI-CD:
- Collaboration!
- Pipelines
- Haute-Disponibilité:
- Tests
- Selon les SLO / SLA
- Gestions des Artifacts
- Éviter le single point of failure
- GitOps
- MultiCloud???
- Chaos-Engineering:
- Scale:
- R&D:
- Mises-a-jours:
- Kubernetes:
- Helm Templating
….
Vers une carrière en DevOps?
$ cat ~/[Link]
---
Faq:
- Est-ce que je dois savoir programmer pour être DevOps?
- Est-ce que je dois connaître GCP, AWS, AZURE, et tout les autres?
- Je ne connais pas XYZ techo, est-ce que je devrais quand même appliquer sur le poste?
- Kubernetes est-ce essentiel?
- C’est quoi le parcours d’un DevOps?
Le fameux DevOps
landscape…
C’est beau tout ça mais… c’est quoi le lien
avec la Sécurité?
$ cat ~/[Link]
---
Tools:
- name: "SAST" # Static Application Security Testing
description: "semgrep, sonarqube"
- name: "DAST" # Dynamic Application Security Testing
description: "OWASP ZAP"
- name: "SCA" # Software Composition Analysis
description: "Snyk, Trivy, Xray, checkov" # Attention aux reports (shoutout FLR)”
- name: "Cloud Security Assessment" # Misconfiguration, compliance
description: "Prowler"
- name: "Others"
description: "semgrep (secret scan), sigstore (supply chain, (cosign)), custom tooling"
$ cat ~/[Link]
---
devsecops:
tools:
- Les outils ne remplacent AUCUNEMENT un pentest
- Ce ne sont pas des set and forget
- Besoin d'une “calibration” (génère du noise)
- La sécurité est un processus, ce n'est pas juste un paquet d'outils
- Nécessite une certaine maturité d'entreprise pour actionner sur les vulnérabilités trouvés
default:
- Threat modeling (l'infra est tout autant un vecteur d'attaque)
- Purple Teaming
- Bonne pratique de sécurité cloud
- Kubernetes
Des Questions??
Merci!