TRAININGS
Software Architecture - Principles and Practices
Details of the training could be find here: https://github.com/mateuszdyminski/architecture
Agenda
- Part 1
- Intro
- Software Architecture - definition
- Types of Software Architectures
- Application architecture
- System architecture
- Solution architecture
- Infrastructure architecture
- Software architect
- Architecture documentation and visualization
- C4
- Archtecture Metrics
- Company Culure in Context of Software Architecture
- Key Software Development Concepts
- YAGNI
- SOLID
- DRY
- KISS
- Domain Driven Design
- Event Storming – Big Picture
- Tips and Trics
- Part 2
- System Architecture Patterns
- Distributed applications
- Monolith applications
- Monolith with modules
- Application Architectures:
- Layered architecture
- Pipes and Filters architecture
- Modularity architecture
- Hexagonal/Clean/Onion/Ports and Adapters architecture
- Microkernel architecture
- Event-Driven architecture
- Event Sourcing
- CQRS
- Serverless architecture
- Modern Architectural Concepts - independent from the architecture type
- 12 Factor application
- Cloud native apps
- Containers
- Kubernetes
- Service Mesh
- Change Data Capture
- Communication
- Asynchronus vs synchronous
- Synchronous
- REST
- GraphQL
- RPC
- API Gateway
- Backend for frontend
- Asynchronous
- Messaging
- Messaging with order
- Testing microservices
- Consumer-driven contract
- Fitness function
- System Architecture Patterns
- Part 3
- DevOps culture
- CI/CD
- GitOps
- GitSecOps
- Deployment models
- Continuous Deployment and Delivery
- Zero-downtime deployments
- Graceful shutdowns
- Canary deployment
- A/B testing
- Operations
- Services Health
- Log aggregators
- Metrics/insrtumentation
- Distributed tracing
- Alarms
- Chaos engineering
- Security
- Security culture
- Production cluster access
- Responsibilities
- Security patterns and tools
- IAM solutions
- Secrets/passwords management
- Code scanning
- Containers scaning
- Security culture