Инжиниринг



Инжиниринг

Как устроен инжиниринг в Booking.com  Май 10, 2015 – 09:47
Урал-Омега - дробильно-сортировочное оборудование Инжиниринг

Орфография, пунктуация и стилистика автора сохранены.

Booking.com — одна из крупнейших компаний на рынке онлайн-тревела. Бизнес-модель очень простая — отели выставляют предложения, пользователи выбирают подходящие и платят отелям, которые раз в месяц выплачивают Букингу комиссию.

Главный принцип выливаний

Много лет назад на высшем уровне компании приняли решение: „Мы движемся очень быстро и иногда что-то ломаем. При этом не тратим время на классическую деятельность, как тестирование и строгий релиз-менеджмент.“

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

Самый главный график — bookings per minute. Время реакции на проблемы с ним: 3–4 минуты. После решения проблемы составляется формальный отчёт с разбором событий до минуты, и оценка пропавших букингов (по логам или оценка за прошую неделю).

На этом графике присутствуют различные паттерны: люди на спор отличают день недели[a], чётко видны сезоны, даже голы на чемпионате мира.

Потерянные букинги называются Innovation Costs — стоимость быстрого развития. Если отведённый на это бюджет превышается, СЕО пишет письмо «ребята, давайте поаккуратнее, тестируйте более консервативно», а когда несколько месяцев не выбирается — «что-то мы застаиваемся, давайте больше рисковать и пробовать новые штуки».

Тестирование: не получилось, и ладно

Нет stage-сайта, на котором изменения маринуются в течение нескольких недель, нет тестирования командой QA, нет аппрувов на выкладку. Если ты сделал что-то, поставил под этим свою подпись фактом коммита, и выразил готовность к тому, то код в какой-то момент выедет в продакшн.

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

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

В определённый момент начинается тестирование на живых юзерах (на определённом проценте). Если нужно, делаешь дашборд с нужными показателями, выносишь сперва собирающий его скрипт, затем основной коммит. Если график падает — откатываешь и начинаешь разбираться. Нормальный QA есть только в мобильных аппликухах, в которых нельзя выкатить ерунду на весь аппстор.

Source: bronevichok.ru

Похожие публикации:

  1. Эпос Инжиниринг
  2. Рэй Инжиниринг
  3. Би Инжиниринг