The course requires a decent understanding of Java. A dedicated course can be found here.
- Microservices Patterns; Richardson
- Software production metrics
- Monolithic and distributed architectures
- Automation in software production (DevOps, DevSecOps)
- Synchronous vs Asynchronous approaches
- Java microservices (Maven, Spring Boot)
- Python microservices (FastAPI)
M3 Containerization and orchestration
- Building docker images (single-layer, multi-layer)
- Container orchestration with docker compose
- Orchestration for the edge-cloud continuum (K8s, K3s, MicroK8s, KubeEdge)
- Synchronous communications and their limitations
- GraphQL and Protobuf as a REST alternatives
- Latency-sensitive communication
- Service discovery, routing, configuration
- Edge-cloud hybrid routing strategies
- Consensus algorithms (RAFT)
- Instrumentation and maintenance costs
- Key observability stacks: Prometheus, ELK, Jaeger/Zipkin, Grafana
- OpenTelemetry
- Client-side patterns
- Server-side patterns
- Asynchronous messaging systems
- Event-driven architectures
- Event-sourcing architectures
M9 Distributed data management
- The SAGA pattern
- The CQRS pattern
- The Conductor orchestration framework
- JWT...
- The MLOps model applied to edge-cloud contexts
- Tracking ML experiments with MLFlow
- Observing ML models in production with EvidentlyAI