Course Outline
Introduction to Microservices Architecture
- Defining microservices
- Advantages and challenges associated with microservices
- Comparison against monolithic architectures
Setting Up AWS Cloud9 for Microservices Development — Quick setup
- Provisioning an AWS Cloud9 environment
- Configuring the development workspace
- Linking AWS services to Cloud9
Building Microservices with Docker
- Foundations of Docker and containerization
- Creating and testing Docker containers
- Leveraging Docker Compose for multi-container applications
- Practical exercise: constructing a multi-container application locally
Event Driven Architecture and Asynchronous Messaging
- Core principles of event-driven architecture and synchronous versus asynchronous communication
- Utilizing Amazon SQS for queue-based messaging
- Employing Amazon SNS for publish-subscribe messaging
- Using Amazon EventBridge for event routing and dispatching
- Overview of Kafka and Amazon MSK as alternatives for high-volume streaming — Optional
- Practical exercise: implementing asynchronous communication between two services via SQS and SNS, followed by extending the system with EventBridge routing
Deploying Microservices on AWS (ECS, Lambda and EKS)
- Configuring Amazon ECS for container orchestration
- Deploying microservices using AWS Lambda
- Introduction to Kubernetes and Amazon EKS as an alternative orchestration option — Overview only, comparative with ECS
- Service discovery within microservices architectures
- Scaling strategies for microservices in AWS
- Practical exercise: deploying on ECS and comparing the experience with an EKS setup
Managing APIs with AWS API Gateway
- Creating and managing RESTful APIs
- Integrating APIs with microservices
- Implementing API versioning and throttling
- Practical exercise: exposing microservices through an API Gateway with versioning controls
Observability, Monitoring, Logging and Distributed Tracing
- Utilizing AWS CloudWatch for system monitoring
- Configuring logging with Amazon CloudWatch Logs
- Setting up alarms and notifications
- Concepts of distributed tracing
- Using AWS X-Ray for request tracing
- Applying OpenTelemetry for vendor-independent instrumentation
- Practical exercise: instrumenting microservices with X-Ray and OpenTelemetry to trace requests across services
CI/CD and Infrastructure as Code
- CI/CD pipeline concepts specific to microservices
- Introduction to Terraform for infrastructure provisioning
Microservices Security Best Practices
- Implementing IAM roles and policies
- Securing microservices via API Gateway
- Encrypting data in transit and at rest
Requirements
Participants should have:
- Basic to intermediate proficiency in Python
- A foundational understanding of REST APIs, HTTP, and web application concepts.
- Basic familiarity with Linux command-line tools and Git.
- Basic understanding of Docker and containerization concepts is recommended, though not mandatory.
- Basic familiarity with 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 :)