Course Outline
Part I: Domain Modeling and Design for Government
-
Principles of Domain-Driven Design for government operations
-
Utilizing event storming to discover domains within public sector contexts
-
Defining bounded contexts and context mapping for improved governance
-
Establishing data ownership and adhering to the database-per-service principle in government systems
Part II: Contracts and Communication for Government
-
Designing robust contracts for inter-service communication
-
Implementing API versioning and evolution strategies to ensure compatibility and scalability
-
Exploring synchronous communication patterns for efficient service interactions
-
Utilizing asynchronous communication patterns to enhance system resilience and performance
Part III: Building Microservices for Government
-
Implementing clean architecture structures for modular and maintainable microservices
-
Managing dependencies and addressing security considerations in government applications
-
Introduction to Dapr (Distributed Application Runtime) for enhancing microservice capabilities
-
Facilitating secure service-to-service communication within government environments
-
Managing state effectively in distributed systems for government use cases
-
Implementing pub/sub messaging patterns to support real-time data exchange
-
Managing secrets and configurations securely in government applications
-
Enhancing observability through built-in telemetry for improved system monitoring
Part IV: Testing Strategies for Government
-
Conducting heartbeat tests to ensure service availability and performance
-
Implementing end-to-end testing to validate system integrations
-
Performing service-level testing to verify individual component functionality
Part V: Infrastructure for Government
-
Utilizing Infrastructure as Code (Bicep) for consistent and automated deployment of government resources
-
Leveraging containers and orchestration tools (Kubernetes / Azure Container Apps) to manage government applications
-
Developing infrastructure pipelines for efficient deployment processes in the public sector
-
Selecting and configuring storage and database services for government data management
Part VI: Deployment for Government
-
Establishing CI/CD pipelines to automate the deployment of government applications
-
Implementing deployment rings to manage phased rollouts and minimize disruptions
-
Using feature flags to control the release of new features in a controlled manner
Part VII: Observability for Government
-
Centralizing logging to aggregate and analyze system events across government services
-
Implementing distributed tracing to track transactions and identify performance bottlenecks
-
Creating metrics and dashboards for real-time monitoring of government systems
-
Setting up monitoring and alerting mechanisms to proactively address issues in government applications
Part VIII: Resilience and Disaster Recovery for Government
-
Implementing health probes and readiness checks to ensure service reliability
-
Developing strategies to handle compute failures in government systems
-
Establishing infrastructure failure strategies to maintain continuity of operations
-
Implementing service-level failure handling to ensure robustness and reliability in government applications
Requirements
- Proficient programming skills in at least one backend language (C#, Java, Python, or similar)
- Fundamental knowledge of REST APIs and HTTP protocols
- Experience with Git and version control methodologies
- Basic familiarity with a cloud platform (e.g., Azure, AWS, or GCP), including deploying an application or navigating the portal
Target Audience
- Development teams transitioning from monolithic systems to microservices for government and other public sector entities
- Software architects responsible for designing distributed systems
- Teams currently working with microservices who seek to enhance design, scalability, and reliability
- Technical professionals interested in a practical, hands-on approach to cloud-native architecture
Testimonials (3)
the technical preparation of teachers
Giorgio - Asystel-BDF S.p.A.
Course - Creating a Service Mesh with Istio and Kubernetes
The practices
Ivan - si
Course - Spring Cloud for Microservices
I liked that the lecturer was very well prepared and he managed to engage the audience. The course was a combination of theory and practice and I enjoyed it very much.