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

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

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

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

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

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

Читать далее

SDCast #98: в гостях Олег Шелаев, девелопер адвокат проекта GraalVM в команде OracleLabs

Мечтали ли вы когда-нибудь о такой платформе, где можно легко вызывать функции и модули, написанные на одном языке прямо в программе, написанной на другом языке? Сказка, не правда ли? А вот и нет! Есть такой проект, GraalVM, одной из идей которого как раз и является полиглот интероп платформа. В этом выпуске у меня в гостях Олег Шелаев, девелопер адвокат проекта GraalVM в команде OracleLabs, организатор VirtualJUG и митапов GDG Tartu. И в этом выпуске мы конечно же говорим про GraalVM.

GraalVM — высокоэффективная универсальная виртуальная машина для разных языков программирования, поддерживающая многие популярные языки: Java, Kotlin, Scala, JavaScript, Python, Ruby, R и даже С и С++ и им подобные. GraalVM стирает рамки между языками программирования и позволяет интероп прямо в рантайме,. Так же, интересной особенностью GraalVM является способность компилировать JVM bytecode в машинный код ahead-of-time, создавая standalone образы обычных Java-программ, которые не зависят от JVM.

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

Отдельно поговорили про компилятор Graal и ahead-of-time (AOT) компиляцию, плюсы и минусы такого подхода, ограничения и эффективность. Олег рассказал про специальную виртуальную машину SubstrateVM, чем она отличается от прочих JVM и какие дополнительные задачи решает.

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

Читать далее

SDCast #76: в гостях Антон Давыдов, Ruby-разработчик, опенсорс-контрибьютор

Встречайте 76-й выпуск SDCast’а про мир Ruby разработки. У меня в гостях Антон Давыдов, Ruby-разработчик, опенсорс-контрибьютор.

В этом выпуске мы с Антоном обсуждаем разработку на языке Ruby, обсуждаем различные фреймворки, такие как RoR и Hanami, дискутируем на тему различных аспектов разработки, обсуждаем open source и сообщества и многое другое.

В начале Антон рассказал, как он пришёл в разработку на Ruby, как познакомился с Ruby on Rails фреймворком. Мы обсудили идеи и концепции, заложенные в RoR, чем он хорош и плох, как изначальные архитектурные решения повлияли на дальнейшее развитие фреймворка.

Так же Антон рассказал про альтернативный набирающий популярность Ruby фреймворк Hanami. Рассказал про историю его появления, какие идеи преследовались при его создании и как Антон со временем стал его core-контрибьютером. Антон рассказал про архитектуру и внутреннее устройства фреймворка, чем он отличается от RoR, на каких архитектурных паттернах он базируется, какое есть сообщество вокруг проекта, сколько ключевых контрибьюторов и как проект живёт и развивается.

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

Поговорили мы и о конференциях. Антон рассказал про то, на каких конференциях он был в качестве докладчика и посетителя. Рассказал про отличия аудитории Ruby-конференций в различных странах, где какие акценты в плане докладов и технологий. Обсудили мы и премию Rubyheroes, которую Антон получил некоторое время назад. Антон рассказал про эту инициативу, что это за премия, как и кому она выдаётся в России и в каких странах ещё есть эта премия.

Читать далее

SDCast #71: в гостях Константин Кривленя, ведущий разработчик в TargetProcess

Рад представить вам 71-й выпуск SDCast’а! У меня в гостях Константин Кривленя, ведущий разработчик в компании TargetProcess. В этом выпуске мы говорим о фронтенд-разработке, технологиях и инструментах, о Open Source проектах, методологиях процессов разработки и прочих айтишных штучках :)

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

Последнее время Костя занимается проектом Vizydrop — это инструмент для визуализации данных, получаемых из различных источников, как то: файлы различных форматов, таск-треккеры, dropbox, github, jira, trello и другие. Костя рассказал про основную идею и цель проекта, как он устроен под капотом, из каких модулей состоит и как вообще происходит процесс визуализации данных от подключения источника до рендеринга графиков в браузере. Так же Костя рассказал несколько интересных задач и проблем, с которыми пришлось столкнуться в процессе работы над проектом.

Компания TargetProcess сам очень активно проповедует и использует гибкие методологии внутри компании. Поговорили с Костей о том, какие подходы применялись в компании в разное время, какие подходы и практики прижились, а какие нет. Обсудили мы и различные плюсы и минусы методологий в контексте компании TargetProcess. Костя рассказал про такую штуку как «Оранжевые пятницы» — это возможность заниматься своими интересными проектами, примерно как в Google раньше были те самые 20% времени :) Рассказал про то, какие интересные проекты родились благодаря «оранжевым пятницам».

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

Читать далее

SDCast #69: в гостях Михаил Белопухов, разработчик OpenBSD

Всё что вы хотели узнать о OpenBSD и даже намного больше информации ждёт вас в 69-м выпуске SDCast’а! У меня в гостях Миша Белопухов, разработчик OpenBSD.

В начале Миша рассказал про то, как он сам познакомился с OpenBSD, как начал изучать операционные системы и как его интерес неожиданно превратился во вполне оплачиваемую работу :)

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

Обсудили мы и в целом операционную систему OpenBSD, как она устроена, на каких принципах построена, как работает ядро системы, драйвера и user space код.

Обсудили вопросы, связанные с безопасностью и защищенностью, как самой ОС, так и прикладного кода, работающего в системе. OpenBSD известна своим слоганом “Secure by Default” и тем, что вопросам безопасности там уделяется большое внимание. Миша рассказал про различные подсистемы обеспечения безопасности, применяемые в OpenBSD, такие как:

  • Рандомизация адресного пространства ядра, KARL (Kernel Address Randomized Link)
  • Рандомизация размещения адресного пространства, ASLR (address space layout randomization)
  • strlcpy() и strlcat() – нестандартные функции, созданные в качестве замены часто используемых некорректным образом аналогов стандартной библиотеки
  • fork+exec, PIE, pledge и другие.

Отдельно поговорили о криптографических алгоритмах, способах их реализации с использованием возможностей современных процессоров, таких как SIMD, а так же о их применении в SSH и SSL.

Читать далее

SDCast #58: в гостях Павел Одинцов, разработчик системы обнаружения DDoS атак FastNetMon

DDoS… Как часто мы стали слышать этот термин в айтишных новостях. Сейчас это одна из наиболее распространённых типов атак на информационные системы. В этом выпуске у меня в гостях Павел Одинцов, разработчик системы обнаружения DDoS атак FastNetMon.

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

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

Далее мы обсудили сам проект FastNetMon. Паша рассказал историю своих первых экспериментов, как он получил «proof of concept», и как в дальнейшем происходило развитие системы как с архитектурной точки зрения, так и со стороны функциональности. Паша подробно рассказал про внутреннее устройство системы, как происходит обработка входящего трафика, как происходит расчёт метрик и как в конечном счёте принимается решение о легитимности трафика.

В процессе обсуждения были затронуты и общие вопросы построения сетевой инфраструктуры провайдера или датацентра, вкратце освещены разные сетевые протоколы, такие NetFlow, IPFIX, sFlow и другие. Так же Паша рассказал как происходит тестирование FastNetMon. Это не простой вопрос, потому что для полноценного тестирования такого рода систем необходимо большое количество дампов разнородного сетевого трафика. Откуда его взять? Спасибо пользователям проекта, которые для решения своих настоящих и потенциально будущих проблем готовы поделиться своими данными. Так же интересный вопросы — это взаимодействие с вендорами оборудования. Поскольку в конечном итоге сетевой трафик идет через конкретные коммутаторы и маршрутизаторы того или иного производителя, и не смотря на принятые и открытые стандарты, как это водится, каждый вендор трактует стандарты и протоколы немного по-своему.

В завершении беседы мы немного пообщались на тему Open Source в целом и в разрезе проекта FastNetMon в частности. Паша рассказал, какие он видит плюсы, что дала ему публикация проекта в open source, какое появилось сообщество у проекта.

Читать далее

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

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

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

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

Читать далее

SDCast #53: в гостях Андрей Солнцев и Алексей Виноградов, разработчики Selenide

Встречайте 53-й выпуск подкаста! В этот раз речь пойдёт о тестировании. У меня в гостях Андрей Солнцев, автор фреймворка для тестирования Selenide, разработчик из codeborne и Алексей Виноградов, независимый консультант, модератор подкаста Radio-QA.

Андрей рассказал про то, как появился проект Selenide, чего не хватало на тот момент в Selenium и как всё начиналось. Рассказал о том, как он сам превратился из просто разработчика в разработчика-тестировщика :)

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

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

Ребята рассказали про то, как устроен проект Selenide изнутри: как идёт разработка, как устроено тестирование самого фреймворка для тестирования :), насколько велико сообщество вокруг проекта и другие смежные вопросы. Алексей так же рассказал о ближайших и дальнейших планах по развитию проекта.

Читать далее

SDCast #52: в гостях Вадим Жуков, разработчик OpenBSD, мейнтейнер портов KDE и Qt

Встречайте 52-й выпуск SDCast’а, целиком и полностью посвящённый OpenBSD. У меня в гостях Вадим Жуков, разработчик OpenBSD, мейнтейнер портов KDE и Qt и преподаватель операционных систем по совместительству.

В этом выпуске мы обсудили, кажется, все возможные аспекты проекта OpenBSD. Хотя Вадим не согласен: “По моим ощущениям, мы обсудили далеко не всё, но нельзя объять необъятное”! :) И тем не менее… В начале Вадим рассказал, как он сам попал в проект, чем занимался в начале и как стал мейнтейнером таких тяжелых пакетов как KDE и Qt.

Обсудили то, как устроен проект OpenBSD: насколько велико сообщество разработчиков, какие там есть зоны ответственности, как устроен процесс разработки, тестирования, выпуска релизов, как устроена инфраструктура проекта, насколько велика роль лидера проекта Тео де Раадта и другие смежные вопросы.

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

Поговорили мы и о областях применения OpenBSD: для кого этот дистрибутив, чем он может быть интересен разработчикам и пользователям, как начать своё участие в проекте.

Так же Вадим рассказал про хакатоны OpenBSD: зачем они проводятся, какие цели преследуются, как организовываются и кто принимает в них участие. Кстати, ещё Вадим поделился опытом менторства одного подпроекта в рамках участия OpenBSD в Google Summer of Code.

Читать далее

SDCast #47: в гостях Сергей Бронников и Владимир Порохов, ребята из команды OpenVZ/Virtuozzo

Open_vz-logo Друзья! Встречайте 47-й выпуск подкаста! На этот раз речь пойдет о виртуализации. У меня в гостях Сергей Бронников и Владимир Порохов, ребята из команды OpenVZ/Virtuozzo. В начале мы немного обсудили общие вопросы по виртуализации, какие типы виртуализации бывают, как все зарождалось и появлялось. Обсудили, что происходит в сфере виртуализации сейчас, как появление таких проектов как docker повлияло в целом на индустрию и на другие решения в этой области в частности.

Так же ребята подробнее рассказали про проект OpenVZ от истории его появления и развития до архитектуры и внутреннего устройства. А в свете выхода новой, 7-й версии проекта, поделились тем, что появилось нового и интересного. Не обошли мы стороной и тему open source. Проект OpenVZ является открытым, а проект Virtuozzo — коммерческим. Ребята рассказали, как ведется параллельная разработка обоих проектов, какая часть кодовой базы является общей, а что специфично для каждого проекта. Так же Сергей рассказал о том, какие ошибки были допущены в open source составляющей проекта, и как они были исправлены.

Читать далее