CESI: DevOps, mise à jour des slides

This commit is contained in:
wpetit 2018-06-28 06:50:04 +02:00 committed by Benjamin Bohard
parent f5356e2e41
commit 10485c94f1
3 changed files with 62 additions and 3 deletions

View File

@ -39,7 +39,7 @@ William Petit - S.C.O.P. Cadoles
### Une culture ### Une culture
- Un rapprochement (voir fusion) des métiers du développement et du suivi opérationnel. - Un rapprochement fort (voir fusion) des métiers du développement et du suivi opérationnel.
- Un échange permanent (culture du partage) afin de continuer à améliorer les pratiques de développement et de suivi de production. - Un échange permanent (culture du partage) afin de continuer à améliorer les pratiques de développement et de suivi de production.
@ -63,6 +63,12 @@ William Petit - S.C.O.P. Cadoles
--- ---
### Mise en pratique
- Découverte de la méthode "Kanban" et de l'implémentation disponible dans Gitlab
---
## Créer ("Create") ## Créer ("Create")
- S'appuyer sur un gestionnaire de version des sources solide ([Git](https://git-scm.com/), [Bazaar](http://bazaar.canonical.com/en/), [Mercurial](https://www.mercurial-scm.org/)...). **Il est central dans le processus DevOps.**. - S'appuyer sur un gestionnaire de version des sources solide ([Git](https://git-scm.com/), [Bazaar](http://bazaar.canonical.com/en/), [Mercurial](https://www.mercurial-scm.org/)...). **Il est central dans le processus DevOps.**.
@ -77,19 +83,37 @@ William Petit - S.C.O.P. Cadoles
--- ---
### Mise en pratique
- Utilisation de Git - commandes utiles
- La méthodologie "Git Flow"
- Intégration avec GitLab et outils méthodologiques associés
---
## Vérifier ("Verify") ## Vérifier ("Verify")
- Maintenir un haut niveau de qualité du code en intégrant des mécanismes comme la **revue de code** et le **travail en binôme**. - Maintenir un haut niveau de qualité du code en intégrant des mécanismes comme la **revue de code** et le **travail en binôme**.
- Cultiver une approche du **développement piloté par les tests**. - Cultiver une approche du **développement piloté par les tests**.
- Intégrer dans le processus de développement des outils permettant de vérifier l'état du projet de manière automatisée (qualité du code, tests de non regréssion...). Ces outils prennent aujourd'hui principalement la forme de **serveurs d'intégration continue** ([Jenkins](https://jenkins.io/), [Gitlab CI](https://about.gitlab.com/features/gitlab-ci-cd/)...). - Intégrer dans le processus de développement des outils permettant de vérifier l'état du projet de manière automatisée (qualité du code, tests de non régression...). Ces outils prennent aujourd'hui principalement la forme de **serveurs d'intégration continue** ([Jenkins](https://jenkins.io/), [Gitlab CI](https://about.gitlab.com/features/gitlab-ci-cd/)...).
---
### Mise en pratique
- Un point sur la qualification en général
- Les tests unitaires Javascript avec [Mocha](https://mochajs.org/#installation)
- Découverte des tests fonctionnels web avec [NightmareJS](https://github.com/segmentio/nightmare) et [Mocha](https://mochajs.org/#installation)
- Validation des règles de style Javascript avec [ESLint](https://eslint.org/)
- Mise en place d'un pipeline de validation avec [Gitlab CI](https://docs.gitlab.com/ee/ci/)
--- ---
## Empaqueter ("Package") ## Empaqueter ("Package")
- Choisir un système d'empaquetage pour la diffusion du logiciel (Simple archive ? Paquet GNU/Linux ? Images de conteneur, de machine virtuelle ?). - Choisir un système d'empaquetage pour la diffusion du logiciel (Archive compressée ? Paquet GNU/Linux ? Images de conteneur, de machine virtuelle ?).
- Implémenter l'empaquetage du logiciel à partir des sources. - Implémenter l'empaquetage du logiciel à partir des sources.
@ -97,6 +121,14 @@ William Petit - S.C.O.P. Cadoles
--- ---
### Mise en pratique
- Conteneurisation - découverte de [Docker](https://www.docker.com/)
- Empaquetage pour GNU/Linux - découverte de l'empaquetage pour [Debian](https://www.debian.org/index.fr.html)
- Création d'images de machines virtuelles - découverte de [Packer](https://www.packer.io/)
---
## Délivrer ("Release") ## Délivrer ("Release")
- Définir la méthodologie de diffusion des "artefacts" générés après la phase d'empaquetage. - Définir la méthodologie de diffusion des "artefacts" générés après la phase d'empaquetage.
@ -107,6 +139,14 @@ William Petit - S.C.O.P. Cadoles
--- ---
### Mise en pratique
- Calcul de somme de contrôle
- Signature cryptographique d'artefacts avec [GPG](https://gnupg.org/)
- Étiquettage d'images Docker et publication sur le dépôt [DockerHub](https://hub.docker.com/).
---
## Configurer ("Configure") ## Configurer ("Configure")
- Définir la méthodologie de déploiement du logiciel dans ses différentes cibles de déploiement (développement -> qualification -> production). - Définir la méthodologie de déploiement du logiciel dans ses différentes cibles de déploiement (développement -> qualification -> production).
@ -115,6 +155,13 @@ William Petit - S.C.O.P. Cadoles
--- ---
### Mise en pratique
- Découverte d'[Ansible](https://www.ansible.com/)
- Utilisation d'[Ansible Pull](https://docs.ansible.com/ansible/2.4/ansible-pull.html) pour le déploiement automatisé
---
## Superviser ("Monitor") ## Superviser ("Monitor")
- Vérifier que toutes les phases précédentes se déroulent comme prévues. - Vérifier que toutes les phases précédentes se déroulent comme prévues.
@ -122,3 +169,14 @@ William Petit - S.C.O.P. Cadoles
- Vérifier que les différentes cibles de déploiement sont opérationnelles avant et après mise à jour. - Vérifier que les différentes cibles de déploiement sont opérationnelles avant et après mise à jour.
- Générer des indicateurs concrets sur le comportement du logiciel afin d'améliorer ses fonctionnalités/performances dans la prochaine itération. - Générer des indicateurs concrets sur le comportement du logiciel afin d'améliorer ses fonctionnalités/performances dans la prochaine itération.
---
### Mise en pratique
- Découverte de Prometheus et principe des sondes applicatives
- Supervision avec Grafana
---
## Conclusion

View File

@ -0,0 +1 @@
!*.pdf