CloudMaster concerne le libre-service des développeurs dans un centre de données d'entreprise et des services cloud

salut! Je suis Igor Galtsev , depuis 2010 le responsable technique de divers domaines de développement Softline dans le domaine de l'automatisation de la gestion et de la vente de services cloud (abonnement).



Aujourd'hui, je veux parler d'un outil qui traduit les procédures d'approbation et d'émission de machines virtuelles en libre-service complet, en préservant la logique des quotas et en ajoutant la possibilité de prédire l'utilisation des ressources.







En tant qu'ancien ingénieur d'infrastructure, je sais ce que devient l'utilisation de plusieurs clouds privés ou publics dans une grande équipe. Il existe généralement deux manières. Ou le processus d'allocation des ressources est trop bureaucratique - les équipes commencent à attendre les machines virtuelles pendant une semaine et les maintiennent «en vie» le plus longtemps possible, afin de ne pas répéter ce chemin. Ou un véritable chaos s'ensuit, lorsque personne ne sait quelle équipe et combien de ressources consomment et quelles centaines et milliers de dollars sont dépensés chaque mois sur le même AWS. Une façon de simplifier cette situation consiste à faire passer les développeurs en libre-service dans le cloud à l'aide du produit de nos partenaires - CloudMaster.





Quel est le problème



Lorsqu'une entreprise emploie des centaines de développeurs et DevOps, chaque équipe a son propre projet et ses besoins d'expérimentation, vous ne pouvez pas compter sur la responsabilité de chaque individu pour la capacité allouée par l'entreprise. Pour comprendre l'ampleur du problème, voici les statistiques d'un client CloudMaster qui utilise des clouds publics et sa propre virtualisation sur OpenStack.



En développant plusieurs centaines de projets en parallèle, les ressources totales d'AWS, Azure et GCP sont consommées par le client pour un demi-million de dollars par mois. Et il crée et supprime environ 350 000 machines virtuelles par an.



Si le processus est autorisé à suivre son cours à une telle échelle, une véritable anarchie s'ensuivra. Des centaines de machines virtuelles gèlent inutilisées. Sans comprendre qui et pourquoi a lancé une machine virtuelle particulière, il sera extrêmement difficile de déterminer si elle est nécessaire pour le travail et si elle le sera à l'avenir. Cela entraîne des coûts inutiles pour la location de ressources cloud, et il est fondamentalement impossible d'effectuer une analyse de ce qui se passe ou de prévoir la charge dans ces conditions.



Une manière logique d'éviter cela est de prescrire un processus métier de négociation des ressources. Bien sûr, cela complique le chemin du développeur pour obtenir une machine virtuelle: il faut remplir une candidature, l'envoyer au responsable. Mais, si vous collectez correctement les rapports, le gestionnaire aura une image complète: qui, quand et quelle capacité demandée. Avec un certain délai, il pourra même analyser les besoins des équipes en capacité virtuelle. Mais ce n'est pas non plus une panacée. Avec un volume de demandes suffisant, les équipes avec leurs projets «se bloquent» en attendant que la personne responsable regarde et évalue la prochaine application. Et plus l'entreprise est grande, plus cette attente est longue.



Dans ce cas, toutes les machines virtuelles créées n'ont pas de «date d'expiration», c'est-à-dire alors quelqu'un devra contrôler que toutes les ressources allouées ont été désactivées à l'heure annoncée et cela n'a pas affecté les projets.



Libre-service via les plates-formes de gestion cloud (CMP)



Pour mettre les choses en ordre dans plusieurs clouds utilisés, privés ou publics, les solutions de la classe Cloud Management Platform aident. Je veux parler de l'alternative russe de nos partenaires - la plate-forme CloudMaster, axée sur la connexion à Azure, AWS et Google Cloud, ainsi que les régions privées sous vCloud Director, vSphere et OpenStack.



Du point de vue du développeur, CloudMaster est un portail en libre-service où, via une interface unique et sans bureaucratie (via l'interface utilisateur du navigateur, l'application mobile et les commandes de la console (scripts Python)), vous pouvez obtenir des ressources dans le cloud d'entreprise ou le centre de données. Et pour l'infrastructure, il s'agit d'une couche supplémentaire d'abstraction entre les plates-formes cloud et les utilisateurs finaux, qui préserve le partage sélectif des ressources, des politiques de sécurité, des configurations standard et d'autres outils nécessaires tels que les images de machine et les modèles Terraform.



La majeure partie de CloudMaster est basée sur Java et basée sur les frameworks Spring côté serveur et Dagger dans l'application Android.



Sur le plan architectural, CloudMaster est conçu pour fonctionner avec de grandes équipes et des volumes importants de messages envoyés: RabbitMQ est utilisé pour traiter les files d'attente, MonogoDB est utilisé pour le stockage des données et Nginx est utilisé pour l'équilibrage.







L'outil est développé depuis 2012, et depuis 2014 il est utilisé par un grand développeur de logiciels.



Logique CloudMaster



Du point de vue du développeur, CloudMaster est un guichet unique pour lancer rapidement des machines virtuelles dans tous les clouds et régions disponibles. L'outil vous permet de ne pas attendre les approbations, mais d'obtenir une ressource ici et maintenant.



L'inscription sur le portail suffit pour accéder à ce «guichet unique». Et si CloudMaster est intégré à AD d'entreprise, les rôles des employés dans l'entreprise et dans le projet seront chargés dans cet outil, déterminant automatiquement les projets et les ressources disponibles.





Fenêtre de lancement de la machine virtuelle



Si vous disposez des droits appropriés, une commande peut lancer jusqu'à 10 machines virtuelles de «formulaires» typiques. En termes CloudMaster, il s'agit de configurations standard qui sont mappées aux offres de ressources typiques de chacun des clouds (et personnalisées pour la tâche).





"Modèles" typiques pour différents clouds



Vous pouvez créer des images à partir de machines existantes, utiliser des modèles prêts à l'emploi "infrastructure as code" ou télécharger les vôtres (Terraform et CloudFormation).





Modèles



Dans ce cas, les machines virtuelles peuvent être créées indéfiniment ou fonctionner selon une planification spécifiée. Cela donne une certaine liberté dans l'utilisation des ressources. Par exemple, une entreprise peut autoriser les développeurs à utiliser le cloud d'entreprise à des fins d'expérimentation et de comparaison personnelles, mais seulement pendant une journée. C'est d'ailleurs le client de cette plateforme qui fait du développement personnalisé. Toutes les machines virtuelles créées de cette manière sont supprimées d'elles-mêmes dans un délai spécifié.



Du point de vue d'un gestionnaire, la chose la plus utile à propos de CloudMaster est qu'il compte chaque machine virtuelle en cours d'exécution. Pour eux, il existe des sections contenant des informations complètes sur les machines virtuelles dans le cloud / la région sélectionnée, y compris celles créées selon des modèles spécifiques, avec facturation des fournisseurs de cloud, des mesures sur la consommation de ressources par des projets individuels, où les capacités inutilisées ou sous-utilisées peuvent être identifiées.





Liste des ressources





Liste des machines virtuelles



En plus d'afficher des informations dans l'interface, CloudMaster génère environ 60 types de notifications, y compris celles liées à la finance.





Notifications entrantes





ET le texte de l'une des notifications



La logique du service est telle que chaque VM a un propriétaire - la personne qui a créé cette machine virtuelle, ou celle à qui ces fonctions ont été transférées. Le propriétaire reçoit toutes les notifications concernant l'utilisation des ressources ou les modifications de l'état de la machine virtuelle, et est également responsable des coûts. En ce sens, CloudMaster aide à instiller une culture de contrôle de l'utilisation de la capacité et d'assumer la responsabilité des machines zombies abandonnées.



Les restrictions sur la création de nouvelles machines virtuelles sont régies par des droits d'accès et des quotas. Et ici, il est possible de personnaliser tous les flux de travail, jusqu'à l'admission des représentants des clients dans le cloud. Vous pouvez prescrire des quotas pour les équipes et prévoir diverses actions lorsqu'elles sont atteintes ou approchent d'une certaine valeur seuil (par exemple, 70% du quota).





Facturation des fournisseurs de cloud





Fenêtre de gestion des quotas



Pour les clouds privés (OpenStack et VMware), CloudMaster prend en charge une sorte d'échange - une estimation du coût d'exécution des machines virtuelles, avec laquelle vous pouvez choisir un schéma d'utilisation des ressources plus rentable. Des collègues disent qu'à l'avenir, une telle fonctionnalité pourrait apparaître pour les clouds publics.



Dans ce système, le rôle d'un ingénieur d'infrastructure est le plus proche de moi, alors je l'ai laissé pour la fin. Pour DevOps, il s'agit bien sûr d'un nouvel outil, mais d'un autre côté, il devient possible de contrôler ce qui arrive aux ressources cloud en l'utilisant uniquement. Les outils de configuration, de surveillance et de développement populaires tels que Chef et Ansible peuvent être déployés plus rapidement et plus facilement.



Un SDK Java est disponible pour les administrateurs et les développeurs si nécessaire.

Surtout, CloudMaster, comme les autres CMP, permet de passer de l'allocation manuelle des ressources de routine à des tâches plus intéressantes: développer l'automatisation basée sur «l'infrastructure en tant que code», etc.



D'après mon expérience, l'apparition de tels outils est justifiée si l'entreprise emploie au moins cinquante machines virtuelles et qu'il y a au moins quinze utilisateurs actifs de différents clouds. D'une part, il s'agit d'une certaine complication de l'infrastructure, mais d'autre part, il amène des nuages ​​hétérogènes, chacun ayant ses propres outils de gestion, à un dénominateur commun avec la garantie que cela ne viole pas les normes internes de l'entreprise. Dans le même temps, l'outil «abaisse» la responsabilité de l'utilisation des ressources et de la planification budgétaire au niveau des chefs de projet, ce qui est idéologiquement plus correct.



All Articles