![](https://engineer.yadro.com/wp-content/uploads/2024/02/background-left-meetup-go.png)
![](https://engineer.yadro.com/wp-content/uploads/2024/02/background-right-meetup-go.png)
YADRO Go Meetup: sync.Pool, свой mini-k8s, паттерны и сообщения об ошибках
![](https://engineer.yadro.com/wp-content/uploads/2024/02/img_meetup-go.png)
Горьковская
![](https://engineer.yadro.com/wp-content/uploads/2024/02/img_meetup-go.png)
О митапе
Узнаем, как снизить нагрузку на сборщик мусора. Напишем свой небольшой кубер с helm. Рассмотрим средства для работы с ошибками. И научимся использовать мощь горутин грамотно и безопасно. Докладчики митапа — разработчики из команд систем хранения данных и телекома YADRO, а также представители VK и AvitoTech. В ходе всего мероприятия на площадке будет работать стенд с программно-аппаратными комплексами, над которыми работают инженеры YADRO, а участники смогут пообщаться с представителями компании.
Программа
Приветственное слово
Вы узнаете больше о компании-организаторе, программно-аппаратных комплексах, которые создает YADRO, их важности для цифровизации разных секторов экономики страны, а также роли и задачах инженеров в этих процессах.
Снижаем нагрузку на Garbage Collector и ускоряем работу с памятью, используя sync.Pool
Я работал над приложением, которое испытывало пиковые нагрузки при получении новых данных и не успевало поставить их в централизованную обработку. По привычке начал профилировать в надежде вычислить time-critical участки кода. Но быстро выяснил, что все портил Garbage Collector. Я расскажу:
• Как уменьшить влияние GC на ход выполнения задачи, и какие плюсы и минусы это несет.
• Покажу бенчмарки для разных размеров буферов данных и объясню, когда sync.Pool вам поможет, а когда не следует его использовать.
![Александр Иванов](https://engineer.yadro.com/wp-content/uploads/2024/03/ivanov.png)
Как мы сделали свой mini-k8s на Go с helm-шаблонизатором
Мы взяли типичные комплексные задачи в облаке и разбили их на набор атомарных шагов. Для каждого шага сделали свой манифест в helm-стиле, для каждого манифеста написали собственный обработчик. Таким образом мы получили набор маленьких блоков из которых можно составлять большие приложения. И получили все преимущества helm — широкие возможности по шаблонизации и общеизвестный формат.
![Станислав Иванкевич](https://engineer.yadro.com/wp-content/uploads/2024/03/ivankevich.png)
Учим сервис сообщать об ошибке понятно пользователям, машинам и программистам
Мы рассмотрим средства для работы с ошибками в Go, чем они хороши и что делать, если на пути встает сериализация. На примере того, как мы учились сообщать пользователю об ошибках во время выполнения запроса в системе хранения данных, вы узнаете как внедрить свой формат ошибок для общения между сервисами и оформить ее в библиотеку.
![Александр Лырчиков](https://engineer.yadro.com/wp-content/uploads/2024/03/lyrchikov.png)
Паттерны конкурентного программирования в Go
Я расскажу о нескольких популярных паттернах, которые помогают использовать мощь горутин грамотно и безопасно. Посмотрим на примеры кода и поговорим о зоне применения этих паттернов.
![Олег Козырев](https://engineer.yadro.com/wp-content/uploads/2024/03/kozyrev.png)