Yandex ouvre le Cloud. Architecture de la nouvelle plateforme

image

Aujourd'hui, Yandex.Cloud est devenu accessible à tous. Désormais, tout utilisateur peut accéder au Cloud et déployer les ressources dont il a besoin, en accédant aux technologies Yandex. Par exemple, pour la traduction automatique et la reconnaissance et la synthèse de la parole.

Aujourd'hui, je veux vous présenter Yandex.Cloud et dire comment il est organisé à l'intérieur. Sous la coupe, vous en apprendrez un peu plus sur l'histoire, l'équipe et l'architecture de notre plateforme.

Un peu d'histoire


Malgré le fait que la plate-forme cloud Yandex ait été présentée publiquement il n'y a pas si longtemps, le projet se développe au sein de l'entreprise depuis longtemps et a réussi à survivre à plusieurs phases, et de nombreuses technologies qui ont constitué sa base ont passé l'épreuve du temps dans l'infrastructure interne de Yandex. Le développement a commencé l'année dernière et les premiers utilisateurs externes ont commencé à tester la plateforme en avril 2018. C'était un mode fermé, auquel environ 100 entreprises ont participé - des services Web de différentes tailles, des développeurs SaaS et des sociétés. En septembre, nous avons ouvert un site public, mais vous ne pouviez accéder au Cloud lui-même que par le biais de la liste d'attente, et maintenant, en décembre, l'accès est devenu accessible à tous.

Au tout début, lors de l'élaboration d'un plan de développement de produit, il était nécessaire de prendre plusieurs décisions stratégiques concernant les caractéristiques du cloud et les technologies sur lesquelles il devrait s'appuyer: quelles solutions open source il serait conseillé d'utiliser, qui peuvent être tirées de la pile technologique interne de Yandex Yandex, et ce qui devra être développé spécifiquement pour la plateforme publique. L'un des problèmes les plus importants était lié à OpenStack.



À cette époque, un cluster sur OpenStack de plusieurs milliers d'hôtes fonctionnait avec succès dans Yandex depuis plusieurs années. L'une des solutions possibles serait d'utiliser cette technologie pour créer le Cloud, d'autant plus qu'elle accélérerait considérablement l'entrée de la plateforme sur le marché. Cependant, après de nombreuses discussions et un débat houleux, une décision a été prise en faveur de notre propre développement. Les avantages et les inconvénients ont été exprimés, mais les arguments suivants sont devenus décisifs.

Tout d'abord, OpenStack est une solution pour les clouds privés à locataire unique. Historiquement, il n'a pas été conçu pour créer des plates - formes multi-locataires évolutives. Deuxième point: cette technologie est peu compatible avec une architecture hyperconvergée (lorsque toutes les ressources matérielles forment un grand pool, et qu'une infrastructure virtuelle est déjà construite dessus). Et le troisième - nous avons rencontré toutes les difficultés avec le support et la modification d'OpenStack, révélées lors du fonctionnement du cluster, et nous ne voulions pas risquer l'expérience client de nos futurs utilisateurs. Bien sûr, il n'y avait pas de réponses sans équivoque aux questions que nous posions, mais il était nécessaire de prendre une décision éclairée. Le choix a été fait et la plateforme a suivi son propre chemin.

Il convient de noter les approches architecturales qui l'accompagnent, qui ont également été posées au tout début. L'utilisation d'un seul pool de ressources matérielles unifiées est l'une des décisions fondamentales. Cette approche vous permet de faire évoluer facilement la plate-forme et d'augmenter sans effort la quantité de ressources disponibles. De plus, nous avons déterminé que la plateforme sera construite sur le principe de l'auto-hébergement. Autrement dit, tous les services cloud, y compris ceux de service, doivent "vivre" au-dessus d'une infrastructure hyperconvergée unique. Cela signifie que Yandex.Cloud ne dispose pas de serveurs de gestion dédiés. Tous les services de plateforme sont déployés sur les mêmes machines virtuelles que les utilisateurs externes.



L'auto-hébergement vous permet de gérer de manière très flexible la structure du cloud et de connecter automatiquement une infrastructure supplémentaire à des coûts minimes - d'un serveur à un datacenter complet avec des milliers de machines. De plus, nous travaillons dans les mêmes conditions que nos utilisateurs, ce qui signifie que nous pouvons vivre toute l'expérience client.

Et le troisième principe sous-jacent à la plateforme: la disponibilité d'un référentiel unique de métadonnées et d'informations système pour tous les services. Pour cela, un développement interne est utilisé - Yandex Database (YDB, à ne pas confondre avec ClickHouse), qui vous permet de placer des données très fiables, efficaces et flexibles. Ainsi, le référentiel de métadonnées est devenu le service interne de base pour tous les autres services Yandex.Cloud.

Vous avez probablement remarqué que les principes de base de l'organisation de la plateforme sont étroitement liés les uns aux autres et déterminent en grande partie l'architecture et les nombreuses solutions technologiques ultérieures. C'est ce qui nous a donné l'opportunité de créer une plateforme évolutive qui nous permettra de planifier à long terme le développement de tous les services Cloud existants et futurs.

L'architecture


En général, l'architecture ressemble à ceci:



Le cœur du cloud est le stockage de métadonnées partagées (couche de stockage) déjà mentionné. YDB utilisant un mécanisme de réplication spécial couvre tout le stockage matériel disponible pour le Cloud. Un mécanisme similaire s'applique au stockage par blocs réseau (NBS). Avec YDB, ils forment un système de stockage de données commun, utilisé par tous les autres services du Cloud.



Le service Yandex Compute Cloud est construit au-dessus du magasin. Il vous permet de gérer les machines virtuelles utilisées par les utilisateurs externes et les composants internes de la plate-forme. L'hyperviseur est KVM et l'émulateur est QEMU . En conséquence, les pilotes VirtIO ont été choisis pour la virtualisation des périphériques. Le Scheduler est une partie importante de la combinaison des machines virtuelles et de l'infrastructure matérielle. C'est lui qui détermine sur quel serveur physique la prochaine machine virtuelle sera déployée.



Ensemble, ces composants constituent la partie IaaS de la plate-forme, qui comprend également le service Yandex Virtual Private Cloud . Le service réseau est basé sur le projet open source OpenContrail .

Un autre élément important de ce niveau est le mécanisme d'instantané. Il vous permet de prendre des photos et des images de disque.



Un niveau supérieur est celui des services de plate-forme, pour la plupart accessibles à tous les utilisateurs de Yandex.Cloud. Il s'agit de services de gestion de bases de données dans le Cloud dont les clusters sont déployés sur des machines virtuelles (ClickHouse, Managed Databases for MongoDB et PostgreSQL); Stockage d'objets compatible S3 ainsi que des services de traduction et de synthèse et de reconnaissance vocale .

Il existe deux autres services importants qui couvrent toutes les couches du cloud. Il s'agit de la facturation et de la gestion des identités et des accès (IAM). Le premier est responsable de toutes les opérations de facturation et de paiement des ressources consommées. Le second implémente le contrôle d'accès basé sur les rôles: accès aux ressources : chaque utilisateur peut se voir attribuer un ou l'autre rôle décrivant les opérations autorisées. Par exemple, le rôle d'éditeur vous permet de créer, supprimer et modifier des ressources, mais il ne vous permet pas de contrôler l'accès à celles-ci.

Il s'agit d'une description assez générale de l'appareil Yandex.Cloud, mais elle vous permet de comprendre comment les différentes parties d'une grande plate-forme interagissent les unes avec les autres. Si vous souhaitez approfondir la structure de la plateforme, je vous conseille de regarder le sujet: enregistrement de conférence cloud . Lors de cet événement, une attention particulière a été accordée aux réseaux et à la base de données Yandex.

L'équipe


Enfin - quelques mots sur l'équipe. Au cours de la dernière année, il a considérablement augmenté et continue de croître . Maintenant, il se compose déjà de plus de 150 personnes, sans compter le grand nombre de groupes qui ne font pas directement partie de Yandex.Cloud, mais dont les réalisations sont également utilisées dans la plateforme. Une partie importante des spécialistes sont bien sûr des développeurs. Ils sont divisés en unités impliquées dans l'un ou l'autre domaine: machines virtuelles, bases de données cloud, facturation, réseaux, etc. Il existe un groupe distinct spécialisé dans les questions de sécurité cloud et tout ce qui y est stocké. Eh bien, et, bien sûr, le support, prêt à répondre rapidement aux questions posées par les utilisateurs.

C’est tout pour moi. Dans un avenir proche, nous publierons plusieurs articles sur les détails du travail avec les différents services de notre plateforme. En attendant, vous pouvez vous familiariser avec Yandex.Cloud gratuitement. Chaque nouvel utilisateur recevra 4000 roubles pour se familiariser avec la plateforme. Ce montant est suffisant pour placer un projet Web de taille moyenne dans le Cloud pendant un mois basé sur un bundle LAMP standard avec un stockage de fichier objet de 1 téraoctet; ou pour traduire un tableau de données de plus de 9 millions de caractères en connectant la traduction automatique à votre application mobile ou à votre site Web.

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


All Articles