AWS как legacy

27 ноябрь, 2019 - 18:05Константин Введенский

AWS имеет самую долгую историю как публичное облако — больше 10 лет. За эти годы было выпущено около 100 сервисов покрывающих все возможные варианты использования. Вопрос насколько сильно устарели некоторые из решений предлагаемых AWS? Современные технологии развиваются очень быстро и скачкообразно, а парадигма развития open source как бизнес модели в последние годы позволила выйти на рынок очень многим интересным и бесплатным продуктам.

Некоторые сервисы находятся «в форме» в силу своей простоты и незаменимости — S3 для хранения данных, виртуальные машины EC2 или шина сообщений SQS. С другой стороны — технологии которые, как оказывается при ближайшем рассмотрении, можно заменить более современными и менее затратными решениями.

Недавно я сотрудничал с одним стартапом, цель проекта — оптимизация затрат на AWS. Это была небольшая компания, владеющая крупным развлекательным сайтом. Как и положено современному бизнесу, собиралось максимально возможное количество аналитических данных с сайта и приложения. Основное долгосрочное хранение, конечно, S3. Аналитика и обработка выполнялись с помощью продвинутых сервисов AWS.

AWS Redshift — колоночная база данных для хранения и аналитики больших данных. Именно это решение в сочетании с MongoDB использовал Amazon для миграции с решений Oracle. Система, купленная много лет назад, в своей основе построена на сильно модифицированном ядре PostgreSQL 8. Имеет огромное количество инсталляций с количеством нод больше 100 и данными, исчисляемыми в сотни ПБ.

С другой стороны есть современное бесплатное open source решение написанное с нуля — ClickHouse. Изначальная задача для которой разрабатывалась БД — хранение данных сервиса Яндекс.Метрика.

По мере роста объёма и собираемых данных масштабировался кластер и стоимость сервиса. Но проблема в том что при горизонтальном масштабировании производительность не растёт ни линейно, ни с удовлетворительным уровнем, а вертикальном — динамика ещё хуже. То есть заполняемость хранилища кластера не успевает за количеством вычислительных ресурсов, которые нужны для обработки всё растущего объема данных.

В итоге после небольшого тестирования оказалось что кластер из 30 нод Redshift можно спокойно заменить эквивалентными 10 нодами r4, и получить прирост в производительности в несколько раз, а общую стоимость владения снизить в 3 раза.

Воодушевившись такими результатами стартап решил провести полный аудит, после которого заменил все ноды i2 на i3, что позволило снизить стоимость ещё на 30%.

На большом собрании руководства компании и технарей было решено переделать как можно больше всего, и отказаться от legacy в использовании AWS, везде где возможно.

При агрессивном росте и малом количестве персонала управляемые сервисы и PaaS могут стать спасением и решением сиюминутных задач бизнеса, но уже через несколько лет они же могут превратиться в фактор ограничивающий рост компании или и вовсе якорем потянуть вниз.

Несколько лет назад когда Netflix, будучи существенно меньше нынешнего, активно выступал на разных мероприятиях и рассказывал о своей стратегии использования сервисов AWS. Никаких управляемых сервисов, только базовые и простые сервисы, в основном EC2. Причина проста — отдавая контроль кому-то за базовыми вещами вы перестаете видеть за деревом лес, и, возможно, начинаете терять больше, чем приобретаете.

Лет пять назад разные поставщики продвигали идею среди заказчиков CoE — Center of Excellence, группы инициаторов и глубоко технических специалистов, которые бы решали проблему развития ИТ, миграции в облако и пр. Стартап, о котором я упоминал выше, решил раз в год собирать такую группу для аудита инфраструктуры и понимания что бы еще «выкинуть».

Похоже, история, как ей и положено, повторяется снова — 10 лет назад мы такое уже проходили с виртуализацией, сегодня с облаками. А некоторые, о ужас, в подобной ситуации оказываются уже и с контейнерными приложениями, которые также постепенно превращаются в legacy и начинают выходить из оборота.