Step into the role of a lead DevOps engineer in an IT department of an online retail company. Your boss wants to move the company toward containerization, and he’s tasked you with heading up this important transition. In this series of liveProjects, you’ll start by creating a proof-of-concept (PoC) and deploy it on AWS Fargate.
With AWS Fargate, you don’t need to maintain a cluster of servers. The engineers only need to create a virtual cluster, choose their computing power in terms of CPU and memory, and let AWS Fargate handle maintenance chores.
Next, you’ll switch from a PoC to deploy an actual REST API Flask application on AWS Fargate, connect the application to Amazon Aurora (a database service), and create a continuous delivery (CD) pipeline. Finally, you’ll get your new service ready for operation by configuring autoscaling, logs, metrics, and alarms. Throughout, you’ll automate everything using Python with AWS Cloud Development Kit (CDK).
By the end of this series, you’ll have the practical know-how to deploy and manage real-world applications on AWS Fargate, including using best practices and identifying and avoiding common pitfalls.
You’re the lead DevOps engineer in an IT department with about 60 engineers. Your director wants to transition the company from a traditional cloud server to containerization while minimizing operational workload. Impressed with AWS Fargate’s ability to handle containers without managing servers, he’s tasked you with deploying a pilot project using Fargate. You’ll create a proof-of-concept by running an NGINX image on AWS Fargate. To ensure that the infrastructure meets the spec of being reusable as code, you’ll use AWS CDK along with Python as your programming language. When you’re finished, you’ll have investigated, evaluated, and deployed an NGINX container along with all the required resources into AWS Fargate.
Your assignment as lead DevOps engineer is to deploy a REST API Flask application into AWS Fargate. You already have the application code and the docker-compose file to run the API locally. You’ll package the code in CDK, build the images, store them in Elastic Container Registry (ECR), then use them for deployment in Fargate. When you’re finished, you’ll have practical experience deploying a Flask application, as well as a solid understanding of some of the services Fargate requires for deployment.
As a lead DevOps engineer, you’ve learned that using Fargate to host a database is not ideal. Your task is to solve that problem by attaching permanent storage to the container and adding important maintenance features. To deliver this solution, you’ll set up an AWS Aurora PostgreSQL with CDK, integrate it with a Fargate service, and keep the connection between the service and the database secure with AWS Secret Manager. When you’re done, you’ll have a working end-to-end solution ready to be deployed with CDK.
A working application is good; an automatically deployable application is great! In this liveProject, you’ll create a continuous delivery (CD) pipeline for your application using CDK. Then, you’ll deploy your application in a single account as well as in multiple accounts using CDK’s pipeline module. Along the way, you’ll learn to spot and evade possible pitfalls.
You and your DevOps team have successfully built an application and an automated deployment pipeline for it. But before you can launch you’ll need a solid operating plan that addresses how you’ll monitor and troubleshoot your new service in production. In this liveProject, you’ll add metrics and a CloudWatch Container Insight dashboard to your Fargate service. You’ll also enable autoscaling to adjust according to CPU usage, and you’ll structure logging to be easily searched. Lastly, you’ll use Python to set up alarms so you’ll know when something goes wrong.
The liveProject is for experienced software (backend or DevOps) engineers who are familiar with Docker and application development and have used AWS before. To begin these liveProjects you’ll need to be familiar with the following:TOOLS
geekle is based on a wordle clone.