Course Outline
Foundations of Microservices Architecture
- Defining microservices: concepts and definitions
- Advantages and complexities inherent to the model
- Contrasting microservices with monolithic systems
Establishing a Development Environment with AWS Cloud9 — A rapid setup guide
- Provisioning an AWS Cloud9 instance
- Setting up the necessary development tools
- Integrating AWS services with Cloud9
Developing Microservices using Docker
- Core concepts of Docker and containerization
- Creating and validating container images
- Leveraging Docker Compose for multi-container workflows
- Practical exercise: Assembling a multi-container application in a local environment
Event-Driven Design and Asynchronous Messaging Patterns
- Underlying principles of event-driven architecture and synchronous vs. asynchronous communication
- Utilizing Amazon SQS for queue-based message handling
- Using Amazon SNS for publish-subscribe scenarios
- Routing and dispatching events via Amazon EventBridge
- Introduction to Kafka and Amazon MSK for high-volume streaming — Overview only, optional
- Practical exercise: Enabling asynchronous interaction between services using SQS and SNS, followed by extending the flow with EventBridge
Deploying Microservices on AWS (covering ECS, Lambda, and EKS)
- Configuring Amazon ECS for container orchestration
- Releasing microservices via AWS Lambda
- Overview of Kubernetes and Amazon EKS as an alternative orchestration strategy — Overview only, comparative with ECS
- Implementing service discovery in distributed architectures
- Managing scaling strategies for microservices on AWS
- Practical exercise: Deploying workloads to ECS and benchmarking against an EKS configuration
API Governance and Management with AWS API Gateway
- Developing and governing RESTful APIs
- Linking APIs to backend microservices
- Managing API versions and rate limiting
- Practical exercise: Exposing microservices via API Gateway with version control
Observability: Monitoring, Logging, and Distributed Tracing
- Monitoring systems using AWS CloudWatch
- Configuring log collection with Amazon CloudWatch Logs
- Creating alarms and setting up notification channels
- Understanding distributed tracing mechanisms
- Tracking requests using AWS X-Ray
- Vendor-neutral instrumentation with OpenTelemetry
- Practical exercise: Instrumenting services with X-Ray and OpenTelemetry to trace requests across the service mesh
CI/CD Pipelines and Infrastructure as Code
- Key concepts in CI/CD pipelines for microservices
- Introduction to Terraform for automating infrastructure provisioning
Security Best Practices for Microservices
- Configuring IAM roles and access policies
- Securing microservice interactions via API Gateway
- Data encryption strategies for data in transit and at rest
Requirements
Participants are expected to have:
- Fundamental to intermediate proficiency in Python
- A basic grasp of REST APIs, HTTP protocols, and web application principles.
- Essential knowledge of Linux command-line utilities and Git.
- A foundational understanding of Docker and containerization principles is advised, though not a requirement.
- Basic exposure to cloud computing paradigms 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 :)