Что нужно знать о переносе инфраструктуры с западного хостинга на российский
Если планируется переезд с иностранного хостинга на отечественный, стоит учесть все нюансы. Мигрировать, выиграв в финансовом вопросе, можно: в этом на собственном опыте убедился Денис Божок, руководитель отдела инфраструктуры сервиса онлайн-бронирования отелей Ostrovok.ru. Несколько лет назад компания перевела всю инфраструктуру с с облака Amazon Web Services на серверы Selectel. Издержки переезда окупились за месяц, а стоимость хостинга уменьшилась в два раза.
Почему в Ostrovok.ru. сделали выбор в пользу отечественной компании? Какие проблемы решили переездом и с какими трудностями столкнулись? На эти вопросы Денис ответил в интервью компании Selectel в рамках конференции РИТ++
Почему изначально был выбран Amazon Web Services
До переезда мы жили на паре десятков серверов в маленьком дата-центре и четкого плана по переходу на облачные платформы у нас не было. Но с ростом числа отелей на сайте росло и количество их фотографий.
К 2014 году объем визуального контента составлял около 4–5 терабайт. Для дальнейшего роста нужно было думать над масштабированием хранилища фотографий, искать удобные инструменты для их хранения и резервирования. Тогда и пришла мысль попробовать решение от AWS — его легендарное S3 хранилище.
Следующим этапом стала необходимость масштабировать наш сервис картинок. Нагрузка на него плавающая, роботы приходят и уходят, соответственно, необходимость в серверах то появляется, то исчезает. В тот момент — в 2014 году — у нас все было в Docker. Поэтому переехать особого труда не составило.
Дата-центры Amazon расположены более чем в 20 регионах по всему миру. В Европе на данный момент выделено пять регионов — Милан, Париж, Лондон, Франкфурт и Ирландия.
Разработка собственных сервисов
У нас сервис-ориентированная архитектура, а это значит, что есть куча микро-сервисов. Они написаны в основном с использованием двух языков: первый — Python в связке с Django и PostgreSQL, а второй — Golang. Помимо этого есть разного рода стейки, такие как big data, RnD, в которых используются machine learning, GPU и так далее.
Шесть лет назад мы «заезжали» в регион Франкфурт. На тот момент он был молодым, и все сервисы, уже внедренные в более зрелых регионах, до него доходили с задержкой. Не раз возникала ситуация, что нам нужен был функционал сервиса, которого либо не было совсем, либо он отсутствовал в нашем регионе.
Например, в наш регион завезли спотовые инстансы — аукцион серверных мощностей, благодаря которому можно сэкономить до 90% их стоимости. Но инструментов, позволяющих настроить автоматический заказ нужных серверов, не было. Приходилось заходить в консоль аукциона, выбирать тип инстанса, устанавливать цену, добавлять новые «виртуалки» в кластер. А это неэффективная трата времени и высокий шанс упустить изменение цен. Поэтому мы создали свой менеджер спотов, который заказывал нужные серверы по подходящим ценам и сам добавлял их в кластер. Аналогичный инструмент — spot fleet — на Amazon Web Services появился лишь спустя несколько лет.
Точно так же нам пришлось оптимизировать работу с системой управления базами данных DynamoDB от AWS. Одна из ее фишек в том, что ты платишь за IOPS (количество операций ввода-вывода в секунду) и сам можешь выставлять лимиты по операциям. Это удобно, но, опять же, не было автоматизированного управления. Поэтому мы разработали собственный механизм, который выставлял подходящие нам лимиты IOPS и регулировал их по мере необходимости.
Кроме того, долгое время в AWS не было удобных инструментов для работы с Docker, которым мы уже активно пользовались. Поэтому до появления подходящих нам сервисов на Amazon Web Services справлялись своими силами. В целом, не могу назвать перечисленные ситуации критичными.
При переходе из облака на решения on-premises будьте готовы, что многие процессы, выполняемые ранее облачным провайдером, перейдут в вашу зону ответственности. Идеальное решение — то, что максимально подходит под ваши требования и особенности компании.
Причины переезда на российский хостинг
В 2016 году мы задумались о смене провайдера и начали поиск на российском рынке. Причин для переезда c облака от Amazon было несколько. Одна из них — желание оптимизации расходов. Amazon стоит достаточно больших денег. Мы подумали и решили, что наши ресурсы можно использовать лучше, поэтому и начали смотреть на отечественных провайдеров, в том числе выбирали среди дата-центров.
Вторая — активное развитие нас в России как b2b продукта. И для этого нам нужно было подстраиваться под российское законодательство, а значит следовать № 152-ФЗ, который требует хранения персональных данных на территории страны.
Почему же выбор пал именно на Selectel? Здесь сработало сарафанное радио: наши знакомые были клиентами компании и дали хорошие отзывы. Решили попробовать. Связались с менеджерами, обсудили условия и договорились, что, если не будет хватать текущих возможностей, Selectel поможет разработать новые. Конечно, это просто не могло не импонировать.
Нас это устроило, взяли курс на миграцию — с облака в «железо».
Экономическая выгода миграции
По грубым подсчетам, после переезда на серверы Selectel сервис подешевел в два раза. Конечно, это не значит, что любой переезд с зарубежного провайдера на отечественный будет таким же выгодным. Однако практика показывает, что усилия, потраченные на миграцию, как правило, окупают себя в первый месяц.
Приятный бонус для Ostrovok.ru состоял в том, что вместо виртуальных серверов мы получили физическое оборудование, полностью соответствующее нашим требованиям. На данный момент у нас порядка 400 серверов в Selectel.
Справедливости ради добавлю, что фотографии, из-за которых мы изначально пришли в Amazon Web Services, пока остались там же, в S3 хранилище. Объем фотографий с 2014 года вырос до 70 терабайт. Все остальное — базы с персональными данными, поисковые кластеры и служебные сервисы — мы перевезли. В планах есть окончательная миграция, но это операция непростая.
Трудности, возникшие при переезде
Тут могу сказать одно: у каждого будут свои «грабли». И это нормально. Главное — понимать цель переезда. Мы столкнулись с многими архитектурными ограничениями.
Например, нам нужно было настроить общую сеть между физическими серверами и нашими виртуальными машинами в «Облачной платформе Selectel». В облако мы переносим сервисы, которые неприхотливы к объему ресурсов.
Так, кластер DNS-серверов у нас расположен в частном облаке — это удобно и надежно. Иногда можем развернуть здесь какой-нибудь тест, удалив облако по завершении задачи. Но готового решения для обеспечения связи между физическими серверами и облаком на тот момент не было. Тогда мы с помощью ребят из Selectel организовали L2-связность, которой пользуемся по сей день. Сейчас подобная услуга доступна для всех клиентов «из коробки».
При работе с «железом» важно держать в голове свойственные ему минусы. Из своего опыта я бы выделил два ярких нюанса:
Конфигурации серверов в кластерах нужно держать актуальными и своевременно заменять на новое «железо». В противном случае можно упереться в отсутствие необходимых комплектующих.
Перед вводом серверов в эксплуатацию нужно самим подобрать тесты на их соответствие текущей конфигурации.
Иногда бывает так, что одинаковые по конфигурации серверы отличаются по производительности. Лучше это обнаружить до введения сервера в кластер.
Выбор heavy bare-metal
Будь инфраструктура в облаке, со многими описанными проблемами мы бы не столкнулись. Но после цикла «железо-облако-железо» пришли к выводу: для Ostrovok.ru нет ничего лучше старого доброго heavy bare-metal.
Проблема любого облака — vendor lock-in, или привязка к поставщику. Если кратко, ты подсаживаешься на облачные сервисы, того же Amazon, и теряешь свободу передвижений.
Например, съехать с Relational Database Service (база данных от Amazon) на свою «ламповую» базу данных без простоя очень проблематично. Добавим к этому специфичные инструменты, которые сложны в администрировании и отслеживании нагрузки, и не очень прозрачный биллинг. На AWS было почти нереально учесть все факторы при подсчете стоимости будущего сервиса. И довольно просто промахнуться с лимитами. Причем об ошибке вы узнаете уже по факту, когда получите счет от провайдера.
Выбор «железа» — наше решение, обусловленное опытом и особенностями работы компании. У нас и разработка, и релизы достаточно предсказуемы. Когда на Ostrovok.ru ожидается рост из-за сезонности или маркетинговых акций, мы заранее обеспечиваем рост количества серверов. Либо скидываем лишние, если нагрузка снижается.
Разница в отечественной и иностранной поддержке
У меня был опыт взаимодействия как с зарубежной, так и с российской технической поддержкой. Иностранная построена на простой логике: хочешь поддержку — плати деньги. Хочешь быструю поддержку — плати еще больше денег. Кроме того, на AWS приходилось оплачивать поддержку для каждого нашего аккаунта — одна подписка на несколько, даже сопряженных, не распространялась.
А еще там иногда бывает внушительное время задержки. Звучит невероятно, но российская техподдержка работает более оперативно. В Selectel, например, в панели управления есть чат, в котором можно связаться со специалистом и в адекватные сроки получить ответ. И все это происходит без дополнительных подписок и необходимости покупки премиум-аккаунтов. Кроме того, за годы хостинга в Selectel мы вошли в список ключевых клиентов компании и получили отдельную линию поддержки — Customer care. Нам сразу дают апдейт по задаче, отвечают быстро и в любое время суток, для этого не нужно ждать официального старта рабочего дня.
Работа поддержки — важный нюанс. Одно дело, когда инженер не может настроить сервис и ему нужна помощь. Другое — когда сервис свежий, и в нем есть ошибки на стороне провайдера. С таким за годы хостинга на AWS мы тоже сталкивались. Во втором случае платить за премиум-поддержку, как мне кажется, неправильно. Ведь по сути вам приходится расплачиваться за то, чтобы сообщить специалистам облака об их багах.
Видимо, дело в разнице менталитетов, ведь подходы в отечественной и иностранной поддержках совершенно разные. Наверное, это может прозвучать, как реклама, но в Selectel мне нравится больше. Хотя бы потому, что тут можно решить проблему максимально быстро, а не ждать долгое время, пока тебе хоть что-нибудь ответят.
Как на нагрузку повлияла пандемия
Так как нагрузка на серверы снизилась, то и требований к количеству оборудования стало меньше. Первое, что мы сделали: посчитали риски; прикинули, сколько понадобится серверов, когда пользователи вернутся на сайт; отказались от лишнего. Вторым этапом оптимизировали дорогие сервисы. Как раз появился явный стимул «отрефакторить» то, что давно хотелось, в пользу как архитектуры, так и экономики. В итоге скинули еще несколько серверов.
Мы и до коронавируса пересматривали наши решения с точки зрения эффективности. Поэтому эпидемия не сильно повлияла на наши методы оптимизации. Скорее наоборот, она подтвердила, что и раньше мы все делали правильно.
Если вы задумались о смене провайдера хостинг-услуг, стоит обратить внимание на следующие аспекты:
Обозначьте проблему, которую вы хотите решить. Осознав ее, просчитайте экономическую целесообразность. Она складывается как из прямых расходов за сервисы, так и из времени, которое ваши сотрудники тратят на администрирование.
С четкой целью можно начать изучать рынок: кто из компаний лучше всех поможет вам решить проблему. Если альтернатив несколько, отталкивайтесь от качества и скорости технической поддержки.
Если ваш бизнес акцентирован на российский рынок, присмотритесь к отечественным провайдерам. Так стоимость услуг будет меньше зависеть от перепада курсов валют.
Хотя бы раз в полгода нужно пересматривать оптимальность и эффективность работы ваших сервисов. Не откладывайте оптимизации на потом. Постоянное совершенствование архитектуры сделает существование вашего бизнеса более уверенным в непредвиденных ситуациях.
Ostrovok.ru — сервис онлайн-бронирования отелей. Компания предоставляет клиентам более 1 300 000 вариантов размещений в гостиницах, хостелах и апартаментах от прямых поставщиков и крупных партнеров. Входит в Emerging Travel Group, которая управляет четырьмя тревел-брендами: Ostrovok, B2B.Ostrovok, ZenHotels, RateHawk.
Selectel — российский провайдер IT-инфраструктуры. Предоставляет широкую линейку инфраструктурных продуктов и услуг, как собственной разработки, так и в партнерстве с мировыми технологическими лидерами. Сеть компании насчитывает 6 собственных современных дата-центров в Москве, Санкт-Петербурге и Ленинградской области.
Блог компании Selectel