
Microservices are small, autonomous units built around business capabilities and deployed via automated pipelines. They rely on bounded contexts, domain-focused design, strict contracts, and decoupled configuration, with telemetry for operations.
Explore the geographic infrastructure of cloud, detailing regions and availability zones, how regions host multiple data centers for performance and regulatory needs, and how zones ensure redundancy for high availability.
Show how to diagram geographic architecture by depicting regions and availability zones within an outer bounding box, using the US east region Ohio as an example and labeling zones.
Explore VPC design with public and private subnets, internet gateways, and NAT or Transit gateways. Learn how network ACLs, security groups, and elastic load balancers secure and scale AWS microservices.
Diagram the network architecture with a region and a VPC spanning two availability zones, four subnets (public, private) linked by route tables, NAT gateways, and a load balancer.
Explore the cloud development kit, an AWS abstraction over CloudFormation that lets you define infrastructure in familiar languages like Python, JavaScript, and Go, reducing context switching.
Clean up after deploying the hello api cdk app by running 'cdcc destroy all' to remove infrastructure and minimize charges, then take a short break as the next lecture begins.
Launch a hands-on integration of GitHub with AWS CodePipeline, creating a private repository, connecting it to AWS developer tools, and wiring a feature branch and PR to deploy.
integrate GitHub with an AWS code pipeline by updating your local Python project, applying a Python gitignore, setting main, pushing to origin, and creating an initial setup feature branch.
Explore how a Docker file defines the runtime environment, builds immutable container images from a base image, runs containers via an OCI-compliant runtime, and uses registries with security scanning.
CDK automates building a Docker image from a directory with a Dockerfile, pushes it to ACR, and binds the image to the ECS task definition for a Fargate service.
Introduce a FastAPI based add numbers rest API that sums a list of numbers via /add, with health check, configurable settings, and unit tests.
Understand how the CDK context json caches metadata for lookups like VPC and the application load balancer, and how refreshing the context fixes deployment errors after stack changes.
Deploy the AWS distro of OpenTelemetry for Python and enable auto instrumentation to emit traces and metrics, using Envoy and hotel collector sidecars for full observability.
Learn core authentication concepts, including OAuth, tokens, and authorization flows, with JWTs, client credentials, and resource servers in a practical AWS microservices context.
Troubleshoot Cognito domain issues, validate JWT tokens, and configure OAuth 2.0 authentication for microservices by wiring Cognito user pools, app clients, and resource servers.
Same code project as attached to the lecture "Cognito CDK Code Walk-Through"
In this course learners will be taken on a journey to learn the fundamental principles of what a microservice architecture is and how to build, deploy and operate Python based microservices in the AWS Cloud. This course provides a balance of theory covering key aspects of each major technology or cloud architecture component followed by practical code demonstrations deployed as working examples in the AWS Cloud.
The technologies covered, along with a brief summary of why they have been selected, are listed below.
Python was selected as the language due to its ease of use, succinct readability, and high popularity among software engineers today
AWS Elastic Container Service (ECS) was selected as a Container Orchestration technology because of its simple abstractions, especially when ran on Fargate, for managing containers yet remain scalable and robust enough for enterprise workloads
App Mesh was selected because its a robust service mesh based on the open source Envoy Proxy for enhanced microservice networking delivered as a fully manged implementation by AWS alleviating the need to provision and maintain a service mesh control plane
AWS Cloud Development Kit was selected because of its modern approach to Infrastructure as Code with intuitive object oriented library design and availability in Python alleviating the burden of context switching between app code and deploy code languages
Code Pipeline was selected as a Continuous Delivery orchestrator pipeline due to its nearly hands free administration qualities along with tight integration with AWS Cloud Development Kit and GitHub
GitHub is used for version control and Continuous Integration capabilities with CodePipeline
Amazon Cognito for securing FastAPI microservices with OAuth and SaaS based user management