Съдържание и теми, включени в курса
Ден 1: Основи на управляваната от събития архитектура в Go
- Въведение в EDA
- Какво представлява управляваната от събития архитектура?
- Сравнение на монолитни, микросервизни и управлявани от събития системи
- Защо моделът на паралелност на Go и леките goroutines го правят идеален за EDA
- Основни концепции и предимства
- Разделяне на компонентите (decoupling), мащабируемост и устойчивост в корпоративни системи
- Дефиниране на понятията: събития, производители, потребители и брокери на събития
- Примери от реалния свят и казуси, при които Go задвижва високопроизводителни системи, базирани на събития
- CAP теорема и компромиси в EDA
- Преглед на консистентност (Consistency), наличност (Availability) и устойчивост на разделяне (Partition Tolerance)
- Влияние на EDA върху тези свойства
- Стратегии за балансиране на консистентност и наличност в Go-базирани системи
Ден 2: Събития, съобщения и комуникационни модели в Go
- Разбиране на типовете събития
- Домейн събития срещу интеграционни събития
- Синхронни срещу асинхронни събития в Go приложения
- Модели на съобщения в практиката
- Публикуване-абониране (Pub/Sub) в Go
- Как да проектираме и структурираме полезния товар (payload) на събития с JSON, Protocol Buffers или Avro в Go
- Имплементиране на обработка на събития в Go
- Преглед на популярни Go библиотеки и рамки за съобщения
- Примери с код: изпращане и обработка на събития чрез идиоматични Go модели
- Практическа сесия: Изграждане на проста услуга, управлявана от събития, в Go
Ден 3: Системи за съобщения и брокери на събития с Go
- Избор и интеграция на брокери на събития
- Преглед на популярни брокери: Apache Kafka, RabbitMQ и NATS
- Сравнение на случаи на употреба и най-добри практики за Go-базирани системи
- Настройка на инфраструктура за съобщения
- Настройка с Docker Compose за Kafka, RabbitMQ или NATS
- Конфигуриране на теми (topics), обмени (exchanges), опашки (queues) и канали (channels)
- Преглед на Go клиентски библиотеки
- Практически семинар
- Изграждане на примерен Go микросервиз, който произвежда и консумира събития
- Интегриране на услугата с избрания брокер на събития
- Дебъгване и тестване на потоци от събития
Ден 4: Внедряване, мониторинг и напреднали теми в Go EDA
- Внедряване на управлявани от събития Go приложения в Kubernetes
- Контейнеризиране на Go приложения за продукционна среда
- Внедряване на Kafka (или други брокери) върху Kubernetes клъстери
- Въведение в KEDA (Kubernetes Event-Driven Autoscaling) за скалиране на потребители на събития
- Обработка на грешки и мониторинг
- Справяне с неуспехи при събития чрез стратегии
- Имплементиране на наблюдаемост в Go услуги
- Напреднали теми и въпроси и отговори
- Изследване на безсървърни (Serverless) управлявани от събития архитектури с Go
- Хореография на събития (Event Choreography) срещу оркестрация (Orchestration): Случаи на употреба и проектни съображения
- Често срещани клопки, научени уроци и най-добри практики
- Отворена сесия за въпроси и отговори и интерактивно отстраняване на проблеми
Изисквания
- Умения за работа с Go (Golang), включително използване на goroutines и channels
- Основно разбиране за софтуерни архитектурни модели като монолити и микросервизи
- Познания за Docker и Docker Compose
- Основни познания за REST API и мрежови концепции
- Опит с инструменти за команден ред и Git
- По избор, но е от полза: предишен опит с Kubernetes и системи за съобщения като Kafka, RabbitMQ или NATS
Аудитория
- Go разработчици, изграждащи мащабируеми, управлявани от събития приложения
- Софтуерни инженери, преминаващи от монолитни или REST-базирани архитектури към асинхронни системи
- DevOps и cloud инженери, работещи с контейнеризирани или разпределени микросервизи
- Технически архитекти и системни дизайнери, изследващи EDA модели с помощта на Go
Отзиви от участници (7)
пишем някои код на GO и учим неща относно EDA като събития, кога и как.
Alin
Курс - Event Driven Architecture Custom
Машинен превод
Беше интерактивен курс, нямаше време да спим :)). Беше приятно да работя в екипи и след това да обсъждаме според всеки резултат.
Alina
Курс - Event Driven Architecture Custom
Машинен превод
Найповече ми харесаха разговорите и примерите, които ни бяха представени, така че да достигнем сами до заключенията, които той искаше да сподели с нас. Ми хареса темпото, английския език, търпението, че дори и ако не дадем най-доброто отговор, той нямаше да каже, че е грешен, а ни даваше примери за какво може да бъде по-добре.
Simona
Курс - Event Driven Architecture Custom
Машинен превод
Отворените дискусии и преминаването от разбиране на проблемите/причините („защо“) към EDA.
Constantin
Курс - Event Driven Architecture Custom
Машинен превод
подходът за представяне на неща с голямо упорижене върху взаимодействието и примерите
Virgil
Курс - Event Driven Architecture Custom
Машинен превод
Интерактивният характер на курса Подходът за самозасилващо се учене, при който откривате сами отговорите Практическото фокусиране с реални примери, които правят концепциите по-свързани с реалния живот
Roxana Sandu
Курс - Event Driven Architecture Custom
Машинен превод
Много интерактивно. Преподавателят беше много компетентен и търпелив.
Robert
Курс - Event Driven Architecture Custom
Машинен превод