A Comprehensive CI/CD Pipeline and Google Cloud Deployment for Web Application
Nguyen, Hoang Trung (2023)
Nguyen, Hoang Trung
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023111029084
https://urn.fi/URN:NBN:fi:amk-2023111029084
Tiivistelmä
The goal of this project was to explore the term "DevOps" culture in software development and implement a Continuous Integration, Continuous Delivery/Development (CI/CD) pipeline for a web application. The thesis is divided into two main parts: the theoretical background and the project section. The first section will explain the principles of DevOps and its importance in software development. It will also study and analyze the technology stacks related to DevOps. Additionally, this part discusses the tool selection that was used in the project.
The project section focuses on the methodology used to implement the CI/CD pipeline and an overview of the React web application. The pipeline can be initiated by pushing code into to the repository and triggering the CI tool. The code is pulled from the code source management and analyzed. If successful, the containerization tool packages the code as a container and sends it to the container registry. Google Cloud then provides the cloud infrastructure, which is managed by Terraform, an infrastructure as a code tool. Two cloud-based instances serve as the testing and production environments, pulling the container and starting it. A monitoring solution will be deployed to observe the project remotely.
One of the outcomes includes the successful deployment of the pipeline, which consistently delivers software to both environments within three minutes. The second outcome is the implementation of containers in software development. Moreover, the project also successfully applies Google Cloud and Terraform for cloud infrastructure management, demonstrating the benefits of Infrastructure as Code (IaC).
In conclusion, the project achieved reusability through modular design, making it adaptable for future projects. It acts as a foundation for future CI/CD work and potential exploration in DevOps and Cloud Computing.
The project section focuses on the methodology used to implement the CI/CD pipeline and an overview of the React web application. The pipeline can be initiated by pushing code into to the repository and triggering the CI tool. The code is pulled from the code source management and analyzed. If successful, the containerization tool packages the code as a container and sends it to the container registry. Google Cloud then provides the cloud infrastructure, which is managed by Terraform, an infrastructure as a code tool. Two cloud-based instances serve as the testing and production environments, pulling the container and starting it. A monitoring solution will be deployed to observe the project remotely.
One of the outcomes includes the successful deployment of the pipeline, which consistently delivers software to both environments within three minutes. The second outcome is the implementation of containers in software development. Moreover, the project also successfully applies Google Cloud and Terraform for cloud infrastructure management, demonstrating the benefits of Infrastructure as Code (IaC).
In conclusion, the project achieved reusability through modular design, making it adaptable for future projects. It acts as a foundation for future CI/CD work and potential exploration in DevOps and Cloud Computing.