Background: Having used Jenkins in previous roles, I knew the power that it can give us for many aspects within the SDLC. Our main goals for using Jenkins were to speed up build and deployment into our staging environments, test code automatically, including integration tests, and provide added functionality with systems such as Sonarqube.
Goals: Accelerate development to improve our Air Quality System.
Solution & Results: We now have Jenkins deployed within our secure cloud environment. It is currently running on one host, although we are going to be spinning up worker nodes very soon.
We've linked Jenkins with our Github repo, AWS account, and Sonarqube to provide a complete pipeline that tests, builds, and pushes code to our docker repository.
Jenkins has made managing deployments and checking quality so much easier. It definitely ROCKS!
We've brought in AWS plugins, which give us access to AWS services via our keys, allowing us to push our code in a number of ways, either directly to beanstalk or as a docker container in ECR. And it's all easily done with Jenkinsfiles and written with the plugins.
We have three environments within our cloud: two testing and one production. Our alpha testing environment is being continuously pushed to use Jenkins, furthering our capability to continuous integration and continuous deployment.
We've been able to separate build lines and produce multiple versions for all our products. It's been so good, another team in our company is looking to use the same model for their stuff.
Key capabilities included:
The code testing and build process has been a significant bonus to the development team, and we are now looking to further the deployment with automated tagging in our repository with Jenkins.
And we experienced great results: