Course Outline
Foundations of Microservices Architecture
- Defining microservices
- Advantages and complexities of a microservices approach
- Contrasting with monolithic system designs
Preparing AWS Cloud9 for Microservices Development — Rapid Environment Setup
- Provisioning an AWS Cloud9 environment
- Customizing the development workspace
- Linking AWS services to the Cloud9 instance
Developing Microservices with Docker
- Overview of Docker and containerization technologies
- Creating and validating Docker containers
- Leveraging Docker Compose for multi-container setups
- Practical task: constructing a multi-container application in a local environment
Event-Driven Architecture and Asynchronous Messaging
- Core concepts of event-driven design and synchronous vs. asynchronous interaction
- Utilizing Amazon SQS for queue-based message handling
- Employing Amazon SNS for publish-subscribe patterns
- Routing and dispatching events with Amazon EventBridge
- Overview of Kafka and Amazon MSK for high-throughput streaming — Optional introduction
- Practical task: establishing asynchronous communication between two services using SQS and SNS, then expanding functionality with EventBridge
Deploying Microservices on AWS (ECS, Lambda, and EKS)
- Configuring Amazon ECS for container orchestration
- Implementing microservices using AWS Lambda
- Brief introduction to Kubernetes and Amazon EKS as an alternative orchestration platform — Comparative overview with ECS
- Service discovery mechanisms in microservices environments
- Scaling strategies for microservices on AWS
- Practical task: deploying to ECS and evaluating against an EKS configuration
API Management via AWS API Gateway
- Designing and administering RESTful APIs
- Integrating APIs with microservices
- Managing API versions and implementing throttling
- Practical task: exposing microservices through an API Gateway with version control
Observability, Monitoring, Logging, and Distributed Tracing
- Leveraging AWS CloudWatch for system monitoring
- Configuring log aggregation with Amazon CloudWatch Logs
- Setting up alarms and notification workflows
- Concepts of distributed tracing
- Tracking requests using AWS X-Ray
- Vendor-neutral instrumentation with OpenTelemetry
- Practical task: instrumenting microservices with X-Ray and OpenTelemetry to trace requests across multiple services
CI/CD Pipelines and Infrastructure as Code
- CI/CD pipeline strategies tailored for microservices
- Introduction to Terraform for automated infrastructure provisioning
Security Best Practices for Microservices
- Configuring IAM roles and permission policies
- Enhancing microservice security via API Gateway
- Data encryption for traffic in transit and stored at rest
Requirements
Participants are expected to possess the following knowledge and skills:
- Fundamental to intermediate proficiency in Python
- A basic grasp of REST APIs, HTTP protocols, and web application fundamentals
- Basic familiarity with Linux command-line utilities and Git
- A basic understanding of Docker and containerization concepts is advised, though not strictly required
- Basic knowledge of cloud computing concepts and AWS services is beneficial
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 :)