Course Outline
Part I: Domain Modeling and System Design
-
Core principles of Domain-Driven Design (DDD)
-
Utilizing event storming for domain identification
-
Defining bounded contexts and establishing context maps
-
Establishing data ownership and adhering to the database-per-service principle
Part II: Service Contracts and Communication Protocols
-
Architecting service contracts
-
Strategies for API versioning and evolutionary management
-
Implementation of synchronous communication patterns
-
Implementation of asynchronous communication patterns
Part III: Microservice Implementation
-
Adopting a clean architecture structure
-
Managing dependencies and addressing security requirements
-
Overview of Dapr (Distributed Application Runtime)
-
Facilitating inter-service communication
-
Managing state persistence and handling
-
Implementing publish/subscribe messaging models
-
Managing secrets and configuration settings
-
Leveraging built-in telemetry for observability
Part IV: Testing Methodologies
-
Implementing heartbeat verification tests
-
Conducting end-to-end system testing
-
Performing service-level isolation testing
Part V: Infrastructure Management
-
Implementing Infrastructure as Code (IaC) using Bicep
-
Utilizing containers and orchestration platforms (Kubernetes / Azure Container Apps)
-
Configuring infrastructure pipelines and deployment workflows
-
Managing storage and database services
Part VI: Deployment Strategies
-
Establishing CI/CD automation pipelines
-
Implementing deployment rings for controlled rollouts
-
Utilizing feature flags for release management
Part VII: Observability Frameworks
-
Implementing centralized logging capabilities
-
Adopting distributed tracing mechanisms
-
Generating metrics and developing monitoring dashboards
-
Configuring continuous monitoring and alerting systems
Part VIII: Resilience and Disaster Recovery
-
Configuring health probes and readiness assessments
-
Addressing compute resource failures
-
Formulating strategies for infrastructure-level failures
-
Managing service-level failure scenarios
Requirements
- Demonstrated proficiency in at least one backend programming language (C#, Java, Python, or equivalent)
- Fundamental understanding of RESTful APIs and HTTP protocols
- Experience with Git and version control workflows
- Basic familiarity with a public cloud platform (e.g., Azure, AWS, or GCP), including application deployment or portal navigation
Audience
-
Development teams migrating from monolithic systems to microservice architectures
-
Software architects designing distributed system structures
-
Teams currently utilizing microservices seeking to enhance design, scalability, and reliability
-
Technical professionals seeking a practical, hands-on approach to cloud-native architecture for government applications
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 :)