Je pense que le fait de venir d'un milieu de développeurs rendra plus délicat le fait de devenir un "devops", votre question date de presque 3 ans donc il serait intéressant de savoir comment vous trouvez le voyage, je vais donner une réponse du point de vue de l'administrateur système sur les applications que vous avez mentionnées ci-dessus et j'espère que cela apportera un peu de lumière, ou donnera une perspective non technique qui permettra d'expliquer pourquoi une personne (admin ou dev) commencerait à considérer exactement ce que vous avez demandé, par ex. par exemple, du point de vue du devops, quelle est la relation entre x, y, z ? Ces outils sont-ils plus importants que la somme de leurs parties ?
En fait, je pense que les administrateurs système ont le dessus ici, la plupart des applications que vous mentionnez dans votre question résolvent les " problèmes " des administrateurs et, ce faisant, fournissent un environnement de centre de données plus abstrait, qui est à son tour plus programmable pour les développeurs et la nouvelle stratégie " devops " (lire stratégie/équipe, devops n'est pas une personne). Quelle est donc la relation avec les applications que vous mentionnez ? Comment cela fournit-il une approche holistique du service informatique ?
OpenStack : A donc comparable à quelque chose comme AWS
C'est ce qu'il est, mais qu'est-ce qu'il fait ? - Le système d'exploitation le mieux nommé était D.O.S. - il faisait fonctionner votre disque en abstrayant le BIOS, OpenStack fait fonctionner votre centre de données et abstrait votre infrastructure (IaaS - est le jargon pour le système d'exploitation du centre de données). Maintenant, votre centre de données dispose d'une API, d'une syntaxe de commande et d'une interface graphique, OpenStack peut piloter des hyperviseurs, des commutateurs, des routeurs, des pare-feu, des réseaux de stockage, des équilibreurs de charge, des hôtes Docker, etc. OpenStack utilise le "plugin" du fabricant de votre matériel. o la fonction particulière peut exister uniquement dans le logiciel en tant que logiciel défini quelque chose ou la virtualisation des fonctions réseau. En plus de cela, OpenStack, et tous les autres clouds, peuvent orchestrer leur propre infrastructure en lisant les scripts que vous lancez au moteur d'orchestration ou sont déclenchés sur la base de règles (scale up, scale down etc.). Ainsi, openstack est une couche géante d'abstraction, par exemple, je ne me soucie pas du commutateur que j'ai, donnez-moi un réseau avec ce ou, construisez-moi un système compliqué d'équilibrage de la charge, HA, disponible publiquement, mise à l'échelle automatique, nom de domaine enregistré, stockage attaché. bidule - avec ce script que j'ai trouvé sur internet.
Docker : Une "VM légère", basée sur quelques concepts du noyau Linux, qui peut être utilisée pour exécuter des processus de manière isolée, par exemple dans un environnemen d'hébergement web partagé.
Docker est une autre couche d'abstraction et, comme le nuage est une technologie perturbatrice, il est en train de changer le secteur parce qu'il résout de nombreux "problèmes" opérationnels comme les dépendances logicielles, les mises à niveau, l'isolement des données et la portabilité pure et simple. Java est devenu populaire en raison de la portabilité de son code source, à laquelle les développeurs n'avaient pas à réfléchir : une JVM en fonctionnement signifiait que leur code devait fonctionner sur la machine à café, pour autant qu'elle supporte Java. Docker résout un problème similaire. Pour exécuter mon application, vous avez besoin d'un hôte Docker, no L'application a toujours ces dépendances, bien sûr, mais l'hôte sous-jacent s'en moque et l'administrateur ne se soucie pas de ce que vous faites à l'intérieur d'un conteneur isolé (jusqu'à un certain point). Docker change à la fois le paradigme du développement et celui des opérations, en traitant un système d'exploitation entier et ses services comme un binaire. nous pouvons les obtenir à partir d'un référentiel les versions, les modifier, les exécuter avec des paramètres, etc.
Chef : Un outil pour installer et configurer un système d'exploitation, par exemple dans une VM.
Oui, et pas aussi perturbant que les deux premiers, Chef, Puppet, ansible, salt, system center operations manager et une pléthore massive d'autres applications dans cet espace fournissent un moyen pour les développeurs et les administrateurs de modéliser les déploiements, les mises à niveau et d'autres actions (changements de configuration), il ne semble pas y avoir d'organisme de normalisation qui surveille ces efforts comme il y a pour le nuage . Mais nous n'avons pas affaire à quelque chose d'aussi définitif que l'infrastructure, il est donc plus douloureux d'apprendre celles-ci et peu de choses sont transférables de l'une à l'autre.
Vagrant : D'après ce que j'ai compris, c'est pour automatiser la création et la gestion de VMs : Les configurer, les démarrer et les arrêter. Cela peut être fait à l'aide d'une VM locale ou à distance, par exemple sur une plateforme en nuage.
C'est l'intrus dans la liste des applications que vous mentionnez, Vagrant est un outil pour les développeurs et un jouet pour les administrateurs, vous pouvez rapidement mettre en place un environnement de développement avec vagrant, par exemple, je veux développer une application Android, prendre un IDE de vagrant, je pense qu'il sera bientôt dépassé par Docker.
Pouvez-vous me donner des conseils sur la façon de faire face à la situation ? beaucoup en même temps, et je ne sais pas encore par où commencer) ?
C'est pourquoi je pense que les administrateurs ont le dessus, nous avons dû faire la plupart de ces choses manuellement et nous savons ce qui peut mal tourner, les manifestes Puppet, l'informatique en nuage et l'orchestration Docker seront plus faciles pour nous, les développeurs se retrouveront à prendre de nombreuses tangentes, donc mon conseil à tout devops potentiel est d'être d'abord un administrateur.