Submitted By Jenkins User Anthony Alberto Alcala Beltran
DevOps team working for a Peru-based digital services company that provides disruptive solutions for business, needed to reimagine their pipeline strategy.
Industry: Information Technology
Programming Language: Python, Terraform HCL
Platform: Linux, AWS Lambda
Version Control System: Bitbucket Server
Build Tool: Pypenv
Community Support: Jenkins Users Google Group or IRC Chat, Jenkins.io websites & blogs
A Jenkins-based tool receives pipeline alerts and, in turn,
determines who to notify.
Background: We have a really big on-premise data center and use multiple monitoring systems with multiple dashboards and views. So, we decided to develop a tool that can receive all alerts and, by their criticism, send notifications to those who need to know. This project was our first step in multiple disruptive technologies: in-cloud, DevOps, FaaS technologies, and more.
We used python for the project while developing the testing and debugging job was in the local computer. And the environmental differences between a local computer and AWS Lambda is really big, so we had the challenge to provide a really easy way to take the code from the git repository used by the developers and post it into multiple AWS Lambda functions corresponding to the architecture.
Goals: Sending notifications to the appropriate decision-maker when any monitoring tool reports an alert.
Solution & Results: We decided to use Jenkins to run our pipelines. The first pipeline deployed our infrastructure in AWS using Terraform. It was easy to set up because Jenkins provides us a really big list of plugins to do everything and interact with every technology that we need. Being easy to deploy the infrastructure also made it easy to destroy it. So developers can create and destroy the environment in mere minutes.
The next pipeline helped developers shift their code to the AWS Lambda functions that were created on the first pipeline. Now they can test code in an environment that is similar to production. This also helps us to do the promotion to the next environment once the code is deployed and successfully tested in Dev.
Overall, we loved Jenkins’ ability to support and interact with every technology via a really big list of plugins. Also, we appreciate the ability to create pipelines with a credential store, quality gates, and more.
You can not argue with these high-quality results:
- deploy and destroy cloud infrastructure in minutes
- help developers to test their code in an environment really similar to production
- automate the process to deploy the code between multiple environment