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
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
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
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
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ć
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
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ń
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
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
Autorem szkolenia jest Łukasz Andrzejewski
Od ponad 17 lat z pasją dzielę się wiedzą jako trener, wspierając rozwój kompetencji technologicznych wśród specjalistów IT na różnych etapach ich kariery. W ostatnich 5 latach przeszkoliłem ponad 2000 osób, prowadząc szkolenia zarówno otwarte, jak i dedykowane, dla czołowych firm z sektorów bankowości, ubezpieczeń i IT – m.in. Santander Bank Polska, ERGO Hestia, Asseco Poland oraz Orange.
Specjalizuję się w szerokim zakresie technologii – od rozwiązań z ekosystemu Java, przez nowoczesny frontend,…
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