Infrastructure-as-Code challenge
Explanation
In college, I had a subject called “Cloud Engineering”. This subject made me more familiar with AWS and DevOps.
My teacher gave me, together with three other students, the assignment to create a Gitlab CI/CD pipeline which uses Infrastructure as Code to deploy a web-application to AWS. The pipeline is executed after every merge to the main branch in Gitlab.
The pipeline consists of 4 parts:
- Terraform validation (validates the configuration files in a directory, referring only to the configuration and not accessing any remote services such as remote state, provider APIs, etc.)
- Terraform plan (prepares our configuration settings and see of the settings are correct)
- Terraform apply (executes the Terraform plan, to see if the configuration is set correctly)
- Terraform destroy (destroy everything we’ve done before. Start from scratch)
- In our terraform, we use an S3 bucket to store our tfstate file to do a terraform destroy in the pipeline. All the notifications are send to our Discord channel to see if the job has failed or passed.
As for this project, I did almost everything except for the documentation because the other students where quite incompetent.
Used technologies:
- Gitlab CI/CD Pipelines
- Bash scripting
- Terraform
- Bookstack
- AWS
- EC2 Instances
Applied skills:
- Working in a team
- Splitting up large projects into small, manageable parts.
- Agile & Scrum
![IaC-pipeline](https://milansterkens.com/wp-content/uploads/2023/02/IaC-pipeline-768x398.png)
![Bookstack app](https://milansterkens.com/wp-content/uploads/2023/02/demobookstack-768x372.png)
Previous image
Next image