YADRO Go Meetup Плагин для Redpanda/Connect, возвращение монолита, монструозный Makefile и генерация стабов для gRPC
О митапе
Познакомимся с активистами Go-сообщества, спикерами и участниками GolangConf — Даниилом Подольским, Виталием Левченко и не только.
Инженеры YADRO расскажут о генерации стабов для тестирования микросервисов, альтернативах Make и преимуществах Mise для сборки проектов. Также обсудим распил монолита в Ви.Tech и создание плагина для Redpanda/Connect в Weborama.
Участников офлайн-части будет ждать демозона с «железом» для ЦОД и телеком-операторов, которое создают инженеры YADRO, а также технические интерактивы и подарки от компании.
Программа
Сбор гостей
Еда, общение, а также стенд и квесты от YADRO.
Приветственное слово
Расскажем про планы развития Go-сообщества в Нижнем Новгороде, а также узнаем, чем заняты сотни Go-разработчиков в YADRO.
Генерация стабов для тестирования микросервисов, связанных по gRPC
Как Go-разработчикам и тестировщикам развивать интеграционные тесты, получать стабы и механизмы отправки сообщений для тестирования микросервисов?
В этом докладе я покажу, как с помощью инструмента protoc генерировать необходимые компоненты, являющиеся generic обëрнутые интерфейсами. Это позволит стандартизировать внешний вид тестов, облегчить их написание и повысить читаемость.
Как стримить данные из Snowflake в Couchbase или зачем писать свой плагин для Redpanda/Connect
RTB (Real Time Bidding) — это технология аукциона в реальном времени, которая используется в онлайн-маркетинге для покупки и продажи рекламного пространства. Один из этапов заключается в сборе и обновлении данных о категориях, к которым принадлежат те или иные сайты. В нашей системе такие данные заносятся в БД Snowflake, и эти изменения необходимо оперативно транслировать в Couchbase. В данном докладе я расскажу, как мы это делаем, почему нам понадобилось писать плагин для сервиса потоковой обработки данных Redpanda/Connect и что в итоге осталось на продакшене.
Перерыв
Еда, общение, а также стенд и квесты от YADRO.
Собираем проект на Go: от Make до Mise
Как собрать проект на Go? В самом простом случае достаточно использовать команду go build. В более сложных ситуациях может потребоваться написание длинных Dockerfile или создание Makefile различной монструозности.
У нас в Common Yadro Platform имеется один из самых монструозных Makefile, что встречаются в дикой природе, не считая, конечно, проектов на C++. Во вводной части этого доклада поговорим о том, как этот «монстр» появился на свет, как команда с ним уживается и почему появилось мнение, что стоит с ним расстаться.
В основной части обсудим, какие альтернативы существуют для использования Make, как можно перейти на них и почему кажется, что Mise — это оптимальный выбор.
Страх и ненависть: почему мы пилим монолит без использования микросервисов
У нас было три монолита на PHP, по 180 минут на выкатку каждого, 30 минут на обновление наличия товара на сайте, полсервиса на Go и PHP, множество джобов всех сортов и расцветок, а также Docker, Cobra, целая куча репозиториев в GitLab, пинта чистого Kubernetes и Terraform. Не то чтобы это был необходимый арсенал для разработки, но если начинаешь собирать удобный деплой, становится трудно остановиться. Единственное, что вызывало опасение, — это сервисная архитектура. Нет никого более беспомощного, безответственного и испорченного, чем разработчики и архитекторы, пытающиеся определить границы предметных областей и не создать новый монолит при распиле старого. Но мы знали, что рано или поздно окунемся и в это.