Deploying Software in the Cloud with CICD Pipelines
Ghimire, Ramesh (2020)
Avaa tiedosto
Lataukset:
Ghimire, Ramesh
2020
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020092320652
https://urn.fi/URN:NBN:fi:amk-2020092320652
Tiivistelmä
This thesis deals with the practice of software deployment using Continuous Integration and Continuous Delivery pipelines. It introduces modern practices related to System Development Life Cycle such as version control, testing, delivery and deployment of software in the cloud managed under Agile frame work and demonstrates an example which can be picked up by any software developer without a hassle.
Emergence of cloud service providers and evergrowing usage of their offerings have shifted the information technology landscape and created more opportunities for software developers and usage of CICD Pipelines have become a standard industry practice. There are different approaches to CICD in the industrial settings and different companies have different tools and workflow set up to run this process. Some companies have dedicated departments for example, DevOps engineers are those technicians who configure the different moving parts of CICD pipeline. However, any small development team can operate with DevOps mentality themselves using the available tools and technology and DevOps principle promotes this. This thesis demonstrates the concepts and example implementation of CI/CD pipelines and the emphasis is given to deploying the software in the cloud using as less tools as possible so that it integrates well with the workflow of software developers and small companies as well as does not incur additional large sum of costs. To do so, theoretical background as well as different approaches and possibilities of the CI/CD Pipeline implementations for software deployment in the cloud are explored from available academic sources. This includes examining the diversity of technology and choices for a software developer, followed by implementing an example solution. And for the purpose of this implementation, AWS cloud and Bitbucket git repository are used. AWS provides a wide range of cloud services for different purposes including software deployment and Bitbucket provides git version control services in the cloud. Git is a technology used for software version control by developers. These tools are not the only ones available for software developers and the demonstrated approach can easily be adapted to any other alternative tools of choice.
Emergence of cloud service providers and evergrowing usage of their offerings have shifted the information technology landscape and created more opportunities for software developers and usage of CICD Pipelines have become a standard industry practice. There are different approaches to CICD in the industrial settings and different companies have different tools and workflow set up to run this process. Some companies have dedicated departments for example, DevOps engineers are those technicians who configure the different moving parts of CICD pipeline. However, any small development team can operate with DevOps mentality themselves using the available tools and technology and DevOps principle promotes this. This thesis demonstrates the concepts and example implementation of CI/CD pipelines and the emphasis is given to deploying the software in the cloud using as less tools as possible so that it integrates well with the workflow of software developers and small companies as well as does not incur additional large sum of costs. To do so, theoretical background as well as different approaches and possibilities of the CI/CD Pipeline implementations for software deployment in the cloud are explored from available academic sources. This includes examining the diversity of technology and choices for a software developer, followed by implementing an example solution. And for the purpose of this implementation, AWS cloud and Bitbucket git repository are used. AWS provides a wide range of cloud services for different purposes including software deployment and Bitbucket provides git version control services in the cloud. Git is a technology used for software version control by developers. These tools are not the only ones available for software developers and the demonstrated approach can easily be adapted to any other alternative tools of choice.