In this first part, you'll learn how to structure your Git repository and application skeleton for developing scalable Flask applications. The remainder of this part will focus on configuring a CI/CD pipeline on GitLab CI for running tests and deploying your application to AWS ECS. You'll manage AWS infrastructure using Terraform, an Infrastructure as Code tool.
Learning Objectives
- Develop an API with Flask
- Configure CI/CD pipeline jobs for running tests and checking code quality checks, managing AWS infrastructure with Terraform, building and pushing Docker images to AWS ECR, and deploying applications to AWS ECS
- Set up a domain name and secure your app with SSL using AWS Route 53 and AWS Certificate Manager, respectively
In part 2, with the CI/CD pipeline configured and your application set up, you'll continue building our your application and setting up AWS infrastructure with Terraform as you make your way to continuous deployment. You'll leverage various GitLab services as you build and publish an internal Python package and set up feature flags via Unleash.
Learning Objectives
- Set up a Postgres database on AWS RDS using Terraform
- Manage database migrations inside your CI/CD pipeline
- Add end-to-end-tests and configure a CI/CD pipeline job for them
- Build, publish, and use internal Python packages on GitLab
- Use feature flags to slowly roll out new feature to users
- Monitor your application with AWS CloudWatch
- Set up continuous delivery