Chef est un outil utilisé pour la gestion de la configuration et est en concurrence étroite avec Fantoche . Dans ce blog, j'expliquerai ce qu'est Chef, la gestion de la configuration et comment Chef réalise la gestion de la configuration avec un cas d'utilisation.
Qu'est-ce que le chef?
Chef est un outil d'automatisation qui permet de définir l'infrastructure sous forme de code. Infrastructure as code (IAC) signifie simplement gérer l'infrastructure en écrivant du code (infrastructure d'automatisation) plutôt qu'en utilisant des processus manuels. Elle peut également être qualifiée d'infrastructure programmable. Chef utilise un langage DSL (Domain-Specific Language) pur Ruby pour écrire les configurations système. Voici les types d'automatisation effectués par Chef, quelle que soit la taille de l'infrastructure:
- Configuration de l'infrastructure
- Déploiement d'applications
- Les configurations sont gérées sur votre réseau
Comme Fantoche qui a une architecture maître-esclave même Chef a une architecture client-serveur. Mais Chef a un composant supplémentaire appelé Workstation. Je parlerai du poste de travail dans mon prochain blog. Reportez-vous au schéma ci-dessous:
Dans Chef, les nœuds sont mis à jour dynamiquement avec les configurations du serveur. C'est appelé Configuration d'extraction ce qui signifie que nous n'avons pas besoin d'exécuter ne serait-ce qu'une seule commande sur le serveur Chef pour pousser la configuration sur les nœuds, les nœuds se mettront automatiquement à jour avec les configurations présentes dans le serveur. Mon prochain blog sur Tutoriel du chef expliquera en détail l'architecture de Chef avec tous les composants de Chef.
Voyons maintenant les raisons de la popularité de Chef.
Qu'est-ce que Chef - Indicateurs clés du chef
- Chef prend en charge plusieurs plates-formes telles que AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows et Ubuntu. Les plates-formes client supplémentaires incluent Arch Linux, Debian et Fedora.
- Chef peut être intégré à des plates-formes cloud telles que Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure et Rackspace pour provisionner et configurer automatiquement de nouvelles machines.
- Chef dispose d'un support communautaire actif, intelligent et en croissance rapide.
- En raison de la maturité et de la flexibilité de Chef, il est utilisé par des géants comme Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School de l'Université de Pennsylvanie, Bonobos, Splunk, Citi, DueDil, Disney et Cheezburger.
Selon Phil Dibowitz, ingénieur de production, Facebook
«Il existe trois dimensions d'échelle que nous examinons généralement pour l'infrastructure: le nombre de serveurs, le volume des différentes configurations sur ces systèmes et le nombre de personnes nécessaires pour maintenir ces configurations. Chef a fourni une solution d'automatisation suffisamment flexible pour s'adapter à la dynamique de notre échelle sans nous obliger à modifier notre flux de travail. »
Sans aucun doute, Chef est l'un des outils de gestion de configuration les plus connus et est en concurrence étroite avec Fantoche . Mais avant de plonger profondément dans «Qu'est-ce que Chef», il est juste que j'explique d'abord ce qu'est la gestion de la configuration et pourquoi c'est important.
Gestion de la configuration
Ne vous inquiétez pas, il n'y aura pas de définition lourde de la gestion de la configuration dans ce blog :)
Comprenons la gestion de la configuration de cette façon - supposons que vous deviez déployer un logiciel sur des centaines de systèmes. Ce logiciel peut être un système d'exploitation ou un code ou il peut s'agir d'une mise à jour d'un logiciel existant. Vous pouvez effectuer cette tâche manuellement, mais que se passe-t-il si vous devez terminer cette tâche pendant la nuit, car demain pourrait être un Big Billion Day vente dans l'entreprise ou M ou Vente etc. dans lesquels un trafic intense est prévu. Même si vous étiez en mesure de le faire manuellement, il y a une forte possibilité d'erreurs multiples lors de votre grand jour. Que faire si le logiciel que vous avez mis à jour sur des centaines de systèmes ne fonctionne pas, comment allez-vous revenir à la version stable précédente, pourrez-vous effectuer cette tâche manuellement? AF-bien sûr pas!
Pour résoudre ce problème, la gestion de la configuration a été introduite. En utilisant des outils de gestion de la configuration tels que Chef, Puppet, etc., vous pouvez automatiser cette tâche. Tout ce que vous avez à faire est de spécifier les configurations dans un serveur centralisé et en conséquence tous les nœuds seront configurés. Il permet d'accéder à un historique précis de l'état du système à des fins de gestion de projet et d'audit. Donc, fondamentalement, nous devons spécifier les configurations une fois sur le serveur central et les répliquer sur des milliers de nœuds. La gestion de la configuration aide à exécuter les tâches ci-dessous de manière très structurée et simple:
- Déterminer quels composants changer lorsque les exigences changent.
- Refaire une implémentation car les exigences ont changé depuis la dernière implémentation.
- Revenir à une version précédente du composant si vous l'avez remplacé par une nouvelle version défectueuse.
- Remplacement du mauvais composant car vous ne pouviez pas déterminer avec précision quel composant devait être remplacé.
Il existe en gros deux façons de gérer vos configurations, à savoir les configurations Push et Pull.
- Configuration d'extraction: Dans ce type de gestion de la configuration, les nœuds interrogent périodiquement un serveur centralisé pour les mises à jour. Ces nœuds sont configurés de manière dynamique, ils extraient donc essentiellement des configurations du serveur centralisé. La configuration Pull est utilisée par des outils tels que Chef, Puppet, etc.
- Configuration push: Dans ce type de gestion des configurations, le serveur centralisé pousse les configurations vers les nœuds. Contrairement à Pull Configuration, certaines commandes doivent être exécutées dans le serveur centralisé afin de configurer les nœuds. La configuration push est utilisée par des outils comme Ansible.
Apprenez divers composants de la gestion de la configuration dans mon blog du didacticiel Puppet
C'est maintenant le bon moment pour vous emmener dans cette quête de compréhension de «Qu'est-ce que Chef» en expliquant comment Chef réalise la gestion de la configuration.
algorithmes de tri c ++
Qu'est-ce que Chef - Gestion de la configuration avec Chef
Nous avons compris ce qu'est Chef, je vais maintenant vous expliquer comment Chef réalise la gestion de la configuration avec un cas d'utilisation. Gannett est une société holding américaine de médias cotée en bourse. Il s'agit du plus grand éditeur de journaux américain, mesuré par le tirage quotidien total.
Le workflow de déploiement traditionnel de Gannett était caractérisé par de multiples transferts et tests manuels. Voyons quels ont été les problèmes auxquels ils ont été confrontés avec ce processus:
- Maintenir des builds précis et reproductibles était difficile.
- Il y avait de nombreux échecs de construction et les tests étaient souvent exécutés dans les mauvais environnements.
- Les délais de déploiement et de provisionnement peuvent aller de quelques jours à plusieurs semaines.
- L'équipe des opérations n'avait pas accès au cloud ni aux environnements de développement.
- Chaque groupe utilisait son propre ensemble d'outils, et il n'y avait aucune responsabilité en matière de finances ou de sécurité. Personne ne savait combien coûte réellement une application. La sécurité n'avait aucun moyen d'auditer les piles de logiciels.
Gannett était prêt pour le changement. Les développeurs souhaitaient déployer leurs applications rapidement. Les opérations voulaient une infrastructure stable où elles pourraient construire et déployer de manière répétable. Finance voulait connaître le coût réel d'une application. La sécurité voulait voir et auditer toutes les piles et pouvoir suivre les changements.
Gannett a vu que le cloud en tant que service offrait de nombreux avantages. Les développeurs avaient accès à des ressources standardisées. Il était plus facile de gérer le trafic de pointe grâce au modèle de calcul à la demande du cloud, et les transferts ont été minimisés.
Chef vous permet de provisionner et de déprovisionner dynamiquement votre infrastructure à la demande pour suivre les pics d'utilisation et de trafic. Il permet de déployer et de mettre à jour plus fréquemment de nouveaux services et fonctionnalités, avec peu de risque d'indisponibilité. Avec Chef, vous pouvez profiter de toute la flexibilité et des économies de coûts qu'offre le cloud.
Voyons quelles étaient les fonctions remplies par Chef chez Gannett:
- Gannett a commencé à créer un VPC (Virtual Private Cloud) pour un environnement de développement qui imiterait la production. Aucun des outils qu'ils utilisaient déjà n'était approprié. Mais ils ont constaté que Chef fonctionnait bien avec le cloud et les environnements Linux et Windows. Ils ont utilisé Chef pour créer un environnement de développement parfaitement adapté à l'environnement de production.
- Pour qu'une application se déplace dans le VPC, elle devait être provisionnée et déployée avec Chef.
- La sécurité serait impliquée dès le début et gérerait les contrôles obligatoires pour l'accès à Chef et pour le maintien des normes de sécurité du système.
Il est maintenant temps de comprendre quels ont été les résultats de ce processus:
- Le déploiement de Gannett est devenu plus rapide et plus fiable. Le provisionnement et le déploiement des applications, qui prenaient autrefois des semaines, après avoir utilisé Chef, cela prenait quelques minutes.
- Toutes les nouvelles applications ont été déployées sur le cloud avec Chef. Ces applications ont été déployées dans tous les environnements de la même manière qu'elles ont été déployées en production. De plus, des tests ont eu lieu dans chaque environnement, afin que les déploiements soient fiables.
- Toute l'infrastructure a été traitée comme du code, ce qui augmente considérablement la visibilité sur les changements survenus. Le développement, les opérations, la sécurité et les finances en ont tous bénéficié.
Après ' Qu'est-ce que le chef 'Mon prochain blog, c'est-à-dire Tutoriel du chef se concentre sur l'architecture de Chef avec ses composants. J'ai également expliqué comment déployer Apache2 à l'aide de Chef.
Si vous avez trouvé ce blog sur ' Qu'est-ce que le chef 'Pertinent, Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka DevOps aide les apprenants à acquérir une expertise dans divers processus et outils DevOps tels que Puppet, Jenkins, Nagios et GIT pour automatiser plusieurs étapes dans SDLC.