Використання IaaS-хмари для навантаженого веб-проекту: досвід Hotels.ru



У нашому сьогоднішньому матеріалі — розповідь про те, як перевантажений сервіс бронювання готелів Hotels.ru кілька років тому переніс частину своєї інфраструктури в IaaS-хмара ІТ-ГРАД, і що з цього вийшло.

Навіщо знадобилося хмара
Для того щоб надати користувачам найкращі можливості для вибору готелю, сервіс бронювання повинен обробляти великі масиви даних з різних джерел. Для цього потрібні серйозні обчислювальні потужності, а «залізо» коштує грошей, і його треба обслуговувати.

Через деякий час після старту проекту, його команда зрозуміла, що існуючої фізичної інфраструктури для його розвитку не вистачає, і треба шукати варіанти в хмарі.

База Hotels.ru за рік виростає приблизно на 50%, зростає і число унікальних користувачів, тому при виборі хмарного сервісу важливим критерієм була простота масштабування інфраструктури та її продуктивність.
Польові випробування показали, що для досягнення комфортної користувачеві швидкості вибірки та перерахунку варіантів необхідно 1,5 k IOPS за дискової системи. До того ж, показник повинен бути гарантованим, щоб забезпечувати стабільний відгук сайту. На цьому етапі відсіялася чи не половина пропозицій, так як конкретних гарантій за операціями вводу-виводу провайдери намагалися уникати.

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


— Команда Hotels.ru
На дворі був 2010 рік, і тоді, як і зараз, одним з основних гравців ринку корпоративного IaaS в Росії була компанія ІТ-ГРАД. Саме в нашому хмарі в результаті і «оселився» сервіс Hotels.ru



Інфраструктура проекту
Цільова аудиторія Hotels.ru — російські користувачі, тому сервіс повинен був швидше всього відкриватися і бути доступний саме для них. В тому числі, тому в якості майданчика для розміщення потрібен був російський дата-центр з доступом до магістральних каналів регіону (точка обміну трафіком M9, в разі ІТ-ГРАД).

Сам сервіс бронювання квитків складається з двох великих частин: веб-програми та бази даних. Реалізовані вони на Linux і PHP з MySQL



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

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

Після розрахунків обсягу втрат при гіпотетичній катастрофі, ми прийшли до висновку, що для компанії втрати стають відчутні через добу недоступності. А при RTO в розмірі доби немає потреби в системах реплікації або щось подібне, тому ми обмежилися резервних копій і резервної майданчиком.

— Команда Hotels.ru
Бекапи робляться кілька разів в день, а резервна майданчик присутній в якості домовленості з іншим ЦОД про перенесення туди даних в розумні терміни. Мережева цілісність забезпечується з допомогою BGP, тому при гіпотетичному переїзді в резервний дата-центр сервіс не зіткнеться з проблемою невідповідності імені і IP. За п'ять років роботи Hotels.ru у IaaS-хмарі масштабних аварій не було жодного разу, але при тестуванні описана схема показала себе з найкращої сторони — весь процес переїзду в ході «репетицій» займав близько 16 годин.

Плюси IaaS:
Кілька років роботи з IaaS-хмарою ІТ-ГРАД дозволили команді сервісу Hotels.ru сформувати думку про плюси підходу «інфраструктура як сервіс».

Масштабованість
На початку старту проекту представники Hotels.ru не приховували своїх сумнівів щодо перенесення своїх систем, що обробляють важливі клієнтські дані, в дата-центр провайдера («дані десь далеко, і невідомо що з ними буде»).

У підсумку для дійсно важливої інформації було вирішено застосовувати шифрування. Крім того, сервіс просто не зберігає критично важливу фінансову інформацію клієнтів, начебто номерів кредитних карт.

Зате вся принадність хмари усвідомлюється, коли перед святами трафік по сайту збільшується в десяток разів і потрібно терміново підняти потужність. На зорі сервісу це викликало натуральну паніку і аврал, а зараз питання вирішується додаванням віртуальних процесорів і IOPS для дискової системи. Як тільки пік спав і за прогнозами повторень не передбачається – відключаємо тимчасово виділені потужності, щоб не платити зайвого.

— Команда Hotels.ru
Гнучкість
Ринок онлайн-бронювання є дуже конкурентним, і щоб не втратити своїх позицій компаніям доводиться постійно покращувати сервіс. Гарного дизайну вже недостатньо, користувачі до нього звикли, і вимагають і інших переваг.



Це призводить до необхідності постійно допрацьовувати фронтенд і оптимізувати внутрішні системи, щоб добитися більшої ефективності їх роботи. Не обійтися і без проведення порівняльних тестів різних ідей.

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

— Команда Hotels.ru
Постійний моніторинг
Деякий час тому Hotels.ru став жертвою досить серйозною DDoS-атаки. Зловмисники скористалися функціональністю сервісу, яка відповідає за аналіз цін і виведення зведених даних користувачам. Запити на порівняння цін відправлялися комп'ютерами, що входять в ботнет-мережу, яка охоплює 4 країни.



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

— Команда Hotels.ru
Плани
Надійна робота інфраструктури дозволяє команді Hotels.ru думати не про купівлю заліза і його підтримки, а про розвиток проекту — наприклад, працювати над переходом на HTML5 і CSS3.

Також перед компанією стоїть завдання пройти додаткову сертифікацію PCI DSS, що дозволить обробляти і зберігати в користувацьких профілів інформацію про банківських картах клієнтів без необхідності повторного введення при нових замовленнях.

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

У нашому випадку ми плануємо передати в зону відповідальності IaaS-провайдера такі завдання як:

  • управління конфігурацією мережевого обладнання (брандмауери, маршрутизатори);
  • контроль термінів дії паролів до серверних систем і віртуалізації;
  • розробка стандартів конфігурації системних компонентів, управління змінами;
  • шифрування каналу при адміністративному доступ до обладнання та систем віртуалізації;
  • контроль використання системних облікових записів;
  • пошук і виявлення системних недоліків в обладнанні та ЗА віртуалізації;
  • та інші.
Сьогодні в Росії операторів IaaS сертифікат PCI DSS, який по області дії охоплює адміністрування, а не тільки розміщення обладнання, можна порахувати на пальцях однієї руки. На наш погляд, бізнес рано чи пізно додасть цей пункт до великого списку «хмарних вимог».

— Команда Hotels.ru

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.