Category : golang

golang
Проверка готовности приложения к работе в реальном ненадежном мире. Часть 5

Пятая и заключительная часть статьи, в которой Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик» рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.Статья состоит из 5 частей, которые выходят по очереди:1. Надежность.2. Масштабируемость/отказоустойчивость.3. Resiliency/отказоустойчивость.4. Безопасность. Процесс разработки. Пр…

  • суббота, 16 ноября 2024 г. в 00:00:09
golang
Создание кастомного балансировщика нагрузки на Go для gRPC с приоритизацией адресов

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

  • суббота, 16 ноября 2024 г. в 00:00:08
golang
Внутренности планировщика Go

В настоящий момент занимаюсь наставничеством разработчиков на языке Golang и один из студентов принес очередной вопрос, который заставил задуматься и вникнуть глубже в устройство планировщика Go.Верно для go 1.22Почему данный код всегда будет выводить одинаковый результат?func main() { runtime.GOMAXPROCS(1) var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { go func() { fmt.Println(i) wg.Done() }() } wg.Wait() } // 4 0 …

  • пятница, 15 ноября 2024 г. в 00:00:08
golang
Проверка готовности приложения к работе в реальном ненадежном мире. Часть 4

Четвертая часть статьи, в которой Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик» рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.Статья состоит из 5 частей, которые выходят по очереди:Надежность.Масштабируемость/отказоустойчивость.Resiliency/отказоустойчивость.Безопасность. Процесс разработки. Процесс выкатки.Наблюдаемос…

  • четверг, 14 ноября 2024 г. в 00:00:12
golang
Запуск узла Hidden Lake на языке Go

ВведениеАнонимная сеть Hidden Lake является в своей области уникальным и достаточно своеобразным проектом, т.к. базируется на совершенно иных методах и подходах анонимизации трафика, чем большинство ныне нам известных сетей. Из-за того, что сеть является относительно новой - она часто дополняется и совершенствуется. Одним из таковых дополнений стал новый способ запуска узла HL. Немного о сети Hidden LakeАнонимная сеть Hidden Lake (HL) - это децентрализованная F2F (friend-to-friend) анонимная се…

  • четверг, 14 ноября 2024 г. в 00:00:11
golang
Паттерн Наблюдатель в Golang на котиках

Привет, Хабр! Сегодня будем разбирать паттерн Наблюдатель на примере наших любимых пушистиков — котиков. Ведь кто, как не коты, могут быть идеальными субъектами и наблюдателями в нашем коде? Коротко про сам паттернПаттерн Наблюдатель позволяет субъекту уведомлять зависимые объекты (наблюдателей) о произошедших изменениях. Допустим, у вас есть кот, который каждый раз, когда видит лазерную указку, начинает бегать за ней. Лазерная указка — это субъект, а коты — наблюдатели. Как только что-то измен…

  • вторник, 12 ноября 2024 г. в 00:00:08
golang
Проверка готовности приложения к работе в реальном ненадежном мире. Часть 3

Третья часть статьи, в которой Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик» рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.Статья состоит из 5 частей, которые выходят по очереди:Надежность.Масштабируемость/отказоустойчивость.Resiliency/отказоустойчивость.Безопасность. Процесс разработки. Процесс выкатки.Наблюдаемость.…

  • вторник, 12 ноября 2024 г. в 00:00:08
golang
Проверка готовности приложения к работе в реальном ненадежном мире. Часть 2

Вторая часть статьи, в которой Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик» рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.Статья состоит из 5 частей, которые будут выходить по очереди:1. Надежность.2. Масштабируемость/отказоустойчивость.3. Resiliency/отказоустойчивость.4. Безопасность. Процесс разработки. Процесс вык…

  • суббота, 9 ноября 2024 г. в 00:00:05
golang
Проверка готовности приложения к работе в реальном ненадежном мире. Часть 1

Опытом делится Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик». Он рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.Считайте это некоторым чек-листом, но не применяйте все пункты as is, потому что каждая система уникальна и иногда вполне допустимо построить менее надежную систему с целью значительного сокращения затрат на …

  • четверг, 7 ноября 2024 г. в 00:00:09