Course Outline
Introduction to Microservices Architecture
- Definition and scope of microservices for government applications
- Advantages and operational challenges associated with microservices
- Evaluation of microservices versus monolithic architectures
Establishing AWS Cloud9 for Microservices Development — Rapid Configuration
- Provisioning an AWS Cloud9 environment
- Configuring the development workspace
- Integration of AWS services with Cloud9
Constructing Microservices using Docker
- Fundamentals of Docker and containerization
- Creation and validation of Docker containers
- Leveraging Docker Compose for multi-container applications
- Practical exercise: Local development of a multi-container application
Event-Driven Architecture and Asynchronous Messaging
- Core principles of event-driven architecture; comparative analysis of synchronous and asynchronous communication
- Amazon SQS for queue-based message handling
- Amazon SNS for publish-subscribe messaging patterns
- Amazon EventBridge for event routing and distribution
- Overview of Kafka and Amazon MSK for high-volume streaming (Optional component)
- Practical exercise: Implementing asynchronous communication between two services using SQS and SNS, followed by integration with EventBridge routing
Deploying Microservices on AWS (ECS, Lambda, and EKS)
- Configuration of Amazon ECS for container orchestration
- Deployment of microservices via AWS Lambda
- Overview of Kubernetes and Amazon EKS as an alternative orchestration method (Comparative analysis with ECS)
- Service discovery mechanisms in microservices environments
- Scalability strategies for microservices on AWS
- Practical exercise: Deployment on ECS with comparative analysis against an EKS configuration
API Management with AWS API Gateway
- Creation and administration of RESTful APIs
- Integration of APIs with microservices
- API versioning control and throttling mechanisms
- Practical exercise: Exposure of microservices via API Gateway with versioning controls
Observability, Monitoring, Logging, and Distributed Tracing
- Utilization of AWS CloudWatch for system monitoring
- Configuration of logging via Amazon CloudWatch Logs
- Implementation of alarm thresholds and notification systems
- Conceptual framework of distributed tracing
- Application of AWS X-Ray for request tracing
- OpenTelemetry for vendor-neutral instrumentation
- Practical exercise: Instrumentation of microservices using X-Ray and OpenTelemetry to trace requests across service boundaries
CI/CD and Infrastructure as Code
- CI/CD pipeline fundamentals for microservices
- Overview of Terraform for infrastructure provisioning
Microservices Security Best Practices
- Implementation of IAM roles and policy governance
- Security hardening of microservices via API Gateway
- Encryption protocols for data in transit and at rest
Requirements
Participants are expected to possess the following competencies:
- Foundational to intermediate proficiency in Python
- Basic comprehension of REST APIs, HTTP protocols, and web application concepts for government integration
- Basic familiarity with Linux command-line utilities and Git version control
- Recommended, though not mandatory, basic understanding of Docker and containerization concepts
- Beneficial basic familiarity with cloud computing principles and AWS services
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 :)