DevOps tools are essential for streamlining the software development and operations processes. These tools support various phases of the DevOps lifecycle, from planning and coding to testing, deployment, and monitoring. These tools enable teams to build, scale, and deliver secure software efficiently, making them indispensable in modern software development.
We offer a number of tools including; GitHub offering version control, CI/CD capabilities, and package management, Webhook Relay facilitating secure webhook handling without exposing applications to the public internet and Jenkins an open-source automation tool primarily used for CI/CD and running automation scripts.
Find out more about the tools we offer below:
DevOps tools
GitHub
GitHub is a developer platform used by over 100+ million developers and 4+ million organisation to build, scale and deliver secure software. It includes several products such as git for version control, GitHub Actions for building/testing/deploying software, and GitHub Packages for storing/sharing packages.
When should I use GitHub?
Consider GitHub when you have a software project you need to manage.
Access and training
Follow the instructions on How do I gain access to the Imperial College London organisation on GitHub knowledge article.
Find out more on our Research Computing Services GitHub webpage.
Check out GitHub’s learning resources at Git and GitHub learning resources.
Webhook Relay
Webhook Relay allows anyone to receive, transform webhooks* and expose web services to the internet without having a public IP or configuring Network Address Translation (NAT) / firewall in a secure way. It does this by having an agent deployed on an internal network which regularly polls a Webhook Relay bucket on the public internet. Whenever a new webhook lands in the bucket, the agent forwards it to the internal application.
*A webhook is a lightweight, event-driven communication method that allows one application to notify another when a specific event occurs, rather than constantly polling for updates. It's essentially a "reverse API" where the application sending the data initiates the communication.
When should I use Webhook Relay?
Consider Webhook Relay when you want to receive webhooks from external systems, but don’t want to expose your application on the public internet.
Access and training
Log a ticket via the ASK portal to request access to Webhook Relay.
Check out Webhook Relay’s documentation.
Jenkins
Jenkins is an open-source automation tool with 1000s of community-built plugins. It’s primarily used for continuous integration and continuous delivery (CI/CD) to build, test and deploy your software projects.
It’s also effective at running automation scripts such as Shell, PowerShell, Python and Groovy.
Jenkins jobs can be triggered ad-hoc, via cron schedules, or using webhooks from 3rd party provides (e.g. GitHub, Azure DevOps, Splunk).
When should I use Jenkins?
Use when you have a software project you need to build, test and deploy, or when you have automation scripts you need to run on a schedule and don’t want to use a script server. Jenkins does a much better job at scheduling jobs compared to something like Windows Scheduler.
Access and training
Log a ticket via the ASK portal to access Jenkins.
Check out the Jenkins documentation and Jenkins tutorials.
There’s also countless training videos/courses available on LinkedIn Learning and YouTube.