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: