Bonjour à tous! Je m'appelle Vitaly Davydov, je suis le fondateur de Poteha Labs.
À la fin de l'année dernière, Yandex a lancé un nouveau produit pour les développeurs -
Yandex.Cloud , qui fournit la puissance de calcul et les services connexes pour le traitement et le stockage des données. Dans cet article, je parlerai de la manière dont nous avons évalué le transfert de l'un de nos projets vers le Cloud, ses fonctionnalités et ses tarifs.

Il existe deux façons de déployer votre service Web ou votre application mobile. Regardons un exemple de base de données (comme l'une des parties d'un service Web):
- Autogéré - louez une voiture et déployez votre PostgreSQL dessus. Son postgres a ses avantages et ses inconvénients: si les charges sont petites, une telle solution sera suffisante. Mais plus les volumes sont importants, plus la maintenance est nécessaire et, à un moment donné, vous aurez besoin d'un ingénieur DevOps distinct.
- Entièrement géré - choisissez un fournisseur de cloud et utilisez PostgreSQL en tant que service. Dans ce cas, le fournisseur de cloud assume la prise en charge de l'ensemble de l'infrastructure et garantit que tout fonctionnera conformément au SLA (accord sur le niveau de prestation de service, qui limite le temps d'indisponibilité maximum, le temps d'indisponibilité total maximum pour une période ). Aucun problème avec le support de l'infrastructure.
Ceux qui choisissent l'option cloud connaissent bien les trois principaux fournisseurs de services:
Microsoft Azure ,
Amazon Web Services (AWS) et
Google Cloud . Ils fournissent un nombre illimité de machines virtuelles et des dizaines de services pratiques, et parmi trois options, vous pouvez choisir la solution qui convient au prix. Nous travaillons généralement avec AWS, qui présente récemment plusieurs inconvénients lorsqu'il est utilisé en Russie.
La première caractéristique d'AWS en Russie est associée aux verrous ILV actifs, dont de nombreux services ont souffert en 2018, des startups aux systèmes bancaires (
Viber, Skyeng et autres ).
De plus, à partir de début 2019, Amazon a
commencé à facturer la TVA (20% du prix) aux entreprises russes pour l'utilisation de ses solutions cloud. Ce n'est pas spécifique à Amazon: la TVA est déjà perçue par Microsoft, Google et d'autres sociétés Internet étrangères.Cependant, dans tous les cas, il s'agit d'une augmentation désagréable des prix pour les sociétés pour l'ensemble de services habituel.
En plus des sociétés internationales bien connues, il existe également le marché russe des systèmes cloud: la
plateforme Mail.Ru Cloud Solutions ,
Selectel et certains petits acteurs. Alors que beaucoup ne proposent que la location de fer, ce qui n'est pas égal au cloud computing. Un cloud complet fournit non seulement des voitures de location, mais également un ensemble de services d'accompagnement pour simplifier l'infrastructure (par exemple, comme les bases de données gérées).
Marché russe
En Russie, les solutions cloud à part entière sont peu nombreuses (à savoir deux): MCS de mail.ru et
Yandex .
Cloud, récemment lancé.
Yandex aborde la question de la fourniture de services afin de louer l'écosystème de services. Un cloud prêt à l'emploi n'offre pas autant de services que dans AWS: ordinateurs, stockage de données, bases de données, équilibreur de charge (alpha), orchestration de conteneurs (alpha), prévoit d'ajouter une plate-forme sans serveur. L'ensemble de services proposé vous permet de concevoir et de faire évoluer un grand nombre de solutions commerciales plus rapidement que sur votre propre infrastructure, et le nombre de services est également en constante augmentation. Le Cloud dispose de trois centres de données, vous pouvez donc créer des systèmes répartis géographiquement.
Fin 2018, le Cloud a lancé publiquement et a ouvert pour la première fois une connexion au programme de partenariat (dont
nous sommes devenus l'un des premiers partenaires), et à partir
du 7 décembre 2018, il est devenu accessible à tous. Lorsque vous vous connectez maintenant, Cloud accorde aux utilisateurs une subvention pour connaissance -
4000 roubles pendant 2 mois . Grâce à un accès anticipé, nous avons examiné les opportunités, les tarifs et effectué des calculs pour transférer l'un de nos services d'AWS vers le Cloud.
L'architecture
Maintenant, notre service Web fonctionne en production sur AWS et se compose de deux composants: avant et arrière, nous allons donc envisager de transférer vers le cloud composant par composant. Nous migrons l'application avec la pile technologique suivante:
-
Frontend . Écrit dans React, le rendu se produit sur le client. Les fichiers statiques (html, scripts et styles) sont stockés sur Simple Storage Service (S3).

-
Backend . Une application Django qui s'exécute dans des conteneurs Docker sur des machines virtuelles Elastic Compute Cloud (EC2). Les machines sont gérées par Elastic Container Service (ECS, un orchestrateur de conteneurs gratuit), pour les bases de données que nous utilisons PostgreSQL dans le Relational Database Service (RDS). Pour l'équilibrage de charge - Elastic Load Balancer (ELB).

Nous déployons l'application via GitLab CI, en utilisant l'AWS CLI pour mettre à jour le service sur ECS et la statique sur S3.
A quoi ressemblera l'architecture de service sur Yandex.Cloud:
-
Frontend . Au lieu de S3, Yandex Object Storage est utilisé, à partir duquel vous pouvez également distribuer des statiques de site.

-
Backend . Au lieu d'EC2, Yandex Compute Cloud est utilisé, de structure similaire: il existe également un stockage par blocs, qui existe séparément des machines. Le cloud n'a désormais plus d'analogue ECS prêt à l'emploi (mais dans la version alpha, il existe des groupes d'instances Yandex, sur la base desquels ils promettent de présenter un service de conteneur géré). Par conséquent, pour l'instant, au lieu d'ECS, vous devez utiliser Kubernetes ou Rancher, que vous devez déployer vous-même. L'équilibreur de charge Yandex dans le cloud est également en alpha, donc pour l'instant, vous pouvez utiliser nginx, levé sur une machine distincte, comme équilibreur. Pour PostgreSQL, Cloud dispose du service géré Yandex pour PostgreSQL.

Estimation des coûts
Après avoir étudié l'architecture possible, nous avons fait un calcul estimé du coût du service sur le Cloud (
les tarifs officiels sont ici ). Dans le tableau ci-dessous, le coût approximatif de chaque élément pour notre service (les prix sont indiqués hors TVA).
Quoi | Combien, frottez. ($) / mois |
---|
Aws | Nuage Yandex |
---|
Équilibreur de charge (1 pc., 1 Go de RAM, 1vCPU 100%, 10 Go SSD) | 1 300 (20) | 630 (10) |
Instances d'application (2 pièces, 4 Go de RAM, 1vCPU 100%, 20 Go SSD) | 7 400 (115) | 2.350 (36) |
Instance pour conteneur ORE (Éleveur) | - | 630 (10) |
Bases de données (2 pièces, 4 Go de RAM, 1vCPU 100%, 100 Go SSD) | 12 800 (198) | 630 (10) |
Stockage d'objets (10 Go, 1 000 000 PUT, 10 000 000 GET) | 585 (9) | 470 (7) |
IP publique (2 pcs. AWS, 4 pcs. Yandex. Cloud) | 470 (7) | 380 (6) |
Trafic sortant (500 Go) | 2 925 (45) | 635 (10) |
Total | 25 480 frotter. (392 $) | 9 695 rub. (149 $) |
Pour nos paramètres, le Cloud était 2,6 fois moins cher que AWS. Le financement de la transition vers le Cloud pour le service est définitivement rentable (
calculs détaillés pour le Cloud, pour AWS vous pouvez utiliser la
calculatrice en ligne ).
Caractéristiques des services Yandex.Cloud
- Yandex Compute Cloud diffère d'EC2 en ce que sur EC2, vous pouvez augmenter la puissance d'une machine par RAM et CPU uniquement en même temps, et dans le Cloud, ils sont indépendants (pour chaque vCPU, vous pouvez choisir de 1 à 8 Go de RAM), ce qui donne plus de flexibilité.
- Yandex Object Storage est compatible avec l'API S3. Parmi les inconvénients, il n'est pas encore possible de configurer un certificat https sur votre domaine. Le problème est résolu à l'aide du certificat Cloudflare, puis le trafic de l'utilisateur vers la couche API externe sera protégé. Il s'agit d'une option simple et rapide. Vous pouvez également configurer le rendu côté serveur, nous attendons donc que le Cloud ajoute cette fonctionnalité.
- Le Cloud ne dispose pas encore d'un service de collecte de journaux centralisée asynchrone (un analogue d'AWS CloudWatch), par conséquent, pour collecter et analyser les journaux, des solutions tierces doivent être connectées.
- Contrôle d'accès aux ressources: sur AWS, cela se fait via des rôles qui sont créés dans le service de gestion des identités et des accès (IAM) et qui sont automatiquement affectés à toutes les instances du cluster ECS. Le Cloud possède également son propre IAM , mais les droits granulaires comme dans AWS ne sont pas encore disponibles dans celui-ci.
- Bien qu'il n'y ait pas de machines GPU pour l'informatique.
Conclusion
En conclusion, nous mettons en évidence les raisons d'essayer Yandex Cloud:
- Ensemble potentiellement important de services d'infrastructure;
- Une API compatible AWS est disponible pour certains services, ce qui simplifie considérablement la transition;
- Les tarifs sont inférieurs à ceux de leurs homologues occidentaux, il n'y a aucun lien avec le taux de change du dollar;
- Protection contre les verrous soudains;
- Un centre de données en Russie, grâce auquel la loi sur la protection des données personnelles des utilisateurs est toujours mise en œuvre.
Pour 2019, Cloud prévoit de publier les services annoncés et d'en ajouter de nouveaux. Nous pensons qu'avec un tel ensemble de fonctionnalités et de tarifs, il pourra devenir un puissant concurrent d'Amazon sur le marché russe.
Merci de votre attention, je répondrai aux questions dans les commentaires.
Merci à Wife ( pruzhinkina ) et Kirill ( kpotehin ) pour leur aide dans la préparation de la revue .