Nous verrons comment construire un environnement de développement et de production à la demande en utilisant Amazon Web Service, Chef, Vagrant et Docker.
2. Qui suis-je
● Oswald De Riemaecker
● CEO / Co-Founder de Continuous S.A.
o Agile Delivery
o Editeur PaaS continuousphp
● Agiliste, Architecte Cloud
3. Culture Agile
● Amélioration au niveau de l’équipe de développement
o Meilleure collaboration
o Amélioration continue
o Toutes les compétences/Pas de silos
o Framework de tests et intégration continue
● Amélioration au niveau gestion de produit Agile
o Développement itératifs
o Découpage en fonctionnalités
o Maximisation de la valeur
o MVP/Lean Startup
4. Culture DevOps
● Agilité + Opération
● 3 piliers principaux:
o Infrastructure as Code (IaC)
o Livraisons/Déploiement Continue
o Culture de la coopération
5. Infrastructure as Code
● Coder les ressources des machines de l'infrastructure
● Coder et versioner l’infrastructure
● Tester les ressources et l’infrastructure
● Reconstruire les machines et l’infrastructure à la demande
10. Complexité
● Maintenir une infrastructure est complexe
● Elle vit et évolue
o Ajouts de ressources
o Mise à jour ressources
o Patches de Sécurité
o Changer/Mise à jour d’OS
o ...
12. Chef
● Chef est un outil open-source
● Gestion l’automatisation de systèmes et d’infrastructure.
● Chef est basé sur Ruby
13. Chef
● Les nodes représentes les serveurs dans votre infrastructure
● Les nodes peuvent être:
o serveurs physique
o serveurs virtuel
o instances dans le cloud
● Chaque nodes appartient à:
o une organisation
o un environnement
o a un ou plusieurs rôles
Node
NodeNodeNode
Node Node
14. Chef Client / Serveur
Node
NodeNodeNode
Node Node
Chef
Serveur
chef-client
Ressources
15. Cookbooks Chef
● Les cookbooks contiennent les artefacts de nos ressources
Recipes
Templates
Files
Attributs Etats des ressources
16. Cookbooks Chef
● Les cookbooks contiennent les artefacts de nos ressources
Recipes
Templates
Files
Attributs Etats des ressources
Installation/configuration des ressources
17. Cookbooks Chef
● Les cookbooks contiennent les artefacts de nos ressources
Recipes
Templates
Files
Attributs Etats des ressources
Installation/configuration des ressources
Templates de configuration
18. Cookbooks Chef
● Les cookbooks contiennent les artefacts de nos ressources
Recipes
Templates
Files
Attributs Etats des ressources
Installation/configuration des ressources
Templates de configuration
Fichiers de configuration/script
20. Approvisionnement de Role
Node
Role: Base de
données
Chef
Serveur
Hey, je suis du rôle “Base de données”
et mon environnement “Development”
Chef clientRecipes
Templates
Attributs
Files
Cookbook Recipes
Templates
Attributs
Files
Cookbook
21. Exemple d’infrastructure
● Serveur Web - Apache 2.4/PHP-5.5
● Serveur de base de donnée - MySql
● Serveur d’index - Solr Web
Serveur
Solr
mysql
23. Analyse du Cookbook Apache
● Support plusieurs plates-formes
● Support version d’apache
● Attributs:
o dir, docroot_dir
o log_dir, error_log, access_log
o default_modules
o version
o ...
24. Support et dépendances Cookbook
Recipes
Templates
Attributs
Files
Metadata
Dépendance(s)
50. ● Cookbooks par rôle de l’infrastructure
● Cookbook spécifique à l’environment de développement
o utilise les cookbooks des rôles de l’infrastructure
● Reproduction fiable de l’approvisionnement des rôles de l’infrastructure:
o Codé
o Versionné
o Testé
o Déployé
Approvisionnement Résumé
53. Vagrant
● Créer et configurer des environnements de développement
● Providers (Drivers)
o Virtualbox/VMWare
o Docker
o Instance EC2
● Approvisionnement avec:
o Chef Client/Solo
o Docker
o Puppet Agent
o …
57. Infrastructure Immuable
● Avantages:
o Economie du temps perdu lors de l’approvisionnement
o Plus de maintenance de serveurs => Remplacement
o Image machine statique pré-construites et testées
o Retour aisé à une version précédente
V1
V2
V3
Data
58. Packer
● Packer
o Builders (Amazon AMI, Microsoft Azure, DigitalOcean, Docker,
Google Compute Engine, …)
o Provisioners (Shell script, Chef client, Ansible, Puppet, Salt, …)
o Post-processor (Docker-push, Vagrant, Atlas, …)
65. AWS CloudFormation
● Manière simple de créer et gérer un regroupement de ressources AWS
● CloudFormation s’occupe des dépendances
● Une fois les ressources déployées, vous pouvez les modifier et les mettre à jour de
manière prévisible et contrôlée
● AWS CloudFormation prend en charge les ressources suivants :
o Auto Scaling/Elastic Load Balancing
o VPC
o EC2
o RDS
o IAM
o …
77. ● Approvisionnement de nos machines
● Infrastructure Immuable
o Images statiques
● Utilisation Images dans Cloud Formation AWS
● Paramètre d’environnement Cloud Formation
● Nous pouvons maintenant utiliser nos artefacts pour construire nos
différents environments
Infrastructure Résumé