Szkolenie Software Architecture

Poziom

Średniozaawansowany

Czas

32h / 4 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie Software Architecture

Praktyczne, czterodniowe szkolenie poświęcone fundamentom projektowania i oceny architektury oprogramowania. Uczestnicy przełożą wymagania biznesowe i atrybuty jakościowe na decyzje architektoniczne, przygotują dokumentację systemu w modelu C4 oraz porównają monolit modularny, mikroserwisy, architekturę zdarzeniową, systemy rozproszone i rozwiązania chmurowe. Program obejmuje Domain-Driven Design, Event Storming, wzorce architektoniczne, kontrakty API, operacyjność, obserwowalność i ocenę ryzyka. Warsztaty kończą się przygotowaniem oraz obroną koncepcji architektury dla przykładowego systemu.

Dla kogo jest to szkolenie?
  • logo infoshare Dla doświadczonych programistów, którzy projektują większe komponenty systemów i chcą rozwijać kompetencje architekta oprogramowania
  • logo infoshare Dla liderów technicznych i architektów rozpoczynających pracę z atrybutami jakościowymi, dokumentacją C4, Domain-Driven Design oraz oceną kompromisów architektonicznych
  • logo infoshare Dla analityków systemowych i product ownerów, którzy potrafią opisywać procesy biznesowe, wymagania funkcjonalne i ograniczenia rozwiązania
  • logo infoshare Dla inżynierów DevOps i infrastruktury znających podstawy konteneryzacji, sieci, procesów CI/CD oraz utrzymania aplikacji

Czego nauczysz się na szkoleniu?

  • Zidentyfikujesz interesariuszy, wymagania funkcjonalne, ograniczenia oraz mierzalne scenariusze atrybutów jakościowych dla przykładowego systemu
  • Przygotujesz dokumentację architektury obejmującą diagramy C4, wybrane modele UML lub BPMN oraz zapis decyzji w formie Architecture Decision Record
  • Porównasz style i wzorce architektoniczne, a następnie uzasadnisz wybór rozwiązania na podstawie skalowalności, niezawodności, bezpieczeństwa, kosztów i złożoności operacyjnej
  • Opracujesz mapę domeny, bounded contexts, kontrakty komunikacyjne oraz podstawowy model integracji synchronicznej i asynchronicznej
  • Przeprowadzisz warsztatową ocenę architektury, przygotujesz listę ryzyk i zaprezentujesz rekomendowane decyzje wraz z kompromisami, miernikami oraz planem walidacji

Program szkolenia

Dzień 1: Fundamenty architektury oprogramowania

 

1.1. Wprowadzenie do architektury oprogramowania

  • Definicja architektury oprogramowania, jej zakres i granice
  • Architektura i projekt techniczny – poziomy decyzji oraz zakresy odpowiedzialności
  • Architektura jako abstrakcja, zestaw reguł i mapa systemu
  • Prawo Conwaya oraz wpływ struktury organizacyjnej na granice systemu

1.2. Rola architekta i interesariuszy

  • Interesariusze systemu oraz ich wpływ na wymagania i decyzje projektowe
  • Mapa interesariuszy, modele komunikacji i zasady zarządzania oczekiwaniami
  • Kompetencje architekta, odpowiedzialność decyzyjna oraz kontrola rekomendacji generowanych przy wsparciu AI

1.3. Atrybuty jakościowe i wymagania niefunkcjonalne

  • Kluczowe atrybuty jakościowe: dostępność, wydajność, bezpieczeństwo, testowalność, modyfikowalność i operacyjność
  • Perspektywy jakościowe użytkowników, klientów, zespołów technicznych i organizacji
  • Scenariusze jakościowe, kompromisy architektoniczne oraz zarządzanie ryzykiem

 

Dzień 2: Style architektoniczne i modele systemów

 

2.1. Klasyczne style architektoniczne

  • Monolit – korzyści, ograniczenia i architektura monolitu modularnego
  • SOA – zasady, kontrakty usług, rejestr usług i integracja systemów
  • Modularność – hermetyzacja, spójność, sprzężenie i kontrola zależności
  • Mikroserwisy – autonomia usług, koszty rozproszenia, API Gateway i service discovery

2.2. Systemy rozproszone i architektury chmurowe

  • Charakterystyka systemów rozproszonych: skalowalność, współbieżność, opóźnienia, częściowe awarie i tolerancja błędów
  • Modele usług chmurowych: IaaS, PaaS, FaaS i serverless
  • Modele wdrożeniowe: chmura publiczna, prywatna, hybrydowa i środowisko wielochmurowe
  • Konteneryzacja i orkiestracja: obrazy OCI, Docker, Kubernetes oraz granice odpowiedzialności platformy

2.3. Model 12-Factor App

  • Zasady projektowania przenośnych, skalowalnych i operowalnych aplikacji usługowych
  • Deklaratywność, bezstanowość, konfiguracja środowiskowa, logi, procesy i skalowanie

 

Dzień 3: Projektowanie systemów w praktyce

 

3.1. Modelowanie i dokumentowanie architektury

  • Cele modelowania oraz pytania poprzedzające przygotowanie diagramów
  • Jakość modeli: precyzja, kompletność, aktualność i czytelność
  • Notacje i techniki modelowania: C4, ArchiMate, UML i BPMN
  • Narzędzia CASE, dokumentacja jako kod oraz kontrola artefaktów tworzonych przy wsparciu AI

3.2. Wzorce architektoniczne

  • Architektura warstwowa, heksagonalna, zdarzeniowa i mikrojądro
  • Architektury referencyjne oraz zasady adaptacji do kontekstu organizacji
  • Luźne sprzężenie, separacja odpowiedzialności i granice modułów
  • Widoki architektoniczne oraz perspektywy funkcjonalne, informacyjne, wdrożeniowe i operacyjne

3.3. Pomiar i ocena architektury

  • Kryteria pomiaru architektury, scenariusze jakościowe i architektoniczne funkcje dopasowania
  • Metryki strategiczne i techniczne: KPI, OKR, SLI, SLO oraz budżety błędów
  • Modele dojrzałości architektonicznej i ocena zdolności organizacyjnych
  • Wartość IT: centrum kosztów, wsparcie strategii i katalizator rozwoju produktu

 

Dzień 4: Domain-Driven Design i współczesne podejścia

 

4.1. Domain-Driven Design

  • Domena, model domenowy i język wszechobecny
  • Granice usług, bounded contexts i mapa kontekstów
  • Subdomeny główne, wspierające i generyczne
  • Wzorce strategiczne i taktyczne DDD: encje, obiekty wartości, agregaty, serwisy oraz zdarzenia domenowe
  • Event Storming jako metoda odkrywania domeny i zależności procesowych

4.2. Mikroserwisy i DDD w praktyce

  • Kryteria zastosowania mikroserwisów oraz przesłanki pozostania przy monolicie modularnym
  • Komunikacja synchroniczna i asynchroniczna – sprzężenie czasowe, kontrakty i semantyka dostarczenia
  • Baza danych na usługę oraz współdzielona baza danych – własność danych i konsekwencje integracyjne
  • Spójność ostateczna i transakcje ACID – zakresy zastosowania oraz kompromisy
  • Architektura sterowana zdarzeniami – zdarzenia domenowe, integracyjne i niezawodność publikacji
  • CQRS i Event Sourcing – modele odczytu, historia zdarzeń, wersjonowanie i koszty operacyjne

4.3. Operacyjność i DevOps

  • Zarządzanie konfiguracją i infrastrukturą: GitOps, kontenery, Terraform i Ansible
  • Monitoring, scentralizowane logi, śledzenie rozproszone, OpenTelemetry oraz sygnały diagnostyczne
  • Wzorce infrastrukturalne: broker komunikatów, transactional outbox, kolejka błędów i materialized view

4.4. API-first i kontrakty integracyjne

  • REST, GraphQL i gRPC – charakterystyka, kompromisy i kryteria doboru
  • Dokumentacja, wersjonowanie i specyfikacje kontraktów: OpenAPI, AsyncAPI oraz Protocol Buffers
  • Testy kontraktowe, kompatybilność konsumentów i bezpieczna ewolucja interfejsów

4.5. Podsumowanie i projekt końcowy

  • Koncepcja architektury systemu przygotowana od podstaw
  • Dobór stylów, wzorców, kontraktów i sposobu dokumentowania decyzji
  • Prezentacja oraz obrona decyzji architektonicznych z uwzględnieniem kompromisów, ryzyk i planu walidacji

Skontaktuj się z nami

zorganizujemy dla Ciebie szkolenie dopasowane do Twoich potrzeb

Przemysław Wołosz

Key Account Manager

przemyslaw.wolosz@infoShareAcademy.com

    Administratorem danych osobowych jest InfoShare Academy Sp. z o.o. z siedzibą w Gdańsku, al. Grunwaldzka 427B, 80-309 Gdańsk, KRS: 0000531749, NIP: 5842742213. Dane osobowe przetwarzane są zgodnie z klauzulą informacyjną.