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

GopherCon Russia 2020
8-9 августа, Online

Бесплатно, 800 участников, два дня, два параллельных потока докладов.
Языки конференции: русский и английский.
8 августа, суббота
9 августа, воскресенье
Спикеры
Engineering Manager в одной из инфраструктурных команд GetYourGuide (Берлин). Пишет на Go с 2015-го, профессиональный опыт в ИТ — 13 лет. Область интересов: DevOps-культура и автоматизация, построение нативных облачных сервисов.
Владимир — software-инженер и инженер-технолог, увлеченно работающий над open source проектами на Go. Автор книги «Learning Go Programming». Сейчас активно контрибьютит в проекты, связанные с нативными облачными технологиями, например Kubernetes.
Developer Advocate GoLand IDE от JetBrains. Строит высокопроизводительные системы, распределенные проекты и помогает гоферам по всему миру.
SRE в Ozon. Отвечает за разработку платформы для distributed tracing'a и других проектов, связанных с observability. Организатор митапа GoWayMeetup и конференции GoWayFest.

Разработчик SAP Labs из Бангалора, Индия. Страстно любит Go, помогает в организации Golang-Bangalore и митапа Go Study Group. В свободное время увлекается фотографией.
Системный программист в Badoo, тимлид, специалист в области высоконагруженных сервисов. Благодаря его продуктам миллионы людей по всему миру нашли свою половинку.
Data Engineer в компании Weave, создает data pipelines для защиты данных в области здравоохранения. Организатор групп Machine Learning Utah и Women Who Go Utah. Выступает на буткэмпах и в местных школах, чтобы привлечь в сообщества больше людей и вдохновить девушек строить карьеру в IT.
Андрей Солдатенко
Питонист днём и гофер по вечерам, большой фанат полнотекстового поиска и графовых баз данных. Контрибьютор многих open source проектов на Python и Go, спикер, автор канала @golang_for_two.
Алексей Найденов
CSA в ITooLabs, в 2012 рискнул запустить сложный проект телефонного коммутатора на Pre-Go 1, и не ошибся. Придумывает архитектуры, пишет код (и любит обо всём этом рассказывать).
Дмитрий Смотров
Ведущий разработчик в компании Открытая мобильная платформа. Разрабатывает платформу управления для российской мобильной операционной системы Аврора.
Илья Данилкин
Backend-разработчик в компании Авито (ex-Gett, ex-Ozon), занимается продуктовой разработкой в команде Auto B2B.
Владимир Сердюков
Backend-разработчик в Ozon. Занимается продуктовой разработкой в направлении buyer experience.
Георгий Рылов
Разрабатывает управляемые базы данных в Яндекс.Облаке, систему резервного копирования WAL-G и преподает в Уральском Федеральном Университете.
Подробнее о докладах
eBPF: современные возможности интроспекции в Linux, или Ядро больше не черный ящик.
Для "среднестатистического" программиста ядро Linux всегда являлось неким черным ящиком. Что там происходит внутри — понять было трудно, а в случае хоть немного более нетривиальных проблем на сервере мы или звали "матерых специалистов", или поднимали лапки в беспомощности.
В последние же годы ситуация кардинально меняется. С приходом eBPF понимать, что происходит внутри ядра и внутри ваших же программ, стало на порядок проще, а инфраструктура вокруг eBPF дала возможность писать удобные и мощные утилиты, которые давали любому человеку возможности 100-го уровня, ранее доступные только единицам.
В докладе вы узнаете, что такое eBPF, почему он возник, какие возможности он дает, каким образом мы можем использовать его для интроспекции программ на Go и как мы можем использовать Go для интроспекции других программ.
Марко Кевац
GoLand Tips & Tricks.
In this session, Florin will go over 40 tips & tricks to boost your productivity while using GoLand.
From basic editing tips to advanced debugging options, no section of the IDE will be left untouched.
Watch this session and see how many of these did you knew and used already.
Florin Patan
Continuous profiling для Go приложений.
Рано или поздно каждый Go разработчик сталкивается с необходимостью профилирования Go-приложений и на помощь к нему приходит замечательный инструмент под названием pprof. Но иногда возникают ситуации, когда профили нужно одновременно снять со всех копий одного приложения или вы хотите узнать, а что именно творилось в моем сервисе в 3 часа ночи во время стресс-тестов? Или самое банальное — у вас нету доступа в production-сеть, а разбираться нужно.
Как и многие другие, мы столкнулись с этой проблемой и создали инструмент, который позволяет делать это автоматически.

Михаил Кабищев
Generic Programming in Go.
Go detractors usually point to its lack of generics as a reason for not adopting the language. Starting in 2019, however, the Go community rallied around a new proposal to introduce generics in Go. This proposal has culminated in the release of the experimental implementation of the latest proposal. In this session, speaker Vladimir Vivien will explore programming using generic constructs in Go and why this approach to programming is important.
Vladimir Vivien
Illustrated Tales of Go Runtime Scheduler.
Concurrency in Go in form of Goroutine and channels is a very convenient means for writing modern concurrent software and often seems like magic, but how does our Go Program run these goroutines efficiently? From where does this magic comes to Go?
In this talk Ankur will look under the hood, to help understand how Go runtime scheduler implements this magic and how to use it to interpret the scheduler trace information of Go Program during the performance debugging.
Ankur Anand
"Go, please": language server под микроскопом.
В этом докладе я расскажу об основных принципах работы gopls и LSP-протокола в целом, плюсах и минусах использования; сравним возможности language server'а + VSCode с функционалом IDE GoLand, а также рассмотрим реализацию одной из команд протокола на примере.
Илья Данилкин
Intro to AI for software engineers using go-learn.
AI is a 2020 buzzword. There is an ever-growing need for the Software Engineer to understand how these models work. This talk I explain AI/ML basics in the context of Go dev. It is a hands-on demo using the go-learn library to explain of classing ML techniques. As the industry explodes with potential, there is an ever-growing need for Software Engineers to understand how Machine Learning models work. For most people, Machine Learning seems complex, academic, and even unreachable, but with some detailed explanation, it can become a valuable tool on the Software Engineer's tool belt.
Miriah Peterson
Как писать кодогенераторы в Go.
Разработчики Открытой мобильной платформы оптимизировали работу над микросервисами, создав инструмент, который генерирует шаблонный код микросервисов.
В докладе я расскажу о том, что такое генераторы кода, где они используются, как самостоятельно написать свой первый генератор кода для конкретной задачи и стоит ли это делать.
Дмитрий Смотров
Как перестать думать об обязательных полях и начать писать контракты.
Backend-Driven UI предполагает работу с большим количеством разных контрактов. Требования (как и новые элементы интерфейса) меняются с молниеносной скоростью. Особенно, если говорить про продуктовую разработку.
В этом докладе я расскажу о том как готовить контракты используя protobuff, в чем подвох при работе с required полями и как проверить правильность их формирования. Также обсудим что нас ждет в APIv2.
Владимир Сердюков
Отладка параллельных программ на Go.
Интерес к параллельному программированию в последнее время резко вырос. К сожалению, параллельные программы не всегда имеют воcпроизводимое поведение. Даже когда мы запускаем программу с одинаковыми входными параметрами, результаты могут значительно отличаться. В этом докладе я покажу разные подходы к тому, как можно отлаживать параллельные программы на Go.
Начну свой доклад с отладки горутин с помощью дебаггеров: delve и gdb. Чтобы лучше понять работу горутин, я покажу как визуализировать поведение горутин в различных сценариях.
Следующая часть посвящена дампу стэка горутин вашего приложениях во время исполнения и проверки того, что сейчас делает каждая горутина.
В конце, я продемонстрирую как отладить утечку горутин с помощью трэйсинга процессов запуска горутин с помощью scheduler'а на логических процессорах, которые связаны с физическим процессором тредами операционной системы.
В качестве бонуса расскажу о паре трюков, которые помогут находить дэдлоки и избегать race conditions в ваших приложениях.
Андрей Солдатенко
Рост сообщества open-source проекта: проблемы и их решение.
У меинтейнеров open source возникает множество проблем по мере их роста. Как писать все больше требуемых фич, чинить все больше issues'ов и успевать смотреть все больше pull request'ов? На примере WAL-G (golang open source project) расскажу про то, как мы решали эти проблемы, запустив курс по Open-source разработке в университете, чего мы добились и куда будем двигаться дальше.
Георгий Рылов
Воркшоп: TLA+/TLC: практичный инструмент формальной верификаций алгоритмов, который точно нужно знать всем гоферам.
Разрабатывать конкурентные системы сложно. Самые плохие ошибки закладываются в алгоритм, не находятся никакими тестами, и ждут своей уникальной последовательности событий, чтобы взорваться и всё испортить. Но находить такие ошибки можно, даже не написав ни строчки кода на Go -- если воспользоваться методами формальной верификации. Один из таких методов — разработанный Лесли Лампортом формализм TLA+ и инструмент верификации TLC -- идеально подходит верификации конкурентных систем на Go. Мы поговорим про TLA+/TLC, про PlusCal — транслируемый в TLA+ язык спецификации алгоритмов специально для инженеров, а также про практики применения TLA+/TLC в проектах на Go.

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

Воркшоп будет проходить в среде MS Visual Studio Code (https://code.visualstudio.com /). Вам понадобится плагин TLA+ (https://marketplace.visualstudio.com/items?itemName=alygin.vscode-tlaplus), и, возможно, плагин для Golang (https://code.visualstudio.com/docs/languages/go)

Алексей Найденов
Воркшоп: Знакомимся с Observability на практике.
Наблюдаемость (observability) — одно из ключевых свойств современных приложений. Часто под наблюдаемостью понимают логи, метрики и трейсинг как таковые. Однако, согласно определению, observability — это мера того, насколько хорошо мы можем определить текущее состояние системы или любого её компонента. На этом воркшопе мы поговорим о том, как приложения могут вносить вклад в наблюдаемость системы.
Мы рассмотрим важные состояния приложения, поговорим о концепции Application Performance Management, проекте OpenTelemetry и о том, как протестировать наблюдаемость до выхода в продакшн — прямо на локальном окружении. Ну и, конечно, вооружившись идеями и концепциями, мы напишем приложение, содержащее максимально полезные логи, метрики и трейсинг.
Этот воркшоп подойдет для тех, кто уже сделал свои первые шаги в Go, и хочет улучшить навыки написания production-ready приложений. Вы можете принести на воркшоп любой свой сервис, и попробовать внедрить изученные практики прямо на месте.
Все примеры будут показаны для Go, поэтому ожидается базовое знание этого языка
  1. Если вы хотите посмотреть воркшоп в режиме демонстрации, ничего специального можно не готовить.

  2. Если вы хотите попробовать разобранные примеры, этот чек-лист поможет подготовиться к воркшопу:
  • Установить стабильную версию Go, лучше всего - последнюю (1.14.6)
  • Установить и настроить любую IDE или редактор для работы с кодом
  • Подготовить bash-терминал для запуска компиляции и работы с Docker
  • Установить и попробовать Docker для вашей операционной системы
  • С помощью команды docker pull заранее загрузить Docker-образы, с которыми мы будем работать:
    • docker pull percona/pmm-server:2.9.1
    • docker pull perconalab/pmm-client:2.9.1
    • docker pull jaegertracing/all-in-one:1.18.1

Елена Граховац
Партнёры
Генеральный партнёр
Cамый популярный сайт объявлений в России. У нас десятки тысяч rps к бэкенду, сотни миллионов объявлений в базе, терабайты картинок в хранилище и мощная система автоматизированной модерации на базе машинного обучения. Каждый месяц проектом пользуется четверть населения России.
Золотой партнёр
Ozon начали строить в 1998 году, когда рунету было четыре. Теперь мы одна из крупнейших российских e-commerce компаний. Каждый день на сайте Ozon.ru более 1,2 млн. посетителей выбирают из 1,5 млн. товаров. У нас микросервисная архитектура на Docker + Kubernetes, а также одна из самых больших Go команд в России.
Золотой партнёр
Gett — это не просто сервис такси, а динамическая высоконагруженная система с десятками тысяч водителей и миллионами пользователей. Gett RnD отвечает за создание и развитие платформы, сопутствующих продуктов и мобильных приложений, которые выдерживают одновременные запросы миллионов пользователей и облегчают им жизнь.
Серебряный партнёр
Открытая Мобильная Платформа выпускает мобильную операционную систему и высоконагруженную платформу управления устройствами используя Go, микросервисную архитектуру, придерживаясь Agile и CI/CD, взаимодействуя с сообществом разработчиков и университетами. Компания конкурента и открыта всему новому благодаря командной работе ребят, которые находят пути решения самых сложных технических проблем.
Серебряный партнёр
Goods.ru — e-commerce нового типа. Входит в группу компаний с М.Видео и Эльдорадо. Принципиальное отличие от конкурентов — максимально упрощать жизнь клиентам: контролировать весь процесс от заказа до доставки, отвечать за действия продавцов и защищать интересы покупателя. Go используется как основной язык backend разработки, сейчас в компании сформировалось сообщество экспертов. Сочетание простоты и высочайшей эффективности языка Go позволяет goods.ru занимать лидирующие позиции в рейтингах e-commerce и обслуживать миллионы пользователей по всей России.
Бронзовый партнёр
ITooLabs делает лучшую облачную платформу телефонии, которую предлагает компаниям малого и среднего бизнеса с помощью 80+ своих партнёров-операторов. Ядро платформы — масштабируемый телефонный коммутатор ITooLabs Communications Server — разработан на Go.
Бронзовый партнёр
Badoo — социальная сеть для знакомств, которая объединяет людей по всему миру. Кроме Badoo, мы разрабатываем Bumble, популярный за рубежом и другие сервисы, которые входят в группу компаний MagicLab. У нас высоконагруженные проекты с масштабной инфраструктурой — миллионы пользователей ежедневно знакомятся, выкладывают фотографии, общаются и стримят видео. Мы решаем непростые инженерные задачи, не боимся экспериментировать и развиваем IT-сообщество
Бронзовый партнёр
Evrone — профессиональная распределенная команда разработчиков с десятилетним опытом создания крутых проектов. Ruby, Go, Python и не только. Не останавливаемся на достигнутом и всегда находим новые области применения нашему инженерному таланту.
Бронзовый партнёр
Percona - это эксперты по работе с open source базами данных. Мы повышаем производительность DB крупнейших компаний по всему миру. Один из наших open source продуктов, Percona Monitoring and Management (PMM), создан для поддержки DBA и разработчиков, позволяет отслеживать производительность, искать тонкие места и оптимизировать работу DB. PMM написан на Go с использованием Grafana и Prometheus, его можно использовать для мониторинга MySQL, PostgreSQL, MongoDB и других баз данных. Сегодня у тебя есть шанс стать частью команды PMM. Become a Perconian!
Нетворкинг партнёр
Интернет‑компания, которая развивает самую популярную в России поисковую систему и интернет‑портал и создаёт сервисы, помогающие людям в повседневных делах как в онлайне, так и в офлайне. С помощью сервисов Яндекса можно решать самые разные задачи: искать информацию в интернете, слушать музыку, выбирать товары и делать многое другое. Яндекс также создаёт продукты для рекламодателей и владельцев бизнеса. В основе продуктов и сервисов Яндекса лежат технологии мирового уровня, созданные командой талантливых математиков и программистов.
Дружественная конференция
Ежегодная конференция в Беларуси, полностью посвященная языку Go, организована командой SPACE совместно с сообществом GoWayMinsk.
Организаторы
Алексей Палажченко
Организатор встреч московского
Go-сообщества, соведущий подкастов GolangShow и From Code to Prod.
Леонид Кальнеус
Организатор сибирского
Go-сообщества.
Елена Могильникова
Event-менеджер RubyRussia, PyConRu, GopherShip.
Мария Первухина
Регистрация участников, фея документооборота.
Контакты
E-mail: hello@gophercon-russia.ru
Телефон: +7 999-112-53-89

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