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

By eon01

SaltStack For DevOps

  • 823