title

text

Валентин Гогичашвили
Валентин Гогичашвили Zalando Head of Data Engineering
13:15 04 февраля

Интеграция данных в мире микросервисов

Стремительно стартовав в 2008 году, Zalando продолжает развиваться, не снижая скорости. На пути от скромного стартапа к многонациональной корпорации возникает множество сложнейших задач, особенно для Zalando Technology. Команда из 900 человек, распределенных в Берлине, Дортмунде, Дублине и Хельсинки, продолжает расти, планируя еще до конца 2016 года увеличиться в два раза.

Столь динамичный рост научил нас оперативно менять процессы и перестраивать организационную структуру в зависимости от актуальных задач. С марта 2015 года мы применяем Radical Agility — новейшую стратегию, провозглашающую Автономность, Целеустремленность и Мастерство (Autonomy, Purpose and Mastery) ключевыми принципами — для сплоченной работы команд программистов и менеджеров продукта.

Реализуя автономность, команды теперь могут самостоятельно выбирать стеки технологий для разработки своих продуктов. Микросервисы, использующие для коммуникации RESTful API, предполагают снижение стоимости интегрирования между такими командами. Изолированные AWS аккаунты, при поддержке разработанной в Zalando open-source PaaS платформы (STUPS.io), дают возможность каждой автономной команде использовать нужное ей количество вычислительных ресурсов для проведения экспериментов и выкатывания новых функций.

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

Новые возможности логической репликации PostgreSQL обеспечивают потоковую пересылку информации об изменениях в базах данных в интеграционные системы, представляя ее там в удобном для обработки и анализа виде.

В моем докладе я расскажу об open-source прототипе, разработанном в Zalando для сбора информации из изолированных PostgreSQL баз данных, применяющем возможности потоковой логической репликации в PostgreSQL с преобразованием данных для использования в разных системах их обработки (Data Lake, Operational Data Store, системы вычисления КПЭ или автоматического мониторинга за процессами). Слушатели узнают, как именно можно использовать логическую потоковую репликацию в мире микросервисов.

Слайды

Видео

Другие доклады

  • Григорий Хромов
    Григорий Хромов MyAsterisk Руководитель технического отдела
    22 мин

    Обработка статистических данных в режиме реального времени посредством триггеров

    В нашей телефонной платформе исторически использовалась СУБД MySQL и стандартная система статистики CDR. Постоянные оптимизации позволили сократить время ожидания загрузки информации, но оно было все еще велико. Ко всему прочему CDR не отличалась детальностью и высокой точностью. Было принято решение миграции на PostgreSQL и создание собственной системы сбора статистики на основе подсистемы CEL. CEL генерирует по одной записи на каждое внутреннее событие происходящее во время звонка и число таких записей может достигать несколько сотен. Применив триггеры PostgreSQL мы смогли сформировать подробную статистику всего в одной записи на каждый звонок. При этом общая производительность по сравнению со старой системой ощутимо выросла – время загрузки сократилось с минуты и более до нескольких секунд.

  • Камиль Исламов
    Камиль Исламов Stickeroid Ai CTO
    22 мин

    Оптимизация обработки данных аналитических отчётов

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

  • Иван Фролков
    Иван Фролков Postgres Professional инженер-консультант
    90 мин

    Оптимизация запросов в PostgreSQL

    Основная задача для приложения, работающего с СУБД, кроме реализации требуемого функционала - это обеспечения минимального времени отклика либо максимальной пропускной способности. К сожалению, многие разработчики зачастую весьма смутно представляют себе, на что и как СУБД расходует ресурсы при выполнении запроса, и неспособны предугадать узкие места. Рассказу о том, какими способами может быть выполнен запрос, какие из них оптимальны, какие при этом могут быть проблемы и как их можно попробовать обойти и посвящен этот мастер-класс.

  • Ильдар Мусин
    Ильдар Мусин Postgres Professional Разработчик
    22 мин

    Секционирование без границ

    Механизм секционирования в Postgres имеет ряд ограничений, которые не позволяют использовать концепцию секционирования в полной мере. Среди таких ограничений можно выделить неэффективность планирования запросов для секционированных таблиц (линейный рост времени планирования при увеличении количества секций), отсутствие HASH-секционирования, необходимость ручного управления секциями. Однако, средства расширяемости Postgres предоставляют разработчику широкие возможности, позволяющие обойти некоторые ограничения. В докладе будет рассказано, как внедрившись в код планировщика удалось оптимизировать время планирования запросов. Так метод бинарного поиска позволяет добиться логарифмического роста времени планирования для RANGE-секционированных таблиц. Поэтому использование даже тысяч секций не будет приводить к существенным накладным расходам. Также удалось реализовать HASH-секционирование с близким к константному времени планирования.