Join the 6 Day DevOps Challenge!
Add 7 DevOps projects to your portfolio in this fun, beginner-friendly and hands-on challenge!
Introduction
This project has been archived
We're no longer updating this project - we recommend checking out our active projects instead!
If you've already completed this project, don't worry! Your documentation is still available for you to check out and share.
If you have any questions, leave a question in our Discord and we'll get back to you ASAP!
Welcome to this 7-Day DevOps Challenge! 🚀
Over the next 7 days, you'll build a complete CI/CD pipeline that takes code from commit to production, gaining practical DevOps skills that are in high demand across the tech and cloud industry.
By the end of this challenge, you'll have:
- Built a complete CI/CD pipeline using AWS tools
- Automated the testing and deployment of a real application
- Created 7 pieces of portfolio-worthy documentation that showcase your skills
What to Expect
This is a 100% hands-on challenge. You'll be working in the AWS console from day one.
Don't worry if you're new to AWS or DevOps - we've designed this challenge to be beginner-friendly:
- 🤝 Step-by-step instructions guide you through each project.
- 🎥 Live demos of every project on YouTube.
- 📖 Clear explanations of DevOps concepts as we go.
- 📝 Line-by-line explanations of any code (no coding experience required).
- 🔍 Troubleshooting tips to help you solve common errors.
- 🔥 A supportive community to answer your questions and help you out.
How to Start
You'll build your CI/CD pipeline over 7 projects in 7 days. Set up an AWS account before you start, which you can do here.
When you're ready, start this challenge by selecting the first project!
- 1️⃣ Set Up a Web App in the Cloud
- 2️⃣ Connect a GitHub Repo with AWS
- 3️⃣ Store Dependencies in CodeArtifact
- 4️⃣ Package an App with CodeBuild
- 5️⃣ Deploy an App with CodeDeploy
- ⭐️ Optional: Automate Your Infrastructure with CloudFormation
- 7️⃣ CI/CD with CodePipeline
If you're up for a bit of a challenge, quiz yourself on the key concepts up ahead in this project.
What do DevOps and CI/CD mean, anyway?
Goooood question! To say thanks for making it to the end of this challenge intro, you've unlocked a bonus section (and bonus documentation) on what is CI/CD.
Open it now 👇
Pick the explanation style that matches your style:
Note
Congratulations 👏
You've just unlocked a bonus section on what is CI/CD. Make sure to answer all the questions to create your personalized documentation!
This project is part of a series:
What is DevOps?
DevOps is all about getting teams to build and deploy code faster without sacrificing reliability. Think of it as a blend of automating tasks, making sure apps are running consistently everywhere, and smart monitoring to catch issues early.
Before DevOps, development and operations teams worked separately with minimal communication. Developers would build software in their own environment, then hand it off to operations to deploy it to users.
But operations couldn't immediately deploy the code. They needed to carefully test it first, make sure it wouldn't break existing systems, and prepare the infrastructure - all without knowing how the code was written.
This created delays, misunderstandings, and frustration on both sides: developers wanted to ship features quickly, while operations wanted to make sure the code is stable before it's deployed.
To address this conflict, DevOps is a set of practices that combines development (writing code) and operations (deploying and maintaining code) to shorten development cycles and deliver reliable software.
If DevOps is a set of practices, what is a DevOps engineer?
DevOps engineers implement DevOps practices in their organization. They...
- Build automated pipelines (e.g. using AWS CodePipeline, Jenkins, GitHub Actions) that test, package, and deploy software, so releases become faster and more reliable.
- Containerize applications using tools like Docker and Kubernetes, which helps applications scale.
- Turn cloud infrastructure into code (e.g. AWS CloudFormation, Terraform), so teams can create and manage resources more efficiently than manually configuring them.
At the heart of DevOps is CI/CD - Continuous Integration and Continuous Delivery/Deployment.
What is CI/CD?
Let's understand CI/CD by starting with something familiar - cooking!
In traditional cooking, there are chefs (developers) that come up with new recipes, and restaurant staff (operations) that follow the recipes and serve the dishes to customers (users).
Things can go wrong when the chef releases a new recipe (i.e. new code):
- 😦 The restaurant's pantry doesn't have the ingredients for the new recipe.
- 😨 Some restaurant staff are still cooking with the old recipe.
- 😰 The new recipe comes with special serving instructions that servers don't know about, so customers aren't getting the full experience.
If there was CI/CD for cooking...
Now, let's imagine if there was a way to apply some automations to this process:
- The pantry automatically stocks all the required ingredients for the latest recipes.
- Cooking equipment automatically cooks identical, consistent dishes based on the latest recipe.
- Servers automatically know about the new serving instructions, and serve dishes to customers without any delays.
- A restaurant manager automatically checks that everyone is following the instructions for the latest recipe of every dish.
These automations make the flow from the chef's latest recipe to the customer's plate much more efficient and reliable!
In software development, CI/CD works similarly
The goal of CI/CD is to make the flow from code changes to a live application as efficient and reliable as possible. To do this, automations are set up across the software development and deployment process.
- In project 1 of this challenge, you'll start by setting up a Development environment i.e. the test kitchen where developers write code.
- In project 2, you'll connect your development environment to GitHub i.e. the recipe book storing different versions of the code.
- In project 3, you'll store dependencies in CodeArtifact i.e. the pantry for pre-built code your app needs to function.
- In project 4, you'll build your code with CodeBuild i.e. the cooking process that prepares code for deployment.
Note
CI (continuous integration) means the build process starts automatically - whenever developers update the code in GitHub (i.e. a new recipe is added), CodeBuild will automatically build the updated code.
- In project 5, you'll use CodeDeploy to deploy your code to a Web server/Live application i.e. servers that deliver code to users.
Note
CD (continuous delivery) means deployment happens automatically whenever a new build is successful.
- In project 6, we'll do a bonus project to learn how to use CloudFormation to turn your infrastructure into code.
- Finally, in project 7, you'll set up the CI/CD pipeline with CodePipeline i.e. the restaurant manager that makes sure code is automatically flowing from one stage to the next.
Ready for the first project?
Ready for the first project?
You've mastered the theory, now it's time for the exciting part - building your very own CI/CD pipeline!
Are you ready to:
- 🛠️ Build a real, working CI/CD pipeline?
- 🚀 See your code automatically flow from commit to deployment?
- 💪 Add an impressive series of DevOps projects to your portfolio?
Share Your Challenge Progress!
This challenge can help you build your DevOps skills, your portfolio, and your personal brand! To make the most of it, share your progress on LinkedIn or GitHub.
It's so easy to share your documentation - all you have to do is:
- Select Mission Accomplished at the end of this page 👇
- Download your documentation as a PDF.
- Select the LinkedIn icon to open a pre-populated post, all ready to go!
- Select the X at the bottom of the post - it's blocking you from uploading documentation.
- Click on the plus icon at the bottom of the panel.
- Then select the page icon, which helps you Add a document.
- Voilà! Upload your document and give it a nice title like I'm starting the 6 Day DevOps Challenge!
- Select Done and Post to share your progress!
p.s. Does it say "Still tasks to complete!" at the bottom of the screen?
This means you still have screenshots left to upload, or questions left to answer!
- Press Ctrl+F (Windows) or Command+F (Mac) on your keyboard.
- Search for the text Return to later.
- Jump straight to your incomplete tasks!
- 🙋♀️ Still stuck? Ask the community!