Course Outline
Part I: Domain Modelling and Design
-
Core principles of Domain Driven Design.
-
Using event storming for domain discovery.
-
Defining bounded contexts and context mapping.
-
Data ownership and the database-per-service principle.
Part II: Contracts and Communication
-
Designing effective contracts.
-
API versioning and evolution strategies.
-
Synchronous communication patterns.
-
Asynchronous communication patterns.
Part III: Building Microservices
-
Implementing clean architecture structures.
-
Dependency management and security considerations.
-
Introduction to Dapr (Distributed Application Runtime).
-
Managing service-to-service communication.
-
State management techniques.
-
Pub/sub messaging patterns.
-
Managing secrets and configuration.
-
Leveraging built-in telemetry for observability.
Part IV: Testing Strategies
-
Heartbeat tests.
-
End-to-end testing.
-
Service-level testing.
Part V: Infrastructure
-
Infrastructure as Code using Bicep.
-
Containers and orchestration (Kubernetes / Azure Container Apps).
-
Infrastructure pipelines and deployment workflows.
-
Storage and database services.
Part VI: Deployment
-
CI/CD pipelines.
-
Deployment rings.
-
Feature flags.
Part VII: Observability
-
Centralised logging.
-
Distributed tracing.
-
Metrics and dashboards.
-
Monitoring and alerting systems.
Part VIII: Resilience and Disaster Recovery
-
Health probes and readiness checks.
-
Strategies for handling compute failures.
-
Infrastructure failure strategies.
-
Service-level failure handling.
Requirements
- Solid programming proficiency in at least one backend language (such as C#, Java, Python, or similar).
- Fundamental understanding of REST APIs and HTTP protocols.
- Comfort with Git and standard version control workflows.
- Basic familiarity with a cloud platform (e.g., Azure, AWS, or GCP), including experience deploying an app or navigating the portal.
Target Audience
-
Development teams in the process of migrating from monolithic systems to microservices.
-
Software architects designing complex distributed systems.
-
Teams already operating microservices who aim to enhance design, scalability, and reliability.
-
Technical professionals seeking a practical, hands-on approach to cloud-native architecture.
Testimonials (4)
The instructor was knowledgeable about the course topic and also other related topics, and was able to answer our questions, or even make a note of questions he didn't immediately know the answer to and got back to use later.
Abe Sabbagh - Enbridge
Course - Advanced RabbitMQ - 2 Days
Possibility to perform independent exercises in the training environment.
Tomasz - PKO Zycie Towarzystwo Ubezpieczen S.A.
Course - Kafka for Administrators
the technical preparation of teachers
Giorgio - Asystel-BDF S.p.A.
Course - Creating a Service Mesh with Istio and Kubernetes
Very practical examples. The trainer has tried to keep a pace where everybody is able to go with even though the group was quite inhomogeneous regarding the knowhow. He has provided a lot of support to basically everybody who asked for it :)