Basic DevOps Projects to Kickstart Your Journey as a Beginner
Oct 09, 2024 3 Min Read 3506 Views
(Last Updated)
If you’re looking for the best DevOps projects to learn and practice, this blog is for you. Here, you’ll find a curated list of real-world DevOps scenarios that will help you not only grasp essential concepts but also gain hands-on experience with various DevOps tools.
Without any delay, let us get started!
Table of contents
- Why DevOps Projects Matter?
- List of DevOps Projects for Learning
- AWS
- Jenkins
- Docker
- Terraform
- CloudFormation
- Kubernetes
- Prometheus & Grafana
- Conclusion
Why DevOps Projects Matter?
Working on real-world DevOps projects is one of the best ways to showcase your skills. Whether you’re a fresh graduate or an experienced professional looking to transition into DevOps, understanding the basics is crucial.
The following DevOps projects are designed to help you build a strong foundation in core IT fundamentals and real-world DevOps practices, preparing you for DevOps engineer interviews.
You can use AWS or other cloud platforms like Azure and GCP to perform these projects.
List of DevOps Projects for Learning
1. AWS
Project 1: Setup a Static Website Using Nginx
This project will teach you how to set up a static website using Nginx and configure DNS to make the website publicly accessible.
Project Tasks:
- Create an Ubuntu server in AWS.
- SSH into the server using Putty or MobaXterm.
- Install Nginx.
- Download freely available HTML website code files.
- Replace the default website files with your custom ones in the web server’s root directory.
- Validate the website using the server’s public IP.
Concepts Covered:
- Ubuntu
- Web Server
- Nginx or Apache
- Web Hosting
Project 2: Setup a Static Website Using S3
This project will guide you in setting up a static website using Amazon S3.
Project Tasks:
- Create an S3 bucket in AWS.
- Download freely available HTML website code files.
- Upload the website files into the S3 bucket.
- Enable static website hosting in S3.
- Validate the website using the S3 ARN.
Concepts Covered:
- S3
- Web Hosting
2. Jenkins
Project 3: Setup Master-Slave Architecture in Jenkins
Learn how to set up a Master-Slave architecture in Jenkins to create distributed builds.
Project Tasks:
- Create an Ubuntu server in AWS.
- SSH into the server using Putty or MobaXterm.
- Install Jenkins using official documentation.
- Validate the Jenkins server using its public IP.
- Create a slave machine in AWS.
- Install the same JDK version as on the master machine.
- Connect the agent using a JAR file.
Concepts Covered:
- Jenkins
- Slave Setup
- Distributed Builds
3. Docker
Project 4: Deploy Customized Nginx Application
This project will teach you how to write a Dockerfile for a customized web server environment and deploy a sample website.
Project Tasks:
- Create an Ubuntu server in AWS.
- SSH into the server using Putty or MobaXterm.
- Install Docker using official documentation.
- Validate the Docker server using system commands.
- Download freely available HTML website code files.
- Use these HTML files to create a customized Nginx Dockerfile.
- Create a Docker image and run a container.
- Validate the web server running in Docker using the public IP.
Concepts Covered:
- Docker
- Dockerfile Creation
- Docker Image and Container Creation
Project 5: Dockerfile for Different Applications
Learn how to write Dockerfiles for different programming languages such as Python, Java, and Node.js.
Project Tasks:
- Create an Ubuntu server in AWS.
- SSH into the server using Putty or MobaXterm.
- Install Docker using official documentation.
- Validate the Docker server using system commands.
- Write sample Dockerfiles for Python, Java, and Node.js applications.
- Create Docker images, run containers, and check outputs.
- Experiment with multi-stage Dockerfiles for image compression.
Concepts Covered:
- Docker
- Dockerfile Creation
- Docker Image and Container Creation
4. Terraform
Project 6: Build Infrastructure in AWS
This project will help you learn to write Terraform code to build infrastructure in AWS, including VPCs, subnets, internet gateways, route tables, security groups, and EC2 instances.
Project Tasks:
- Create an Ubuntu server in AWS.
- SSH into the server using Putty or MobaXterm.
- Install Terraform using official documentation.
- Write code for the above infrastructure and apply it in AWS.
Concepts Covered:
- Infrastructure as Code (IaC)
- Terraform
5. CloudFormation
Project 7: Build Infrastructure in AWS
Learn to write CloudFormation templates to build infrastructure in AWS, similar to the Terraform project.
Project Tasks:
- Create templates in an IDE.
- Write code for the infrastructure and apply it in AWS CloudFormation.
Concepts Covered:
- Infrastructure as Code (IaC)
- CloudFormation
6. Kubernetes
Project 8: Setup EKS Cluster in AWS
This project will guide you in setting up Kubernetes in an AWS environment using EKS.
Project Tasks:
- Create an Ubuntu server in AWS.
- SSH into the server using Putty or MobaXterm.
- Install Kubectl and EKSctl using official documentation.
- Validate Kubectl and EKSctl using system commands.
- Create a cluster using the EKSctl command.
- Check the cluster status and explore Kubernetes commands.
Concepts Covered:
- Deployment
- Kubernetes (K8s)
- AWS
- EKSctl and Kubectl (command-line tools)
Project 9: Deploy Nginx Application in K8s using Different Services
Learn how to deploy an Nginx application in Kubernetes and expose it to the outer world using different service types.
Project Tasks:
- Follow similar steps as in Project 8 to set up Kubernetes.
- Deploy an Nginx application and expose it using different service types (ClusterIP, LoadBalancer, NodePort).
Concepts Covered:
- Deployment
- Kubernetes (K8s)
- AWS
- EKSctl and Kubectl
- Kubernetes Commands
7. Prometheus & Grafana
Project 10: OpenSource Monitoring
Learn to utilize open-source monitoring tools to set up a monitoring dashboard.
Project Tasks:
- Create an Ubuntu server in AWS.
- SSH into the server using Putty or MobaXterm.
- Install Prometheus and Grafana using official documentation.
- Validate Prometheus and Grafana using system commands.
- Set up Prometheus as a data source in Grafana and create various dashboards.
Concepts Covered:
- Monitoring
- Prometheus
- Grafana
- Dashboards
These DevOps projects will help you get started as a beginner and will make your learning curve smooth and easy!
In case you want to learn more about DevOps projects and their use cases, consider enrolling for GUVI’s DevOps Course which teaches you everything from scratch and also provides you with an industry-grade certificate!
Conclusion
In conclusion, the best way to learn DevOps is by working on practical projects. Understanding the core fundamentals of each tool and technology is key, as the underlying concepts, workflows, and best practices remain consistent across different organizations.
In DevOps interviews, companies expect candidates to have real-time project experience with tools. However, strong tool knowledge can also make you a competitive candidate, even without extensive project experience.
Did you enjoy this article?