Szkolenie: Go - tworzenie mikroserwisów
Szkolenie Go - tworzenie mikroserwisów to praktyczny kurs, który uczy budowy nowoczesnych, skalowalnych i wydajnych mikroserwisów w języku Go z wykorzystaniem frameworka Gin oraz gRPC
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:3 dni (24h)
Kod kursu:GO/MICRO
Go - tworzenie mikroserwisów
Cele szkolenia
Szkolenie przygotowuje do samodzielnego projektowania i implementowania mikroserwisów w języku Go z użyciem frameworka Gin, REST API oraz protokołu gRPC i Protocol Buffers
Szkolenie uczy stosowania dobrych praktyk w zakresie architektury mikroserwisów, clean architecture, bezpieczeństwa, obserwowalności oraz wdrażania rozwiązań cloud-native
Szkolenie pokazuje, jak integrować mikroserwisy Go z bazami danych oraz realizować komunikację synchroniczną i asynchroniczną między usługami
Dla kogo?
Programistów posiadających podstawową znajomość języka Go, chcących rozwijać kompetencje w zakresie budowy mikroserwisów i systemów rozproszonych
Osób odpowiedzialnych za projektowanie, wdrażanie i utrzymanie rozproszonych systemów backendowych opartych o nowoczesne technologie
Efekty kształcenia
Uczestnik projektuje i wdraża skalowalne mikroserwisy w języku Go zgodnie z zasadami Twelve-Factor App i cloud-native
Uczestnik konfiguruje i wykorzystuje framework Gin do budowy wydajnych usług REST API w Golang
Uczestnik implementuje komunikację między-serwisową z wykorzystaniem gRPC, Protocol Buffers oraz wzorców integracyjnych
Uczestnik stosuje mechanizmy bezpieczeństwa w mikroserwisach
Uczestnik integruje mikroserwisy Go z bazami danych, systemami kolejkowymi oraz wdraża wzorzec repozytorium
Uczestnik wdraża aplikacje w środowisku Docker i Kubernetes oraz konfiguruje procesy CI/CD dla mikroserwisów
Wymagania
Podstawowa umiejętność programowania w języku Go
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Wprowadzenie do architektury mikroserwisów w Go
Czym jest architektura mikroserwisowa: główne założenia, jakie korzyści daje i jakie problemy ze sobą niesie
Dlaczego Go dobrze pasuje do mikroserwisów: lekka współbieżność dzięki goroutine, mały rozmiar pliku wykonywalnego, szybkie uruchamianie, niskie zużycie pamięci
Przegląd dostępnych narzędzi: Gin, Echo, Chi, Fiber, go-kit, Kratos
Czysta architektura
Jak zaplanować strukturę katalogów w projekcie
Budowa usług REST z biblioteką Gin
Konfiguracja projektu i mechanizmu modułów Go
Definiowanie tras, grupowanie ścieżek, ścieżki z parametrami
Warstwy pośredniczące: zapisywanie zdarzeń, odzyskiwanie pracy po błędzie, obsługa zapytań z innych domen (CORS), ograniczanie liczby żądań
Sprawdzanie poprawności danych wejściowych przy pomocy biblioteki go-playground/validator
Zamiana danych na format JSON i z powrotem, obiekty przenoszące dane między warstwami (DTO)
Obsługa błędów i ujednolicony format odpowiedzi
Bezpieczne zatrzymanie aplikacji z wykorzystaniem pakietu context
Logika biznesowa i zapis danych
Wstrzykiwanie zależności: przez konstruktor, a opcjonalnie z wykorzystaniem bibliotek wire lub fx
Rozdzielenie odpowiedzialności na warstwy: obsługa żądania, logika biznesowa, dostęp do danych
Współpraca z bazą PostgreSQL: pakiety database/sql, pgx, sqlx, sqlc oraz wzorzec repozytorium
Zmiany struktury bazy danych w czasie z golang-migrate oraz goose
Obsługa transakcji bazodanowych i przekazywanie ich w obrębie żądania
Wprowadzenie do biblioteki GORM jako narzędzia mapującego obiekty na tabele. Kiedy warto z niej skorzystać
Komunikacja między mikroserwisami
Format Protocol Buffers oraz gRPC: opisywanie schematu, generowanie kodu, budowa serwera i klienta
Komunikacja synchroniczna: porównanie REST i gRPC
Komunikacja asynchroniczna oparta o wymianę wiadomości
Wzorce integracyjne: skrzynka nadawcza (outbox), saga, zapis zdarzeń (event sourcing)
Wykrywanie usług w sieci
Odporność usług na awarie: ponawianie żądań, ograniczenia czasowe, bezpiecznik z biblioteki sony/gobreaker
Bezpieczeństwo
Podstawowe pojęcia: potwierdzanie tożsamości, sprawdzanie uprawnień, poufność i nienaruszalność danych
Tokeny JWT z biblioteką golang-jwt/jwt
Logowanie użytkowników z wykorzystaniem standardów OpenID Connect i OAuth2 oraz serwera Keycloak
Wzajemne uwierzytelnianie certyfikatami (mTLS) w komunikacji gRPC
Przechowywanie haseł i kluczy: HashiCorp Vault, zmienne środowiskowe, biblioteka Viper
Zabezpieczenia na poziomie warstw pośredniczących: CORS, ochrona przed atakami CSRF, ograniczanie liczby żądań
Obserwowalność i testowanie
Logowanie w postaci ustrukturyzowanej: pakiet log/slog, biblioteki zap oraz zerolog
Mierzenie zachowania aplikacji z Prometheus i klientem prometheus/client_golang
Śledzenie żądań przechodzących przez wiele usług z wykorzystaniem OpenTelemetry, Jaeger oraz Tempo
Sprawdzanie stanu aplikacji: czy żyje (liveness) i czy jest gotowa do pracy (readiness)
Testy jednostkowe, testy oparte na tablicach przypadków, podstawianie zależności z gomock i testify
Testy integracyjne z biblioteką testcontainers-go
Testy zgodności kontraktów między usługami: Pact i opisy OpenAPI
Wdrażanie i utrzymanie
Budowanie obrazów Docker: budowanie wieloetapowe, obrazy distroless bez zbędnych narzędzi
Konfiguracja przez zmienne środowiskowe w duchu metodyki 12-factor z wykorzystaniem biblioteki Viper
Podstawy Kubernetes: obiekty Deployment, Service, ConfigMap, Secret
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

