Olá pessoal! Meu nome é Vitaly Davydov, sou o fundador da Poteha Labs.
No final do ano passado, a Yandex lançou um novo produto para desenvolvedores - o
Yandex , que fornece energia de computação e serviços relacionados para processamento e armazenamento de dados. Neste artigo, falarei sobre como avaliamos a transferência de um de nossos projetos para a nuvem, seus recursos e tarifas.

Existem duas maneiras de implantar seu serviço da Web ou aplicativo móvel. Vejamos um exemplo de banco de dados (como uma das partes de um serviço da web):
- Autogerenciamento - alugue um carro e implante seu PostgreSQL nele. Seu postgres tem seus prós e contras: se as cargas forem pequenas, essa solução será suficiente. Porém, quanto maiores os volumes, mais manutenção é necessária e, em algum momento, você precisará de um engenheiro de DevOps separado.
- Totalmente gerenciado - escolha um provedor de nuvem e use o PostgreSQL como um serviço. Nesse caso, o provedor de nuvem assume o suporte de toda a infraestrutura e garante que tudo funcione de acordo com o SLA (acordo sobre o nível de prestação do serviço, que limita o tempo máximo de indisponibilidade, o tempo máximo máximo de indisponibilidade por um período ). Sem problemas com o suporte à infraestrutura.
Quem escolhe a opção de nuvem está familiarizado com os três principais principais provedores de serviços:
Microsoft Azure ,
Amazon Web Services (AWS) e
Google Cloud . Eles fornecem um número ilimitado de máquinas virtuais e dezenas de serviços convenientes e, dentre três opções, você pode escolher a solução adequada ao preço. Normalmente, trabalhamos com a AWS, que recentemente apresenta vários inconvenientes quando usado na Rússia.
O primeiro recurso da AWS na Rússia está associado a bloqueios ativos de ILV, dos quais muitos serviços sofreram em 2018, desde startups a sistemas bancários (
Viber, Skyeng e outros ).
Além disso, desde o início de 2019, a Amazon
começou a cobrar IVA (20% do preço) das empresas russas pelo uso de suas soluções em nuvem. Isso não é específico da Amazon: o IVA já é coletado pela Microsoft, Google e outras empresas estrangeiras da Internet; no entanto, em qualquer caso, é um aumento desagradável nos preços das empresas pelo conjunto de serviços usual.
Além de empresas internacionais conhecidas, também existe o mercado russo para sistemas em nuvem: a plataforma
Mail.Ru Cloud Solutions ,
Selectel e alguns players menores. Enquanto muitos fornecem apenas aluguel de ferro, o que não é igual à computação em nuvem. Uma nuvem completa fornece não apenas carros de aluguel, mas também um conjunto de serviços para simplificar a infraestrutura (por exemplo, como bancos de dados gerenciados).
Mercado russo
Na Rússia, as soluções completas de nuvem são poucas (a saber, duas): MCS do mail.ru e o recém-lançado
Yandex .
A Yandex aborda a questão da prestação de serviços para arrendar o ecossistema de serviços. Uma nuvem pronta para uso não oferece tantos serviços quanto na AWS: computadores, armazenamento de dados, bancos de dados, balanceador de carga (alfa), orquestração de contêiner (alfa), planeja adicionar uma plataforma sem servidor. O conjunto de serviços proposto permite projetar e dimensionar um grande número de soluções de negócios mais rapidamente do que em sua própria infraestrutura, e o número de serviços também está em constante crescimento. O Cloud possui três datacenters, para que você possa criar sistemas distribuídos geograficamente.
No final de 2018, o Cloud lançou publicamente e abriu primeiro uma conexão de programa de parceria (na qual
nos tornamos um dos primeiros parceiros) e, a partir de
7 de dezembro de 2018 , tornou-se disponível para todos. Quando você se conecta agora, o Cloud concede aos usuários uma concessão por conhecimento -
4000 rublos por 2 meses . Graças ao acesso antecipado, analisamos as oportunidades, tarifas e fizemos cálculos para transferir um de nossos serviços da AWS para a nuvem.
Arquitetura
Agora, nosso serviço da Web trabalha em produção na AWS e consiste em dois componentes: frente e verso; portanto, consideraremos a transferência para o componente Cloud por componente. Migramos o aplicativo com a seguinte pilha de tecnologia:
-
Frontend . Escrito em React, a renderização ocorre no cliente. Arquivos estáticos (html, scripts e estilos) são armazenados no Simple Storage Service (S3).

-
Back -
end . Um aplicativo django que é executado em contêineres de encaixe nas máquinas virtuais do Elastic Compute Cloud (EC2). As máquinas são gerenciadas pelo Elastic Container Service (ECS, um orquestrador de contêineres gratuito), para bancos de dados que usamos o PostgreSQL no Relational Database Service (RDS). Para balanceamento de carga - Elastic Load Balancer (ELB).

Implementamos o aplicativo por meio do GitLab CI, usando a AWS CLI para atualizar o serviço no ECS e a estática no S3.
Como será a arquitetura do serviço no Yandex.Cloud:
-
Frontend . Em vez do S3, o Yandex Object Storage é usado, no qual você também pode distribuir as estatísticas do site.

-
Back -
end . Em vez do EC2, o Yandex Compute Cloud é usado, com estrutura semelhante: também há armazenamento em bloco, que existe separadamente das máquinas. A nuvem não possui um análogo do ECS pronto para uso agora (mas na versão alfa existem Grupos de Instâncias Yandex, com base nos quais eles prometem apresentar um serviço de contêiner gerenciado). Portanto, por enquanto, em vez do ECS, você precisa usar o Kubernetes ou o Rancher, que você precisa implantar. O Yandex Load Balancer na nuvem também está em alfa; portanto, por enquanto, você pode usar o nginx, erguido em uma máquina separada, como o balanceador. Para o PostgreSQL, a Cloud possui o Serviço Gerenciado Yandex para o PostgreSQL.

Estimativa de custo
Depois de estudar a arquitetura possível, fizemos um cálculo estimado do custo do serviço na nuvem (
as taxas oficiais estão aqui ). Na tabela abaixo, o custo aproximado de cada elemento para o nosso serviço (os preços são indicados sem IVA).
O que | Quanto, esfregue. ($) / mês |
---|
Aws | Yandex Cloud |
---|
Balanceador de carga (1 pc., 1 GB de RAM, 1vCPU 100%, 10 GB SSD) | 1.300 (20) | 630 (10) |
Instâncias de aplicativos (2 pcs., 4 GB de RAM, 1vCPU 100%, 20 GB SSD) | 7.400 (115) | 2.350 (36) |
Instância para o contêiner ORE (Rancheiro) | - | 630 (10) |
Bases de dados (2 pcs, 4 GB de RAM, 1vCPU 100%, 100 GB SSD) | 12.800 (198) | 630 (10) |
Armazenamento de objetos (10 GB, 1.000.000 PUT, 10.000.000 GET) | 585 (9) | 470 (7) |
IP público (2 peças. AWS, 4 peças. Yandex. Nuvem) | 470 (7) | 380 (6) |
Tráfego de saída (500 GB) | 2 925 (45) | 635 (10) |
Total | 25 480 esfregar. ($ 392) | 9 695 esfregar. ($ 149) |
Para nossos parâmetros, a nuvem era 2,6 vezes mais barata que a AWS. O financiamento da transição para a nuvem para o serviço é definitivamente lucrativo (
cálculos detalhados para a nuvem, para a AWS você pode usar a
calculadora on -
line ).
Recursos dos serviços Yandex.Cloud
- O Yandex Compute Cloud difere do EC2, pois no EC2 você pode aumentar o poder de uma máquina por RAM e CPU apenas ao mesmo tempo, e na nuvem eles são independentes (para cada vCPU você pode escolher de 1 a 8 GB de RAM), o que oferece mais flexibilidade.
- O Yandex Object Storage é compatível com a API S3. Das desvantagens, ainda não é possível configurar um certificado https no seu domínio. O problema foi resolvido usando o certificado Cloudflare e o tráfego do usuário para a camada API externa será protegido. Esta é uma opção rápida e fácil. Você também pode configurar a renderização do lado do servidor, por isso estamos aguardando a nuvem adicionar esse recurso.
- A nuvem ainda não possui um serviço para coleta de logs centralizada assíncrona (um análogo do AWS CloudWatch); portanto, para coletar e analisar logs, é necessário conectar soluções de terceiros.
- Controle de acesso a recursos: na AWS, isso é feito por meio de funções criadas no serviço Gerenciamento de Identidade e Acesso (IAM) e automaticamente atribuídas a todas as instâncias no cluster do ECS. A nuvem também possui seu próprio IAM , mas os direitos granulares, como na AWS, ainda não estão disponíveis.
- Embora não haja máquinas GPU para computação.
Conclusão
Concluindo, destacamos os motivos para experimentar o Yandex Cloud:
- Conjunto potencialmente grande de serviços de infraestrutura;
- A API compatível com a AWS está disponível para alguns serviços, o que simplifica bastante a transição;
- As tarifas são mais baixas do que as de suas contrapartes ocidentais; não há conexão com a taxa de câmbio do dólar;
- Proteção contra bloqueios repentinos;
- Um data center na Rússia, graças ao qual a lei de proteção de dados pessoais dos usuários é sempre implementada.
Para 2019, a Cloud tem grandes planos de lançar os serviços anunciados e adicionar novos. Pensamos que, com esse conjunto de características e tarifas, ele poderá se tornar um forte concorrente da Amazon no mercado russo.
Obrigado por sua atenção, vou responder perguntas nos comentários.
Agradecemos a Wife ( pruzhinkina ) e Kirill ( kpotehin ) por sua ajuda na preparação da revisão .