(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(93790508, "init", { defer: true, clickmap:true, trackLinks:true, accurateTrackBounce:true }); ym(93790508, 'hit', window.location.href);

«Железный» островок: о жизни в зарубежном облаке и возвращении на землю

Инсайты миграции от руководителя отдела инфраструктуры Ostrovok.ru

Четыре года назад крупный сервис онлайн-бронирования отелей переехал с облака иностранного провайдера на российские серверы. Издержки миграции окупились за месяц, а стоимость хостинга уменьшилась в 2 раза. О деталях инфраструктурного переезда рассказываем в материале Selectel.

Руководитель отдела инфраструктуры сервиса онлайн-бронирования отелей Ostrovok.ru Денис Божок дал открытое интервью в рамках фестиваля «Российские интернет-технологии-2020». В беседе Денис раскрыл причины переезда инфраструктуры с облака Amazon Web Services на серверы Selectel, поговорил об архитектурных ограничениях, неизбежных граблях и старом добром heavy bare-metal.

О выборе Amazon Web Services

До переезда мы жили на паре десятков серверов в маленьком дата-центре и четкого плана по переходу на облачные платформы у нас не было. Но с ростом числа отелей на сайте росло и количество их фотографий. К 2014 году объем визуального контента составлял порядка 4-5 терабайт.

Для дальнейшего роста нужно было думать над масштабированием хранилища фотографий, искать удобные инструменты для их хранения и резервирования. Тогда и пришла мысль попробовать решение от AWS — его легендарное S3 хранилище.

Дата-центры Amazon расположены более чем в 20 регионах по всему миру. В Европе на данный момент выделено пять регионов — Милан, Париж, Лондон, Франкфурт и Ирландия.

Об отсутствии необходимых сервисов

Шесть лет назад мы «заезжали» в регион Франкфурт. На тот момент он был молодым, и все сервисы, уже внедренные в более зрелых регионах, до него доходили с задержкой. Не раз бывало, что нам нужен был функционал сервиса, которого либо не было совсем, либо он отсутствовал в нашем регионе.

Денис Божок, руководитель отдела инфраструктуры Ostrovok.ru

Например, в наш регион завезли спотовые инстансы — аукцион серверных мощностей, благодаря которому можно сэкономить до 90% их стоимости. Но инструментов, позволяющих настроить автоматический заказ нужных серверов, не было. Приходилось заходить в консоль аукциона, выбирать тип инстанса, устанавливать цену, добавлять новые «виртуалки» в кластер. Неэффективная трата времени и высокий шанс упустить изменение цен. Поэтому мы создали свой менеджер спотов, который заказывал нужные серверы по подходящим ценам и сам добавлял их в кластер. Аналогичный инструмент — spot fleet — на Amazon Web Services появился лишь спустя несколько лет.

Точно так же нам пришлось оптимизировать работу с системой управления базами данных Dynamodb от AWS. Одна из ее фишек в том, что ты платишь за IOPS (количество операций ввода-вывода в секунду) и сам можешь выставлять лимиты по операциям. Это удобно, но, опять же, не было автоматизированного управления. Поэтому мы разработали собственный механизм, который выставлял подходящие нам лимиты IOPS и регулировал их по мере необходимости.

Кроме того, долгое время в AWS не было удобных инструментов для работы с Docker, которым мы уже активно пользовались. Поэтому до появления подходящих нам сервисов на Amazon Web Services справлялись своими силами.

В целом, не могу назвать перечисленные ситуации критичными. При переходе из облака на решения on-premises будьте готовы, что многие процессы, выполняемые ранее облачным провайдером, перейдут в вашу зону ответственности. Идеальное решение — то, что максимально подходит под ваши требования и особенности компании.

О причинах переезда

В 2016 году мы задумались о смене провайдера и начали поиск на российском рынке. Причин для переезда c облака от Amazon было несколько.

Во-первых, мы хотели оптимизировать расходы. Все-таки AWS, несмотря на относительное удобство, стоит немалых денег. Мы понимали, что можем эффективнее использовать наши ресурсы. Кроме того, нам нужно было следовать № 152-ФЗ, который требует хранения персональных данных на территории России.

Для миграции инфраструктуры мы выбрали Selectel. Здесь сработало сарафанное радио: наши знакомые были клиентами компании и дали хорошие отзывы. Решили попробовать. Связались с менеджерами, обсудили условия и договорились, что, если не будет хватать текущих возможностей, Selectel поможет.

Нас это устроило, взяли курс на миграцию — с облака в «железо».

Удобная IT-локация ↴

✔ На длительный срок.

✔ Без посредников.

✔ С интеллигентными соседями.

✔ Все для комфортного пребывания: выделенные серверы, облачная платформа и консультации 24/7.

Selectel

Об экономии

По грубым подсчетам, сервис подешевел двукратно после переезда на серверы Selectel. Конечно, это не значит, что любой переезд с зарубежного провайдера на отечественный будет таким же выгодным. Однако практика показывает, что усилия, потраченные на миграцию, как правило, окупают себя в первый месяц. Приятный бонус для Ostrovok.ru состоял в том, что вместо виртуальных серверов мы получили физическое оборудование, полностью соответствующее нашим требованиям. На данный момент у нас порядка 400 серверов в Selectel.

Справедливости ради добавлю, что фотографии, из-за которых мы изначально пришли в Amazon Web Services, пока остались там же, в S3 хранилище. Объем фотографий с 2014 года вырос до 70 терабайт. Все остальное — базы с персональными данными, поисковые кластеры и служебные сервисы — мы перевезли. В планах есть окончательная миграция, но это операция непростая.

О граблях

Тут могу сказать одно: у каждого будут свои «грабли». И это нормально. Главное — понимать цель переезда.

Офис компании Ostrovok.ru

Мы столкнулись с многими архитектурными ограничениями. Так, нам нужно было настроить общую сеть между физическими серверами и нашими VPC (Virtual Private Cloud, «виртуальное частное облако») в Облачной платформе Selectel. На VPC мы переносим сервисы, которые неприхотливы к объему ресурсов. Например, кластер DNS-серверов у нас расположен в частном облаке — удобно и надежно. Иногда можем развернуть какой-нибудь тест на VPC, удалив облако по завершении задачи.

Так вот, готового решения для обеспечения связи между серверами и VPC на тот момент не было. Тогда мы с помощью ребят из Selectel организовали L2-связность, которой пользуемся по сей день. Сейчас подобная услуга доступна для всех клиентов «из коробки».

При работе с «железом» важно держать в голове свойственные ему минусы. Из своего опыта я бы выделил два ярких нюанса:

  1. Конфигурации серверов в кластерах нужно держать актуальными и своевременно заменять на новое «железо». В противном случае можно упереться в отсутствие необходимых комплектующих.
  2. Перед вводом серверов в эксплуатацию нужно самим подобрать тесты на их соответствие текущей конфигурации. Случается так, что одинаковые по конфигурации серверы отличаются по производительности. Лучше это обнаружить до введения сервера в кластер.

О старом добром heavy bare-metal

Конечно, будь инфраструктура в облаке, со многими описанными проблемами мы бы не столкнулись. Но после цикла «железо-облако-железо» пришли к выводу: для Ostrovok.ru нет ничего лучше старого доброго heavy bare-metal.

Выбор «железа» — наше решение, обусловленное опытом и особенностями работы компании. У нас и разработка, и релизы достаточно предсказуемы. Когда на Ostrovok.ru ожидается рост из-за сезонности или маркетинговых акций, мы заранее обеспечиваем рост количества серверов. Либо скидываем лишние, если нагрузка снижается.

Денис Божок, Руководитель отдела инфраструктуры Ostrovok.ru

Проблема любого облака — vendor lock-in, или привязка к поставщику. Если кратко, ты подсаживаешься на облачные сервисы, того же Amazon, и теряешь свободу передвижений. Например, съехать с Relational Database Service (база данных от Amazon) на свою ламповую базу данных без простоя очень проблематично.

Добавим к этому специфичные инструменты, которые сложны в администрировании и отслеживании нагрузки, и не очень прозрачный биллинг. На AWS было почти нереально учесть все факторы при подсчете стоимости будущего сервиса. И довольно просто промахнуться с лимитами. Причем об ошибке вы узнаете уже по факту, когда получите счет от провайдера.

Выбор «железа» — наше решение, обусловленное опытом и особенностями работы компании. У нас и разработка, и релизы достаточно предсказуемы. Когда на Ostrovok.ru ожидается рост из-за сезонности или маркетинговых акций, мы заранее обеспечиваем рост количества серверов. Либо скидываем лишние, если нагрузка снижается.

О важности поддержки

У меня был опыт взаимодействия как с зарубежной, так и с российской технической поддержкой.

Иностранная построена на простой логике: хочешь поддержку — плати деньги. Хочешь быструю поддержку — плати еще больше денег. Кроме того, на AWS приходилось оплачивать поддержку для каждого нашего аккаунта — одна подписка на несколько, даже сопряженных, не распространялась.

Звучит невероятно, но российская техподдержка работает более оперативно. В Selectel, например, в панели управления есть чат, в котором можно связаться со специалистом и в адекватные сроки получить ответ. Без дополнительных подписок и премиум-аккаунтов.

Также за годы хостинга в Selectel мы вошли в список ключевых клиентов компании и получили отдельную линию поддержки — Customer care. Нам сразу дают апдейт по задаче, отвечают быстро и в любое время суток, не нужно ждать официального старта рабочего дня.

Работа поддержки — важный нюанс. Одно дело, когда инженер не может настроить сервис и ему нужна помощь. Другое — когда сервис свежий и в нем есть ошибки на стороне провайдера. С таким за годы хостинга на AWS мы тоже сталкивались. Во втором случае платить за премиум-поддержку, как мне кажется, неправильно. Ведь ты платишь за то, чтобы сообщить специалистам облака об их багах.

Об оптимизации во время пандемии

Так как нагрузка на серверы снизилась, то и требований к количеству оборудования стало меньше. Первое, что мы сделали: посчитали риски; прикинули, сколько понадобится серверов, когда пользователи вернутся на сайт; отказались от лишнего.

Вторым этапом оптимизировали дорогие сервисы. Как раз появился явный стимул «отрефакторить» то, что давно хотелось, в пользу как архитектуры, так и экономики. В итоге скинули еще несколько серверов.

Мы и до коронавируса пересматривали наши решения с точки зрения эффективности. Поэтому эпидемия не сильно повлияла на наши методы оптимизации. Скорее наоборот, она подтвердила, что и раньше мы все делали правильно.

Если вы задумались о смене провайдера хостинг-услуг, вот на что стоит обратить внимание:

  • Обозначьте проблему, которую вы хотите решить. Осознав ее, просчитайте экономическую целесообразность. Она складывается как из прямых расходов за сервисы, так и из времени, которое ваши сотрудники тратят на администрирование.
  • С четкой целью можно начать изучать рынок: кто из компаний лучше всех поможет вам решить проблему. Если альтернатив несколько, отталкивайтесь от качества и скорости технической поддержки.
  • Если ваш бизнес акцентирован на российский рынок, присмотритесь к отечественным провайдерам. Так стоимость услуг будет меньше зависеть от перепада курсов валют.
  • Хотя бы раз в полгода нужно пересматривать оптимальность и эффективность работы ваших сервисов. Не откладывайте оптимизации на потом. Постоянное совершенствование архитектуры сделает существование вашего бизнеса более уверенным в непредвиденных ситуациях.

Ostrovok.ru – сервис онлайн-бронирования отелей. Компания предоставляет клиентам более 1,3 млн вариантов размещений в гостиницах, хостелах и апартаментах от прямых поставщиков и крупных партнеров. Компания входит в Emerging Travel Group, которая управляет четырьмя тревел-брендами: Ostrovok, B2B.Ostrovok, ZenHotels, RateHawk.

Понравился материал?

Подписывайтесь и следите за обновлениями блога Selectel.

0
17 комментариев
Написать комментарий...
Anatoly

Риски выросли в 8 раз. Экономия неспроста )))

Ответить
Развернуть ветку
iMAX

Каким образом они выросли в 8 раз?

Ответить
Развернуть ветку
Anatoly

Читайте классиков. Дурова, например

Ответить
Развернуть ветку
Аккаунт отморожен

Прямо вот взяли и решили переехать, сами, а не из-за гнусного закона )))

Ответить
Развернуть ветку
Denis Bozhok

Закон он про хранение данных. Поэтому если работать на закон, то достаточно базу перевезти. Тут же переезжало практически всё.

Ответить
Развернуть ветку
Max Vyaznikov

Более того, можно даже не переносить, а дублировать. Закон про хранение на территории РФ, а не про запрет на хранение на территориях других государств.
Хотя тут есть оговорка про то, что сначала нужно сохранить на территории РФ, тогда всё будет идеально по 152 ФЗ :-) Другими словами, архитектура master + slaves, где master на территории РФ — идеальна для этого.
Хотя можно подойти к этому вопросу и более формально, например, перед записью в основную БД в USA, например, записывать в MongoDB на территории РФ в каком-либо виде тупо для галочки.
Другими словами, когда хочется просто обойти закон, есть решения другого уровня.

Ответить
Развернуть ветку
Shlomo Goldenberg

Кто может толково объяснить разницу между облаком и сервером?

Ответить
Развернуть ветку
Vl Al

Слои responsibility. В облаке тоже есть слой физических серверов. Но это не ваша зона ответственности.

Ответить
Развернуть ветку
Shlomo Goldenberg

Вот ты сейчас не только не объяснил, а ещё больше усложнил. Вот я арендовал выделенный сервер. Чем он принципиально отличается от облака?

Ответить
Развернуть ветку
Vl Al

Ну, например, между тобой и железом нет сервисной прокладки ("нарезает" процессорные ресурсы или другие) и тесно связанной с ней биллинговой службы.

Ответить
Развернуть ветку
iMAX

Можно арендовать сервер, и это тоже не будет вашей зоной ответственности.

Ответить
Развернуть ветку
Vl Al

С нюансами. Например, арендована "железка". Но мониторинг сенсоров сервера входит в вашу зону ответственности. Это даже может быть отдельный облачный сервис, который мониторит не только серверы, но и другие endpoints. Например, ноутбуки "удаленщиков".

Ответить
Развернуть ветку
Mikhail Kalinin

у "облачного сервера" можно легко поменять конфигурацию в пару кликов: докинуть памяти и ядер, существенно увеличить объем диска или вовсе подключить несколько разных типов диска.

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

Ответить
Развернуть ветку
Shlomo Goldenberg

Из этого следует что если хостишь проект, который постоянно растёт по количествуппользователей и трафику, то лучше его хостить в облаке, правильно я понимаю?

Ответить
Развернуть ветку
Mikhail Kalinin

это один из вариантов.

можно так же "закидывать железом", как делает тот же VK

Ответить
Развернуть ветку
Selectel
Автор

В двух словах объяснить непросто.
Вот тексты, которые, быть может, помогут вам лучше вникнуть в разницу: 
1. https://selectel.ru/blog/kak-partnery-selectel-priumnozhayut-pribyl/
2. https://habr.com/ru/post/497316/

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Александр Прилипко

Бывший собственник ворвался в серверную с огнеметом в одной руке и огнетушителем в другой. Вахтерша его не удержала, ведь с ним был его личный омон

Ответить
Развернуть ветку
14 комментариев
Раскрывать всегда