Архив метки: Architecture

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

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

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

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

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

Так же Иван немного рассказал про то, как у них происходит выкладка изменений в продакшн, мониторинг и обслуживание системы. Читать далее SDCast #60: в гостях Иван Круглов, програмист Booking.com

Скачать (mp3, 36 MB) Скачать (ogg, 28 MB)

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

Скачать (mp3, 51 MB) Скачать (ogg, 36 MB)

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 #55: в гостях Сергей Аверин, технический эксперт и конференционный маньяк

Скачать (mp3, 50 MB) Скачать (ogg, 39 MB)

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

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

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

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

Скачать (mp3, 56 MB) Скачать (ogg, 39 MB)

SDCast #41: в гостях Андрей Бреслав, руководитель проекта Kotlin в компании JetBrains

sd-podcast-logo Рад представить вам 41-й выпуск подкаста! Этот эпизод посвящен языку Kotlin, у меня в гостях Андрей Бреслав, руководитель проекта Kotlin в компании JetBrains.

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

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

Так же Андрей рассказал, почему в качестве платформы была выбрана JVM, рассказал некоторые технические подробности реализации проекта. Подробно рассказал про interop с Java, о том, как можно начать использовать Kotlin в уже существующем проекте на Java сейчас, и как они у себя, в компании JetBrains уже начали это делать.

Не обошли мы сторой и социальную составляющую проекта. Код языка Kotlin выложен в open source на github. Андрей рассказал про сообщество, которое сформировалось вокруг проекта, и как они с ним взаимодействуют, обсуждают запросы на новый функционал, баг-репорты и все прочее.

В завершение выпуска, Андрей поделился планами по развитию языка как в ближайшем будущем, так и в долгосрочной перспективе.
Читать далее SDCast #41: в гостях Андрей Бреслав, руководитель проекта Kotlin в компании JetBrains

Скачать (mp3, 20 MB) Скачать (ogg, 22 MB)

SDCast #37: в гостях Евгений Кривошеев, инженер, спикер, agile тренер

sd-podcast-logo Друзья! Рад представить вам 37-й выпуск SDCast’а! У меня в гостях Евгений Кривошеев, инженер, спикер на многих конференциях, agile-тренер и консультант. В этом выпуске речь идет не о каком-то конкретном продукте или проекте, а в большей степени затрагивает концептуальные и методологические аспекты разработки и проектирования информационных систем в целом.

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

Так же, обсудили тему построения архитектуры проекта в современных быстро изменяющихся условиях, зачем нужен devops и почему так важно с самого начала выстраивать процессы continious integration (CI) и continious delivery (CD), насколько важны тесты и максимальная автоматизация всех процессов.

В завершение беседы, немного порассуждали о том, как может развиваться ИТ-индустрия в целом в ближайшем будущем, какие новые процессы и тенденции появляются и куда вообще катится айтишный мир :) Читать далее SDCast #37: в гостях Евгений Кривошеев, инженер, спикер, agile тренер

Скачать (mp3, 32 MB) Скачать (ogg, 33 MB)

SDCast #27: в гостях Анатолий Панов, ведущий разработчик биллинга в Badoo

sd-podcast-logoВсем привет! На этот раз у меня в гостях Анатолий Панов, ведущий разработчик и руководитель технической составляющей биллинга в компании «Badoo». В этом выпуске мы ведем речь о системах биллинга в целом, в чем их отличие от других типов приложений, из каких функциональных частей они состоят. Обсуждаем, какое значение в биллинге имеют безопасность, скорость, отказоустойчивость.

Анатолий рассказывает про архитектуру систем биллинга в целом и как устроена система биллинга в Badoo. Отдельно обсуждаем вопросы интеграции с большим количеством сторонних систем и сервисов, их удобство, API, безопасность и прочие вопросы.

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

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

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

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

Ссылки на ресурсы по темам выпуска:
  • Слайды и видео доклада Анатолия «Прием платежей в Badoo – взгляд изнутри».
  • Pinba. MySQL storage engine that acts as a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.
  • Skyline. Open source система обнаружений аномалий.
Скачать (mp3, 25 MB)