Course Outline
Part I: Domain Modelling and Design
-
Principles of Domain Driven Design
-
Utilizing event storming for domain discovery
-
Defining bounded contexts and performing 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
-
Structuring applications with clean architecture
-
Dependency management and security considerations
-
Introduction to Dapr (Distributed Application Runtime)
-
Service-to-service communication
-
Managing application state
-
Pub/Sub messaging patterns
-
Managing secrets and configuration
-
Leveraging built-in telemetry for observability
Part IV: Testing Strategies
-
Implementing heartbeat tests
-
Conducting end-to-end testing
-
Performing service-level testing
Part V: Infrastructure
-
Infrastructure as Code (using Bicep)
-
Containers and orchestration (Kubernetes / Azure Container Apps)
-
Infrastructure pipelines and deployment processes
-
Storage and database services
Part VI: Deployment
-
Establishing CI/CD pipelines
-
Implementing deployment rings
-
Utilizing feature flags
Part VII: Observability
-
Centralized logging
-
Distributed tracing
-
Metrics and dashboard creation
-
System monitoring and alerting
Part VIII: Resilience and Disaster Recovery
-
Configuring health probes and readiness checks
-
Handling compute resource failures
-
Strategies for infrastructure failure
-
Service-level failure handling
Requirements
- Proficient programming experience in at least one backend language (such as C#, Java, Python, or similar)
- Fundamental understanding of REST APIs and HTTP protocols
- Working knowledge of Git and version control workflows
- Basic experience with a cloud platform (e.g., Azure, AWS, or GCP), including deploying an application or navigating the management portal
Target Audience
-
Development teams in the process of migrating from monolithic architectures to microservices
-
Software architects tasked with designing distributed systems
-
Teams already utilizing microservices who seek to enhance their 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 :)