SDCast #74: и вновь Павел Аргентов, бэкенд-разработчик в компании Evrone

Встречайте 74-й выпуск SDCast’а, в котором идёт речь про Unikernel, MirageOS и вообще концепцию Virtual Library Operating System. У меня в гостях вновь Павел Аргентов, бэкенд-разработчик в компании Evrone, практикующий fp-программист.

В начале мы поговорили про традиционные подходы к развертыванию приложений: от физических серверов к гипервизорам с виртуалками и до контейнеров приложений. Обсудили разные ограничения этих подходов, плюсы и минусы. А дальше мы подошли к идеи Unikernel aka Library Operating Systems.

Обсудили саму концепцию Unikernel, что это за подход, что такое Library Operating Systems, как оно устроено и работает. Паша рассказал о том, какие основные плюсы у данного подхода по сравнению с традиционными, а так же и какие есть минусы.

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

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

Читать далее

SDCast #73: в гостях Дмитрий Борисов, специалист по IP-телефонии

sd-podcast-logoХотите перевести свой офис на IP-телефонию? А может быть построить облачную АТС и стать новым провайдером связи? Или просто интересно узнать как устроены телеком-системы в целом? Тогда этот выпуск для вас! У меня в гостях Дмитрий Борисов, специалист по IP-телефонии.

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

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

Обсудили мы различные темы VoIP. Дима рассказал про различные используемые кодеки для сжатия аудио, рассказал как происходит установка соединения между клиентами, какие есть сложности и тонкости. Не забыли подискутировать о современных тенденциях в сфере телефонии, применении WebRTC для звонков, новых кодеках и технологиях.

Читать далее

SDCast #72: в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM

sd-podcast-logoРад представить вам 72-й выпуск SDCast’а! У меня в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM. В этом выпуске мы с Ильясом обсуждаем различные аспекты разработки, начиная от технических составляющих и заканчивая различными “soft skills” темами.

В начале Ильяс рассказал про проект retailCRM, как он появился, какие решает задачи, как устроен и работает. Обсудили мы архитектуру проекта и используемые технологии. Под капотом проекта используются: PHP/Symfony/Doctrine, PostgreSQL, Redis, сервисы на Python и Go и много чего ещё.

RetailCRM — это SaaS с большим количеством пользователей, где под пользователями понимается не конкретный человек, а целая компания, использующая retailCRM, внутри которой уже работает некоторое количество человек-пользователей. Сейчас сервис используют порядка 5000 магазинов, то есть пользователей-компаний, 30 млн хитов в сутки.

Ильяс рассказал, как они организуют хранение разных пользователей-компаний в базе данных и как организована работа бэкенда с этими данными. Забегая вперёд скажу, что retailCRM — это по большому счёту монолит на PHP/Symfony, где каждый пользователь-компания живёт на своём поддомене, однако все запросы обрабатываются этим самым монолитным приложением, а данные каждого пользователя-компании — это отдельная схема в базе данных PostgreSQL.

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

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

Читать далее

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

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

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

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

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

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

Читать далее

SDCast #70: в гостях Вячеслав Ковалевский, подкастер, преподаватель на Хекслете, бэкенд-разработчик

Когда уже нейронные сети научаться писать программы вместо нас, программистов? Зачем люди заставляют нейронные сети генерить другие нейронные сети? Ответы на эти и другие вопросы вы найдёте в 70-м выпуске SDCast’а! У меня в гостях Вячеслав Ковалевский, подкастер, преподаватель на Хекслете, бэкенд-разработчик.

В этом выпуске мы говорим про нейронные сети, их применение в Machine Learning & Artificial Intelligence направлениях и не только. Начали мы с теоретической части про нейронные сети, а затем углубились в технические (и не только) детали:

  • Что представляет из себя нейронная сеть?
  • Как она устроена и работает?
  • Какие типы нейронных сетей бывают и для каких задач они хороши?
  • Как происходит настройка нейронной сети?
  • Насколько важен процесс обучения сетки? Как это обычно делается и какие есть варианты?
  • Распределённые системы обучения нейронных сетей
  • Эффективное использование машинных ресурсов (в том числе не только CPU, но и GPU) для работы и обучения сети

Обсудили мы в целом задачи Machine Learning, растущие объемы данных и способы их эффективной обработки, и вообще, куда катится весь этот мир! :)

Читать далее

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 #68 HL edition: разработчики Tarantool

Товарищи, встречайте 68-й выпуск подкаста! И вновь этот выпуск записан на Highload++ 2017! В этом выпуске мы вместе с Петей из подкастов «Пятиминутка PHP» и «Пятиминутка React» пообщались с разработчиками Tarantool. В гостях Костя Осипов, Кирилл Юхин и Рома Цисык.

Костя Осипов уже был у меня в гостях в 20-м выпуске. Но с тех пор прошло много времени, проект живёт, развивается, и много что появилось и изменилось!

Ребята рассказали про текущее положение дел в Tarantool, что нового и интересного появилось в проекте в последнее время, а так же над чем команда трудится сейчас.

У ребят довольно часто спрашивают: «Почему Lua?» И сейчас они исследуют возможность подключения различных языков, назовём их бэкендами, для написания бизнес-логики внутри сервера. И один из потенциальных вариантов — это LLVM. Ребята рассказали о возможных плюсах и минусах появления такого функционала, поделились своими мыслями по этому поводу.

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

Читать далее

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 #66 HL edition: Михаил Леонов и Vytis Valentinavičius из Lamoda

sd-podcast-logoВстречайте 66-й выпуск SDCast’а, который так же записан на Hightload++ 2017. На этот раз мы с Петей из подкастов «Пятиминутка PHP» и «Пятиминутка React» взяли небольшое интервью у ребят из компании «Lamoda». В гостях Михаил Леонов и Vytis Valentinavičius.

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

Читать далее

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

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

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

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

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

Читать далее