SDCast #114: в гостях Александр Кукушкин, database инженер в Zalando

Встречайте 114-й выпуск подкаста! У меня в гостях Александр Кукушкин, database инженер в Zalando. Хотя, наверное, многие знают его как разработчика Patroni: A Template for PostgreSQL HA with ZooKeeper, etcd or Consul. Так что речь в этом выпуске пойдёт про PostgreSQL, кластеры, Patroni, облака, AWS, Kubernetes и даже про базы данных PostgreSQL в K8S :)

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

Мы обсудили как устроена инфраструктура в компании в части баз данных, какие есть кластеры, их примерное количество и размеры. Саша рассказал про репликацию и резервирование данных внутри и между датацентрами.

Обсудили переезд сервисов и баз данных в облака: Саша рассказал как они переводили серверы баз данных в AWS, какие были потребности в отказоустойчивости и чем эти потребности закрывались. Именно тогда на свет появился Patroni.

Саша рассказал про устройство Patroni, как он работает и что умеет. Рассказал про его развитие, добавление новых фич, таких как управление конфигурацией PostgreSQL сервера, синхронизация конфигов. Рассказал про различные варианты использования DCS (distributed configuration store) и как он адаптировал Patroni для работы в кластере Kubernetes с минимальными накладными расходами.

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

Читать далее

SDCast #65 HL edition: Александр Баталов, директор по развитию в компании Флант

sd-podcast-logoДрузья, рад представить вам интервью с Александром Баталовым из компании Флант, записанное на прошедшей конференции Highload 2017.

В этом выпуске мы вместе с Петей из подкастов «Пятиминутка PHP» и «Пятиминутка React» обсуждаем с Александром тему DevOps в целом и Kubernetes в частности. В начале Александр рассказал про компанию в целом, как и когда она появилась и чем занимается.

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

Александр рассказал, что такое Kubernetes, зачем он нужен, какие задачи он решает, и как они у себя в компании его активно применяют.

Читать далее

SDCast #60: в гостях Иван Круглов, програмист Booking.com

sd-podcast-logoРад представить вам 60-й выпуск SDCast’а! У меня в гостях Иван Круглов, програмист Booking.com. Некоторое время Иван занимался разработкой подсистемы поиска отелей, именно об этом и пойдёт речь в этом выпуске.

Офис разработки Booking.com расположен в Амстердаме и в начале Иван рассказал как он туда попал. Поделился опытом прохождения интервью, подготовкой к собеседованиям в различных российских, европейских и американских компаниях.

Обсудили архитектуру поиска отелей: как в целом оно работает, из каких компонентов и сервисов состоит, на каких языках/платформах написано. Иван рассказал как эволюционировала система в целом, как она была устроена в начале, какие появлялись узкие места и как они в дальнейшем разрешались.

Иван рассказал про то, как они ушли от баз данных MySQL к встраиваемому решению, а именно RocksDB. Рассказал про материализацию данных для поиска, шардирование данных и эффективную обработку запросов.

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

Читать далее

SDCast #54: в гостях Олег Анастасьев, ведущий программист Одноклассников

Встречайте 54-й выпуск SDCast’а, который посвящен разработке высоконагруженных систем. У меня в гостях Олег Анастасьев, ведущий программист Одноклассников, спикер на конференциях по Java и Cassandra, эксперт в области распределенных и отказоустойчивых систем.

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

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

Читать далее

SDCast #49: в гостях Александр Махомет, PHP Product Architect в компании Upwork

sd-podcast-logoВстречайте 49-й выпуск подкаста! На этот раз речь пойдет про распределенные команды разработки. У меня в гостях Александр Махомет, PHP Product Architect в компании Upwork и один из создателей проекта Frameworks days.

В компании Upwork работает порядка 350 инженеров и разработчиков, 270 из которых работают удаленно из 40 стран со всего мира. Александр рассказал как в компании в целом устроены процессы разработки, как формируются распределенные команды, на каких принципах построено взаимодействие между разработчиками и командами в целом.

Конечно же мы поговорили и про архитектуру проекта в целом. Саша рассказал из каких компонент состоит система в целом и что используется «под капотом». Рассказал так же про постепенную миграцию от монолитной архитектуры к микросервисной, как это происходило, какие были сложности и что в итоге это дало на выходе. В Upwork используется PHP как middleware между фронтендом и различными сервисами и Саша рассказал про миграцию с Zend Framework на Symfony, а так же про миграцию на PHP7.

Александр является одним из создателей проекта Framework days, и вообще активным участником различных сообществ разработчиков, так что не обошли мы стороной и эту область. Обсудили тему конференций и встреч, зачем и кому это нужно, как они устроены и организовываются, что дают всем участникам. Поговорили про различие конференций в постсоветском пространстве и Европе, возможность проведения конференций на английском языке и прочие смежные вопросы.

Читать далее

SDCast #48: в гостях Михаил Тюрин, главный системный архитектор AVITO.ru

sd-podcast-logo Рад представить вам 48-й выпуск SDCast’а! У меня в гостях Михаил Тюрин, главный системный архитектор AVITO.ru. В этом выпуске речь идет об архитектуре AVITO в целом, как оно работает изнутри и на каких технологиях базируется.

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

Мы довольно подробно разобрали, как система обрабатывает запрос, начиная от нажатия кнопки «Submit» в браузере, что происходит с данными запроса в бэкенде, какие сервисы участвуют в обработке, в какие очереди раскладываются задачи и заканчивая тем, каким образом обновляются данные во всей системе для других пользователей.

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

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

Миша является активным участником сообщества #PostgreSQLRussia, он сам активно выступает на разных конференциях и встречах, равно как и ребята из его команды, так что мы пообщались и на эту тему тоже.

Читать далее

SDCast #45: в гостях Виктор Тарнавский, руководитель разработки аналитических продуктов в Яндексе

sd-podcast-logo А вот знаете ли вы, дорогие слушатели, как выстроить архитектуру, которая будет выдерживать десятки миллиардов запросов в день, ворочить петабайты данных, и при это быть быстрой и отзывчивой? Ответы на эти и не только вопросы вы можете услышать в свежем выпуске SDCast’а! У меня в гостях Виктор Тарнавский, руководитель разработки аналитических продуктов в Яндексе.

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

Отдельно ведем разговор про аналитическую базу данных ClickHouse, которую компания Яндекс недавно выложила в opensource. Виктор рассказал про историю зарождения проекта, который появился в следствие эксперимента и попытки написать БД, которая будет быстро работать с сырыми, не агрегированными данными. Рассказал про внутреннюю архитектуру проекта: как устроено хранение данных, обработка запросов и взаимодействие с внешним миром. Не обошли мы стороной и тему публикации проекта в открытый доступ. Виктор рассказал о том, есть ли интерес у сообщества к проекту, чего ещё нужно сделать, чтобы проектом было легко и удобно начать пользоваться, есть ли запросы на новые фичи и пулл-реквесты. Так же Виктор поделился мнением о том, когда следует использовать ClickHouse и для какого рода задач она подходит наилучшим образом. В завершении выпуска обсудили планы по развитию проекта на ближайшее будущее.

Читать далее

SDCast #43: в гостях Николай Сивко, сооснователь проекта OKMeter.io

sd-podcast-logo Встречайте 43-й выпуск подкаста! На этот раз речь пойдет о devops, эксплуатации и мониторинге. У меня в гостях Николай Сивко, сооснователь проекта OKMeter.io.

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

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

Далее Николай рассказал о том, как устроен сам сервис OKMeter.io, какова его архитектура, из каких компонентов он состоит и какие инструменты используются «под капотом». Рассказал, как и какие метрики собираются, обрабатываются, хранятся и в дальнейшем используются для построения графиков и гистограм. Отдельно обсудили тему отказоустойчивости и масштабирования решения по мониторингу.

Читать далее

SDCast #14: в гостях Стас Кондратьев

sd-podcast-logo Какая связь у Microsoft Azure и open source, Knockout.js и Олимпийских игр Сочи 2014? Ответы на эти и многие другие вопросы в 14-м выпуске SDCast’а!

У меня в гостях Стас Кондратьев, архитектор приложений в компании Microsoft, а так же ведущий архитектор веб проекта Сочи 2014.

В это выпуске мы обсуждаем следующие темы:

  • Платформа Microsoft Azure: какие компоненты она включает, как устроена и что позволяет строить.
  • Проект портала «Сочи 2014». Очень подробный рассказ о проекте, о том, на каких технологиях он построен, какова его архитектура, какие были интесные моменты и сложности во время разработки, как проводилось тестирование, а так же вопросы балансировки, масштабирования и отказоустойчивости сайта, который в пике выдерживал 90000 запросов в секунду.
  • Microsoft и opensource: немного рассуждаем на тему поддержки Microsoft’ом разных opensource решений, в частности поддержка PHP/Node.js/Mysql и прочих в облачном сервисе Azure.

Читать далее

Software Development podCAST #12

sd-podcast-logo Highload и API, архитектура и мониторинг, Python и Go: все это, а так же многое другое в новом выпуске SDCast’а за номером 12. У меня в гостях Андрей Смирнов, разработчик aptly, архитектор, докладчик на многих конференциях, ведущий мастер-класса по высоким нагрузкам и надежности. В этом выпуске мы обсуждаем разные аспекты построения высоконагруженных проектов, говорим о балансировке и распределении нагрузки, обсуждаем вопросы построения API для использования как внутри проекта, так и сторонними клиентами.
Андрей рассказывает про свой open-source проект «aptly», который является инструментом для обслуживания debian репозиториев, как появилась идея, каков статус проекта сейчас и что планируется сделать в будущем, почему в качестве языка был выбран Go, и как aptly попал в main-репозиторий debian.
Помимо этого, мы немного пообщались на тему мастер-классов, которые проводит Андрей.

Читать далее