Implementation of a Continuous Integration and Deployment Pipeline for Containerized Applications in Amazon Web Services Using Jenkins, Ansible and Kubernetes
Artur Cepuc, Robert Botez, Ovidiu Craciun, Iustin-Alexandru Ivanciu, Virgil Dobrotă
Abstract
Nowadays, cloud computing has become the go to solution for most enterprises. This has led to the introduction of DevOps techniques in which developers work closely with network engineers in order to ensure fast and reliable deployment of their applications. This paper presents an entire automated pipeline, starting with detecting changes in the Java-based web application source code, creating new resources in the Kubernetes cluster to host this new version and finally deploying the containerized application in AWS. The solution follows DevOps best practices and relies on Jenkins for the Continuous Integration stage. The novelty herein is that we used Ansible for Continuous Deployment thus increasing the scalability and overall ease of use. The solution ensures zero downtime and proves fast, even though it combines six different technologies and requires very few computational resources.