Как стать автором
Обновить
17
0

Пользователь

Отправить сообщение

Отправляем письма с помощью asyncio и aiohttp из Django приложения

Время на прочтение7 мин
Количество просмотров11K
Всем привет!

Я занимаюсь разработкой и поддержкой сервиса уведомлений в Ostrovok.ru. Сервис написан на Python3 и Django. Помимо транзакционных писем, пушей и сообщений, сервис также берёт на себя задачи по массовым рассылкам коммерческих предложений (не спам! trust me, отписки у нас работают лучше подписок) пользователям, давшим на это согласие. Со временем база активных получателей разрослась до более миллиона адресов, к чему почтовый сервис не был готов. Я хочу рассказать о том, как новые возможности Python позволили ускорить массовые рассылки и сэкономить ресурсы и с какими проблемами нам пришлось столкнуться при работе с ними.


Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

Типизируй все

Время на прочтение8 мин
Количество просмотров5.4K

Всем привет!


У нас уже есть одна статья про развитие типизации в Ostrovok.ru. В ней объясняется, зачем мы переходим с pyContracts на typeguard, почему переходим именно на typeguard и что в итоге получаем. А сегодня я расскажу подробнее о том, каким образом происходит этот переход.


Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии23

Трюки для обработки метрик в Kapacitor

Время на прочтение7 мин
Количество просмотров5.6K
Скорее всего, сегодня уже ни у кого не возникает вопрос, зачем нужно собирать метрики сервисов. Следующий логичный шаг – настроить алертинг на собираемые метрики, который будет оповещать о любых отклонениях в данных в удобные вам каналы (почту, Slack, Telegram). В сервисе онлайн-бронирования отелей Ostrovok.ru все метрики наших сервисов льются в InfluxDB и отображаются в Grafana, там же настроен базовый алертинг. Для задач типа «нужно посчитать что-то и сравнить с этим» мы используем Kapacitor.


Kapacitor – часть TICK-стека, который умеет обрабатывать метрики из InfluxDB. Он может соединить несколько измерений между собой (join), из полученных данных вычислить что-то полезное, записать результат обратно в InfluxDB, отправить алерт в Slack/Telegram/почту.

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

Поехали!
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

Как мы YouTube Live с Zoom интегрировали

Время на прочтение6 мин
Количество просмотров17K
Всем привет! Это вторая часть серии статей от IT-команды сервиса бронирования отелей Ostrovok.ru об организации онлайн-трансляции корпоративных презентаций и мероприятий в одном отдельно взятом помещении.

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



И вроде всё было хорошо, но спустя некоторое время в наш отдел прилетела новая задачка – давайте сделаем наши трансляции более интерактивными! Всё наше ТЗ заключалось в одном предложении – нужно было дать удаленным сотрудникам возможность подключаться к встречам команд, то есть не только смотреть, но и активно участвовать: показывать презентацию, задавать вопросы в режиме реального времени и т.д. Проанализировав ситуацию, мы решили использовать конференцсвязь Zoom.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

Пробы и ошибки при выборе HTTP Reverse Proxy

Время на прочтение6 мин
Количество просмотров29K
Всем привет!

Сегодня мы хотим рассказать о том, как команда сервиса бронирования отелей Ostrovok.ru решала проблему роста микросервиса, задачей которого является обмен информацией с нашими поставщиками. О своем опыте рассказывает undying, DevOps Team Lead в Ostrovok.ru.

Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии7

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

Время на прочтение8 мин
Количество просмотров30K
И снова здравствуйте!

В прошлый раз мы рассказывали о выборе инструмента в Ostrovok.ru для решения задачи проксирования большого количества запросов к внешним сервисам, никого при этом не положив. Статья закончилась выбором Haproxy. Сегодня я поделюсь нюансами, с которыми мне пришлось столкнуться при использовании этого решения.


Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии3

I’m going deeper underground, или о чем стоит знать, оптимизируя работу сетевого приложения

Время на прочтение5 мин
Количество просмотров6.3K
Приветствую, друзья!

В предыдущих двух статьях (раз, два) мы погружались в сложность выбора между технологиями и искали оптимальные настройки для нашего решения в Ostrovok.ru. Какую тему поднимем сегодня?

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


Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии11

История типизации на примере одного большого проекта

Время на прочтение5 мин
Количество просмотров5.5K
Всем привет! Сегодня я расскажу вам историю развития типизации на примере одного из проектов в Ostrovok.ru.



Эта история началась задолго до хайпа о typing в python3.5, более того, она началась внутри проекта, написанного еще на python2.7.

2013 год: совсем недавно был релиз python3.3, мигрировать на новую версию смысла не было, так как каких-то конкретных фичей она не добавляла, а боли и страдания при переходе принесла бы очень много.

Я занимался проектом Partners в Ostrovok.ru – этот сервис отвечал за все, что связано с партнерскими интеграциями, бронированиями, статистикой, личным кабинетом. У нас использовались как внутренние API для других микросервисов компании, так и внешнее API для наших партнеров.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии13

Как написать вредное API

Время на прочтение5 мин
Количество просмотров6.6K

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.


Всем привет!


Я работаю тимлидом команды Integration Development в сервисе онлайн-бронирования отелей Ostrovok.ru и сегодня хотел бы поделиться своим опытом работы с различными API.



Как разработчик системы, работающей с внешними поставщиками, я часто встречаюсь с различными API – чаще всего это SOAP/REST или что-то на них похожее. Однако от работы со многими из них остается впечатление, что их писали, не руководствуясь ни техническими правилами, ни здравым смыслом – как будто бы по книге “Вредные советы” Григория Остера. В данной статье я постараюсь описать такие случаи в стиле “вредных советов” и рассмотрю примеры, связанные с XML. Комментарии и обсуждение приветствуются.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии8

Не ORMом единым

Время на прочтение8 мин
Количество просмотров5.2K

Не ORMом единым


Всем привет! Я руковожу отделом партнерской разработки (Partners Development) в сервисе бронирования отелей Ostrovok.ru. В этой статье я хотел бы рассказать про то, как на одном проекте мы использовали Django ORM.


На самом деле я слукавил, название должно было быть "Не ORMом единым". Если вам интересно, почему я так написал, а также если:


  • У вас в стеке Django, и вам хочется выжать из ORM максимум возможностей, а не просто Model.objects.all(),
  • Вы хотите перенести часть бизнес-логики на уровень баз данных,
  • Или вы хотите узнать, почему самая частая отмазка разработчиков в B2B.Ostrovok.ru "так исторически сложилось",

… добро пожаловать под кат.


кдпв

Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии14

Организация онлайн-трансляций в особых условиях

Время на прочтение5 мин
Количество просмотров5.1K
Всем привет! В этой статье я бы хотел рассказать о том, как IT команда сервиса онлайн-бронирования отелей Ostrovok.ru настраивала онлайн-трансляции различных корпоративных мероприятий.

В офисе Ostrovok.ru существует особая переговорная комната – «Большая». Каждый день в ней проходят рабочие и неформальные мероприятия: встречи команд, презентации, тренинги, мастер-классы, интервью с приглашенными гостями и прочие интересные события. Штат компании насчитывает более 800 человек – многие из них работают удаленно в других городах и странах, и далеко не у всех есть возможность физически присутствовать на каждой встрече. Поэтому задача организовать онлайн-трансляции внутренних встреч не заставила себя долго ждать и прилетела в команду IT. Расскажу подробнее о том, как мы это делали.


Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии13

WWDC 2013 — взгляд изнутри

Время на прочтение3 мин
Количество просмотров28K
image

Попасть на WWDC оказалось непросто. Я понимал, что желающих поучаствовать в конференции будет много. Поэтому к тому моменту, когда открылась продажа билетов, я был подготовлен: проверил интернет-соединение, разложил перед собой обе свои кредитки (на случай, если одна не сработает) и ждал, когда на сайте Apple появится заветная кнопка «Buy tickets». И вот она! Нажимаю, ввожу свой логин и пароль и… вижу сообщение о технической проблеме. Несколько раз судорожно обновляю страницу, но ничего не происходит. Наконец, страница загрузилась, и на экране возникает лаконичная надпись «Sold out»… 2 минуты, и билеты проданы, вот это ажиотаж! Я пребывал в лёгком смятении весь следующий день — планам не суждено было сбыться. Однако вечером мне позвонили из Apple и сообщили, что отследили мою попытку приобрести билет. Мол, что-то там у них не сработало, но мне зарезервировали билет и пришлют ссылку для покупки мне на почту, если я, конечно, не передумал. Билет был куплен, виза получена, и я отправился в Сан-Франциско.
Читать дальше →
Всего голосов 74: ↑67 и ↓7+60
Комментарии22

Фестиваль 404: опубликованы первые видео докладов

Время на прочтение2 мин
Количество просмотров6.2K
Наверняка, многие из вас знают, что мы тут в своей Самаре недавно провели мощнейший Фестиваль 404. К нам приехало 800 участников со всей России, а еще Украины, Англии и США. Это очень много для небольшой провинциальной IT-конференции. Вот видео, которое более-менее передает настроение Фестиваля:



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

Первые пять видео с докладами
Всего голосов 32: ↑28 и ↓4+24
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность