Использование IaaS-облака для нагруженного веб-проекта: опыт Hotels.ru

b687d20085604b57a4822dcfaeb22a24.jpgВ нашем сегодняшнем материале — рассказ о том, как высоконагруженный сервис бронирования отелей Hotels.ru несколько лет назад перенес часть своей инфраструктуры в IaaS-облако ИТ-ГРАД, и что из этого вышло.

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

База Hotels.ru за год вырастает примерно на 50%, растет и число уникальных пользователей, поэтому при выборе облачного сервиса важным критерием являлась простота масштабирования инфраструктуры и ее производительность.

Полевые испытания показали, что для достижения комфортной пользователю скорости выборки и пересчета вариантов необходимо 1,5k IOPS по дисковой системе. К тому же, показатель должен быть гарантированным, чтобы обеспечивать стабильный отклик сайта. На этом этапе отсеялась едва ли не половина предложений, так как конкретных гарантий по операциям ввода-вывода провайдеры старались избегать.

По части надежности расчеты возможных потерь показали, что оптимальным SLA для нашего сервиса будет 99.5% и выше.

— Команда Hotels.ru

На дворе был 2010 год, и тогда, как и сейчас, одним из основных игроков рынка корпоративного IaaS в России была компания ИТ-ГРАД. Именно в нашем облаке в итоге и «поселился» сервис Hotels.ru950707dbad514118af65e017effbeedf.jpg

Инфраструктура проекта Целевая аудитория Hotels.ru — российские пользователи, поэтому сервис должен был быстрее всего открываться и быть доступен именно для них. В том числе, поэтому в качестве площадки для размещения нужен был российский дата-центр с доступом к магистральным каналам региона (точка обмена трафиком M9, в случае ИТ-ГРАД).Сам сервис бронирования билетов состоит из двух больших частей: веб-приложения и базы данных. Реализованы они на Linux и PHP с MySQL

dcfa2fa4fb2f486e8e0e1ad27407e74e.png

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

Над катастрофоустойчивостью после подсчетов возможного ущерба решили не «заморачиваться»:

После расчетов объема потерь при гипотетической катастрофе, мы пришли к выводу, что для компании потери становятся ощутимы спустя сутки недоступности. А при RTO в размере суток нет надобности в системах репликации или чем-то подобном, поэтому мы ограничились бэкапом и резервной площадкой.

— Команда Hotels.ru

Бэкапы делаются несколько раз в день, а резервная площадка присутствует в качестве договоренности с другим ЦОД о переносе туда данных в разумные сроки. Сетевая целостность обеспечивается с помощью BGP, поэтому при гипотетическом переезде в резервный дата-центр сервис не столкнется с проблемой несоответствия имени и IP. За пять лет работы Hotels.ru в IaaS-облаке масштабных аварий не было ни разу, но при тестировании описанная схема показала себя с наилучшей стороны — весь процесс переезда в ходе «репетиций» занимал около 16 часов.Плюсы IaaS: Несколько лет работы с IaaS-облаком ИТ-ГРАД позволили команде сервиса Hotels.ru сформировать мнение о плюсах подхода «инфраструктура, как сервис».Масштабируемость В начале старта проекта представители Hotels.ru не скрывали своих сомнений относительно переноса своих систем, обрабатывающих важные клиентские данные, в дата-центр провайдера («данные где-то далеко, и неизвестно что с ними будет»).В итоге для действительно важной информации было решено применять шифрование. Кроме того, сервис просто не хранит критически важную финансовую информацию клиентов, вроде номеров кредитных карт.

Зато вся прелесть облака осознается, когда перед праздниками трафик по сайту увеличивается в десяток раз и нужно срочно поднять мощность. На заре сервиса это вызывало натуральную панику и аврал, а сейчас вопрос решается добавлением виртуальных процессоров и IOPS для дисковой системы. Как только пик спал и по прогнозам повторений не предвидится — отключаем временно выделенные мощности, чтобы не платить лишнего.

— Команда Hotels.ru

Гибкость Рынок онлайн-бронирования является очень конкурентным, и чтобы не потерять своих позиций компаниям приходится постоянно улучшать сервис. Красивого дизайна уже недостаточно, пользователи к нему привыкли, и требуют и других преимуществ.a470dfc3284a47eabd49b8962990c0f0.jpg

Это приводит к необходимости постоянно дорабатывать фронтенд и оптимизировать внутренние системы, чтобы добиться большей эффективности их работы. Не обойтись и без проведения сравнительных тестов различных идей.

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

— Команда Hotels.ru

Постоянный мониторинг Некоторое время назад Hotels.ru стал жертвой достаточно серьезной DDoS-атаки. Злоумышленники воспользовались функциональностью сервиса, которая отвечает за анализ цен и вывод сводных данных пользователям. Запросы на сравнение цен отправлялись компьютерами, входящими в ботнет-сеть, которая охватывает 4 страны.9e97faa2d0634c088ab61980d69a3c53.png

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

— Команда Hotels.ru

Планы Надежная работа инфраструктуры позволяет команде Hotels.ru думать не о покупке железа и его поддержке, а о развитии проекта — например, работать над переходом на HTML5 и CSS3.Также перед компанией стоит задача пройти сертификацию PCI DSS, что позволит обрабатывать и хранить в пользовательских профилях информацию о банковских картах клиентов без необходимости ее повторного ввода при новых заказах.

Большую часть требований стандарта может выполнять поставщик облачных сервисов (то есть ИТ-ГРАД), для этого у него должна быть сертификация PCI DSS с границами применимости, включающими не только сдачу оборудования в аренду, но и его администрирование.

В нашем случае мы планируем передать в зону ответственности IaaS-провайдера такие задачи как:

управление конфигурацией сетевого оборудования (межсетевые экраны, маршрутизаторы); контроль сроков действия паролей к серверным системам и виртуализации; разработка стандартов конфигурации системных компонентов, управление изменениями; шифрование канала при административном доступе к оборудованию и системам виртуализации; контроль использования системных учетных записей; поиск и выявление системных уязвимостей в оборудовании и ПО виртуализации; и другие. Сегодня в России операторов IaaS с сертификатом PCI DSS, который по области действия охватывает администрирование, а не только размещение оборудования, можно сосчитать по пальцам одной руки. На наш взгляд, бизнес рано или поздно добавит этот пункт к обширному списку «облачных требований».— Команда Hotels.ru

© Habrahabr.ru