Nous verrons comment construire un environnement de développement et de production à la demande en utilisant Amazon Web Service, Chef, Vagrant et Docker.
Qui suis-je
● Oswald De Riemaecker
● CEO / Co-Founder de Continuous S.A.
o Agile Delivery
o Editeur PaaS continuousphp
● Agiliste, Architecte Cloud
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
Culture DevOps
● Agilité + Opération
● 3 piliers principaux:
o Infrastructure as Code (IaC)
o Livraisons/Déploiement Continue
o Culture de la coopération
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
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 ...
Chef
● Chef est un outil open-source
● Gestion l’automatisation de systèmes et d’infrastructure.
● Chef est basé sur Ruby
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
Chef Client / Serveur
Node
NodeNodeNode
Node Node
Chef
Serveur
chef-client
Ressources
Cookbooks Chef
● Les cookbooks contiennent les artefacts de nos ressources
Recipes
Templates
Files
Attributs Etats des ressources
Cookbooks Chef
● Les cookbooks contiennent les artefacts de nos ressources
Recipes
Templates
Files
Attributs Etats des ressources
Installation/configuration des ressources
Cookbooks Chef
● Les cookbooks contiennent les artefacts de nos ressources
Recipes
Templates
Files
Attributs Etats des ressources
Installation/configuration des ressources
Templates de configuration
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
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
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
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 ...
● 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é
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 …
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
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, …)
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 …
● 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é