Недавно мы помогли нашему клиенту Adapty перенести инфраструктуру с managed-сервисов AWS. Теперь она размещена в Kubernetes-кластере на обычных инстансах другого облачного провайдера, но ее можно легко мигрировать в другой ЦОД в случае необходимости. Этот бизнес-кейс во многом показательный: Adapty удалось минимизировать зависимость от поставщика, снизить инфраструктурные затраты на 50%, а также снять некоторые технические ограничения по масштабированию и оптимизации своих приложений.
Расскажем, что позволило добиться экономии, какие сложности возникли во время переезда, какую роль сыграл в проекте «Флант», а также о плюсах кубернетизации сервиса.
Примечания к статье
1. Это не техническое руководство к действию, а именно бизнес-кейс. Упоминаемые в нём технические детали помогают увидеть общую картину с точки зрения бизнеса.
2. Хотя мы и приводим некоторые цифры по кейсу, NDA не позволяет называть конкретные бюджетные показатели Adapty. Поэтому, когда речь идет об экономике, приводятся относительные величины.
О сервисе
Adapty помогает разработчикам приложений увеличивать доход с внутренних подписок. Сервис включает набор разных инструментов: A/B-тесты пейволлов для лучшей конверсии пользователей в платных подписчиков, дашборд с нужными метриками, SDK для подключения покупок внутри приложения (in-app) и т. д.
Клиенты Adapty — мобильные приложения. Количество подписчиков у некоторых приложений может доходить до миллионов; в общей сложности система Adapty обслуживает 120 млн пользователей приложений. С ростом клиентов пропорционально растет и трафик. Как известно, трафик не бесплатный, а его стоимость в облачных окружениях может зависеть не только от числа конечных пользователей, но и ряда других факторов (взаимодействие сервисов между собой и т.п.). У Adapty ценник на него рос так стремительно, что это и стало основным мотивом для переосмысления архитектуры.
Причины отказа от изначальной архитектуры
Рост стоимости трафика. Adapty изначально решили разместить всю свою инфраструктуру в AWS. Предварительный расчет ежемесячного платежа в калькуляторе Amazon команду устроил. Однако этот расчет учитывал стоимость только фиксированных платежей за виртуальные машины (ВМ) и managed-сервисы. Нефиксированные платежи — в том числе за трафик — Adapty не считали.
Главной проблемой стал исходящий трафик — данные, которые передают серверы Adapty на мобильные приложения клиентов (Data Transfer Out From Amazon EC2 To Internet). Из-за роста клиентской базы общий объем трафика вырос до сотен ТБ в месяц. В итоге к моменту миграции более 60% всего чека за услуги AWS составляли как раз платежи за трафик.
Высокая стоимость IOPS. Вторая серьезная статья расходов — IOPS. Для работы базы данных Adapty важна высокая пропускная способность дисков, а за дополнительные IOPS’ы нужно платить.
Vendor lock-in. Вся инфраструктура Adapty состояла из managed-сервисов Amazon. В качестве оркестратора контейнеров использовался Elastic Container Service (ECS), базы PostgreSQL — Relational Database Service (RDS), балансировщика нагрузки — Application Load Balancer, логирования — CloudWatch, Redis — ElastiCache, для аналитики подключили связку Kinesis-Lambda-S3. Все эти сервисы работают только в облаке Amazon, никуда не переносятся и не реплицируются. Фактически Adapty стали зависимы от одной платформы. Если бы что-то пошло не так, оперативно мигрировать на другую инфраструктуру не получилось бы.
Функциональные ограничения managed-сервисов. Многие управляемые сервисы AWS удобны с точки зрения простоты их настройки и обслуживания. Обратная сторона удобства — ограниченная функциональность. Это касается, например, оркестратора контейнеров ECS: сравнивать его возможности с возможностями Kubernetes было бы некорректно. То же самое — с базой данных RDS (Relational Database Service), облачной версией PostgreSQL собственной сборки AWS: streaming-репликой здесь может быть только другая RDS.
Чтобы решить эти проблемы, инфраструктура была перевезена на обычный Kubernetes (не managed) и известные Open Source-аналоги облачных сервисов. Одновременно с этим произошла и смена провайдера, которым стал Google. Однако важно отметить, что не новый провайдер, а именно переход на K8s и другие self-hosted-решения стал ключевым фактором, благодаря которому удалось добиться экономии (подробности будут ниже).
Миграция и трудности
Наша SRE/DevOps-команда помогла Adapty перенести инфраструктуру, после чего взяла ее на поддержку. В процессе миграции не всё пошло по плану, и не в те сроки, на которые изначально рассчитывали.
Основные работы были выполнены примерно за 3 недели. Но с учетом подготовки и стабилизации некоторых сервисов после переезда весь этот проект в общем занял около полутора месяцев.
Что мы сделали для подготовки к миграции:
Собрали кластер Kubernetes на инстансах GCP.
Спланировали, как и когда переносить базу данных.
Проработали перенос балансировщика нагрузки и переключение трафика.
Организовали CI/CD (сборку и деплой) для приложений.
Спланировали перенос приложений.
А теперь — об основных трудностях, которые возникли в процессе переезда.
База данных
Одно из критических ограничений Amazon RDS — в том, что нельзя сделать физическую репликацию базы в другое облако или на собственную ВМ. То есть фактически БД пришлось собирать заново.
Сама база довольно «тяжелая»: в AWS она занимала около 1,3 ТБ. База часто обновляется, причем активно: всего за час может обновиться до 1 ТБ данных. Не облегчило задачу и то, что переезжали с 12-й версии PostgreSQL на 13.
В итоге перенос базы проходил в несколько этапов и стал самой трудоемкой частью проекта. Работы заняли больше 2 недель.
Балансировка трафика
Для блокировки и отдачи HTTP-кода 429 в AWS использовался Application Load Balancer. Балансировщик в Google — Cloud Load Balancing (CLB) — устроен по-другому, у него другая функциональность. После переезда в CLB настроили терминирование HTTPS и такую же фильтрацию, как в AWS, но потратили уйму времени на настройку CLB, потому что он гораздо сложнее ALB. В какой-то момент пришлось даже привлекать инженеров Google.
Логирование
В качестве альтернативы CloudWatch использовали систему на базе проверенного Open Source-стека: Elasticsearch, Logstash, Kibana (ELK). Чтобы реализовать в ELK ту же функциональность, что была у Adapty в CloudWatch, систему пришлось сильно кастомизировать. Работы по донастройке продолжались еще некоторое время и после переезда.
Результаты переезда
После переезда из AWS в нем остался только сервис аналитики (Kinesis + Lambda + S3). Остальные сервисы, которые работают в production, теперь развернуты на инстансах в облаке GCP, в основном как Open Source-решения.
Здесь важно подчеркнуть: Adapty переехали на обычные виртуалки, которые хостятся в Google. Поверх виртуалок стоит Kubernetes, который не завязан на конкретные сервисы провайдера, — наша Open Source-платформа Deckhouse; это сертифицированный в CNCF дистрибутив K8s, который работает на любой инфраструктуре. Вместо ВМ Google можно с равным успехом использовать инстансы от другого провайдера, в том числе свою инсталляцию OpenStack или bare metal-серверы.
Единственная оставшаяся привязка к поставщику — managed-сервис Google в виде балансировщика нагрузки Cloud Load Balancing, который принимает клиентский трафик и направляет его на Ingress в Kubernetes. Однако сейчас он не видится большой проблемой, и в перспективе его тоже можно отвязать от vendor lock-in: с балансировкой справится nginx, развернутый на ВМ или на выделенном сервере.
За виртуальные машины, IOPS и трафик по-прежнему приходится платить, но общая сумма теперь заметно дешевле.
На чем удалось существенно сэкономить:
трафик — 60%;
база данных — 50%;
логи — 40%;
кэш — 30%.
В случае трафика снижение стоимости произошло не из-за разницы в его стоимости у провайдеров, а благодаря оптимизации архитектуры и переходу в Kubernetes. В частности, удалось избавиться от «внутреннего» трафика между регионами AWS — убрали излишний full mesh между API, PgBouncer и БД. По IOPS — удалось отказаться от provisioned IOPS благодаря использованию больших SSD-дисков для СУБД (на каждый гигабайт выделяется около 30 IOPS — производительность получилась аналогичной). Другая экономия была достигнута из-за миграции на Open Source-альтернативы. Что примечательно, стоимость обслуживания инфраструктуры при этом не изменилась.
В итоге общий ценник за облачную инфраструктуру снизился на 50%.
Почему эту миграцию поручили нам как подрядчикам? CTO в Adapty, Кирилл Потехин, не относит администрирование серверов к ключевой экспертизе компании, не видит в этом бизнес-преимущество. Для Adapty выгоднее отдать вопросы по DevOps тем, кто в этом хорошо разбирается, чтобы самим сфокусироваться на продукте.
«Если бы мы сами попытались переехать в Kubernetes, мы бы потратили значительно больше времени, чтобы разобраться в том, как он устроен, как с ним правильно работать. Еще у нас, например, нет экспертизы в том, как самостоятельно настраивать мониторинг, а у “Фланта” была уже готовая система мониторинга на замену CloudWatch. С ее помощью мы быстро нашли несколько неэффективных запросов, которые сильно грузили базу, и переписали их, снизив нагрузку. Про какие-то метрики мы даже и не думали, что их нужно смотреть. Но, как оказалось, в разрезе Kubernetes это важно».
Кирилл Потехин
CTO Adapty
Технические бонусы от переезда в K8s
Переехав в GCP, Adapty избавились от привязки ключевых сервисов к поставщику. С учетом миграции в self-hosted Kubernetes это дало независимость от IaaS-провайдера: кластер можно перенести в другое облако, в том числе на выделенные серверы, или на собственное «железо». Новая инфраструктура принесла и другие плюсы.
Автомасштабирование
В случае с Adapty очень актуальным оказалось реализованное в Deckhouse динамическое автомасштабирование. У клиента бывают резкие всплески трафика: например, показатель RPS со среднего значения в 2000 может быстро подняться до 30000 — и так же быстро понизиться. Для таких ситуаций приложения были подняты на виртуальных машинах AWS в десятках экземплярах, «про запас». Половину времени эти ВМ простаивали. Сейчас в K8s настроено динамическое автомасштабирование узлов и Pod’ов. Это работает благодаря модулю node-manager, в котором machine-controller-manager заказывает узлы в облаке (поддерживаются AWS, GCP, Yandex.Cloud и другие). Как только возникает необходимость, на этих узлах разворачиваются дополнительные Pod’ы. Для более быстрого запуска Pod’ов дозаказанные узлы можно держать в standby-режиме.
Оптимизировать автомасштабирование помогла и наша утилита для деплоя werf. В случае Adapty используется HPA (Horizontal Pod Autoscaler). Например, в Deployment’е количество реплик могло быть ограничено 25-ю Pod’ами, а на сервис приходит много трафика. Тогда HPA увеличивает количество Pod’ов, скажем, до 100. Если в этот момент разработчики выкатывали обновление, количество Pod’ов сбрасывалось до 25 и сервис начинал тормозить. Эту проблему решили с помощью использования аннотации replicas-on-creation
в процессе выката приложения через werf и обнуления параметра replicas: N
в Deployment.
В Deckhouse есть похожая автоматизация и для дисков: платформа сама дозаказывает их. Например, в кластере нужно развернуть базу данных, и для нее требуется persistent-диск. Его можно заказывать через storage-классы Deckhouse, т. е. достаточно указать нужный размер и тип диска в YAML-манифесте. К слову, другой удобный момент с дисками — это возможность простого расширения объема PVC (PersistentVolumeClaim) в кластере или YAML с последующим перевыкатом.
Стабильность Pod’ов
Амазоновские ECS-таски (аналоги Pod’ов) нередко вылетали по памяти и не перезапускались. Если причину первой проблемы обычно можно было выявить, второй — уже нет. Adapty пришлось написать скрипт-«костыль», который раз в 30 секунд проверял, что ничего не вылетело и, если были проблемы, перезапускал таски. После переезда в K8s таких проблем больше нет. Если какой-то Pod вылетает, он сам перезапускается, а причины произошедшего можно выявить стандартными инструментами.
CI/CD
В обычном Kubernetes с CI/CD может быть проще, чем в ECS, поскольку доступны стандартные для индустрии инструменты. В нашем случае таковым, конечно, стала уже упомянутая werf, но ничто не мешает воспользоваться и чем-то другим, что будет более привычным и/или удобным для инженеров, задействованных в проекте.
Дальнейшие планы
Следующим шагом оптимизации инфраструктуры и затрат на нее Adapty планируют перенос некоторых сервисов на собственное «железо» в один из локальных дата-центров. Например, машины, которые отвечают за API и на которые идет почти весь трафик, — stateless: они не хранят данные, а просто выполняют код, поэтому их можно будет перенести в дешевый ЦОД. Тем самым вообще не придется платить за трафик. А критичную инфраструктуру — например, базу данных, — Adapty оставят в GCP, поскольку Google предоставляет достаточный уровень отказоустойчивости и доступности.
P.S.
Читайте также в нашем блоге:
Комментарии (30)
VitalySh
10.11.2021 13:42+2Очень странные сравнения по оптимизации костов, с акцентом на GCP. Что мешало переехать в тот же самый EKS в AWS? Все те же HPA и автоскейлеры, плюс спотовые инстансы в AWS куда дружелюбнее и могут не перегружаться месяцами. Я к тому, что никто не запрещает использовать AWS и не залезать в вендор-лок слишком глубоко, экономить косты и при этом иметь возможность уехать в другое облако в адекватные сроки.
n_bogdanov
10.11.2021 14:04+1Коллеги достаточно чётко отвечают на этот вопрос - стоимость трафика и дисков с высоким IOPS была слишком высока. От этого проект никак не смог бы деться без переезда.
По поводу спотовых инстансов - да, могут жить месяцами, а потом резко закончится. В нашей практике были случаи когда у нас была Autoscaling group на спотах с 3 типами инстансов. И в один прекрасный день все типы стали резко недоступны на несколько часов.
gecube
10.11.2021 14:59Так и надо писать, а то амазон такой плохой и якобы не позволяет использовать кубернетес и прочие не вендор-лок решения - вот такое впечатление остается после статьи.
Основные работы были выполнены примерно за 3 недели. Но с учетом подготовки и стабилизации некоторых сервисов после переезда весь этот проект в общем занял около полутора месяцев.
кстати, это весьма быстро. Или кто-то думал, что съехать с кубера в одном облаке в другой будет сильно быстрее? Тем более - сами пишете - очень много времени заняла настройка балансировщика в гугле (т.е. именно тот компонент, который нельзя проэмулировать или безболезненно заменить)...
Про кубер тоже интересно. Вот все говорят, что кубер везде одинаковый. Но это не так. Везде свои особенности. В том же ДО - хрен, а не больше 10 pvc. Или балансировщики разные. Или версии компонентов. Или набор компонентов и рестрикций. В результате поверх куба можно написать некий обобщающий слой. Но это работа, которую кто-то должен сделать и не всегда она имеет бизнес-велью
bmar
10.11.2021 15:20+1ну так разве наш deckhouse - не обобщает? :)
gecube
10.11.2021 16:09+2Я не хочу писать о том, что я руками сам не трогал ;-)
Но могу напомнить про закон протекающих абстракций. Строя некий фасад - все равно оно будет ломаться где-то. И все равно не удастся скрыть детали реализации конкретных платформ - или это надо инженеров иметь больше, чем у Фланта с Саусбридж вместе взятыми :-) чтобы все было красиво и работало в 99% случаев.
Касательно дистрибов куба... могу вспомнить историю с ранчером, который предлагал решить все проблемы пользователя, а в результате до сих пор не может обеспечить плавный переход с rke v1 на rke v2. И будущее туманно, учитывая, что их купила Сусе ))))
bmar
10.11.2021 16:13наш путь - особенный! ( я знаю, что все так говорят :) )
vitaly_il1
11.11.2021 07:52И ИМХО, это плохо для заказчика, так как означает для него Flant vendor lock.
shurup
11.11.2021 08:03+1Во-первых, Deckhouse — это Open Source-проект (и сертифицирован в CNCF на соответствие стандартному Kubernetes API). Во-вторых, идея этой платформы в поддержке разных провайдеров, чтобы не зависеть от поставщиков инфраструктуры.
Vendor lock — это про стоимость потенциального ухода (если что-то пойдет не так). Уйти с достаточно стандартного Kubernetes (и Open Source-проектов, задействованных в нем) проще, чем с проприетарных услуг AWS.
andreyverbin
10.11.2021 16:15+2Тут пишут, что egress GCP это 12-8 центов за Гб. У Амазона от 9 центов и ниже. Непонятно как вы на трафике экономите?
А если заморочиться с AWS Private Link то платить можно 2 цента за Гб + сколько возьмёт местный провайдер.
Я могу предположить, что у клиента утилизация ресурсов была низкой. При переезде купили сервера дешевле, настроили автомасштабирование и сэкономили за счёт лучшей утилизации ресурсов. Что с egress непонятно, у гугла он вроде дороже чем у AWS. Могу предположить, что было много «лишнего» трафика внутри AWS зон, который после переезда пропал.
shurup
12.11.2021 16:17+4Очень хороший вопрос про трафик. Спасибо за него и вам, и другим людям в комментариях. Мы стали анализировать эту ситуацию и поняли, что далеко не всё в ней понимаем.
В статье были неверно расставлены акценты. Из-за них складывалось впечатление, что разница в стоимости каких-то услуг общего назначения (например, трафик) у двух провайдеров принесла столь значимый экономический выигрыш. Это не так. Миграция на другого провайдера вообще была второстепенна, а первична — новая схема инфраструктуры: self-hosted Kubernetes и Open Source-софт вместо managed-сервисов. Постарались переставить акценты в тексте статьи.
С вопросом получившейся разницы в стоимости трафика мы ещё разбираемся, но это оказалось не так очевидно, как предполагалось. На следующей неделе планируем дать пояснение.
shurup
16.11.2021 16:06+2Добавили в статью уточнение про внутренний трафик между регионами AWS. В старой схеме по факту функционировал full mesh (между API, PgBouncer и СУБД). Но эта схема была сделана на этапе быстрого запуска проекта. С ростом проекта стала заметна проблема неэффективности такого подхода (этот излишний трафик привел к растущим дополнительным расходам). При переезде в новую инфраструктуру проблема решилась сама собой, т.к. взаимодействие между сервисами приложения стало более оптимальным.
P.S. Попутно ещё уточнили про IOPS: платить перестали за provisioned IOPS, а нужную производительность (для СУБД) получили благодаря большим SSD-дискам.
alex_www
10.11.2021 17:08+2Поднять приватный куб на рентованом железе получилось бы еще дешевле.
gecube
10.11.2021 18:01на арендованном железе теряешь гибкость масштабирования - никто не может железо поставлять мгновенно ) все равно будет какой-то лаг между заказом железа и его реальной доступностью для ПО... Я уж не говорю о том, что запросто еще можно влететь в историю с недостатком айпи адресов, места в стойках или еще чем-то подобном... Облако вроде как эти проблемы решает... но какой ценой?
alex_www
10.11.2021 20:11+1Не соглашуть. Ни вцелом ни в деталях. Сразу контр-пример https://metal.equinix.com/ из известных. Да и вцелом из-за отностительно дешевизны железа стоит делать overprovisiong.
gecube
10.11.2021 20:20Вы можете не соглашаться как угодно и сколько угодно. Реальность провайдеров вроде reg.RU / servers.com в том, что железки в лучшем случае за день появляются. Если хостишься в датацентре - там тоже закупочный цикл железа и все такое. Месяцы.
Вы хороший пример насчёт эквиникса приводите и слава богу, что они есть. Но это только часть многообразного мира.
К примеру, для меня было вообще открытием, что виртуальный хостинг в Германии все ещё жив. На него есть спрос. Я сам в шоке. И не всегда клиенты хотят переползать на что-то более технологичное…
alex_www
10.11.2021 20:27+1Сравнивать GCP с REG.ru как-то вообще не оно. А вот сравнить GCP с Equinix очень даже оно. Виртальный шаред хостинг шив еще как и в США, Германия тут не одинока.
gecube
10.11.2021 23:00ну, а чего - вот там кто-то выступает за арендованные или за свои железки. Вот в 100 из 100 случаев они будут в Equinix? Ну, я прям сильно сомневаюсь... Даже американские компании с терабайтным трафиком ставят свое железо в ЦОДы тамошние....
alex_www
12.11.2021 22:35Equinix и есть ЦОДы в частности, даже в основном. Вроде самый крупный эксплуататор ЦОДов на земле. Работаю как под брендом Equinix так и под сотней других брендов в партнерстве.
markowww
10.11.2021 18:29Странно, что сравнивали ECS и GKE, когда у AWS есть EKS.
Касаемо цены за трафик - AWS очень хорошо торгуются, при определенных объемах цену на трафик можно уронить в 10 раз. Может проблема была в Inter-AZ трафике? Что объяснимо, если используется Posgtres, т.к. мастер строго в одной зоне доступности, когда как клиенты в ECS могут (и должны) быть размазаны по всем зонам.
gecube
10.11.2021 19:10может быть это заявка на использование более cloud native баз, чем постгрес?
markowww
10.11.2021 19:18Если говорить про SQL, то у AWS есть Aurora Serverless, но она и дороже, и не лишена неких технических нюансов. Например, скейлинг вверх там не такой быстрый, как хотелось бы. Плюс, хотя AWS и гарантирует совместимость на уровне протокола, производительность в разных сценариях может отличаться от классической БД, что, возможно, придется парировать изменением кода.
Но все это - рассуждения в отрыве от бизнес задачи
vitaly_il1
10.11.2021 21:10+1Это касается, например, оркестратора контейнеров ECS: сравнивать его возможности с возможностями Kubernetes было бы некорректно.
Это точно :-)
В целом у меня такое чувство что заказчик поменял AWS vendor lock на Flant vendor lock, и ИМХО первое было лучше.
Я не против того, что при определенном scale может быть выгоднее использовать железные или виртуальные серверы чем SaaS, но ИМХО для этого нужны соответствующие люди внутри фирмы. Платить и зависеть от внешней фирмы?! - по-моему это менее надежно и выгодно чем использовать SaaS.
Короче, я бы просто оптимизировал внутри AWS.shurup
11.11.2021 06:25+1От людей внутри фирмы вы тоже будете зависеть... Но зависимость от них и их решений за lock считаться не будет? ;-) А ведь не так очевиден ответ на вопрос, кто даст больше гарантий: компания-подрядчик или сотрудник(и). Особенно в случаях, когда речь про малое число сотрудников (проекту не нужно больше для сопровождения инфраструктуры). И особенно сейчас, когда наблюдается острейшая нехватка кадров на рынке.
vitaly_il1
11.11.2021 07:27+1при определенном scale
Да, надо строить культуру DevOps, как это сделали Netflix, Google, Facebook, и другие.
Очень сомневаюсь что Adapty достигла этого scale.
Поэтому я бы оставался в AWS с *aaS, говоря простым языком - с RDS, managed K8S, и т.д.
Кстати: Упоминание про дорогой траффик, как уже сказали многие, очень странное, да и для удешевления IOPS в AWS есть разные решения.
В целом у меня такое чувство, что удешевили на 50%, но не упомянуты две важные цифры - сколько стоила миграция и сколько платят за поддержку Фланту. У меня такое чувство, что заказчик выиграл хорошо если 20-25%%, а в первый год наверняка вышло дороже.shurup
12.11.2021 16:20В целом у меня такое чувство, что удешевили на 50%, но не упомянуты две важные цифры - сколько стоила миграция и сколько платят за поддержку Фланту. У меня такое чувство, что заказчик выиграл хорошо если 20-25%%, а в первый год наверняка вышло дороже.
Наша поддержка обходится значительно дешевле, чем стоимость инфраструктуры. Стоимость обслуживания инфраструктуры до и после и не изменилась. На время миграции вырастала, но не в разы.
Про трафик недоработка с нашей стороны, прокомментировал выше.
stroitskiy
10.11.2021 22:11Так а как получилось сэкономить на трафике то? Пример расчета то можно?
с учетом например того что в Амазоне базовый WAF c защитой от ДДоС атак уже включен в ценник, а в Гугле надо отдельно докупать.
excentro
Где-то читал, что в Амазон приходят его "попробовать", а потом никто не может от него уйти из-за вендор-лока...
AlexTheLost
AWS в целом не дешевый если сравнивать с ценой на работу опенсурса на голом железе, но без учета трудозатрат. В трудозатратах кроется вся суть. Для большинства проектов трудозатраты на поддержание своей инфраструктуры и сервисов в рабочем состоянии это дороже, с точки зрения ЗП и убытков от сбоев чем готовые сервисы в cloud провайдерах.
Проектов в которых возникает проблема с масштабами как у описанной компани не так много. В целом 1.5 месяца на перезд после того как у вас сформировался устойчивый доходный бизнес, приносящий доход, для меня это выглядит очень быстро и не как проблема, просто автору статьи нужно было за что-то зацепиться для увеличения значимости посыла статьи.
На мой взгляд AWS самый user friendly из доступных cloud.
В статье не рассмотрены затраты на сам переезд и сколько после переезда стала стоять поддержка?
shurup
На время переезда стоимость обслуживания вырастала, но не в разы. После переезда она вернулась на прежний (т.е. до миграции) уровень.