We may earn an affiliate commission when you visit our partners.
Course image
Adam McQuistan

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.

Read more

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

Enroll now

What's inside

Learning objectives

  • Cloud microservices architecture
  • Aws cloud development kit (cdk)
  • Fargate serverless container compute engine
  • Elastic container registry (ecr)
  • Elastic container service (ecs)
  • App mesh
  • Fastapi python framework
  • Aws distro for open telemetry in python
  • Aws codepipeline
  • Domain driven design
  • Amazon cognito
  • Show more
  • Show less

Syllabus

Introduction
Course Outline
About Instructor
Microservice Concepts and Design Techniques
Read more
Section Introduction
What are Microservices?
Domain Driven Design
Ubiquitous Language
Bounded Contexts
Context Maps
Domain Model
Domain Aggregate
Domain Events
Hexagonal Architecture in Software Design
Communication Styles, Events, and Coupling Between Bounded Contexts
Command Query Responsibility Segregation (CQRS)
Microservices Discovery and Design
AWS Geographic and Networking Infrastructure Overview
Geographic Architecture and Infrastructure
Diagramming Geographic Architecture
Networking Architecture and Infrastructure
Diagramming Networking Architecture
Geographic and Network Infrastructure Components
Infrastructure as Code with AWS Cloud Development Kit (CDK)
Defining Infrastructure as Code
Cloud Development Kit
CDK CLI and Constructs Library
CDK Construct Types
AWS IaC Abstractions Hierarchy
Hello API Demo App Overview and Installing AWS CDK
Deploy Hello API Demo App with CDK
Recap of Deployed Hello API CDK App
Cleanup Hello API CDK App
Infrastructure as Code and CDK
Continuous Integration and Continuous Delivery in AWS
Defining Continuous Integration and Continuous Delivery
AWS Developer Tools Overview
GitHub AWS Code Pipeline Integration (GitHub and Dev Tools Connection)
GitHub AWS Code Pipeline Integration (Updating Local Code with Remote Repo)
GitHub AWS Code Pipeline Integration (Coding the Pipeline with CDK)
GitHub AWS Code Pipeline Integration (Initial Deploy Overview in AWS Console)
GitHub AWS Code Pipeline Integration (Update Infra Stack & Deploy HelloApi)
GitHub AWS Code Pipeline Integration (Overview)
Introducing IaC Unittests to CDK Project and CodePipeline
Continuous Integration and Continuous Delivery
Image Management with Elastic Container Registry (ECR)
Elastic Container Registry (ECR)
Overview of Docker Container Concepts
Dockerfile Example
Building and Tagging Containers
Manually Publishing Images to ECR
Walk-through of CDK Managing Images with ECR
Container Image Management
Container Orchestration with Fargate and Elastic Container Service (ECS)
Container Orchestration
Fargate
Overview of Elastic Container Service (ECS)
Review the Cloud Architecture to be Deployed
Introducing Add Numbers REST API Demo App
Develop Custom Microservice CDK Construct for Add Numbers App
CDK & Code Pipeline Troubleshooting with CDK Context
Deploy Custom Microservice CDK Construct for Add Nums Service
Review of Cloud Architecture with Auto Scaling
Develop & Deploy Auto Scaling Capabilities for Custom Microservice Construct
Container Orchestration and ECS
Enhancing Observability and Reliability with AWS App Mesh
Defining Service Mesh
Service Mesh as a Enhanced Logical Network for Microservices
Overview of App Mesh Components
Architecture Design for App Mesh Enhanced ECS Microservice CDK Construct
Walk-through of App Mesh Enhanced ECS Microservice CDK Construct
Troubleshooting Mesh Refactor Deploy with CDK and CodePipeline
Walk-through & Deploy of Remaining Calculator Microservices IaC
Key Components of Observability: Logging, Metrics, Tracing
Implement and Deploy AWS Distro of OpenTelemetry for Python
App Mesh and Observability
Securing Microservices with Amazon Cognito
Authentication Key Concepts
Introducing Amazon Cognito
Cognito Authentication Architecture Overview
Cognito CDK Code Walk-through
Cognito Domain Troubleshooting
Cognito Deploy Overview and Testing Authentication with Postman

Same code project as attached to the lecture "Cognito CDK Code Walk-Through"

OAuth Security and Amazon Cognito

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches key concepts of Microservices Architecture, including Domain Driven Design, API design, and Best Practices
Provides a solid foundation in AWS Cloud Development Kit (CDK) for infrastructure as code
Covers the latest technologies and tools for building, deploying, and managing Python-based microservices in the AWS Cloud
Designed for learners with an understanding of Python programming and basic cloud computing concepts
Provides practical code demonstrations and hands-on exercises to reinforce learning
Suitable for learners looking to enhance their skills in cloud-native development, particularly with microservices in AWS

Save this course

Save Architecting Python Microservices in AWS with ECS & App Mesh to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Architecting Python Microservices in AWS with ECS & App Mesh with these activities:
Review Python Basics
Refresh your knowledge of Python syntax and fundamental concepts to strengthen the foundation for building microservices.
Browse courses on Python Programming
Show steps
  • Review online resources or tutorials that cover Python basics.
  • Complete practice exercises to reinforce your understanding.
Solve Python Coding Challenges
Enhance your Python programming skills through problem-solving drills to improve your understanding of language concepts and syntax.
Browse courses on Python Programming
Show steps
  • Find online coding platforms that provide Python challenges.
  • Practice solving different types of Python coding problems.
Design a Microservice Architecture Diagram
Create a visual representation of a microservice architecture to deepen your comprehension and ability to communicate the design effectively.
Browse courses on Microservice Architecture
Show steps
  • Identify the components and interactions of the microservice architecture.
  • Use appropriate diagramming tools to create a clear and organized diagram.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple Microservice
Create a basic microservice using Python and AWS to gain hands-on experience in developing and deploying microarchitectures.
Show steps
  • Create a Python-based FastAPI application.
  • Containerize the microservice using Docker.
  • Deploy the microservice to AWS Elastic Container Service (ECS).
Attend an AWS-Focused Workshop
Participate in an AWS-led workshop to gain hands-on experience with AWS technologies and best practices relevant to microservice architectures.
Show steps
  • Identify and register for an upcoming AWS workshop that aligns with the course topics.
  • Attend the workshop and actively engage in the activities and discussions.
Explore App Mesh for Service Mesh Enhancement
Follow online tutorials to enhance your understanding of App Mesh and its role in improving microservice networking.
Show steps
  • Identify tutorials that demonstrate App Mesh implementation.
  • Follow the tutorials to gain hands-on experience with App Mesh features.
Assist Junior Developers with Microservice Projects
By mentoring others and sharing your knowledge of microservices, you will reinforce your own understanding and gain a deeper appreciation for the subject matter.
Browse courses on Mentoring
Show steps
  • Identify opportunities to mentor junior developers working on microservice projects.
  • Provide guidance, support, and feedback to help them overcome challenges and improve their skills.

Career center

Learners who complete Architecting Python Microservices in AWS with ECS & App Mesh will develop knowledge and skills that may be useful to these careers:
Cloud Security Architect
A Cloud Security Architect designs, implements, and manages security measures to protect cloud computing environments. This course provides a comprehensive overview of AWS security services and technologies, including Amazon Cognito. This knowledge is essential for Cloud Security Architects who need to build and manage secure cloud computing environments.
DevOps Engineer
A DevOps Engineer works to bridge the gap between development and operations teams, ensuring that software is delivered quickly and reliably. This course provides a solid foundation in DevOps practices, including continuous integration and continuous delivery (CI/CD) with AWS CodePipeline. This knowledge is essential for DevOps Engineers who need to automate and streamline the software delivery process.
Site Reliability Engineer
A Site Reliability Engineer (SRE) is responsible for ensuring the reliability and performance of software systems. This course provides a comprehensive overview of observability and monitoring tools, including AWS Distro for Open Telemetry. This knowledge is essential for SREs who need to monitor and troubleshoot software systems.
Cloud Architect
A Cloud Architect designs, builds, and manages cloud computing solutions. This course provides a comprehensive overview of AWS cloud services and technologies, including Amazon Elastic Container Service (ECS), App Mesh, and AWS CodePipeline. This knowledge is essential for Cloud Architects who need to design and implement cloud-based solutions.
Security Engineer
A Security Engineer designs, implements, and maintains security measures to protect software systems. This course provides a foundation in AWS security services and technologies, including Amazon Cognito. This knowledge is essential for Security Engineers who need to build and manage secure software systems.
Data Scientist
A Data Scientist uses data to solve business problems. This course provides a foundation in AWS cloud services and technologies, including Amazon Elastic Container Service (ECS) and AWS Distro for Open Telemetry. This knowledge is essential for Data Scientists who need to build and manage data pipelines and perform data analysis in the cloud.
Software Engineer
A Software Engineer designs, develops, tests, deploys, and maintains software systems. This course helps build a foundation for this role by covering key cloud computing concepts, such as microservices architecture, container orchestration, and service mesh networking. These concepts are essential for building and managing modern, scalable, and reliable software applications.
Full-Stack Developer
A Full Stack Developer is responsible for both the front-end and back-end development of web applications. This course provides a comprehensive overview of Python and its libraries, as well as cloud computing concepts such as microservices and service mesh networking. This knowledge is essential for Full Stack Developers who need to build and maintain modern, scalable, and reliable web applications.
Blockchain Developer
A Blockchain Developer designs, develops, and maintains blockchain applications. This course may provide some foundational knowledge in cloud computing concepts, such as microservices architecture and container orchestration. However, it is important to note that this course does not cover blockchain-specific technologies.
Data Analyst
A Data Analyst collects, analyzes, and interprets data to identify trends and patterns. This course may provide some foundational knowledge in cloud computing concepts, such as microservices architecture and container orchestration. However, it is important to note that this course does not cover data analysis-specific technologies.
Front-End Developer
A Front-End Developer designs and develops the user interface of web applications. This course covers Python and its libraries, but it does not cover front-end development-specific technologies.
Mobile Developer
A Mobile Developer designs and develops mobile applications. This course covers Python and its libraries, but it does not cover mobile development-specific technologies.
Project Manager
A Project Manager plans, executes, and closes projects. This course may provide some foundational knowledge in cloud computing concepts, but it is important to note that it does not cover project management-specific skills.
Product Manager
A Product Manager plans, develops, and launches new products or features. This course may provide some foundational knowledge in cloud computing concepts, but it is important to note that it does not cover product management-specific skills.
Technical Writer
A Technical Writer creates and maintains technical documentation. This course may provide some foundational knowledge in cloud computing concepts, but it is important to note that it does not cover technical writing-specific skills.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Architecting Python Microservices in AWS with ECS & App Mesh.
Presents a catalog of proven design patterns for building microservices, including patterns for communication, data management, testing, and deployment.
Provides a comprehensive guide to designing and building data-intensive applications, including topics such as data modeling, storage, and processing.
Provides a theoretical foundation for microservices architecture and explores design patterns for distributed systems, offering a deeper understanding of microservice design principles.
Offers a deep dive into the challenges of scaling distributed systems, providing architectural patterns and techniques for designing and building scalable applications.
Provides a hands-on guide to developing and deploying cloud-native Java applications using Spring Boot, Kubernetes, and other cloud services, offering practical insights into cloud-based application development.
Classic in the field of software design and provides a comprehensive overview of domain-driven design principles and practices, offering valuable insights into modeling complex business domains.
Offers a comprehensive guide to designing and building data-intensive applications, providing a deep understanding of data modeling, storage, and processing techniques.
Provides a deep dive into reactive programming concepts and techniques using RxJava, offering guidance on building scalable and responsive applications that can handle asynchronous and event-driven workloads.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Architecting Python Microservices in AWS with ECS & App Mesh.
Docker in AWS - Deploy Java Spring Boot to AWS Fargate &...
Most relevant
Cloud-Native: Microservices, Kubernetes, Service Mesh,...
Most relevant
Kubernetes for Beginners: Google Cloud, AWS & Azure
Most relevant
Getting Started with Linkerd Service Mesh
Microservices with NodeJS, React, Typescript and...
Developing Applications in Python on AWS
Python for Serverless Applications and Automation on AWS
Traffic Management with Anthos Service Mesh
Google Cloud Native Fundamentals
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser