PRÉSENTATION DE BOSH Par Vmware PRÉSENTATION DE BOSH
Total Page:16
File Type:pdf, Size:1020Kb
LIVRE BLANC – AOÛT 2017 PRÉSENTATION DE BOSH par VMware PRÉSENTATION DE BOSH Sommaire Qu’est-ce que BOSH ? ........................................................................................................ 3 Présentation de BOSH...............................................................................................................3 Quels problèmes BOSH permet-il de résoudre ? .........................................................4 Cas d’usage de BOSH ................................................................................................................6 Déploiement de BOSH .......................................................................................................8 Architecture de BOSH ...............................................................................................................8 Informations de référence sur BOSH .................................................................................8 Instructions : Comment déployer Kubo sur vSphere .............................................9 Procédure de déploiement de BOSH (pour Mac OSX) ...........................................9 Procédure de déploiement de Kubo sur BOSH .........................................................10 LIVRE BLANC | 2 PRÉSENTATION DE BOSH Qu’est-ce que BOSH ? Présentation de BOSH BOSH est un outil Open Source qui permet d’assurer le déploiement et de gérer le cycle de vie des systèmes distribués. Principale méthode de déploiement de Cloud Foundry, BOSH bénéficie de la contribution de nombreux membres éminents de la Cloud Foundry Foundation, dont Google, Pivotal et VMware. Cet outil prend en charge les déploiements de nombreux fournisseurs IaaS, parmi lesquels : • VMware vSphere • Google Cloud Platform • Amazon Web Services EC2 • Microsoft Azure • OpenStack 4 Manifeste de déploiement BOSH 3 Réseau(x) Réseau(x) Release BOSH 1 CPI-vSphere VM de VM de VM de VM de VM de Stemcell BOSH travail travail travail travail travail 2 BOSH vSphere Déploiement BOSH actif 5 Figure 1 : Présentation de BOSH BOSH réalise les déploiements en créant plusieurs grandes abstractions qui permettent de gérer le déploiement de systèmes complexes de manière simple et reproductible (voir la figure ci-dessus) : 1. CPI : L’interface de fournisseur de Cloud, ou CPI, est la bibliothèque d’exécutables que BOSH utilise pour interagir avec une infrastructure IaaS déterminée. Il existe une CPI pour chaque infrastructure IaaS prise en charge par BOSH, et vous pouvez spécifier la ou les CPI qui seront utilisées par la ou les instances de BOSH lors du déploiement de ces instances. Dans l’illustration ci-dessus, c’est une CPI vSphere qui est représentée. Celle-ci permet à BOSH d’effectuer toutes les actions IaaS requises, telles que la création d’une VM ou d’une instance, ainsi que des diverses primitives d’instance, de réseau ou de stockage nécessaires pour instancier un déploiement. LIVRE BLANC | 3 PRÉSENTATION DE BOSH 2. Stemcell BOSH : Une stemcell est une image de système d’exploitation de base versionnée. Une stemcell est générée pour chaque CPI prise en charge par BOSH. Généralement basée sur la distribution Ubuntu de Canonical, elle est également disponible en tant que portage d’image RHEL ou même Windows. La stemcell est le plus souvent une image de système d’exploitation de base renforcée comportant un agent BOSH prédéployé. BOSH a notamment recours à cet agent pour l’installation de logiciels sur la VM concernée et la gestion de leur cycle de vie. 3. Release BOSH : Une release BOSH correspond à un fichier tarball versionné qui contient la totalité du code source et des définitions de travaux nécessaires pour indiquer à BOSH comment la release concernée du logiciel doit être déployée sur une VM ou une instance provisionnée à partir d’une stemcell. À titre d’exemple, la release Kubo comprend l’ensemble des packages et des détails dont BOSH a besoin pour déployer un cluster Kubernetes entièrement fonctionnel. 4. Manifeste de déploiement BOSH : BOSH ne peut effectuer un déploiement qu’après avoir reçu certaines informations déclaratives. Celles-ci lui sont fournies par un opérateur via un manifeste. Un manifeste définit la ou les releases et stemcells à utiliser dans un déploiement, et fournit un ensemble de variables clés telles que les informations sur la pile IP, le nombre d’instances et les paramètres de configuration avancée de la ou des releases à déployer. Ce manifeste présente généralement le format YAML. 5. Déploiement BOSH : BOSH a besoin de certaines informations déclaratives pour effectuer un déploiement. Celles-ci lui sont fournies par un opérateur via un manifeste de déploiement et un manifeste cloud-config. Ces manifestes présentent généralement le format YAML. – Manifeste cloud-config : Ce fichier YAML est propre à une infrastructure IaaS déterminée, définie par les propriétés mises à disposition dans sa CPI. Il fournit la définition de divers éléments, tels que les réseaux, les tailles de VM, les emplacements de stockage et les mappages de zone de disponibilité. Ce manifeste est de type global, ce qui signifie qu’il ne peut y en avoir qu’une seule instance par système BOSH, et que plusieurs manifestes de déploiement peuvent y faire référence. – Manifeste de déploiement : Ce manifeste fait référence aux objets définis dans le manifeste cloud-config en s’attachant aux propriétés associées aux releases. Les manifestes définissent la ou les releases et stemcells à utiliser dans un déploiement, et fournissent un ensemble de variables clés telles que le nombre d’instances et les paramètres de configuration avancée de la ou des releases à déployer. Cela permet le portage des manifestes de déploiement d’une CPI à une autre. Quels problèmes BOSH permet-il de résoudre ? BOSH permet aux développeurs de releases1 d’assurer le suivi des versions, le packaging et le déploiement des logiciels d’une manière simple et reproductible. Les opérateurs ont la possibilité de consommer des releases BOSH avec la garantie de pouvoir reproduire les déploiements avec des résultats prévisibles dans différents environnements. À cette fin, BOSH permet aux développeurs de releases de se concentrer sur la fourniture de plusieurs fonctionnalités clés lors de la génération d’une release : • Caractère identifiable L’opérateur doit avoir la possibilité de documenter le déploiement du logiciel et de ses versions. Par nature, une release BOSH impose au développeur de déclarer et packager tous les éléments qu’elle contient. La release elle-même doit également être versionnée. L’opérateur a ainsi une parfaite connaissance des éléments déployés, et la possibilité de mettre à niveau ou déclasser les logiciels contenus dans une release de manière cohérente. 1 Un développeur de releases est un développeur chargé de packager les logiciels destinés à être déployés par BOSH. LIVRE BLANC | 4 PRÉSENTATION DE BOSH Exemple : Dans la Figure 2, l’opérateur qui définit un déploiement peut se référer à plusieurs releases BOSH versionnées spécifiées dans un manifeste de déploiement. Il est ainsi en mesure d’identifier les versions logicielles utilisées. Dans cette image, BOSH met à disposition deux versions de la release Kubo : la version 0.0.5 et la version 0.0.6. L’opérateur a opté pour la version 0.0.5 de la release indiquée dans le manifeste de déploiement, ce qui entraînera l’utilisation de Kubernetes version 1.6.6 à l’échelle du déploiement nommé « mykubo-deployment ». Nom: mykubo-deployment releases: Manifeste de - Nom: kubo-release déploiement version: 0.0.5 BOSH - Nom: docker version: 28.0.1 Release BOSH: kubo-release Version: 0.0.5 Package(s): kubernetes: kubernetes-1.6.6/* nginx: nginx/ Réseau(x) nginx-release-1.11.4.tar.gz CPI-vSphere VM VM VM Release BOSH: kubo-release KBS KBS KBS Version: 0.0.6 V1.6.6 V1.6.6 V1.6.6 BOSH Package(s): kubernetes: kubernetes-1.7.1/* vSphere nginx: nginx/nginx-release-1.11.4.tar.gz Déploiement BOSH actif mykubo-deployment Figure 2 : Caractère identifiable garanti par BOSH * Reproductibilité Autre aspect fondamental de la production logicielle pris en charge par BOSH : la reproductibilité. Du point de vue de l’opérateur, les logiciels doivent être déployés de la même manière dans tous les environnements pour garantir la stabilité opérationnelle. Exemple : Dans la Figure 3 (page suivante), un manifeste unique permet de déployer Kubernetes de manière homogène, c’est-à-dire d’assurer le même déploiement fonctionnel avec les mêmes releases dans différents environnements. En utilisant l’abstraction CPI, il est même possible de cibler les environnements de différents fournisseurs IaaS. Le manifeste de déploiement simplifié et partiel illustré dans cette image indique quelle stemcell BOSH, quelle release BOSH et quelles propriétés de configuration doivent être utilisées pour déployer des clusters Kubernetes fonctionnellement identiques dans deux environnements différents. LIVRE BLANC | 5 PRÉSENTATION DE BOSH Déploiement BOSH actif mykubo-deployment Nom: mykubo-deployment releases: - Nom: kubo-release version: 0.0.5 BOSH A nom du réseau vpc = alpha - Nom: docker version: 28.0.1 CPI-AWS - Nom: kubo-etcd etcd etcd master master worker worker worker version: 2 stemcells: vSphere - alias: trusty os: ubuntu-trusty version: latest Manifeste de instance_groups: déploiement - Nom: etcd BOSH instances: 2 network: alpha nom du groupe de ports vSphere = alpha azs: [az1] jobs: alpha CPI-vSphere - Nom: etcd etcd etcd master master worker worker worker release: kubo-etcd properties: [ ] BOSH B vSphere stemcell: trusty - Nom: master instances: