Конференция о разработке на Go

GopherCon Russia 2019
13 апреля, Москва

600 участников, один день, два параллельных потока докладов. С 19:30 — традиционное афтепати.
Языки конференции: русский и английский.
Лист ожидания
Увы, все билеты проданы. Оставьте заявку, мы свяжемся с вами, если кто-то откажется от своего места.
Мы не передаем ваши персональные данные другим лицам и организациям
Опыт в Go
Форма оплаты
Количество билетов
+
Нажимая эту кнопку, вы соглашаетесь с нашей политикой обработки персональных данных.
Спикеры
Google
Инженер Go team в Нью-Йорке. Работает над Go tools и помогает улучшать жизнь Go разработчиков.
Google
Участник Go team в Google, работает в основном над core libraries. Раньше работал над Google поиском и проектом Borg. Со-автор BCL, Borg's configuration language.
VictoriaMetrics
Разработчик fasthttp, quicktemplate и других проектов, оптимизированных по скорости. Сейчас работает над собственной time series базой данных — VictoriaMetrics.
JetBrains
Developer Advocate GoLand IDE от JetBrains. Строит высокопроизводительные системы, распределенные проекты и помогает гоферам по всему миру.
Badoo
Системный программист, тимлид, специалист в области высоконагруженных сервисов. Благодаря его продуктам миллионы людей по всему миру нашли свою половинку.
Three Dots Lab
Go разработчик и архитектор. Занимается консалтингом и созданием устойчивых и масштабируемых event-ориентированных приложений. Энтузиаст DDD, использует Event-storming чтобы разбираться в сложных предметных областях. Любит простые и эффективные решения.
Evrone
Backend-разработчик в компании Evrone, пишу код на Ruby и Go + немного занимаюсь DevOps.
N26
Руководит командой автоматизации TechOps-процессов в немецком финтех-стартапе N26 и является соведущий подкаста GolangShow. Область интересов: DevOps-культура и автоматизация, построение нативных облачных сервисов. Пишет на Go с 2015-го, профессиональный опыт в ИТ — 11 лет.
Avito
4 года плотно сидит на Go, фанат PostgreSQL. В Avito занимался разработкой Messenger, а теперь создает проект, связанный с краткосрочной арендой недвижимости. Помогает сервисам запускаться и работать в Kubernetes, распространяет культуру Effective Go.
Kraken Systems
Разрабатывал разные системы, от DNA deep learning base-caller до real-time крипотовалютного бота на Go. Сейчас Невен специализируется на DevOps в CNCF экосистеме, инфраструктуре и оптимизации производительности.
Atrápalo
Разработчик в Atrápalo, ко-фаундер Nepcom и Friends of Go community. Преподает и пишет о Go и open source разработке. Увлекается вещами, связанными с DevOps, интересуется machine learning.
ITooLabs
CSA, в 2012 рискнул запустить сложный проект телефонного коммутатора на Pre-Go 1, и не ошибся. Придумывает архитектуры, пишет код (и любит обо всём этом рассказывать).
IBC Labs
CTO в небольшой компании IBC Labs. Придумывает как (и помогет своей команде) строить облачные сервисы на go про блокчейны и вокруг них.
Университет ИТМО
Старший научный сотрудник НИИ НКТ Университета ИТМО, разрабатывает распределенную базу данных временных рядов совместно с компанией Siemens. Помимо этого, активно занимается научной деятельностью и работой с аспирантами.
Avito
Два года занимается разработкой нагруженных микросервисов на Go, активно переписывает кусочки PHP монолита и участвует в разработке внутренних инфраструктурных проектов. Любит пробовать новые решения и подходы для старых задач.
Aviasales.ru
Backend разработчик в команде travelpayouts.com. Однажды написал свой опенсорсный продукт и не умер.
Яндекс
Тимлид в бекенде Яндекс.Такси и автор open-source металинтера golangci-lint. Кроме того, на Go с нуля запустил BeepCar и разрабатывал на Go высоконагруженные сервисы в Почте@Mail.ru
Ростелеком
Руководит разработкой платформы Wink и In-memory DB Reindexer. Пишет на Go и C/C++.
October
Разработчик в October, стартапе из Кремниевой долины, который строит социальную сеть на основе идеи экономики внимания. Занимается микросервисной архитектурой, распределенными системами и site reliability engineering. Очень любит всё автоматизировать!
Подробнее о докладах
Go, pls stop breaking my editor.
This talk will cover the motivation behind, implementation of, and future plans for gopls, the Go implementation of the Language Server Protocol (LSP). This tool is currently being developed and maintained by the Go team and broader Go tools community, and it will ultimately serve as the backend for any LSP-compatible editor.
Rebecca Stambler
Google
Desktop application in 30 minutes.
In this talk, we explore this domain, see what tools we have available, state of the art in Desktop development with Go and what's next. The talk will start by questioning where is Go used and why. Then we'll have a look at the available options which are actively maintained to create a Desktop application. Following these steps, we'll dive right in into creating one such application.
Florin Patan
JetBrains
Message-driven application made easy with Watermill.
Do you think that building message-driven applications is hard? What if I told you that implementing production grade message-driven application which is resilient, fast and easy to debug can be as easy as implementing a HTTP API based application?
Robert Laszczak
Three Dots Labs
CLI на Go. От разработки до дистрибуции.
Обзор популярных библиотек и практик для разработки CLI-приложений на Go. Дистрибуция приложений на ОС Mac, Linux, Windows. Обзор популярных инструментов и решений.
Михаил Грачёв
Evrone
Bitmap индексы. Что за зверь такой, позволяющий делать поиск с дикой скоростью.
Для ускорения поиска в различного рода БД используются индексы. И все мы слышали о самом распространенном B-tree индексе. Он действительно самый популярный и универсальный. Я расскажу вам о менее распространенном, но не менее интересном bitmap-индексе. Посмотрим, как он устроен, когда он лучше, когда хуже и в каких случаях он сильно быстрее других индексов. Увидим, в каких популярных СУБД уже есть bitmap-индексы, попробуем написать свой на Go. Ну и наконец воспользуемся готовыми библиотеками, чтобы создать свою супербыструю специализированную БД.
Марко Кевац
Badoo
Чек-лист безопасности для Go-разработчика.
Рассмотрим Go-приложение в виде луковичной диаграммы "Данные - Код - Инфраструктура" и выделим потенциальные проблемы безопасности и возможные решения для каждого слоя. Поговорим об автоматизации и роли безопасности в DevOps-культуре и предложим вариант чек-листа, который поможет Go-разработчикам не забыть обратить внимание на важные аспекты безопасности вне зависимости от того, разрабатывают ли они высоконагруженный сервис или инструмент автоматизации внутренних процессов компании.
Елена Граховац
N26
Как не ошибиться с конкурентностью в Go.
Этот доклад посвящен разработке конкурентных систем, которые можно поддерживать и развивать. Go — отличный язык для создания таких систем, но простота Go может быть обманчива. Мы поговорим как о фундаментальных основах, так и о прикладных нюансах реализации. Приходите, если хотите узнать лучшие (и худшие) практики при работе с конкурентностью в Go.
Артемий Рябинков
Avito
Golang race detector.
Data races are nasty kinds of bugs; rare, hard to replicate and tend to occur at the worst possible moment. Their effect is undefined, detection hard, almost impossible without expensive formal verification and static analysis tools...Or is it? This talk focuses on ThreadSanitizer, a library for detecting race conditions at run-time. It originated in clang & C++ community and its use spread to go (-race), rust, java, and some other languages. It covers how it works conceptually, and necessary background for its understanding, building from DJIT+ and Fast track to ThreadSanitizer v2.
Neven Miculinic
Kraken Systems
Chatting through Go.
The "chat problem" shows up several kinds of problematics, such communications one-to-one, one-to-many (channels), many-to-many (rooms), which solution can be applied in several different environments. Two of the main approaches are websockets and the XMPP protocol, which obviously can be implemented with Go, taking advantage of its features such as the concurrency model. Let's see it!
Joan López de la Franca Beltran
Atrápalo
Грехи оптимизации производительности.
В погоне за производительностью зачастую приходится переходить на "тёмную сторону", жертвуя качеством кода и ясностью API. Этот доклад раскроет несколько таких грехов на примерах из моей практики.
Александр Валялкин
VictoriaMetrics
Зачем нужен SCTP и как с ним работать в Go.
Stream Control Transmission Protocol — транспортный протокол IP — не так широко известен, как TCP или UDP. При этом, SCTP обладает рядом уникальных свойств: параллельное использование разных маршрутов с прозрачным fail-over, поддержка множества потоков в одном соединении, нотификации об изменении состояний соединения, и много чего еще. SCTP был разработан специально для передачи сообщений с гарантиями надежности и латентности по ненадежным IP-сетям, и сейчас подавляющая доля телекоммуникационного сигнального трафика передается именно по SCTP. Изменения в Go 1.11 упростили написание новых типов сокетов, и сейчас есть уже несколько go-native SCTP библиотек. Мы обсудим, что такое SCTP, почему он отлично укладывается в модель Go для разработки распределенных сервисов, и как начать его использовать в своем проекте.
Алексей Найденов
ITooLabs
Строим cloud-native приложение на Go.
Многие из нас создают микро-сервисные системы на GO. Каждый раз, начиная новый проект, мы решаем одни и те же базовые задачи по выбору транспорта и протокола общения с версионированием, обеспечению отказоусточивости и масштабирования, и т.д. Я расскажу про фреймворк go-micro решающий все этим задачи на основе модульной архитектуры. И покажу на примерах, как используем этот фреймворк в своих проектах.
Алексей Горбылев
IBC Labs
Проблемы разработки базы данных числовых временных рядов с нуля на Go.
В сотрудничестве с Siemens мы разработали быструю и расширяемую распределенную базу данных временных рядов, которая может выполнять поиск со сложными запросами на миллиардах записей за 100 миллисекунд или извлекать по 15 миллионов записей в секунду. Я хочу поделиться с вами историей ее создания и рассмотреть проблемы, связанные со спецификой разработки на Go, с которыми мы столкнулись в процессе разработки.
Александр Вишератин
Университет ИТМО
Javascript в Go: как мы храним интерпретируемую логику в конфиге.
Go — это классный, быстрый и компилируемый язык. Но иногда необходимо хранить часть логики в конфиге, чтобы можно было менять эту логику без рекомпиляции приложения. Что же делать? Я расскажу о том, как мы решились делать это при помощи интерпретатора Javascript'а, на какие грабли смогли наступить, как тестируем, и стоит ли это использовать в продакшене.
Алексей Шайхалеев
Aviasales.ru
Как отпилить часть монолита и завернуть ее в Go-микросервис.
Как вынести код в микросервис: развязать внешние зависимости, сделать сам сервис и плавно переключить нагрузку, не уронив продакшн.
Павел Лакосников
Avito
Линтеры в Go: как их готовить.
В go 50+ линтеров: в чем их профит и как эффективно встроить их в процесс разработки? Доклад будет полезен как тем, кто еще не использует линтеры, так и тем, кто уже применяет их: я раскрою малоизвестные трюки и практики работы с линтерами.
Денис Исаев
Яндекс
Опыт разработки Go-приложения с cgo.
Мы разрабатываем backend IPTV платформы на Go с использованием БД reindexer, подключенной как cgo модуль. В докладе я расскажу о том:
- какой профит получили по сравнению с классическим подключением по сети к standalone серверу;
- с какими подводными камнями мы столкнулись и как их удалось обойти;
- какие методики профилирования и отладки используем.
Олег Герасимов
Ростелеком
go generate: One File to Rule Them All.
Code generation is ultimately the fifth stage of grief over Go's lack of generics. We've come to accept that Go doesn't have generics (yet!) but we still want to avoid the tedious task of writing duplicate code. With go generate we have a powerful tool to avoid writing boilerplate code. Using the Abstract Syntax Tree (ast) package we can extract sufficient information from an API file to generate middlewares (logging, instrumentation, etc.) and even documentation.
Konrad Reiche
October
CUE: a data constraint language and shoo-in for Go.
A configuration language needs to balance compactness with complexity. Most language end up being too complex for the value they provide. We show that inheritance is the culprit and provide an alternative: constraints. CUE's constrain describe configurations more compactly while at the same time validating them. Constraints sound scary, but actually look very familiar. The result is more readable and more correct configurations. CUE also has a rich Go API that allows you to analyze and manipulate your configurations. One of the provided tools, "trim", uses it to automatically rewrite your existing configurations given some templates, often considerably reducing them in size. A demo shows its power applied to 2000 lines of Kubernetes YAML. At the end of the 10 minute demo, the YAML is converted and refactored into compact CUE, with all Kubernetes objects neatly mapped into a single namespace. We also show how to extend the cue CLI tool with custom commands to operate on our configuration using CUE's declarative scripting layer. Finally we show how CUE can automatically extract CUE templates from your Go code that you can use to type check your data. As a separate thread throughout the talk, I'll explain how the idea for CUE was conceived, that it actually predates BCL, and why it wasn't implemented before.
Marcel van Lohuizen
Google
Кроме докладов
Воркшоп от Ростелекома: создание (микро)сервиса.
Типичной задачей для GO-разработчика является создание (микро)сервиса с некоторым API. Мы предлагаем создать вместе с нами заготовку такого сервиса — брусок, из которого каждый сможет сделать своего буратино. Каждый сервис, кроме собственно API, должен еще обладать рядом нефункциональных качеств. Мы попробуем обеспечить максимальное их количество. С нуля начинаем писать сервис, и по шагам будем добавлять к нему все больше полезных свойств.
1. Структура проекта.
2. Версионирование, статус.
3. Мягкая остановка.
4. Логирование.
5. Статистика производительности (newrelic, elastic apm).
6. Отладка.
Мы создадим пустой проект, обсудим, как организовать разбиение на уровне пакетов. Напишем тесты для разных пакетов. Добавим handler с версией и статусом сервиса. Обсудим, как версионировать
сервисы, как для этого использовать CI. Что должен делать handler со статусом. Реализуем graceful stop. Обсудим, когда это нужно.
Сделаем middleware с логированием запросов. Обсудим как это делать эффективно и безопасно. Сделаем middleware со сбором метрик производительности. Добавим ручки net/http/pprof и покажем, как они работают.

Для участия в воркшопе на конференцию с собой нужно принести ноутбук с установленным редактором кода. Для создания проекта мы будем пользоваться githib. Воркшоп будет интересен разработчикам уровня junior, junior+
Количество мест ограничено. Мы возьмём первых 10 человек.
Время: 17:30 - 18:10
Длительность воркшопа — 30 минут .
Регистрация по ссылке: https://goo.gl/forms/LrfqTTLpiirgk1ni2
Дмитрий Козлов,
Тимлид go-разработки в Ростелеком, опыт 10+ в телекоме, банках и стартапах. Любит практичные подходы к созданию софта.
11:40 Владислав Сидоров. Как мы распилили монолит и пришли к микросервисам.
Расскажу про опыт OZON в переходе от монолита к микросервисам и будут даны советы, как избежать наиболее популярные ошибки.
14:10 Илья Данилкин. Dynamic app configuration.
В этом докладе мы ознакомимся с существующими популярными подходами к конфигурированию приложений, сравним статические и динамические конфиги, на живом примере посмотрим за динамической конфигурацией приложения и обсудим плюсы и минусы данного подхода.
17:10 Иван Королев. OZON: Making microservices from scratch.
Платформа OZON - это разработка для разработчиков. Мы помогаем остальным заниматься решением бизнес задач, а не бесконечными техническими улучшениями в рое микросервисов. Если преобразование ответов gRPC в HTTP доставляет вам боль, а создание новых микросервисов происходит через copy-paste - приходите на доклад.
Я помогу понять, как мы организовали разработку на Go в OZON, какой инструмент дали бизнес-командам для быстрого запуска сервиса в production, и какую пользу это несёт для всех.
18:50 Максим Щепелин. How to build micro-services and avoid operational pain.
Микросервисы помогают построить автономные команды разработки, но без решения вопросов оперирования, они могут превратиться в боль для всей компании. В докладе я покажу как устроен процесс разработки сервиса в OZON, что мы используем для оперирования, а так же расскажу почему автоматизация это критически важно для технологической компании.
Стенд компании OZON.
Go Contributor Workshop.
GopherCon Russia предоставляет возможность поучаствовать в проекте Go. Go contributor workshop является регулярным мероприятием, где более опытные участники проекта помогают людям вовлечься в разработку Go путём обучения работе с Gerrit и предоставления простых задач, которые участники могут попробовать решить на месте. Всё, что необходимо для участия – это ноутбук с Go и git.

Количество участников: 25 человек
Время: 15:00 - 17:00
Искандер Шарипов, ВКонтакте.
11:30 Денис Дворников, backend engineer at Gett. Reactive Go.
14:00 Антон Тупиков, B2B teamleadю Gett RnD: structure, goals and challenges.
17:00 Влад Богомолов, system architect at Gett. Still Alive: readiness - liveness probes for k8s architecture.
Стенд компании Gett.
Партнеры
Генеральный партнёр
Gett — это не просто сервис такси, а динамическая высоконагруженная система с десятками тысяч водителей и миллионами пользователей. Gett RnD отвечает за создание и развитие платформы, сопутствующих продуктов и мобильных приложений, которые выдерживают одновременные запросы миллионов пользователей и облегчают им жизнь.
Золотой партнёр
Крупнейший в России провайдер цифровых услуг и решений, присутствующий во всех сегментах рынка и охватывающий миллионы домохозяйств в России.
Мы разрабатываем крупнейшую в России платформу цифрового телевидения Wink, бэкенд, которой реализован на Go, и ежедневно обслуживает 6 миллионов пользователей и выдерживает 10К rps на одну ноду.
Так же мы используем Go в разработке платформы видеонаблюдения, которая задействована в трансляции выборов и ЕГЭ.
Золотой партнёр
Международная IT-компания, объединяющая свыше 600 профессионалов в 4 странах мира (Россия, Кипр, Чехия и США). Вместе мы создаем свой собственный онлайн-сервис, который помогает более 3 миллионам интернет-маркетологов по всему миру.
В нашей компании Go в продакшене стали использовать с 2013 года, а уже сейчас для большинства наших команд это основной инструмент разработки.
Золотой партнёр
Ozon начали строить в 1998 году, когда рунету было четыре. Теперь мы одна из крупнейших российских e-commerce компаний. Каждый день на сайте Ozon.ru более 1,2 млн. посетителей выбирают из 1,5 млн. товаров. У нас микросервисная архитектура на Docker + Kubernetes, самая большая Go команда в России, а еще Robotics лаборатория.
Партнёр afterparty
Лидер в области дистрибуции авиационных услуг в России и поставщик информационных технологий для предприятий авиационной отрасли: продукты и решения для автоматизации бизнес-процессов авиакомпаний, агентств по продаже авиаперевозок и аэропортов.
Серебряный партнёр
Cамый популярный сайт объявлений в России. У нас десятки тысяч rps к бэкенду, сотни миллионов объявлений в базе, терабайты картинок в хранилище и мощная система автоматизированной модерации на базе машинного обучения. Каждый месяц проектом пользуется четверть населения России.
Серебряный партнёр
JetBrains создает интеллектуальные программные решения, избавляющие разработчиков от рутины и повышающие их продуктивность. Специально для Go-разработчиков мы создаем GoLand — IDE с умным автодополнением кода, мгновенными инспекциями и быстрыми исправлениями. Мощный статический анализ кода и удобная навигация делают разработку с помощью GoLand не только продуктивной, но и приятной, без необходимости устанавливать десятки плагинов.
Серебряный партнер
Google Cloud это лидирующий продукт: безопасная, открытая, интеллектуальная и гибкая корпоративная облачная платформа. Клиенты из более чем 150 стран доверяют разработанному Google Cloud набору инструментов и беспрецедентной технологии для модернизации своей вычислительной среды для современного цифрового мира.
Серебряный партнёр
Gravitational создаёт open source решения для развёртывания, доступа и управления нативными облачными приложениями и инфраструктурой. Попробуйте Teleport для управления доступом к облачной инфраструктуре и Gravity для развёртывания нативных облачных приложений где угодно на gravitational.com.
Бронзовый партнёр
ITooLabs делает лучшую облачную платформу телефонии, которую предлагает компаниям малого и среднего бизнеса с помощью 80+ своих партнёров-операторов. Ядро платформы — масштабируемый телефонный коммутатор ITooLabs Centrex — разработан на Go.
Бронзовый партнёр
Badoo — это крупнейшая социальная сеть для встреч с новыми интересными людьми. Наши команды IT-инженеров распределены между Москвой и Лондоном. Мы создаем продукт, которым пользуются более 400 миллионов людей по всему миру, по-прежнему работаем в режиме стартапа и не боимся экспериментировать.
Бронзовый партнёр
Evrone — профессиональная распределенная команда разработчиков с десятилетним опытом создания крутых проектов. Ruby, Go, Python и не только. Не останавливаемся на достигнутом и всегда находим новые области применения нашему инженерному таланту.
Бронзовый партнёр
МойОфис – продукт для организации корпоративной рабочей среды и совместной работы с документами, включающий в себя полный набор современных офисных приложений для всех популярных операционных систем, веб-браузеров и мобильных платформ. Значительное внимание в компании уделяется всем аспектам качества: от дизайна и удобства использования до чистоты кода и уровня покрытия тестами.
Место проведения
Технополис Москва
Волгоградский проспект 42к5

Схема проезда
Организаторы
Алексей Палажченко
Организатор встреч московского Go-сообщества, соведущий подкаста GolangShow.
Леонид Кальнеус
Организатор сибирского Go-сообщества.
Елена Могильникова
Event-менеджер RailsClub, PyConRu, FPConf.
Контакты
E-mail: hello@gophercon-russia.ru
Телефон: +7 999-112-53-89

Slack: slack.golang-ru.com канал #gophercon