├── README.md ├── challenge-02.md ├── challenge-04.md ├── challenge-03.md └── challenge-01.md /README.md: -------------------------------------------------------------------------------- 1 | ## DevOps Challenges for ITI students: 2 | 3 | This repo contains tasks for students in Information Technology Institute (ITI). 4 | 5 | The base code we will use to do most of the tasks can be found ib this [repository](https://github.com/MohamedMSaeed/DevOps-Challenge-Demo-Code) 6 | 7 | Fork the code repo and finish you task. 8 | 9 | Good Luck! -------------------------------------------------------------------------------- /challenge-02.md: -------------------------------------------------------------------------------- 1 | ## The challenge 2 | 3 | Build a web server "Use Nginx" that serving anything of your choice and send the web server logs to elasticsearch. 4 | 5 | 6 | ## Demo Code: 7 | 8 | You can create any dummy HTML pages. 9 | 10 | 11 | ## What to deliver? 12 | 13 | - Nginx for serving any web pages of your choice. 14 | - Elasticsearch where Nginx logs will be saved. 15 | - Dashboard of your choice to query elasticsearch data. 16 | - Docker compose file to run all the components at once. 17 | 18 | All Code will be delivered in a github/bitbucket repo. 19 | -------------------------------------------------------------------------------- /challenge-04.md: -------------------------------------------------------------------------------- 1 | ## The challenge 2 | 3 | - User Terraform to create an environment on AWS. 4 | - Use Ansible to install and configure any service on your servers. 5 | 6 | 7 | ### Environment Infrastructure: 8 | 9 | - Create a VPC with a public subnet and a privet subnet. 10 | - Create Two EC2: 11 | - First: Deploy any application that uses any DB of your choice. 12 | - Second: Use it as your DB server. It can't be accessed from public internet 13 | - Create any other needed resources. 14 | 15 | 16 | ## Requirements: 17 | 18 | - Database server can't be accessed from public internet. 19 | - Don't create any AWS resource manually. 20 | 21 | 22 | ## What to deliver? 23 | 24 | All Code will be delivered in a github/bitbucket repo. 25 | -------------------------------------------------------------------------------- /challenge-03.md: -------------------------------------------------------------------------------- 1 | ## The challenge 2 | 3 | - Install kubernetes cluster on your local machine 4 | - Create VMs on your local machine using Vagrant 5 | - Use Ansible to install all what you need on the VMs to create the cluster. 6 | - The cluster should contain at least one master and one node. 7 | - Deploy the application from [challenge-01] 8 | 9 | [challenge-01]: /challenge-01.md 10 | 11 | 12 | ## Demo Code: 13 | 14 | The demo application can be found in this [repository](https://github.com/MohamedMSaeed/DevOps-Challenge-Demo-Code). 15 | 16 | 17 | ## What to deliver? 18 | 19 | - Code used to create k8s cluster. 20 | - You application deployed on the Kubernetes cluster. 21 | - Make your application reachable from outside Kubernetes cluster. 22 | 23 | All Code will be delivered in a github/bitbucket repo. 24 | -------------------------------------------------------------------------------- /challenge-01.md: -------------------------------------------------------------------------------- 1 | ## The challenge 2 | 3 | Subject of this challenge is to setup a production ready and developer friendly Continuous Deployment pipeline for the given demo application. 4 | 5 | The demo application can be found in this [repository](https://github.com/MohamedMSaeed/DevOps-Challenge-Demo-Code). 6 | 7 | The requirements are as follows: 8 | 9 | - Use Jenkins as your CI/CD tool. 10 | - Use Docker as your container technology. 11 | - Setup a continuous deployment pipeline for the containerized demo application. 12 | - It should contain at least a testing and a deployment stage. 13 | - It should only be deployed if the testing stage, which runs the demo applications tests, is successful. 14 | - It should follow the [GitHub flow](https://guides.github.com/introduction/flow/) workflow for the deployment. 15 | - Setup a development environment which mirrors the production environment as closely as possible. 16 | - Think about scalability and performance. 17 | 18 | 19 | ## Demo Code: 20 | 21 | The demo application can be found in this [repository](https://github.com/MohamedMSaeed/DevOps-Challenge-Demo-Code). 22 | 23 | ## Requirements: 24 | 25 | You will need AWS account to finish the task. You can use t2-micro EC2s. Use free tier. 26 | 27 | 28 | ## What to deliver? 29 | 30 | - Access to your CI/CD pipelines. 31 | - Servers' IPs and ports for all environments. 32 | 33 | All Code will be delivered in a github/bitbucket repo. 34 | --------------------------------------------------------------------------------