Comment puis-je utiliser des machines virtuelles Yandex.Cloud interrompues et économiser sur la résolution de problÚmes à grande échelle

Aujourd'hui, nous voulons parler d'une fonctionnalité aussi utile de Yandex.Cloud que les machines virtuelles interrompues. Il s'agit d'une option spéciale que vous pouvez choisir lors de la création d'une machine virtuelle pour utiliser les ressources informatiques à un prix réduit. Quelle est la particularité des machines virtuelles interruptibles, pourquoi sont-elles moins chÚres que les machines normales et dans quels cas est-il judicieux de les utiliser?



Les capacités de Yandex.Cloud, et plus précisément du service d'infrastructure Yandex Compute Cloud , sont sensiblement supérieures à celles utilisées par les utilisateurs. Par défaut, il est supposé que les utilisateurs devraient pouvoir évoluer arbitrairement. Au moins pour ces raisons, sans tenir compte d'autres aspects, les ressources disponibles de la plateforme cloud dépassent considérablement la demande actuelle. C'est à ces capacités libres que les machines virtuelles interrompues sont créées.

Limitations principales


En bref, la nature des machines virtuelles interrompues peut ĂȘtre dĂ©crite comme suit: le service propose d'utiliser ses ressources informatiques gratuites Ă  un prix infĂ©rieur, Ă  condition que ces ressources puissent ĂȘtre rappelĂ©es Ă  tout moment.

En général, les machines virtuelles interrompues fonctionnent comme des machines virtuelles normales, mais elles ont un certain nombre de limitations:

  • Ils ne sont pas couverts par un contrat de niveau de service (SLA).
  • La possibilitĂ© de crĂ©er et d'exĂ©cuter n'est pas garantie.
  • Ils peuvent ĂȘtre contraints d'arrĂȘter Ă  tout moment. La probabilitĂ© d'un arrĂȘt est faible, mais non nulle, elle peut changer au fil du temps et varier dans diffĂ©rentes zones de disponibilitĂ© de Yandex.Cloud .
  • Une machine virtuelle interrompue ne peut pas devenir normale, mais une machine normale interrompue. L'indicateur correspondant est dĂ©fini une fois et ne change pas.
  • La machine sera sĂ»rement arrĂȘtĂ©e dans un dĂ©lai ne dĂ©passant pas 24 heures.

En pratique, dans la grande majoritĂ© des cas, les machines virtuelles interrompues effectuent toutes les 24 heures prĂ©vues par les conditions de service. Un arrĂȘt forcĂ© ne se produit gĂ©nĂ©ralement que lorsqu'un grand nombre de machines virtuelles ordinaires sont créées dans une zone de disponibilitĂ© spĂ©cifique dans un court laps de temps: un nouvel utilisateur ayant des besoins sĂ©rieux apparaĂźt ou les utilisateurs actuels sont massivement mis Ă  l'Ă©chelle.

Dans le mĂȘme temps, une machine virtuelle arrĂȘtĂ©e peut ĂȘtre redĂ©marrĂ©e: toutes les donnĂ©es sur les disques sont enregistrĂ©es Ă  la fois lors de l'arrĂȘt automatique et manuel.

Cas d'utilisation


Les limitations des machines virtuelles interrompues soulĂšvent une question logique: comment les appliquer si les ressources peuvent ĂȘtre rĂ©voquĂ©es Ă  tout moment? À titre d'explication, voici quelques cas d'utilisation possibles.

Traitement par lots


Le traitement par lots implique l'exĂ©cution parallĂšle d'un grand nombre de tĂąches gourmandes en ressources. Cela peut ĂȘtre la conversion de formats de fichiers, le traitement et la reconnaissance d'images, les opĂ©rations ETL . L'essentiel est que dans le traitement par lots, il existe une file d'attente de travaux et un ensemble complet de processus de travail (exĂ©cuteurs) qui reçoivent des travaux de la file d'attente. Si un exĂ©cuteur individuel exĂ©cutĂ© sur une machine interrompue s'arrĂȘte, la tĂąche sera simplement transfĂ©rĂ©e au prochain exĂ©cuteur. En d'autres termes, l'arrĂȘt d'une ou mĂȘme plusieurs machines virtuelles n'aura pas d'impact nĂ©gatif significatif sur le processus et le rĂ©sultat du traitement.



Lorsque nous traitons des donnĂ©es par lots, nous parlons de l'utilisation de dizaines de machines virtuelles. L'utilisation de machines intermittentes permet des Ă©conomies trĂšs sensibles. DĂ©sormais, l'un des principaux consommateurs de machines virtuelles discontinues productives avec 32 cƓurs est un client de longue date de Yandex.Cloud, Seismotech. Seismotek traite les donnĂ©es sismiques, nĂ©cessaires Ă  l'exploration des gisements de gaz et de pĂ©trole. L'exploration sismique implique de travailler avec de grands volumes d'informations. Les donnĂ©es sont traitĂ©es dans une mĂ©thode par lots. La sociĂ©tĂ© utilise simultanĂ©ment jusqu'Ă  60 machines interrompues ou plus: un total de 2000 vCPU et 4000 Go de RAM.

Projets sur Hadoop


Hadoop est utilisĂ© pour dĂ©velopper et exĂ©cuter des programmes distribuĂ©s s'exĂ©cutant sur des clusters de centaines et de milliers de nƓuds Ă  faible coĂ»t. Les mĂ©canismes de rĂ©plication de fichiers et de redĂ©marrage automatique des tĂąches effectuĂ©es sur les nƓuds dĂ©faillants fournis par Hadoop assurent la stabilitĂ© d'un systĂšme distribuĂ© aux dĂ©faillances de machines individuelles. C'est pourquoi, lorsque Hadoop est utilisĂ©, au moins une partie des nƓuds peut ĂȘtre facilement dĂ©ployĂ©e sur des machines virtuelles interrompues. S'ils s'arrĂȘtent tĂŽt, les tĂąches seront envoyĂ©es Ă  d'autres nƓuds.

Basculement des services Web


La disponibilitĂ© continue du service Web peut ĂȘtre assurĂ©e en utilisant un cluster. Un cluster se compose de deux serveurs ou plus. L'une de ses tĂąches dans l'application aux services Web est d'assurer un fonctionnement stable au moment des pics de charge. Exemples typiques: sites d'achats en ligne ou sites sportifs oĂč la croissance du trafic est liĂ©e Ă  des dates spĂ©cifiques. Pour les magasins, il peut s'agir de jours fĂ©riĂ©s traditionnels ou de pĂ©riodes de rabais, et pour les sites liĂ©s au sport, il peut s'agir de jours d'Ă©vĂ©nements lorsque des Ă©missions ont lieu, des critiques et des reportages photo sont publiĂ©s. À de tels moments, le volume de trafic peut augmenter considĂ©rablement.

Le cluster doit faire face Ă  l'afflux de visiteurs en rĂ©partissant le trafic vers diffĂ©rents nƓuds. Pour une pĂ©riode de forte croissance de charge, mais de courte durĂ©e, la tolĂ©rance aux pannes peut ĂȘtre fournie en ajoutant des serveurs sur des machines virtuelles arrĂȘtĂ©es. Cette option est peu coĂ»teuse et fait bien son travail. Il est important de respecter une condition: un tel cluster doit ĂȘtre hybride, c'est-Ă -dire inclure des machines virtuelles ordinaires. Dans ce cas, mĂȘme l'arrĂȘt improbable de machines interrompues n'entraĂźnera pas de panne de service.

Projets chez Kubernetes


Kubernetes automatise le dĂ©ploiement, la mise Ă  l'Ă©chelle et la gestion des applications conteneurisĂ©es sur un grand nombre de nƓuds. L'une des principales entitĂ©s que l'on peut appeler le bloc de construction de Kubernetes est sous (pod). Pod permet le lancement d'un ou plusieurs conteneurs sur un nƓud. Un nƓud pour chaque foyer est sĂ©lectionnĂ© et attribuĂ© par le planificateur Kubernetes. Si un nƓud sĂ©parĂ© avec un foyer en marche tombe en panne, le planificateur le transfĂšre automatiquement vers un nƓud qui fonctionne en mode normal. Ce schĂ©ma de maintien de l'intĂ©gritĂ© suggĂšre qu'une partie des nƓuds peut ĂȘtre hĂ©bergĂ©e dans des machines virtuelles discontinues.

Test d'intégration continue


La pratique de l'intégration continue est basée sur l'assemblage et les tests fréquents du projet. Dans ce cas, des tests principalement automatisés sont utilisés. Schématiquement, cela ressemble à ceci: un environnement de test est créé sur une machine virtuelle, la derniÚre version de l'application y est téléchargée, des tests automatisés sont effectués, les résultats des tests sont téléchargés, la machine virtuelle est supprimée. En rÚgle générale, les tests prennent plusieurs dizaines de minutes, moins souvent plusieurs heures.

Traditionnellement, les points faibles de l'intĂ©gration continue sont considĂ©rĂ©s comme des coĂ»ts importants pour soutenir le processus d'intĂ©gration lui-mĂȘme et la forte demande de ressources informatiques. De ce point de vue et compte tenu de la durĂ©e des tests automatisĂ©s, les machines virtuelles abandonnĂ©es semblent plus que adaptĂ©es Ă  une intĂ©gration continue. Ils sont beaucoup moins chers et la probabilitĂ© qu'une voiture s'arrĂȘte immĂ©diatement au moment des tests est extrĂȘmement faible. De plus, mĂȘme si la voiture est toujours arrĂȘtĂ©e, les dommages du point de vue de l'entreprise seront minimes.

Utiliser en conjonction avec d'autres services Yandex.Cloud


Le service Groupes d'instances Yandex vous permet de surveiller automatiquement l'Ă©tat d'un groupe entier de machines virtuelles interrompues. Il peut crĂ©er indĂ©pendamment des machines virtuelles avec les caractĂ©ristiques donnĂ©es, maintenir le nombre nĂ©cessaire de machines dans le groupe et redĂ©marrer les instances interrompues si elles s'arrĂȘtent. Peu importe si un arrĂȘt forcĂ© s'est produit ou si 24 heures se sont Ă©coulĂ©es depuis le dĂ©but. Une seule chose est importante: un redĂ©marrage se produira s'il y a des ressources disponibles. Les groupes d'instances Yandex rendent le travail avec des machines virtuelles interrompues plus pratique, mais ne peuvent garantir que des capacitĂ©s libres existeront nĂ©cessairement dans une zone de disponibilitĂ© spĂ©cifique.

Performance économique


Comme nous l'avons mentionné, les machines virtuelles interruptibles peuvent réduire le coût d'utilisation des ressources informatiques. Au sein de Yandex, nous avons commencé à travailler sur une fonction similaire il y a plusieurs années. Pour diviser les tùches informatiques en exécutables garantis et interruptibles, des investissements considérables ont été nécessaires. Mais cela n'a pas été vain: au final, nous avons augmenté le niveau d'utilisation utile de l'infrastructure serveur de 30-40% à 70-80%.



Des fonctionnalités similaires sont désormais disponibles pour tous les utilisateurs de Yandex.Cloud en un seul clic. Un exemple simple: si vous transférez la moitié des machines virtuelles utilisées avec une charge du noyau à cent pour cent au format d'interruption, vous pouvez économiser jusqu'à 35 à 40% du budget.

À un coĂ»t rĂ©duit, des ressources CPU et RAM sont disponibles. L'espace disque et les adresses IP sont payĂ©s Ă  des tarifs rĂ©guliers. Voici ce qu'un simple calcul montre pour la plate-forme Cascade Lake.



Si vous le souhaitez, vous pouvez comparer le coût d'utilisation des machines virtuelles dans différents modes à l'aide d'une calculatrice .

Nous espérons que nous avons pu apporter un peu de clarté et donner quelques exemples utiles dans lesquels vous pouvez utiliser des machines virtuelles interruptibles pour réduire le coût des ressources informatiques sans perdre en qualité dans l'exécution des tùches.

Autres publications sur Cloud on Habré


Source: https://habr.com/ru/post/fr457538/


All Articles