🔍 ScyllaDB в K8S: как справляться с интенсивными рабочими нагрузками на спотовых экземплярах без простоев
Почему не MongoDB?
Чем плоха Mongo?
• У нее открытый исходный код, поддерживается разделение данных, но совершенно иная архитектура — с единой точкой отказа. При «падении» главного узла, то есть координатора, в БД начинается отработка отказа, во время которого БД недоступна.
• Кроме того, для достижения высокой доступности каждый сегмент Mongo должен запускаться как набор реплик — больше узлов. Кольцевая архитектура Cassandra в этом смысле превосходнее. Драйвер Scylla «знает» о сегментах и добирается до конкретного узла/процессора, ответственного за запрашиваемую строку, делая распределение действительным.
• Но почему так важны отработка отказов без простоев и высокая доступность? На спотовых экземплярах — а это 1/4 стоимости вычислений — часто ежедневно случаются отработки отказов: узлы в k8s постоянно уничтожаются и воссоздаются, что чревато завершением всех запущенных в них подов/процессов, в том числе БД.
Установка Scylla
Сначала запустим локально, используя драйверы и что-нибудь на Cassandra Query Language:
Этой командой запустится одноузловой кластер Scylla. Так в режиме разработчика Scylla требуется минимум ресурсов в отличие от Cassandra, с которой у Docker Engine много работы.
Применение драйвера Scylla
Вот простой пример на Golang с использованием официального драйвера Scylla:
Здесь стоит обратить внимание вот на что:
Драйвером-клиентом TokenAware с помощью ключа раздела пробуется первый сегмент, затем методом циклического перебора — следующий, если первый недоступен. Для этого необходимо подключиться не к порту Cassandra по умолчанию 9042, а к порту Scylla с поддержкой сегментов 19042.
Попробуем простой запрос:
Переходим в облако
📌ПРОДОЛЖЕНИЕ
@Golang_google
Почему не MongoDB?
Чем плоха Mongo?
• У нее открытый исходный код, поддерживается разделение данных, но совершенно иная архитектура — с единой точкой отказа. При «падении» главного узла, то есть координатора, в БД начинается отработка отказа, во время которого БД недоступна.
• Кроме того, для достижения высокой доступности каждый сегмент Mongo должен запускаться как набор реплик — больше узлов. Кольцевая архитектура Cassandra в этом смысле превосходнее. Драйвер Scylla «знает» о сегментах и добирается до конкретного узла/процессора, ответственного за запрашиваемую строку, делая распределение действительным.
• Но почему так важны отработка отказов без простоев и высокая доступность? На спотовых экземплярах — а это 1/4 стоимости вычислений — часто ежедневно случаются отработки отказов: узлы в k8s постоянно уничтожаются и воссоздаются, что чревато завершением всех запущенных в них подов/процессов, в том числе БД.
Установка Scylla
Сначала запустим локально, используя драйверы и что-нибудь на Cassandra Query Language:
docker run -p 9042:9042 -p 7002:7000 -p 7001:7001 -p 9160:9160 -p 9180:9180 --name scylla --hostname scylla -d scylladb/scylla --smp 1 --developer-mode 1
Этой командой запустится одноузловой кластер Scylla. Так в режиме разработчика Scylla требуется минимум ресурсов в отличие от Cassandra, с которой у Docker Engine много работы.
Применение драйвера Scylla
Вот простой пример на Golang с использованием официального драйвера Scylla:
import "github.com/gocql/gocql"
func Connect(config Config) (*gocql.Session, error) {
cluster := gocql.NewCluster(config.Hosts...)
cluster.Keyspace = config.KeySpace
cluster.CQLVersion = "3.11"
cluster.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{
NumRetries: 5, Min: time.Millisecond * 5, Max: time.Second * 5}
cluster.ProtoVersion = 3
cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(
gocql.RoundRobinHostPolicy())
cluster.ConnectTimeout = time.Second * 10
cluster.Consistency = gocql.One
if config.Timeout != nil {
cluster.Timeout = *config.Timeout
}
cluster.Authenticator = gocql.PasswordAuthenticator{
Username: config.Username, //'cassandra' по умолчанию
Password: config.Password, //'cassandra' по умолчанию
}
session, err := cluster.CreateSession()
if err != nil {
return nil, err
}
return session, nil
}
Здесь стоит обратить внимание вот на что:
cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(
gocql.RoundRobinHostPolicy())
Драйвером-клиентом TokenAware с помощью ключа раздела пробуется первый сегмент, затем методом циклического перебора — следующий, если первый недоступен. Для этого необходимо подключиться не к порту Cassandra по умолчанию 9042, а к порту Scylla с поддержкой сегментов 19042.
Попробуем простой запрос:
func Ping(session *gocql.Session) error {
var str = new(string)
if err := session.Query("SELECT uuid() FROM system.local;").Scan(str); err != nil {
return err
}
if str == nil || len(*str) == 0 {
return errors.New("failed sanity check")
}
return nil
}
// альтернатива «select 1;» в SQL
Переходим в облако
📌ПРОДОЛЖЕНИЕ
@Golang_google
🔥 Backend Master Class [Golang + Postgres + Kubernetes + gRPC]
В этом курсе вы шаг за шагом узнаете, как спроектировать, разработать и развернуть веб-сервис с нуля.
Лучший способ изучения программирования - это создание реального приложения. Поэтому на протяжении всего курса вы будете учиться создавать веб-сервис для банка. В проекте предоставлены API-интерфейсы для фронтенда, позволяющие выполнять следующие действия:
▪Создавать и управлять банковскими счетами.
▪Записывать все изменения баланса на каждом из счетов.
▪Выполнять денежные переводы между двумя счетами.
67 лекций и много практики.
▪Github
▪Курс
@Golang_google
В этом курсе вы шаг за шагом узнаете, как спроектировать, разработать и развернуть веб-сервис с нуля.
Лучший способ изучения программирования - это создание реального приложения. Поэтому на протяжении всего курса вы будете учиться создавать веб-сервис для банка. В проекте предоставлены API-интерфейсы для фронтенда, позволяющие выполнять следующие действия:
▪Создавать и управлять банковскими счетами.
▪Записывать все изменения баланса на каждом из счетов.
▪Выполнять денежные переводы между двумя счетами.
67 лекций и много практики.
▪Github
▪Курс
@Golang_google
Забавный проект, написанный на Go, который генерирует фальшивые коммиты каждый день, чтобы ваш профиль GH выглядел так, будто вы обновляете свой проект каждый день.
▪ Github
$ go install github.com/navicstein/fake-contributions
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира : Golang за неделю
Почитать:
— Практика Go — Обработка ошибок
— Практика Go — Concurrency
— 9 лучших консольных файловых менеджеров Linux
— Чему вы научитесь на бесплатном курсе VK Education по Go?
— Практика Go — Основы
— Шпаргалка для собеса по GoLang
— Testing calls to Daily's REST API in Go
— Golang Web: URL Parsing
— Rust, Go, Rinha e I/O
— Error handling in Golang
— Integration Test Postgres Store (Go)
— Nuances in Go: Exploring the Tiny Details. Part-1.
— 15. World Chat System Implementation
— Hunting Broken Social Media Links with Go
— How to create and read custom tags in Golang
— Fibonacci Sequence Computation in Go Programming Language
— Wtf is Grpc? Part 1: Authentication and Authorization in Flutter and Golang.
Посмотреть:
🌐 Уроки Golang с нуля /#26 - Обработка ошибок (⏱ 08:14)
библиотеке Numpy. Полезные функции (⏱ 11:05)
🌐 Beginners Should Think Differently When Writing Golang (⏱ 11:35)
🌐 The Power Of Struct Embedding And Interfaces In Golang (⏱ 15:05)
🌐 Adding Cluster Support To Hollywood Actor Framework
🌐 Полный курс по библиотеке Numpy. Применение Numpy (⏱ 11:52)
🌐 Полный курс по библиотеке Numpy. Создание матриц из файла (⏱ 15:55)
🌐 Полный курс по библиотеке Numpy. Продвинутые методы работы с матрицами (⏱ 07:28)
Хорошего дня!
@Golang_google
Почитать:
— Практика Go — Обработка ошибок
— Практика Go — Concurrency
— 9 лучших консольных файловых менеджеров Linux
— Чему вы научитесь на бесплатном курсе VK Education по Go?
— Практика Go — Основы
— Шпаргалка для собеса по GoLang
— Testing calls to Daily's REST API in Go
— Golang Web: URL Parsing
— Rust, Go, Rinha e I/O
— Error handling in Golang
— Integration Test Postgres Store (Go)
— Nuances in Go: Exploring the Tiny Details. Part-1.
— 15. World Chat System Implementation
— Hunting Broken Social Media Links with Go
— How to create and read custom tags in Golang
— Fibonacci Sequence Computation in Go Programming Language
— Wtf is Grpc? Part 1: Authentication and Authorization in Flutter and Golang.
Посмотреть:
🌐 Уроки Golang с нуля /#26 - Обработка ошибок (⏱ 08:14)
библиотеке Numpy. Полезные функции (⏱ 11:05)
🌐 Beginners Should Think Differently When Writing Golang (⏱ 11:35)
🌐 The Power Of Struct Embedding And Interfaces In Golang (⏱ 15:05)
🌐 Adding Cluster Support To Hollywood Actor Framework
🌐 Полный курс по библиотеке Numpy. Применение Numpy (⏱ 11:52)
🌐 Полный курс по библиотеке Numpy. Создание матриц из файла (⏱ 15:55)
🌐 Полный курс по библиотеке Numpy. Продвинутые методы работы с матрицами (⏱ 07:28)
Хорошего дня!
@Golang_google
⚡Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Data Science: t.me/data_analysis_ml
Go: t.me/GolangJobsit
Java: t.me/javatg
Базы данных: t.me/sqlhub
Машинное обучение: t.me/ai_machinelearning_big_data
C/C++/ t.me/cpluspluc
C#: t.me/csharp_ci
Хакинг: t.me/linuxkalii
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/pythonl
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Devops: t.me/devOPSitsec
Тестирование:https://yangx.top/+F9jPLmMFqq1kNTMy
Собеседования: https://yangx.top/machinelearning_interview
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
ИИ: t.me/machinelearning_ru
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
Data Science: t.me/data_analysis_ml
Go: t.me/GolangJobsit
Java: t.me/javatg
Базы данных: t.me/sqlhub
Машинное обучение: t.me/ai_machinelearning_big_data
C/C++/ t.me/cpluspluc
C#: t.me/csharp_ci
Хакинг: t.me/linuxkalii
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/pythonl
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Devops: t.me/devOPSitsec
Тестирование:https://yangx.top/+F9jPLmMFqq1kNTMy
Собеседования: https://yangx.top/machinelearning_interview
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
ИИ: t.me/machinelearning_ru
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
Это ванильная реализация на Go классической текстовой компьютерной игры 1973 года, впервые разработанной Грегори Йоб Хантом (Gregory Yob Hunt The Wumpus).
Она включает в себя все уровни из Wumpus II, механизмы из Wumpus III и Super Wumpus, а также расширенный режим.
▪Github
#golang #gamedev
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
📖 Логирование в Go: 8 лучших библиотек
С вероятностью 99% можно сказать, что если вы ведете логи в Go, то используете сторонний фреймворк, поскольку встроенный пакет не обладает даже самыми базовыми возможностями, необходимыми для ведения журнала на производстве.
Ситуация изменилась с выходом Go 1.21, в котором одним из главных достоинств стал новый пакет
Поскольку экосистема Go уже породила множество комплексных решений для ведения логов, вы можете задаться вопросом, является ли пакет
В данной статье рассматриваются восемь библиотек для логирования, обсуждаются их достоинства и недостатки с учетом следующих факторов: производительность, гибкость, функциональность, простота использования и поддержка сообщества.
1. Zerolog
2. Zap
3. Slog
4. Logrus
5. Log15
6. Logf
7. Apex/log
8. Logr
📌 Статья
@Golang_google
С вероятностью 99% можно сказать, что если вы ведете логи в Go, то используете сторонний фреймворк, поскольку встроенный пакет не обладает даже самыми базовыми возможностями, необходимыми для ведения журнала на производстве.
Ситуация изменилась с выходом Go 1.21, в котором одним из главных достоинств стал новый пакет
log/slog
для структурированного, уровневого и контекстно-зависимого логирования.Поскольку экосистема Go уже породила множество комплексных решений для ведения логов, вы можете задаться вопросом, является ли пакет
Slog
предвестником устаревания его предшественников или просто еще одним инструментом в вашем арсенале для работы.В данной статье рассматриваются восемь библиотек для логирования, обсуждаются их достоинства и недостатки с учетом следующих факторов: производительность, гибкость, функциональность, простота использования и поддержка сообщества.
1. Zerolog
2. Zap
3. Slog
4. Logrus
5. Log15
6. Logf
7. Apex/log
8. Logr
📌 Статья
@Golang_google
This media is not supported in your browser
VIEW IN TELEGRAM
GPT-4, CodeLlama и Claude 2
.Этот мощный инструмент позволяет писать промпты, а EvalGPT помогает сгенерировать код, выполнить его и выдать результаты.
go install github.com/index-labs/evalgpt@latest
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Обновлен GoReleaser, проект, который позволяет легко и быстро создавать deb пакеты.
• Github
• Документация
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
LolDriverScan - это golang-инструмент, позволяющий пользователям обнаруживать уязвимые драйверы в вашей системе. Этот инструмент получает список
loldrivers.io
из их API и сканирует систему на наличие уязвимостей.Этот проект реализован на языке Go и не требует повышенных привилегий для запуска.
• Сканирует систему на наличие уязвимых драйверов
• Обеспечивает вывод подробной информации в режиме verbose
• Поддерживает вывод в формате JSON для упрощения интеграции с другими инструментами
• Не требует специальных привилегий
git clone https://github.com/FourCoreLabs/LolDriverScan.git
cd LolDriverScan
go build
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Amovane/reX: Реверс-инжиниринг API Twitter: После того, как twitter dev удалила API для доступа к подписчткам пользователей, разработчикам стало сложно получать эти данные.
• Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира : Golang за неделю
Почитать:
— Книга «Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы, 3-е изд.»
— Обработка миллиона запросов с помощью Golang: Стратегии и лучшие практики
— Дебажим Golang с помощью Delve
— Разворачиваем приложение в кластере Kubernetes под управлением Deckhouse c помощью werf
— Стоит ли идти на курсы IT преподавателем?
— Практика Go — Обработка ошибок (2 часть)
— Практика Go — Обработка ошибок (1 часть)
— Manual instrumentation of Go applications with OpenTelemetry
— Iterium - Generic Channel-based Iterators for Golang
— Go: Insert a value into nested structures with a dot
— Boost Your Golang Skills: Writing Large Data Files for Performance
— Use Go Lambda and API Gateway to Generate DynamoDB Tables on Demand
— How we made our Go microservice 24x faster
— Integration Test Postgres Store with testcontainers-go
— Golang Road map in 2023. From beginner to Expert
— Criando um JSON Unmarshal personalizado em Go
— Dependency Injection like a Pro in Golang
Посмотреть:
🌐 Уроки Golang с нуля /#28 - Встраивание типов (⏱ 06:16)
🌐 Уроки Golang с нуля /#27 - Bufio. Чтение и запись (⏱ 10:35)
🌐 This Will Make Everyone Understand Golang Interfaces (⏱ 21:03)
🌐 Are Goroutines USELESS For Backend Development?? (⏱ 09:10)
🌐 The Ultimate Programming Q&A With The One And Only (⏱ 01:59:02)
Хорошего дня!
@Golang_google
Почитать:
— Книга «Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы, 3-е изд.»
— Обработка миллиона запросов с помощью Golang: Стратегии и лучшие практики
— Дебажим Golang с помощью Delve
— Разворачиваем приложение в кластере Kubernetes под управлением Deckhouse c помощью werf
— Стоит ли идти на курсы IT преподавателем?
— Практика Go — Обработка ошибок (2 часть)
— Практика Go — Обработка ошибок (1 часть)
— Manual instrumentation of Go applications with OpenTelemetry
— Iterium - Generic Channel-based Iterators for Golang
— Go: Insert a value into nested structures with a dot
— Boost Your Golang Skills: Writing Large Data Files for Performance
— Use Go Lambda and API Gateway to Generate DynamoDB Tables on Demand
— How we made our Go microservice 24x faster
— Integration Test Postgres Store with testcontainers-go
— Golang Road map in 2023. From beginner to Expert
— Criando um JSON Unmarshal personalizado em Go
— Dependency Injection like a Pro in Golang
Посмотреть:
🌐 Уроки Golang с нуля /#28 - Встраивание типов (⏱ 06:16)
🌐 Уроки Golang с нуля /#27 - Bufio. Чтение и запись (⏱ 10:35)
🌐 This Will Make Everyone Understand Golang Interfaces (⏱ 21:03)
🌐 Are Goroutines USELESS For Backend Development?? (⏱ 09:10)
🌐 The Ultimate Programming Q&A With The One And Only (⏱ 01:59:02)
Хорошего дня!
@Golang_google
Выпущена новая версия v
0.30 Cerbos,
масштабируемого #opensource проекта для реализации ролей и разрешений.Cerbos - открытый проект, написанный на Go, масштабируемое решение для авторизации, которое упрощает внедрение и управление правами пользователей и авторизацией путем написания контекстно-зависимых политик управления доступом к ресурсам приложения.
• Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Automaxprocs
Automatically set GOMAXPROCS to match Linux container CPU quota.
Automaxprocs позволяет выставить максимальное количество ядер для контейнеров.Хороший варинат, чтобы уменьшить тротлинг cpu.
▪ Github
@Golang_google
Automatically set GOMAXPROCS to match Linux container CPU quota.
Automaxprocs позволяет выставить максимальное количество ядер для контейнеров.Хороший варинат, чтобы уменьшить тротлинг cpu.
go get -u go.uber.org/automaxprocs
▪ Github
@Golang_google
Возвращение структур
Рассмотрим преимущества возвращения структур из функций Go: эксплицитность, гибкость, прямой контроль над полями и методами объекта.
Изучим потенциальный недостаток — сильную связанность — и выработаем стратегии эффективного ограничения его влияния.
Преимущества и особенности возвращения структур Go с учетом потенциальных проблем сильной связанности пригодятся для создания хорошо структурированного, сопровождаемого кода.
Эксплицитность
Для возвращаемой структуры характерны четкая видимость, доступ к ее полям и методам. Это как подробная схема, на которой раскрываются все нюансы объекта.
Получая прямой доступ к свойствам структуры, мы имеем четкое представление о том, что внутри нее, поэтому работа с данными, манипулирование ими упрощаются.
Рассмотрим пример:
type Person struct {
Name string
Age int
Email string
}
func NewPerson(name string, age int, email string) Person {
return Person{
Name: name,
Age: age,
Email: email,
}
}
func main() {
person := NewPerson("John Doe", 30, "[email protected]")
fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
fmt.Println("Email:", person.Email)
}
В функции NewPerson возвращается структура Person с информацией о человеке. Возвращая структуру напрямую, мы получаем явный доступ к ее полям Name, Age, Email в вызывном коде.
Благодаря такой эксплицитности необходимые данные легко извлечь и использовать.
Гибкость
Возвращаемыми структурами обеспечиваются непревзойденные контроль и гибкость при определении конкретных поведений и методов. Структура проектируется с именно таким функционалом, который требуется.
Благодаря возможности адаптировать ее к конкретным требованиям, код получается чище, целенаправленнее и с точным соответствием задачам приложения.
Продемонстрируем эту гибкость, обновив пример выше:
type Person struct {
Name string
Age int
Email string
}
func (p Person) Greet() {
fmt.Println("Hello, my name is", p.Name)
}
func main() {
person := Person{
Name: "John Doe",
Age: 30,
Email: "[email protected]",
}
person.Greet()
}
В структуру Person добавили метод Greet. Возвращая структуру, мы определяем конкретное поведение прямо в ее типе. В методе Greet приветствие персонализируется полем Name структуры Person.
Благодаря такой гибкости поведения инкапсулируются в самой структуре, а код чище и проще в сопровождении.
📌Читать далее
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Lama2 - это менеджер API, ориентированный на работу с текстом и оптимизированный для совместной работы через Git.
В этой статье подробно с рассказывается о разработке функционала для VSCode с Lama2 на Go. От проблем, с которыми разработчики столкнулись во время разработки до инсайтов, которые были реализованы за год работы.
▪Статья
▪Lama2
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Failsafe-go - новая библиотека для создания отказоустойчивых приложений на Go. Она работает путем обертывания исполняемой логики одной или несколькими функциями отказоустойчивости, которые можно комбинировать и компоновать по мере необходимости. Функции включают в себя
Retry, Circuit Breaker, Rate Limiter, Timeout, Bulkhead и Fallback
.Failsafe-go поможет построить гибкую, простую в использовании реализацию
retry и circuit breaker,
а также возможность комбинировать их с другими стратегиями отказоустойчивости, что предлагают библиотеки на других языках. ▪Project
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡ Бесплатные курсы: DevOps и Cloud:
❯ Бесплатный онлайн-курс DevOps
https://academiait.ru/course/devops/
❯ Golang бесплатный курс с нуля
https://stepik.org/course/179158/promo
❯ Youtube
https://www.youtube.com/playlist?list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66
❯ Linux
http://mygreatlearning.com/academy/learn-for-free/courses/linux-tutorial
❯ Основы программирования для Linux
https://stepik.org/course/548/promo
❯ Основы Linux
https://stepik.org/course/762/promo
❯ Основы Linux
https://stepik.org/course/762/promo
❯ GIT
http://simplilearn.com/learn-git-basics-skillup
❯ DevOps
http://openclassrooms.com/courses/7853556-discover-the-devops-methodology
❯ CI/CD
http://simplilearn.com/free-ci-cd-online-training-course-skillup
❯ Docker
http://cognitiveclass.ai/courses/docker-essentials
❯ Kubernetes
http://simplilearn.com/learn-kubernetes-basics-free-course-skillup
❯ GitHub
http://mygreatlearning.com/academy/learn-for-free/courses/github-tutorial-for-beginners
❯ Cloud Computing
http://cognitiveclass.ai/courses/introduction-to-cloud
❯ AWS
http://openclassrooms.com/courses/7864796-discover-cloud-with-amazon-web-services
❯ Azure
http://mygreatlearning.com/academy/learn-for-free/courses/microsoft-azure-essentials
❯ GCP
http://simplilearn.com/learn-google-cloud-platform-fundamentals-free-course-skillup
❯ Serverless
http://mygreatlearning.com/academy/learn-for-free/courses/serverless-computing
❯ Jenkins
http://mygreatlearning.com/academy/learn-for-free/courses/jenkins-tutorial
❯ Puppet
http://simplilearn.com/free-course-to-learn-puppet-basics-skillup
❯ Chef
http://simplilearn.com/chef-in-devops-basics-free-course-skillup
❯ Ansible
http://simplilearn.com/learn-ansible-basics-free-course-skillup
❯ Selenium
http://mygreatlearning.com/academy/learn-for-free/courses/selenium-basics
❯ VirtualBox & vSphere
http://openclassrooms.com/courses/7163136-set-up-virtual-machines-using-virtualbox-and-vsphere
❯ Специализация Python Scripting for DevOps
https://www.coursera.org/specializations/python-scripting-devops
@Golang_google
❯ Бесплатный онлайн-курс DevOps
https://academiait.ru/course/devops/
❯ Golang бесплатный курс с нуля
https://stepik.org/course/179158/promo
❯ Youtube
https://www.youtube.com/playlist?list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66
❯ Linux
http://mygreatlearning.com/academy/learn-for-free/courses/linux-tutorial
❯ Основы программирования для Linux
https://stepik.org/course/548/promo
❯ Основы Linux
https://stepik.org/course/762/promo
❯ Основы Linux
https://stepik.org/course/762/promo
❯ GIT
http://simplilearn.com/learn-git-basics-skillup
❯ DevOps
http://openclassrooms.com/courses/7853556-discover-the-devops-methodology
❯ CI/CD
http://simplilearn.com/free-ci-cd-online-training-course-skillup
❯ Docker
http://cognitiveclass.ai/courses/docker-essentials
❯ Kubernetes
http://simplilearn.com/learn-kubernetes-basics-free-course-skillup
❯ GitHub
http://mygreatlearning.com/academy/learn-for-free/courses/github-tutorial-for-beginners
❯ Cloud Computing
http://cognitiveclass.ai/courses/introduction-to-cloud
❯ AWS
http://openclassrooms.com/courses/7864796-discover-cloud-with-amazon-web-services
❯ Azure
http://mygreatlearning.com/academy/learn-for-free/courses/microsoft-azure-essentials
❯ GCP
http://simplilearn.com/learn-google-cloud-platform-fundamentals-free-course-skillup
❯ Serverless
http://mygreatlearning.com/academy/learn-for-free/courses/serverless-computing
❯ Jenkins
http://mygreatlearning.com/academy/learn-for-free/courses/jenkins-tutorial
❯ Puppet
http://simplilearn.com/free-course-to-learn-puppet-basics-skillup
❯ Chef
http://simplilearn.com/chef-in-devops-basics-free-course-skillup
❯ Ansible
http://simplilearn.com/learn-ansible-basics-free-course-skillup
❯ Selenium
http://mygreatlearning.com/academy/learn-for-free/courses/selenium-basics
❯ VirtualBox & vSphere
http://openclassrooms.com/courses/7163136-set-up-virtual-machines-using-virtualbox-and-vsphere
❯ Специализация Python Scripting for DevOps
https://www.coursera.org/specializations/python-scripting-devops
@Golang_google
В Go 1.21 добавлен новый порт, ориентированный на API системных вызовов WASI preview. Этот порт основан на существующем порте WebAssembly, представленном в Go 1.1.
WebAssembly (или Wasm) — это бинарный формат, запускаемый в браузере, виртуальная машина, и результат компиляции с языка высокого уровня.
Wasm это не язык программирования, подобно тому как байт-код Java это не язык программирования, а результат компиляции и запускаемый блок кода.
Кто-то очень умный сказал, что название web assembly (то есть «ассемблер для веба») полностью неправильное, потому что это не ассемблер (не язык программирования) и он никак не связан с вебом (потому что это просто виртуальная машина).
https://go.dev/blog/wasi
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Hoverfly - это легкий инструмент с открытым исходным кодом для моделирования API, написанный на Go.
С помощью Hoverfly можно создавать реалистичные симуляции работы с API.
git clone https://github.com/SpectoLabs/hoverfly.git
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM