SaltStack For DevOps
- Il est plus possible d'attendre 6 mois avant de livrer un produit en production
- Une application Android doit être mis à jour dès la sortie d'une nouvelle version d'Android
- Le marketing ne peut pas attendre et le time-to-market a de plus en plus d'importance
- Les produits d'aujourd'hui se basent sur des API tiers
- Les méthodes classiques pèsent sur le budget de l'entreptise
- Une étude (2014) par IDC/AppDynamics: plus de 43 % des entreprises ont adopté une pratique devOps, et 40 % évaluent activement DevOps
- De 1,9 milliards de dollars en 2014, le Gartner estime que le marché des technologies de DevOps pourrait atteindre 2,3 milliards de dollars cette année.
- DevOps : des leçons de l'efficacité venant de sociétés acteurs du web, telles que Google, Amazon ou Yahoo
- Gartner: « en raison des changements rapides dans l’environnement économique aujourd’hui, DevOps peut aider les organisations qui avancent pour implémenter une stratégie bimodale supportant leurs efforts de numérisation »
DevOps
DevOps
Bénéfices DevOps observés sur le terrain
- Déploiment plus fréquent des produits
- Plus de collaboration entre les départements
- Réduction des dépenses
- Disponibilité et portabilité d'un produit
- Amélioration de la qualité logicielle
- Moins de main d'oeuvre IT
- Hausse du nombre de clients
- Réduction du time to market
- Augmentation du chiffre d'affaire
Environnement technique
- Source code management
- Intégration & déploiement continue
- Packaging et artifacts
- Virtualisation, contenaires & provisionning
- Cloud: PaaS, SaaS & IaaS & orchestration
- Gestion de configuration
- Service discovery
- Logging & Monitoring
DevOps
Gestion de configuration et automatisation DataCenter
- Mécanismes pour gérer la description technique d'un système
- Le déploiement du code source sur plusieurs environnements demande une gestion de configuration et de provisionning
- Avec l'adoption des méthodes agiles en développement, les processus de développement, de test et de déploiement ont aussi adopté des méthodes "agiles".
- "Agilifier" les méthodes de management, automatiser les procédures et adopter des méthodes de gestion de changement
- L'automatisation est l'évolution naturelle de l'informatique et possède une grande importance dans le cycle de vie d'un produit (provisioning, change management, release management, patch management, compliance and security.)
SaltStack
-
SaltStack améliore fondamentalement les méthodes utilisées par les sysadmin, intégrateurs et DevOps pour configurer et gérer tous les aspects d'une infrastructure d'un Datacenter moderne
-
Il est construit sur une plate-forme relativement rapide tout en permettant la télécommande des infrastructures distribuées, du code et des données.
-
L'infrastructure a gérer: des machines virtuelles, cloud (instances Amazon EC2, Rackspace ..etc) ou des machines physiques ainsi les produits hébergé la dessus.
-
SaltStack est portable : Linux, Solaris, BSD, Windows.
Introduction
- Un ou plusieurs “salt-master”, “salt-minion” et “salt-syndic”
- Un système de gestion de clés “salt-key” qui permet l'authetification sécurisé entre un master et un slave (minion)
- Un système de “states” pour décrire les différentes configurations
- Un fichier “top.sls” qui fait l'appel à des “states”
- Une notion de “grain” pour gérer les données de configuration sur chaque machine cible
- Un système de “pillars” où on enregistre les données sensibles sur le master
- Une couche de transport et de gestion de données “ZeroMQ”
- Un gestionnaire d'évènements “reactors”
- D'autres notions comme “returners”, “outputters” ..etc
Installation
- wget -O - http://bootstrap.saltstack.org | sudo sh
- Possibilité d'installer les dernières versions (développement) sur github
- Installation des masters, des minions et des syndics
- Code source disponible sur : https://github.com/saltstack/salt
Troubleshooting
-
Une liste de prérequis doit être vérifié avant de lancer Salt
-
Dépendances respectés
-
Version de python
-
salt-master en mode root
-
Communication, ports d'éxécution
-
Infrastructures et réseaux : firewall, iptables, ports ..etc
-
Concepts de base
-
Salt se base sur quelques concepts, quelques outils externes et un jargon spécifique:
-
Python & YAML & Jinja
-
salt-master & salt-minion & salt-syndic & salt-key
-
Grains & Targeting grains
-
Saltutil
-
Outputters
-
States & Top file
-
Pillars
-
Remote execution
-
Reactors
-
Topologie basique
Extension des topologies
Authetification
Authetification
Communication
- Activation des commandes à distance
- Exécution parallèle plutôt que sérielle
- Les communications sont chiffrées
- ZeroMQ est rapide et sécurisé
- Capable de gérer des grandes infrastructures personnalisées
- Consommation bande passante et rapidité
SaltStack For DevOps
-
“SaltStack for DevOps” disponible sur :
https://leanpub.com/saltstackfordevops -
Extrait disponible sur :
http://bitly.com/1AKdhRGAymen El Amri
www.eon01.com
@eon01
SaltStack For DevOps
By eon01
SaltStack For DevOps
- 927