Szkolenie Software Architecture
Poziom
ŚredniozaawansowanyCzas
32h / 4 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie Software Architecture
Poznaj fundamenty architektury systemów – wejście w świat nowoczesnego projektowania IT! „Software Architecture” to dynamiczne, czterodniowe warsztaty, w których teoria stanowi jedynie punkt wyjścia do pracy na realnych wyzwaniach projektowych. Nauczysz się podejmować świadome decyzje architektoniczne, projektować skalowalne i elastyczne systemy oraz pracować z najważniejszymi stylami i wzorcami architektonicznymi. Zdobądź praktyczne umiejętności cenione w branży i stwórz skuteczne, bezpieczne oraz wydajne rozwiązania – od klasycznych monolitów, przez mikroserwisy, aż po zaawansowane architektury chmurowe.
Dla kogo jest to szkolenie?
Programistów z doświadczeniem, którzy chcą wejść na poziom architekta systemów,
Analityków i product ownerów pragnących lepiej rozumieć, jak decyzje architektoniczne wpływają na rozwój produktu
DevOpsów i inżynierów infrastruktury chcących projektować operowalne i skalowalne systemy IT
Każdego, kto pracuje przy większych rozwiązaniach IT lub zamierza rozwijać karierę w architekturze oprogramowania
Czego nauczysz się na szkoleniu?
- Poznasz kluczowe pojęcia, role i narzędzia architekta systemowego. Zrozumiesz różnicę między architekturą a projektem – i kiedy która ma znaczenie
- Będziesz potrafił modelować i dokumentować architekturę przy pomocy standardowych technik (C4, ArchiMate, UML)
- Dowiesz się, jak stosować Domain-Driven Design, Event Storming i wzorce architektoniczne w praktyce.
- Poznasz najważniejsze style architektoniczne: monolit, SOA, mikroserwisy, systemy rozproszone i chmurowe.
- Przećwiczysz praktycznie ocenę architektury: mierzenie, ewaluacja, prezentacja decyzji architektonicznych
Program szkolenia
Day 1: Foundations of Software Architecture
1.1. Introduction to Software Architecture
- What software architecture is (and what it is not)
- Architecture vs design – boundaries of responsibility
- Architecture as abstraction, recipe, and map
- Conway’s Law and the influence of organizational structure
1.2. The Role of the Architect and Stakeholders
- Stakeholders and their impact on the project
- Stakeholder mapping, communication, and engagement
- Architect’s competencies and decision-making planning
1.3. Quality Attributes and Non-Functional Requirements
- Key quality attributes: availability, performance, security, testability, etc.
- Attributes from the perspective of users, clients, teams, and business
- The role of architecture in quality and risk management
Day 2: Architectural Styles and System Models
2.1. Classic Architectural Styles
- Monolith: pros, cons, and modular monoliths
- SOA (Service-Oriented Architecture): principles, service registry, contracts
- Modularity and the principle of encapsulation
- Microservices: benefits, challenges, communication patterns (API Gateway, service discovery)
2.2. Distributed and Cloud-Based Systems
- Characteristics of distributed systems: scalability, concurrency, fault tolerance
- Cloud architectures: IaaS, PaaS, FaaS, serverless
- Deployment models: public, private, hybrid cloud
- Containerization: Docker, Kubernetes, orchestration
2.3. The 12-Factor App Model
- Principles for building modern SaaS applications
- Declarativity, statelessness, configuration, logging, scalability
Day 3: System Design in Practice
3.1. Modeling and Documenting Architecture
- Why we model – asking the right questions before drawing diagrams
- Model quality: precision, completeness, clarity
- Modeling languages and notations: C4, ArchiMate, UML, BPMN
- CASE tools: Visual Paradigm, Sparx EA, StarUML
3.2. Architectural Patterns
- Styles and patterns: Layered, Hexagonal, Event-Driven, Microkernel
- Reference architectures
- Loose coupling and separation of concerns (SRP)
- Architectural views and perspectives
3.3. Measuring and Evaluating Architecture
- How and what to measure in architecture
- Strategic metrics: KPIs, OKRs
- Architecture maturity models (CMM)
- The value of IT: cost center, strategy enabler, catalyst
Day 4: Domain-Driven Design and Modern Approaches
4.1. Domain-Driven Design (DDD)
- The domain and ubiquitous language
- Service boundaries and bounded contexts
- Core, supporting, and generic subdomains
- Strategic and tactical DDD patterns: entities, aggregates, domain services, events
- Event Storming as a domain discovery method
4.2. Microservices and DDD in Practice
- When (not) to use microservices
- Communication strategies (synchronous vs asynchronous)
- Database per service vs shared database
- Eventual consistency vs ACID
- Event-Driven Architecture (EDA)
- CQRS, Event Sourcing
4.3. Operability and DevOps
- Configuration management (GitOps, Docker, Terraform, Ansible)
- Monitoring, logging, and distributed tracing
- Infrastructure patterns: message broker, materialized views
4.4. API-First & Contracts
- REST, GraphQL, gRPC – choosing the right technology
- API documentation and versioning
- Contract-based integration tests
4.5. Summary and Capstone
- Designing an architecture from scratch
- Choosing appropriate styles, patterns, and documentation
- Presenting and defending architectural decisions