{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

OneTwoTrip Backend Meetup 2022

15 июня в башне «Империя» Москвы-Сити мы провели встречу для backend-разработчиков. На ней наши эксперты рассказали, какие инструменты, технологии и решения применяются в OneTwoTrip. Получился классный день, полный живого общения и нетворкинга, который завершился весёлой вечеринкой.

Все выступления специалистов OneTwoTrip можно посмотреть в записи, а тут мы напишем краткое резюме для тех, кому удобнее перед просмотром ознакомиться с содержанием докладов.

«Защита от ботов в микросервисной архитектуре», Константин Зубков

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

В докладе Константин освещает тему очень подробно, начиная с рассказа об устройстве базового веб-сервиса (1:04). Боты в этой схеме — это запросы, которые созданы не людьми. По сути, сегодня победить бота можно только тогда, когда стоимость его работы становится больше, чем ценность информации, которую бот собирает — в этом случае его работа становится неэффективной.

Одна из возможных ситуаций разбирается с 3:55: клиент сервиса делает заказ с использованием промокода. Бота можно поставить на последовательный перебор всех цифр (PROMO001 и так далее). Самым простым решением была постановка Rate Limit, то есть ограничения числа запросов, и на 5:15 Константин объясняет, как это может работать.

Однако, если у сервиса много запросов или есть нетипичные пользователи (операторы самой компании), можно создать им дополнительные проблемы. Например, у OneTwoTrip есть банки-партнёры, сотрудники которых в один день получают промокоды — и многие тут же идут их тратить. Сервер видит резкий скачок запросов с одного ip и может всех их заблокировать, приняв за ботов. К сожалению, такая ситуация случилась в реальности.

В презентации множество подобных примеров. Так, на 13:40 можно посмотреть упрощённую схему, работающую в OneTwoTrip, а с 18:15 — её детали.

Далее Константин рассказывает, как выглядит доработанная система запросов-ответов в OneTwoTrip, про её развитие и мониторинг. Доклад полезен для разработчиков, которые думают над налаживанием системы борьбы с ботами, и в выступлении можно найти ряд подсказок и полезных советов.

«Сквозное логирование запросов в NodeJS приложениях», Кирилл Красавин

Кирилл Красавин в OneTwoTrip — Tech Lead, занимается инфраструктурными и маркетинговыми сервисами. На встрече он подробно и интересно рассказывал про сквозное логирование — зачем и кому оно может понадобиться — а также рассматривал варианты решения возможных проблем.

С 2:53 Кирилл рассказывает о TLS и CLS — различных методах хранения данных, больше внимания уделяя CLS (методу хранения данных в контексте коллбэков), в том числе его истории.

А с 6:35 этот метод хранения разбирается на примере — внимание, самый сложный слайд в презентации.

Далее рассматриваются подводные камни метода сквозного логирования — накладка с производительностью и другие.

После Кирилл рассказывает, как всё это работает в OneTwoTrip. Если кратко, там, где метод функционирует, всё выглядит как сказка (слайды на 14:29 и 14:47). Там, где это не работает — проблематично.

Для такого способа есть сторонние альтернативы — если не хотите заниматься разработкой своего модуля, будет интересен материал с 15:30.

«История MongoDB в OneTwoTrip», Андрей Михальцов

Андрей Михальцов в OneTwoTrip занимает должность Devops tea mlead. На митапе он рассказал про системы управления базами данных, которые используются в сервисе — в том числе MongoDB, и про другие, применявшиеся раньше — MySQL/PostgreSQL, RIAK и Couchbase (которую админы в итоге переименовали для себя в ouchbase из-за ряда неудобств).

Первым проектом на базе MongoDB стал Extranet, но довольно быстро на неё переехали многие другие проекты — и тут начались проблемы. Для их решения пришлось делать следующую итерацию Mongo, с более жёстким разделением по ресурсам и улучшенным удобством управления.

Реализовать эту новую итерацию можно было тремя способами:

  • Создать много маленьких монг в облаке
  • Купить DBaaS
  • Создать много монг на BareMetal

О плюсах и минусах каждого варианта Андрей рассказывает в своём выступлении (5:45). Если кратко — выбран и реализован был третий вариант. Его созданию посвящена часть доклада с 7:50 до 14:00.

Андрей также делится техническим деталями об эксплуатации нынешнего варианта базы: рассказывает о плюсах и минусах (например, сложное обновление).

А о результатах использования выбранного варианта (MongoDB на BareMetal) в цифрах можно послушать с 15:55. Текущая база данных оказалась более гибкой и финансово выгодной, чем альтернативные варианты.

Далее Андрей рассказывает о том, как именно проводится мониторинг текущей работы базы.

«Жизнь под санкциями и массовые рассылки», Антон Панов

Антон Панов, который сегодня является CTO компании MyGig, а раньше работал в OneTwoTrip ведущим NodeJS разработчиком, рассказал об одном интересном проекте — сервисе для массовых рассылок. Сейчас эта тема особенно актуальна, поскольку ряд специализированных компаний ушли с российского рынка, но необходимость информировать клиентов никуда не делась.

В OneTwoTrip существует два типа рассылок — сервисные (например, о создании и обработке заказа) и массовые (с важной информацией или, например, ссылками на новые статьи в блоге). Для обоих типов писем использовали внешние сервисы Mailgun (только для массовых рассылок) и Sendgrid.

Что не так в использовании сторонних сервисов для массовых рассылок?

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

Рассмотрев все эти минусы, в OneTwoTrip приняли решение сделать свою систему для массовых рассылок. Задача казалась интересной и выполнимой. И — спойлер — всё получилось!

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

В итоге получилось собственное решение OneTwoTrip под названием A-postle. Структурную схему с подробным объяснением её работы можно посмотреть на слайде с 8:08 до 19:15.

Само решение сегодня внедрено и эффективно работает. Сейчас разработчики занимаются дальнейшим развитием A-postle — в планах поддержка FBL-отчётов (отчёт о том, сколько писем прочитано, отправлено в спам и т. д.), парсинг bounce (ответных писем от серверов, например, о переполненном почтовом ящике). Также планируется сделать веб-интерфейс для архива — и на этом фоне появилась мысль о собственном SaaS-сервисе. Вполне возможно, что через некоторое время вы о нём узнаете.

0
14 комментариев
Написать комментарий...
Arina Ravdel

Лучше бы вы провели встречу о том, как своевременно возвращать деньги свои клиентам и не врать

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

Мой заказ T17057151195. Убедительная просьба перевести статус моего заказа из ДОБРОВОЛЬНОГО в ВЫНУЖДЕННЫЙ.
На данный момент я вынуждено нахожусь в Малайзии, так как авиакомпания Qatar перенесла рейс более чем на 12 часов, у меня сгорали другие билеты, и я вынуждено их отменила. Сегодня я напишу претензию на имя вашего генерального директора Логинова Ивана Сергеевича.
Прошу решить вопрос в досудебном порядке!!!

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

Андрей, добрый день!
Ранее отвечали вам в комментариях под другим постом: https://vc.ru/onetwotrip/442014-vozvrat-biletov-kuplennyh-na-onetwotrip?comments
Видим, что возврат был успешно оформлен на карту оплаты, средства уже должны были поступить вам.

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

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

Это какое-то издевательство. Как будто это не организация, а просто чувак, который занял у тебя косарь и загасился, потому что возвращать не будет. Перебор, чуваки. В суде больше потратите денег и нервов чем вернуть мне эти долбанные 6к

Ответить
Развернуть ветку
Грецкая Ольга

14.10.22 мною были куплены 3 билета из Новосибирска в Астану на 25.11.22. Авиакомпания официально отменила рейс 07.11.2023 в поддержке авиакомпании сказали что все денежные средства будут возвращены по месту приобретения билетов. В этот же день, мною были созданы заявки на возврат билетов и денег. Сегодня - 17 января 2023 года мне на почту пришло уведомления от OneTwoTrip о том, что заявка на возврат отменена. Причины не указали. В поддержке отвечают про загруженность, операторы говорят про загруженность.Туту вернули деньги через сутки после отмены этого же рейса по обратному маршруту.
Билеты Т28708224439
Возврат R342445220635
Причина отказа в возврате денежных средств в приложении стоит прочерк. Вот супер причина
Будем писать иск!

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

Здравствуйте! Что-то решилось с Вашим возвратом? Подали иск? У меня аналогичная ситуация, тот же рейс. Пока до подачи иска не добралась, но уже готовлю документы для передачи своему юристу...

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

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

Ответить
Развернуть ветку
Аиша Каджая

4 месяца нет возврата средств по заказу T27661382105

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

Аиша, добрый день!
Сожалеем, что авиакомпания отменила рейс, и пришлось возвращать билеты.
Возвраты оформляются в порядке очереди и после получения средств от авиакомпании. Увы, сейчас заявок на возврат поступает много, службе поддержки действительно требуется больше времени, чтобы помочь каждому, кто обратился.
Видим, что возврат по вашему заказу был оформлен, средства уже должны были поступить на карту оплаты.

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

Здорово! На империю-Сити деньги есть, а вернуть деньги за сорванные рейсы - нет? Офигеть вы молодцы!!!

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

Алексей, добрый день!
Мы понимаем ваше возмущение из-за столь длительного ожидания возврата и также расстроены, что вопрос еще не решен.
Возврат мы, как агент, можем оформить только после того, как авикомпания его авторизует. До получения авторизации деньги находятся у перевозчика.
По вашему заказу возврат в авиакомпании мы запросили, ждем получения авторизации. Увы, сейчас это требует времени, ускорить процесс агенты не могут, такие запросы авиакомпании не рассматривают.
Как только перевозчик подтвердит возврат со своей стороны, мы его оформим. Вам на электронную почту придет соответствующее уведомление.
Ждем вместе с вами и надеемся на скорейшее решение вопроса.

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

А есть группа по групповому иску к этим мошенникам?

Ответить
Развернуть ветку
Алина Максакова

Здравствуйте! Не возвращаете деньги за возвратные билеты по заказу Т20368472684 в течение 8 месяцев!!!!! Говорите что авиакомпания вам не отвечает, я связывалась с Qatar они отвечают в течение 3 минут!

Ответить
Развернуть ветку
Евгения Кочнева

Какие митинги?! Деньги возвращайте за билеты! Которые сами отменяете и уже 14 месяцев не возвращаете!

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