SDCast #110: В гостях Анна Мелехова, архитектор платформы в компании Acronis

Рад представить вам 110-й выпуск SDCast’а. У меня в гостях Анна Мелехова, архитектор платформы в компании Acronis. В этом выпуске мы говорим про архитектуру систем, API, образование и знания.

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

Одной из главных тем нашей беседы было API. В апреле 2019 года Acronis открыл сторонним разработчикам доступ к API и примерам исходных кодов своих продуктов, запустив платформу Acronis Cyber Platform. Предполагается, что используя возможности платформы, разработчики смогут создавать новые источники данных, хранилища данных и функции управления, а также интегрировать свои приложения с решениями Acronis для киберзащиты. Кроме того, они смогут интегрировать технологии Acronis в свои приложения, системы и облачные торговые площадки. Поэтому именно на Анну и ее коллег упала задача проектирования API.

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

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

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

Читать далее

SDCast #108: В гостях Александр Тавген, софт-архитектор из Playtech

После долгого перерыва встречайте 108-й выпуск подкаста! У меня в гостях Александр Тавген, софт-архитектор из компании Playtech. В этом выпуске мы говорим про процессы разработки, обмен знаниями, архитектуру, open source и даже музыке! ;)

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

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

Так же Александр рассказал про одно своё интересное увлечение — это объединение музыки и технологий в проекте интерактивного театра.

Читать далее

SDCast #105: В гостях Никита Соболев, CTO в компании wemake.services

Встречайте 105-й выпуск подкаста, в котором у меня в гостях Никита Соболев, CTO в компании wemake.services. Вместе с Никитой мы обсуждаем процессы разработки программного обеспечения, подходы, методологии, инструменты и различные другие аспекты.

В начале разговора Никита немного рассказал про сообщество ElixirLangMoscow, организатором которого он является.

Никита – автор методологии Repeatable Software Development Process (RSDP). Он рассказал, что это за подход, какие в нём ключевые идеи, основные моменты и как устроен сам процесс разработки, работающий по этой методологии.

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

Поговорили мы так же и о soft skills, о том, как можно развиваться разработчику, как и чем его мотивировать, как общаться, особенно в распределённой команде. Затронули тему внедрения новых технологий в существующих проектах и поддержку legacy-кода.

Читать далее

SDCast #97: в гостях Александр Тоболь, руководитель разработки платформ видео и лента в ОК

Встречайте 97-й выпуск SDCast’а! У меня в гостях Александр Тоболь, руководитель разработки платформ видео и лента в ОК.ru. Александр регулярно выступает на различных конференциях с докладами про архитектуру, обработку видео, передачу данных, Machine Learning и много про что ещё интересного. Но в этом выпуске мы решили сконцентрироваться на теме передачи и обработки видео по сети, хотя и без обсуждения вопросов оптимизаций в различных аспектах не обошлось :)

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

  • Типичные подходы к доставке/передаче видео-контента
  • Транспортный уровень
  • TCP (и различные его улучшения вроде Fast retransmit, TCP Fast Open ), UDP, QUIC и прочие
  • Кодеки и алгоритмы сжатия
  • Устойчивость к потерям данных
  • Адаптивность
  • Шифрование
  • Нагрузки на железо, как те или иные выбранные программные решения влияют на нагрузку
  • Вопросы масштабирования
  • Оптимизации сетевого траффика
  • Вопросы безопасности

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

Читать далее

SDCast #67 HL edition: участники-докладчики секции Lua

Товарищи, встречайте 67-й выпуск SDCast’а вновь записанный на Highload++ 2017! На этот раз мы собрались большой компанией докладчиков секции Lua, участников сообщества Lua in Moscow. В этом выпуске принимают участие: Александр Гладыш, Антон Солдатов, Дмитрий Борисов, Сергей Лерг.

Кратко о каждом участнике выпуска:

  • Дмитрий Борисов — разработчик фрилансер, занимается разработкой телеком-систем
  • Александр Гладыш является организатором сообщества Lua in Moscow, а так же ведущим секции Lua на конференции Highload++
  • Сергей Лерг — разработчик фрилансер, разработчик игр
  • Антон Солдатов — инженер-программист в компании IPONWEB, занимается разработкой собственной реализации Lua. Кстати, Антон уже был у меня в гостях в 56 выпуске

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

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

Подискутировали на тему стилей программирования на Lua, инструментах анализа кода, соглашений по кодированию и прочих аспектах командной разработки. Не обошлось и без сравнения Lua и других языков программирования, таких как Go, JavaScript, Python и даже C++!

Выпуск получился порой с жаркими дискуссиями но в очень теплой и дружественной атмосфере. Приятного прослушивания!

И, кстати, да! Приглашаем всех на очередную встречу Lua in Moscow, которая пройдёт уже 7-го декабря в офисе компании IPONWEB в Москве.

Читать далее

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 #56: в гостях Антон Солдатов, инженер-программист из компании IPONWEB

sd-podcast-logoЛюбите ли вы Lua так же, как люблю его я? А вот ребята из компании IPONWEB настолько его полюбили, что даже сделали свою собственную имплементацию Lua! :) Об этом и пойдет речь в этом выпуске. У меня в гостях Антон Солдатов, инженер-программист из компании IPONWEB, где он занимается разработкой и поддержкой их реализации Lua.

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

Компания IPONWEB занимается разработкой в области RTB (Real Time Bidding) систем. Это технология закупки медийной рекламы посредством программируемых онлайн-аукционов. Вначале Антон рассказал про то, что это за системы, какие задачи они решают, какие есть компоненты и сущности в RTB-системах, что такое DSP и SSP, как они устроены и фукнционируют.

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

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

Читать далее

SDCast #55: в гостях Сергей Аверин, технический эксперт и конференционный маньяк

sd-podcast-logoРад представить вам 55-й выпуск SDCast’а! У меня в гостях Сергей Аверин, технический эксперт и конференционный маньяк из компании «Acronis». В этом выпуске мы говорим про Go, Python, параллельное программирование в Go, а так же обсуждаем обычные разработческие будни.

В начале Сергей рассказал про то, как он сам познакомился с языком Go, на каких задачах начал его применять, и как происходило внедрение языка в компании. Вопреки расхожему мнению о том, что на Go обычно переходят с Php или JavaScript, в «Acronis» инициаторами перехода были разработчики C/C++. Для лучшего понимания, Сергей рассказал о приложениях и сервисах, о том, какие задачи необходимо было решить, и как происходил процесс внедрения, какие были сложности и трудности, а главное — какие получились бенефиты в результате перехода.

Немного подробнее поговорили о горутинах и в целом парадигме программирования на Go. Насколько этот подход отличается от других языков, насколько легко его освоить и начать программировать. Обсудили тему кроссплатформенной разработки на Go, и в особенности написание программ под Windows.

Так же, в компании “Acronis” активно используется Python, поэтому не обошли мы стороной и этот язык. Сергей немного рассказала про то, где и как они используют Python в своих сервисах.

Читать далее

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

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

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

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

Читать далее