Fermer

mars 28, 2019

Chef Habitat – La clé des applications d'auto-conduite


L’une des technologies les plus récentes et les plus convaincantes de Chef Software est un projet appelé Habitat. Une grande partie des premiers messages et des cas d’utilisation autour d’Habitat ont laissé l’impression que c’était simplement une autre façon de construire des conteneurs d’applications. En réalité, Habitat est beaucoup plus et pourrait être assez perturbant en ce qui concerne la façon dont nous sommes habitués à gérer des applications. Bien qu'Habitat vous permette de créer un paquet avec toutes les dépendances d'application incorporées, comme un conteneur, la différence est ce qui se produit après le déploiement. Habitat offre un environnement permanent pour vos applications où, dans un certain sens, les services peuvent vivre se développer et réagir à d'autres événements du cycle de vie dans une maison sécurisée, quel que soit le système d'exploitation sous-jacent ou l'exécution cible. Les applications traditionnelles ne sont pas redéployées sur une cible au sens traditionnel du terme, mais elles peuvent toujours être mises à jour à mesure que les modifications stables sont promues en version. Les applications et les services deviennent autonomes.

Dans ce billet, je propose quelques notions de base sur Chef et la présentation des objectifs généraux d’Habitat, ainsi que sur certains aspects clés du projet, qui soulignent pourquoi il vaut la peine d’être envisagé. Initiative d'amélioration DevOps.

Automatisation de Chef et d'infrastructure

Chef est particulièrement connu pour son orientation vers l'automatisation continue et ses capacités clés, telles que l'infrastructure comme le code, la gestion de la configuration et les tests de conformité continus. Les entreprises écrivent des livres de recettes Chef pour normaliser les configurations de serveur de base, renforcer la sécurité du système d'exploitation et appliquer des mises à jour à chaque couche de la pile. Chef est assez puissant et a toujours été une solution convaincante: exécutez simplement chef-client périodiquement, exécutez une liste d'exécution par défaut et regardez tout converger vers une recette. Le problème est peut-être que l'installation et la configuration sont si nombreuses avant de pouvoir déployer votre application, ce qui est tout ce qui compte vraiment pour nous au final. Ce n’est pas un problème de chef c’est la nature même du déploiement d’applications, comme nous l’avons toujours su. Par conséquent, nous écrivons naturellement des livres de recettes selon une approche très ascendante et aboutissons à de nombreuses automatisations axées sur les dépendances des systèmes d’exploitation, des systèmes d’exploitation et des applications.

Application Automation with Habitat

Le premier objectif d’Habitat est de défier les infrastructure en premier, état d’application ultérieur. Entrez dans la salle blanche et déclarez explicitement ce que votre application doit exécuter. La salle blanche est meublée avec un ensemble simple d’utilitaires de base: des binaires Habitat, bash, diffutils less, marque, mg, vim, fichier, glibc grep, [19659015] gzip openssl sed, wget et une poignée d'autres (sur Windows, la salle blanche est équipée de binaires Windows comparables). Il n'y a pas de compilateurs préinstallés ni de dépendances communes, et le but est de fournir un ensemble minimal d'outils raisonnable. Pour obtenir une liste complète des outils, entrez dans Habitat Studio et vérifiez la variable d’environnement PATH. En fin de compte, la salle blanche garantit que rien n'est déployé sur vos serveurs sans être explicitement déclaré. Moins de lourdeur, une chaîne d’approvisionnement plus étroite et un point de vue très centré sur les applications. En attendant, votre infrastructure n'a besoin que du minimum de base pour exécuter Habitat. Cela équivaut à peu près à FROM scratch dans un Dockerfile et à la copie d'une seule application binaire dans l'image, sauf avec plus de souplesse. Soudainement, la construction du serveur est considérablement simplifiée et les installations de système d'exploitation sont réduites au minimum, puisque Habitat s'assure que tout ce dont votre application a besoin est présent au moment de l'exécution (tiré de Habitat Builder). Cela est vrai même pour les applications Windows avec des dépendances absolues sur des DLL ou des configurations de registre présentes uniquement dans les anciennes versions de Windows. Habitat ne se soucie vraiment pas de l'OS sous-jacent si les exigences pour gérer Habitat sont remplies, ce qui signifie que vous n'avez pas besoin de trop vous préoccuper de l'OS sous-jacent:

 Habitat retourne la modèle traditionnel de déploiement d'applications ascendantes et vous permet plutôt de vous concentrer uniquement sur l'automatisation des applications. Pour rappel, le premier objectif de Chef Habitat est de défier la mentalité séculaire selon laquelle vous devez d'abord vous préoccuper du système d'exploitation ou du middleware. déployer votre application. Le deuxième motif derrière Habitat est de changer la façon dont les logiciels sont gérés après le déploiement. Un paquet Habitat n'est pas l'état final. Au lieu de cela, Habitat vous offre un état final amélioré via Habitat Builder (qui inclut le paquet Depot) et des superviseurs. Le point culminant est «une demeure confortable pour votre code» qui peut être perçu comme un arrangement vivant perpétuel pour votre application. Les applications sont packagées dans une maison portable qui peut être déployée à tout moment. Dans cette maison, votre application est surveillée en permanence, capable de se recharger, de redémarrer / de se mettre à jour et de répondre à d’autres événements du cycle de vie sans intervention. Pour réaliser cet état final perpétuel et amélioré, il vous suffit d’un plan d’habitat bien rédigé. L'image suivante illustre un flux de création de package initial dans Chef Habitat:

 Cette image représente un flux de création de package dans Habitat.

Le plan de l'habitat ( plan.sh ou plan.ps1 [PS4]. ) est l'endroit où tout commence. Les dépendances des applications sont déclarées dans le plan et divers événements de cycle de vie sont également implémentés ici. Lors de la création d'un plan d'habitat, un fichier d'artefact d'habitat, ou fichier HART, est produit. C'est l'artefact que vous devez maintenant stocker dans un référentiel de paquets. Les fichiers HART peuvent être déployés tels quels sur tout serveur exécutant Habitat. À partir d'un fichier HART, vous pouvez également exporter votre application vers d'autres formats d'exécution: Docker, Kubernetes, Cloud Foundry, un fichier TAR et d'autres. Après un déploiement initial, les services Habitat Builder travaillent en étroite collaboration avec Depot pour exécuter des événements de cycle de vie pour votre application, sur la base des notifications du superviseur Habitat, qui fournit une surveillance continue de vos applications.

Nous nous trouvons désormais en position de déploiement. notre objectif de choix et laisser Habitat prendre le relais à partir de là. Au fur et à mesure que les mises à jour des applications deviennent disponibles, ces versions peuvent être construites et transférées au dépôt de constructeur, puis récupérées sur nos serveurs lors de la promotion sur un canal stable. Nous n'avons plus besoin de redéployer des applications dans le sens habituel. Au lieu de cela, le cycle de vie des applications est rationalisé et géré pour nous, car nous sommes convaincus que notre plan Habitat sait comment réagir à différents événements (comme une promotion). Chef Habitat est la clé des applications à auto-conduite.

Perficient Can Help

Nous vivons dans un monde où nous déployons des applications sur une infrastructure, puis cherchons des moyens de surveiller et d'automatiser nos applications à partir de là. L'infrastructure n'a généralement pas une connaissance de premier ordre de votre application. C’est l’objectif ultime de de Chef Habitat: emballer nos applications une fois, les déployer avec des crochets supplémentaires et une intelligence intégrée, puis revenir à l’écriture de logiciels. Chez Perficient, nous sommes enthousiasmés par Habitat et par la possibilité d’aider les organisations à démarrer. Parallèlement à Chef Software, nous souhaitons améliorer la façon dont les organisations déploient et gèrent les logiciels en mode sauvage, une application à la fois.




Source link