Building, Deploying, and Automating Everything
Submitted By Jenkins User Christopher Duffy
The DevOps Life turns to Jenkins to automate its blogging website.
Organization: The DevOps Life, https://thedevopslife.com/
Programming Language: Node.js, Python, GO
Platform: Android, Docker/Kubernetes, Windows
Version Control System: GitHub
Build Tool: Maven
Community Support: Jenkins.io websites & blogs
A DevOps aficionado turns to Jenkins to
automate all deployments and backups of the application and databases.
Background: I am a DevOps and Automation Engineer with a background in software development and a love of all things technology. My website, The DevOps Life, is an account of the tech I come across in my day-to-day life, the challenges and ideas I explore with friends and coworkers, and interesting finds. This is my Jenkins story.
Goals: The goal of this project was to establish an awesome blogging website that could deliver quality content to end users. We were hoping to create an automated way of backing up our databases, code, and any offline files.
Solution & Results:
Leveraging Jenkins, we created a database backup automation that allowed us to capture routine backups. From there, we had Jenkins store these backups in a cloud blob storage account with another provider in case of a disaster recovery effort.
Our next goal was to backup any code, content, and files that were necessary as part of any recovery or data loss recovery for the site. To achieve this, we leveraged Jenkins to capture a backup and store them in source control for us. We were able to set tags for versions and dates and maintain the source control history of the changes between backups.
These efforts combined allow us to recover in case of a failure or breach of our systems.
For this project, we use the Cron plugin to set up our backups on a schedule. From that point, we deploy the extended email plugin and Slack plugin. Doing so triggers ChatOps to notify us whenever backups occur and alert the entire team when they fail. We will also rely on the shell and ssh publisher plugin to interact and execute commands against our external system to perform the operations.
Jenkins gave us an easy-to-use and extensible way to create and execute automation to ensure our project’s ultimate success. We hope to leverage Jenkins in the future for different tutorial and automation tasks with anything we work on.
We’re loving our results so far:
- Automated database backups that get stored in the cloud.
- Automated CMS code and configuration backups to source control.
- Notifications of whenever backups are not successful.