Post on 20-Jul-2015
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
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 ...
Les recettes
Recipes
Templates
Attributs
Files
Metadata
cd recipes ls -l
default.rb iptables.rb logrotate.rb mpm_prefork.rb mpm_worker.rb mod_php5.rb mod_*.rb
Les fichiers
Recipes
Templates
Attributs
Files
Metadata
cd files/default/ ls -l
apache2_module_conf_generate.pl
Rôle: Serveur Web / Env: Production
Apache / php-5.5
Recipes
Templates
Attributs
Files
Metadata
Apache2
Recipes
Templates
Attributs
Files
Metadata
iptables
Recipes
Templates
Attributs
Files
Metadata
logrotate
PRODUCTION: Attributs de remplacementNode Rôle: WebServer
RO L E
Chef Développement Kit● Installation de chef-dk
o Berkself o Knife o ChefSpec o Test-Kitchen o Serverspec o Foodcritic
Rôle: Sandbox / Environnement: Dev
mon_org-webserver
mon_org-index
mon_org-database
Composer NodeJs
Recipes
Templates
Attributs
Files
Metadata
Recipes
Templates
Attributs
Files
Metadata
Recipes
Templates
Attributs
Files
Metadata
Recipes
Templates
Attributs
Files
Metadata
Recipes
Templates
Attributs
Files
Metadata
mon_org-webserver mon_org-Index mon_org-database composer nodejs
DEVELOPPMENT: Attributs de remplacementNode Rôle: Sandbox
RO L E
● 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é
Orchestration de l’infrastructureTesting
Development
Vagrant
Feature branch
develop branch
revision branch
Staging
Production
CI/CD
prepare test package
prepare test package
prepare test package