Formation DevOps : comprendre l’état d’esprit DevOps pour prendre des décisions

Résumé

- Logiciels et principaux outils concernés : GitLab, GitHub, Gitea, Terratest, Sonarqube, Trivy, Clair, Gatling, Cypress, Sitespeed.io, Docker, Singularity, KataContainer, Harbor, Docker Hub, GitLab Registry, Kanico, Kafka, NAST, RabbitMq, Traefik, Envoy, Ambassador, Kong, Oslo, Istio, Maesh, Jenkins, GitLab-CI, DroneCI, Ansible, Vagrant, Packer, Terraform, Pulumi, K8s, Swarm, Nomad, K3s, minikube, Kind, Skaffold, Rancher, Openstack, Prometheus, Grafana, Elasticsearch, Nagios, Centreon, Jaeger, Ceph, Rook, Minio, S3, Vault, ChoasMonkey, ChaosTolkit, ChaosMesh, OpenFaas, Knative, Loft
- Durée : une journée et demi (1,5 jour)
- Objectifs : être en capacité de comprendre la culture DevOps ; faire le tour de l’état de l’art "DevOps" à travers des méthodes de travail, des concepts de développement, explorer les grandes thématiques des applications Cloud Native. Formation d’aide à la décision ; Être en capacité de poser les bons questionnements pour la conception d’une application en ligne.
- Pré-requis : avoir des connaissances dans des langages de développement et/ou dans la mise en place d’une application sur serveur GNU/Linux. Savoir comment une application est accessible sur le web et connaître les bases du "Cloud".
- Public : Chef de projet, Administrateur système/cloud, Développeurs, Responsable technique, DSI…
- Pédagogie : la formation sera totalement théorique.

Présentation

Le devops - ou DevOps (selon la graphie habituellement utilisée en langue anglaise) - est un mouvement en ingénierie informatique et une pratique technique visant à l’unification du développement logiciel (dev) et de l’administration des infrastructures informatiques (ops), notamment l’administration système. [1]

À l’issue de la formation les stagiaires auront suffisamment d’élément clés à leur disposition pour prendre des décisions sur l’intérêt de certaines parties techniques pouvant intégrer leur SI. Ils pourront débuter un nouveau projet avec une vue générale des possibilités techniques et une liste non exhaustive des outils par catégories. La sensibilisation à la méthode DevOps permet d’améliorer l’évaluation technique d’une architecture cloud et également les possibilités actuelles pour simplifier le quotidien de certaines actions. Une formation idéale, si l’on a besoin de faire une remise à niveau technique avant d’assister à un salon tels que sont la Kubecon, le devoxx, le devfest ou le BreizhCamp. La formation vient compléter les recherches de solutions pour simplifier une architecture d’application devenue trop complexe ou obsolète à gérer.

Programme

Les prérequis
- Connaître le fonctionnement d’une application web
- Identifier les différents services Cloud
- Comprendre les bases du web

La Philosophie DevOps
- Découvrir la transformation du SI actuel vers le DevOps
- Connaître les méthodes de management sous-jacent
- Maîtriser les intérêts du DevOps dans l’entreprise

L’éco-système et ses projets
- Savoir quelles sont les Fondations et Associations à suivre
- Connaître les "twelves factors apps"

Les Bonnes pratiques
- Assimiler ce que sont les "Secured by design" et "Privacy by design"
- Comprendre l’outil Git, et ses différents workflow (gitlab, github, gitea)
- Découvrir les pyramides de tests (terratest, sonarqube, trivy, clair, gatling, cypress, sitespeed.io)

Les architectures logicielles
- Maîtriser les architectures Monolithiques et Micro-services
- Explorer le monde des Containers (runtime, build, registry) – option (HPC) (Docker, Singularity, Katacontainer, Harbor, Docker Hub, Gitlab Registry, Kanico)
- Découvrir les services de "messages queue" (kafka, NAST, RabbitMq)
- Découvrir les "Services proxy" (Traefik, Envoy)
- Découvrir les "api gateway" (Ambassador, Kong, Oslo)
- Découvrir les "services mesh" (istio, maesh, consul)

L’automatisation
- Assimiler l’intégration continue (jenkins, gitlab-ci, droneci)
- Comprendre l’Infrastructure As Code (ansible, vagrant, packer, terraform, pulumi)

La scalabilité
- Découvrir les Orchestrateurs « Prod Ready » et « Sandbox » (K8s, Swarm, Nomad, K3s, minikube, Kind, Skaffold)
- Saisir les enjeux des opérateurs d’orchestrateurs (Rancher, Openstack)
- Maitriser les stratégies de déploiement

La métrologie
- Découvrir le monde de la "Supervision", du "Monitoring" et du "Tracing" (Prometheus, grafana, elasticsearch, nagios, centreon, jaeger)

Les services de stockages
- Assimiler les applications "cloud storage" (Ceph, rook, minio,S3)

La sécurité
- Découvrir l’Encryption as a Service (EaaS) (Vault)
- Être averti de l’existence de la discipline : « Chaos Engineering » (ChoasMonkey, ChaosTolkit, ChaosMesh )

Le monde de demain
- Approcher les "Serverless" (OpenFaas, Knative, Loft)