Course Code: edabspk
Duration: 28 hours
Prerequisites:
- Znajomość języka Go (Golang), w tym korzystanie z gorutyn i kanałów
- Podstawowa znajomość modeli architektury oprogramowania, takich jak monolity i mikrousługi
- Znajomość Docker i Docker Compose
- Podstawowa wiedza na temat REST API i koncepcji sieciowych
- Doświadczenie w korzystaniu z narzędzi wiersza poleceń i Gita
- Opcjonalne, ale pomocne: wcześniejsze doświadczenie z Kubernetes oraz systemami przesyłania wiadomości, takimi jak Kafka, RabbitMQ czy NATS
Grupa docelowa
- Programiści Go budujący skalowalne aplikacje sterowane zdarzeniami
- Inżynierowie oprogramowania przechodzący z architektur monolitycznych lub opartych na REST do systemów asynchronicznych
- Inżynierowie DevOps i chmurowi pracujący z konteneryzowanymi lub rozproszonymi mikrousługami
- Architekci techniczni i projektanci systemów badający wzorce EDA z użyciem Go
Overview:
Architektura sterowana zdarzeniami (EDA) to podejście do projektowania oprogramowania, w którym niezależne komponenty komunikują się poprzez generowanie i konsumowanie zdarzeń, umożliwiając tworzenie wysoce skalowalnych, responsywnych i odpornych systemów.
To szkolenie prowadzone przez instruktora, na żywo (online lub na miejscu), skierowane jest do programistów Go na poziomie średniozaawansowanym i zaawansowanym, którzy chcą nauczyć się projektować, budować i wdrażać aplikacje sterowane zdarzeniami przy użyciu Go oraz popularnych systemów przesyłania wiadomości, takich jak Kafka, RabbitMQ czy NATS.
Poprzez praktyczne ćwiczenia i przykłady z rzeczywistych zastosowań uczestnicy zdobędą umiejętności w budowaniu niezależnych usług, zarządzaniu infrastrukturą przesyłania wiadomości oraz wdrażaniu skalowalnych systemów opartych na zdarzeniach w nowoczesnych środowiskach chmurowych.
Po zakończeniu szkolenia uczestnicy będą mogli:
- Zrozumieć kluczowe koncepcje i kompromisy w Architekturze Sterowanej Zdarzeniami.
- Projektować i implementować producentów i konsumentów zdarzeń w Go.
- Korzystać z systemów przesyłania wiadomości, takich jak Kafka, RabbitMQ i NATS, w połączeniu z Go.
- Konfigurować i zarządzać infrastrukturą zdarzeń przy użyciu Docker i Kubernetes.
- Stosować najlepsze praktyki w zakresie obsługi błędów, monitorowania i wdrażania.
Format kursu
- Interaktywny wykład i dyskusja.
- Liczne ćwiczenia i praktyka.
- Praktyczna implementacja w środowisku live-lab.
Opcje dostosowania kursu
- Aby zamówić dostosowane szkolenie, prosimy o kontakt w celu ustalenia szczegółów.
Course Outline:
Dzień 1: Podstawy Architektury Sterowanej Zdarzeniami w Go
- Wprowadzenie do EDA
- Czym jest Architektura Sterowana Zdarzeniami?
- Porównanie systemów monolitycznych, mikrousługowych i sterowanych zdarzeniami
- Dlaczego model współbieżności Go i lekkie gorutyny czynią go idealnym do EDA
- Podstawowe koncepcje i korzyści
- Niezależność, skalowalność i odporność w systemach przedsiębiorczych
- Definiowanie zdarzeń, producentów, konsumentów i brokerów zdarzeń
- Przykłady z rzeczywistych zastosowań, w których Go napędza wydajne systemy zdarzeń
- Twierdzenie CAP i kompromisy w EDA
- Przegląd spójności, dostępności i tolerancji na podziały
- Wpływ EDA na te właściwości
- Strategie równoważenia spójności i dostępności w systemach opartych na Go
Dzień 2: Zdarzenia, wiadomości i wzorce komunikacji w Go
- Rodzaje zdarzeń
- Zdarzenia domenowe a zdarzenia integracyjne
- Zdarzenia synchroniczne i asynchroniczne w aplikacjach Go
- Wzorce przesyłania wiadomości w praktyce
- Publish-Subscribe (Pub/Sub) w Go
- Jak projektować i strukturyzować ładunki zdarzeń przy użyciu JSON, Protocol Buffers lub Avro w Go
- Implementacja obsługi zdarzeń w Go
- Przegląd popularnych bibliotek i frameworków Go do przesyłania wiadomości
- Przykłady kodu: wysyłanie i przetwarzanie zdarzeń przy użyciu idiomatycznych wzorców Go
- Sesja praktyczna: Budowanie prostej usługi sterowanej zdarzeniami w Go
Dzień 3: Systemy przesyłania wiadomości i brokerzy zdarzeń z Go
- Wybór i integracja brokerów zdarzeń
- Przegląd popularnych brokerów: Apache Kafka, RabbitMQ i NATS
- Porównanie przypadków użycia i najlepszych praktyk dla systemów opartych na Go
- Konfiguracja infrastruktury przesyłania wiadomości
- Konfiguracja Docker Compose dla Kafka, RabbitMQ lub NATS
- Konfigurowanie tematów, wymienników, kolejek i kanałów
- Przegląd bibliotek klienckich Go
- Warsztaty praktyczne
- Budowanie przykładowej mikrousługi w Go, która produkuje i konsumuje zdarzenia
- Integracja usługi z wybranym brokerem zdarzeń
- Debugowanie i testowanie przepływów zdarzeń
Dzień 4: Wdrażanie, monitorowanie i zaawansowane tematy w EDA z Go
- Wdrażanie aplikacji sterowanych zdarzeniami na Kubernetes
- Konteneryzacja aplikacji Go do produkcji
- Wdrażanie Kafka (lub innych brokerów) na klastrach Kubernetes
- Wprowadzenie do KEDA (Kubernetes Event-Driven Autoscaling) do skalowania konsumentów zdarzeń
- Obsługa błędów i monitorowanie
- Strategie obsługi błędów zdarzeń
- Implementacja obserwowalności w usługach Go
- Zaawansowane tematy i sesja Q&A
- Eksploracja architektur sterowanych zdarzeniami w modelu serverless z Go
- Choreografia a orkiestracja zdarzeń: przypadki użycia i kwestie projektowe
- Typowe pułapki, lekcje i najlepsze praktyki
- Otwarta sesja Q&A i interaktywne rozwiązywanie problemów
Overview in Category: