A list of demo projects completed during the TechWorld with Nana – DevOps Bootcamp. These projects demonstrate practical implementations of core DevOps concepts, tools, and workflows.
Module: 5 - Cloud & IaaS Basics - DigitalOcean
Repository: https://github.com/explicit-logic/iaas-module-5
Technologies: DigitalOcean Linux Java Gradle
Project Description: This project demonstrates how to deploy a Java Gradle application to a DigitalOcean droplet using basic cloud and Linux concepts.
Module: 6 - Artifact Repository Manager with Nexus
Repository: https://github.com/explicit-logic/artifact-module-6
Technologies used: Nexus DigitalOcean Linux Java Gradle Maven
Project Description:
- Install and configure Nexus from scratch on a cloud server
- Create new User on Nexus with relevant permissions
- Java Gradle Project: Build Jar & Upload to Nexus
- Java Maven Project: Build Jar & Upload to Nexus
Module: 7 - Containers with Docker
Repository: https://github.com/explicit-logic/docker-module-7.1
Technologies used: Docker Node.js MongoDB MongoExpress
Project Description:
- Create
Dockerfilefor Nodejs application and build Docker image - Run Nodejs application in Docker container and connect to
MongoDBdatabase container locally. - Also run
MongoExpresscontainer as a UI of theMongoDBdatabase.
Module: 7 - Containers with Docker
Repository: https://github.com/explicit-logic/docker-module-7.5
Technologies used: Docker, Nexus, DigitalOcean, Linux
Project Description:
- Create Docker hosted repository on Nexus
- Create Docker repository role on Nexus
- Configure Nexus, DigitalOcean Droplet and Docker to be able to push to Docker repository
- Build and Push Docker image to Docker repository on Nexus
Module: 7 - Containers with Docker
Repository: https://github.com/explicit-logic/docker-module-7.6
Technologies used: Docker, Nexus, Node.js, MongoDB, MongoExpress
Project Description:
- Copy Docker-compose file to remote server
- Login to private Docker registry on remote server to fetch our app image
- Start our application container with MongoDB and
- MongoExpress services using docker compose
Module: 7 - Containers with Docker
Repository: https://github.com/explicit-logic/docker-module-7.7
Technologies used: Docker, Nexus, DigitalOcean, Linux
Project Description:
- Create and Configure Droplet
- Set up and run Nexus as a Docker container
Module: 8 - Build Automation & CI/CD with Jenkins
Repository: https://github.com/explicit-logic/jenkins-module-8.1
Technologies used: Jenkins, Docker, DigitalOcean, Linux
Project Description:
- Create an Ubuntu server on DigitalOcean
- Set up and run Jenkins as Docker container
- Initialize Jenkins
Module: 8 - Build Automation & CI/CD with Jenkins
Repository: https://github.com/explicit-logic/jenkins-module-8.2
Technologies used: Jenkins, Docker, Linux, Git, Java, Maven
Project Description:
- Install Build Tools (Maven, Node) in Jenkins
- Make Docker available on Jenkins server
- Create Jenkins credentials for a git repository
- Create different Jenkins job types (Freestyle, Pipeline, Multibranch pipeline) for the Java Maven project with Jenkinsfile to:
- a. Connect to the application’s git repository
- b. Build Jar
- c. Build Docker Image
- d. Push to private DockerHub repository
Module: 8 - Build Automation & CI/CD with Jenkins
Repository: https://github.com/explicit-logic/jenkins-module-8.3
Technologies used: Jenkins, Groovy, Docker, Git, Java, Maven
Project Description:
Create a Jenkins Shared Library to extract common build logic:
- Create separate Git repository for Jenkins Shared Library project
- Create functions in the JSL to use in the Jenkins pipeline
- Integrate and use the JSL in Jenkins Pipeline (globally and for a specific project in Jenkinsfile)
Module: 8 - Build Automation & CI/CD with Jenkins
Repository: https://github.com/explicit-logic/jenkins-module-8.4
Technologies used: Jenkins, GitHub, Git, Docker, Java, Maven
Project Description:
- Install GitHub Plugin in Jenkins
- Configure GitHub access token and connection to Jenkins in GitHub project settings
- Configure Jenkins to trigger the CI pipeline, whenever a change is pushed to GitHub
Module: 8 - Build Automation & CI/CD with Jenkins
Repository: https://github.com/explicit-logic/jenkins-module-8.5
Technologies used: Jenkins, Docker, GitHub, Git, Java, Maven
Project Description:
- Configure CI step:Increment patch version
- Configure CI step: Build Java application and clean old artifacts
- Configure CI step: Build Image with dynamic Docker Image Tag
- Configure CI step: Push Image to private DockerHub repository
- Configure CI step: Commit version update of Jenkins back to Git repository
- Configure Jenkins pipeline to not trigger automatically on CI build commit to avoid commit loop
Module: 9 - AWS Services
Repository: https://github.com/explicit-logic/aws-module-9.1
Technologies used: AWS, Docker, Linux
Project Description:
- Create and configure an EC2 Instance on AWS
- Install Docker on remote EC2 Instance
- Deploy Docker image from private Docker repository on EC2 Instance
Module: 9 - AWS Services
Repository: https://github.com/explicit-logic/aws-module-9.2
Technologies used: AWS, Jenkins, Docker, Linux, Git, Java, Maven, Docker Hub
Project Description:
- Prepare AWS EC2 Instance for deployment (Install Docker)
- Create ssh key credentials for EC2 server on Jenkins
- Extend the previous CI pipeline with deploy step to ssh into the remote EC2 instance and deploy newly built image from Jenkins server
- Configure security group on EC2 Instance to allow access to our web application
14. CD - Deploy Application from Jenkins Pipeline on EC2 Instance (automatically with docker-compose)
Module: 9 - AWS Services
Repository: https://github.com/explicit-logic/aws-module-9.3
Technologies used: AWS, Jenkins, Docker, Linux, Git, Java, Maven, Docker Hub
Project Description:
- Install Docker Compose on AWS EC2 Instance
- Create
docker-compose.ymlfile that deploys our web application image - Configure Jenkins pipeline to deploy newly built image using Docker Compose on EC2 server
- Improvement: Extract multiple Linux commands that are executed on remote server into a separate shell script and execute the script from Jenkinsfile
Module: 9 - AWS Services
Repository: https://github.com/explicit-logic/aws-module-9.4
Technologies used: AWS, Jenkins, Docker, Linux, Git, Java, Maven, Docker Hub
Project Description:
- CI step: Increment version
- CI step: Build artifact for Java Maven application
- CI step: Build and push Docker image to Docker Hub
- CD step: Deploy new application version with Docker Compose
- CD step: Commit the version update
Module: 9 - AWS Services
Repository: https://github.com/explicit-logic/aws-module-9.5
Technologies used: Docker, Amazon ECR
Project Description:
- Create private Docker registry on AWS (Amazon ECR)
- Tag and Push Docker image to this private repository
Module: 9 - AWS Services
Repository: https://github.com/explicit-logic/aws-module-9.6
Technologies used: AWS, Linux
Project Description:
- Install & configure AWS CLI to connect to our AWS account
- Create EC2 Instance using AWS CLI with all configurations like Security Group
- Create SSH key pair
- Create IAM resources like User, Group, Policy using the AWS CLI
- List and browse AWS resources using the AWS CLI
Module: 10 - Container Orchestration with Kubernetes
Repository: https://github.com/explicit-logic/kubernetes-module-10.1
Technologies used: Kubernetes, Docker, MongoDB, Mongo Express
Project Description:
- Setup local K8s cluster with Minikube
- Deploy MongoDB and MongoExpress with configuration and credentials extracted into ConfigMap and Secret
Module: 10 - Container Orchestration with Kubernetes
Repository: https://github.com/explicit-logic/kubernetes-module-10.2
Technologies used: Kubernetes, Docker, Mosquitto
Project Description:
- Define configuration and passwords for Mosquitto message broker with ConfigMap and Secret Volume types
Module: 10 - Container Orchestration with Kubernetes
Repository: https://github.com/explicit-logic/kubernetes-module-10.3
Technologies used: K8s, Helm, MongoDB, Mongo Express, DigitalOcean Kubernetes, Linux
Project Description:
- Create a managed K8s cluster with DigitalOcean Kubernetes
- Deploy replicated MongoDB service in DOKS cluster using a Helm chart
- Configure data persistence for MongoDB with DigitalOcean block storage
- Deploy UI client Mongo Express for MongoDB
- Deploy and configure nginx ingress to access the UI application from browser
Module: 10 - Container Orchestration with Kubernetes
Repository: https://github.com/explicit-logic/kubernetes-module-10.4
Technologies used: Kubernetes, Helm, AWS ECR, Docker
Project Description:
- Create Secret for credentials for the private Docker registry
- Configure the Docker registry secret in application Deployment component
- Deploy web application image from AWS ECR in K8s cluster
Module: 10 - Container Orchestration with Kubernetes
Repository: https://github.com/explicit-logic/kubernetes-module-10.5
Technologies used: Kubernetes, Redis, Linux, DigitalOcean Managed Kubernetes
Project Description:
- Create Kubernetes manifests (Deployments and Services) for all microservices of an online shop application
- Deploy the full microservices stack to a DigitalOcean managed Kubernetes cluster
Module: 10 - Container Orchestration with Kubernetes
Repository: https://github.com/explicit-logic/kubernetes-module-10.6
Technologies used: Kubernetes, Helm
Project Description:
- Create 1 shared Helm Chart for all microservices, to reuse common Deployment and Service configurations for the services
Module: 10 - Container Orchestration with Kubernetes
Repository: https://github.com/explicit-logic/kubernetes-module-10.7
Technologies used: Kubernetes, Helm, Helmfile
Project Description:
- Deploy Microservices with Helm
- Deploy Microservices with Helmfile
Module: 11 - Kubernetes on AWS - EKS
Repository: https://github.com/explicit-logic/eks-module-11.1
Technologies used: Kubernetes, AWS EKS
Project Description:
- Configure necessary IAM Roles
- Create VPC with CloudFormation Template for Worker Nodes
- Create EKS cluster (Control Plane Nodes)
- Create Node Group for Worker Nodes and attach to EKS cluster
- Configure Auto-Scaling of worker nodes
- Deploy a sample application to EKS cluster
Module: 11 - Kubernetes on AWS - EKS
Repository: https://github.com/explicit-logic/eks-module-11.2
Technologies used: Kubernetes, AWS EKS, AWS Fargate
Project Description:
- Create Fargate IAM Role
- Create Fargate Profile
- Deploy an example application to EKS cluster using Fargate profile
Module: 11 - Kubernetes on AWS - EKS
Repository: https://github.com/explicit-logic/eks-module-11.3
Technologies used: Kubernetes, AWS EKS, eksctl, Linux
Project Description:
- Create EKS cluster using eksctl tool that reduces the manual effort of creating an EKS cluster
Module: 11 - Kubernetes on AWS - EKS
Repository: https://github.com/explicit-logic/eks-module-11.4
Technologies used: Kubernetes, Jenkins, AWS EKS, Docker, Linux
Project Description:
- Install
kubectlandaws-iam-authenticatoron a Jenkins server - Create
kubeconfigfile to connect to EKS cluster and add it on Jenkins server - Add AWS credentials on Jenkins for AWS account authentication
- Extend and adjust
Jenkinsfileof the previous CI/CD pipeline to configure connection to EKS cluster
Module: 11 - Kubernetes on AWS - EKS
Repository: https://github.com/explicit-logic/eks-module-11.5
Technologies used: Kubernetes, Jenkins, DigitalOcean Kubernetes, Docker, Linux
Project Description:
- Create K8s cluster on DigitalOcean
- Install
kubectlas Jenkins Plugin - Adjust
Jenkinsfileto use Plugin and deploy to DigitalOcean Kubernetes cluster
Module: 11 - Kubernetes on AWS - EKS
Repository: https://github.com/explicit-logic/eks-module-11.6
Technologies used: Kubernetes, Jenkins, AWS EKS, Docker Hub, Java, Maven, Linux, Docker, Git
Project Description:
- Write K8s manifest files for Deployment and Service configuration
- Integrate deploy step in the CI/CD pipeline to deploy newly built application image from DockerHub private registry to the EKS cluster
- So the complete CI/CD project we build has the following configuration:
- a. CI step: Increment version
- b. CI step: Build artifact for Java Maven application
- c. CI step: Build and push Docker image to DockerHub
- d. CD step: Deploy new application version to EKS cluster
- e. CD step: Commit the version update
Module: 11 - Kubernetes on AWS - EKS
Repository: https://github.com/explicit-logic/eks-module-11.7
Technologies used: Kubernetes, Jenkins, AWS EKS, AWS ECR, Java, Maven, Linux, Docker, Git
Project Description:
- Create private AWS ECR Docker repository
- Adjust Jenkinsfile to build and push Docker Image to AWS ECR
- Integrate deploying to K8s cluster in the CI/CD pipeline from AWS ECR private registry
- So the complete CI/CD project we build has the following configuration:
- a.CI step:Increment version
- b.CI step: Build artifact for Java Maven application
- c.CI step: Build and push Docker image to AWS ECR
- d.CD step: Deploy new application version to EKS cluster
- e.CD step: Commit the version update
Module: 12 - Infrastructure as Code with Terraform
Repository: https://github.com/explicit-logic/terraform-module-12.1
Technologies used: Terraform, AWS, Docker, Linux, Git
Project Description:
- Create TF project to automate provisioning AWS Infrastructure and its components, such as: VPC, Subnet, Route Table, Internet Gateway, EC2, Security Group
- Configure TF script to automate deploying Docker container to EC2 instance
Module: 12 - Infrastructure as Code with Terraform
Repository: https://github.com/explicit-logic/terraform-module-12.2
Technologies used: Terraform, AWS, Docker, Linux, Git
Project Description:
- Divide Terraform resources into reusable modules
Module: 12 - Infrastructure as Code with Terraform
Repository: https://github.com/explicit-logic/terraform-module-12.3
Technologies used: Terraform, AWS EKS, Docker, Linux, Git
Project Description:
- Automate provisioning EKS cluster with Terraform
Module: 12 - Infrastructure as Code with Terraform
Repository: https://github.com/explicit-logic/terraform-module-12.5
Technologies used: Terraform, Jenkins, Docker, AWS, Git, Java, Maven, Linux, Docker Hub
Project Description:
Integrate provisioning stage into complete CI/CD Pipeline to automate provisioning server instead of deploying to an existing server.
- Create SSH Key Pair
- Install Terraform inside Jenkins container
- Add Terraform configuration to application’s git repository
- Adjust Jenkinsfile to add “provision” step to the CI/CD pipeline that provisions EC2 instance
- So the complete CI/CD project we build has the following configuration:
- a.CI step: Build artifact for Java Maven application
- b.CI step: Build and push Docker image to Docker Hub
- c.CD step: Automatically provision EC2 instance using TF
- d.CD step: Deploy new application version on the provisioned EC2 instance with Docker Compose
Module: 12 - Infrastructure as Code with Terraform
Repository: https://github.com/explicit-logic/terraform-module-12.4
Technologies used: Terraform, AWS S3
Project Description:
- Configure Amazon S3 as remote storage for Terraform state