Cloud Native

Overview

The Cloud Native group of contributors and collaborators focuses on improving Jenkins to run on Cloud environments as a "Cloud Native" application. The improvements are targeted at both existing and new Jenkins users that use, or would prefer to use, Jenkins deployed in one of the cloud providers, or using cloud services for their operation.

(Back to List of Jenkins Special Interest Groups )

Description

This group of contributors and collaborators focuses on improving Jenkins to run on Cloud environments as a "Cloud Native" application.

Target Audience

The improvements are targeted at both existing and new Jenkins users that use, or would prefer to use, Jenkins deployed in one of the cloud providers, or using cloud services for their operation.

Areas for Improvement

There are the following main areas for the SIG:

  • Pluggable storage - Externalizing data being stored in JENKINS_HOME

  • Cloud Native Jenkins - Architecture changes and optimizations towards stateless Jenkins

  • Configuration as Code - Simplify creation of static Jenkins configurations

  • Jenkins Kubernetes Operator - Manage Jenkins On Kubernetes

Pluggable Storage

The current default approach of storing everything into the filesystem is the main reason why Jenkins does not fit the "Cloud Native" model, with features like HA, zero downtime, or pay per use. While there are plenty of plugins that implement parts of this vision, this becomes cumbersome to configure and a usability nightmare for users, as JEP-300 has pointed out. Going towards a model where cloud services are consumed where it makes sense, the overall complexity on operating Jenkins in a cloud or containerized environment is greatly reduced. Other related projects include Jenkins X and Jenkins Evergreen which would greatly benefit from a Cloud Native storage for Jenkins.

There are several clear areas open for improvement, which are summarized here and will be detailed in future documents. A mayor pain point is the usage of local disk as all-purpose storage, which causes issues running on containerized or distributed environments, requiring highly performant filesystems, and all the configuration pain like initial sizing and resizing with downtime. We believe that by using cloud provided services the overall usability, performance and scalability can be improved while enabling new demanded functionality.

See the Pluggable Storage page for more information about the projects. You can also find more information about Pluggable Storage and priorities in this blogpost.

Cloud Native Jenkins

If all the data currently stored in the filesystem is moved to external storage a replicated Jenkins service becomes possible, and the next steps are true High Availability, rolling or canary upgrades and zero downtime.

It also opens a way towards stateless Jenkins. By converting Jenkins to a "stateless" application long awaited features such as high availability and replication would help to operate Jenkins more efficiently, with zero downtime and reducing risk in upgrade operations by using canary or rolling deployments.

Currently there is no JEPs associated with this topic.

Configuration as Code

Configuration as Code related topics belong to the Cloud Native SIG. The Configuration as Code (casc) group consists of contributors and collaborators focuses on improving Jenkins configuration as code related tools and practices.

The target audience are both existing and new Jenkins users that use, or would prefer to use, different ways to configure Jenkins as code.

There is a separate Office Hours meeting conducted every second week on Wednesdays, 9am CEST. Click on a link for an invitation. Anyone can join a meeting, meetings will be recorded via Jenkins Hangouts-on-Air.

Participant links will be posted in the Configuration as Code Gitter Chat within 10 minutes before the meeting starts.

When needed the topics discussed at Office Hours meeting will be reported back at Cloud Native SIG meeting.

Jenkins Kubernetes Operator

Jenkins Kubernetes Operator can realize the automatic operation and maintenance of Jenkins in the kubernetes cluster.

The Jenkins Operator will integrate with the CasC plugin, Groovy init scripts and more to enable configuration control、 stateful control and other possible improvements of Jenkins in the kubernetes cluster.

The operator will receive a yaml file like custom-war-packager yaml config and complete the configuration.

Meetings

There will be regular SIG meetings scheduled weekly on Friday at 4 PM UTC.

Meetings will be conducted, recorded and uploaded to the Jenkins Cloud-Native Youtube playlist

2019-03-19. Status meeting

Status sync-up: Azure storage (JEP-202), Jenkinsfile runner intro, Serverless Jenkins with Jenkinsfile Runner (AWS Lambda and Project Fn/Oracle Cloud).

2019-02-26. Status meeting

Status sync-up: Google Summer of Code projects, Running Jenkins on GCP, Jenkins Kubernetes Operator (JEP-219).

2019-01-14. Status meeting

Status sync-up: Cloud Native Jenkins, direction, Jenkins X and next steps, Google Summer of Code - call for mentors and project ideas.

2018-09-28. Status meeting

Status sync-up: Cloud Native Jenkins updates from DevOps World, External Configuration Storage (JEP-213), Ephemeral Jenkins idea discussion.

2018-09-17. Meeting at the Jenkins Contributor summit

We will have a BoF table at the Jenkins Contributor Summit in San Francisco on Sep 17. There will be no recording, but we will still have public meeting notes from the event

2018-08-16. Status meeting

Status sync-up: External Build Log Storage (JEP-207, JEP-210, JEP-212), External Configuration Storage (JEP-213), Jenkins Configuration-as-Code.

2018-07-31. External Build Log Storage

At this inaugural meeting we had introductions from SIG participants. Then Oleg Nenashev and Jesse Glick presented and discussed the current state of the External Build Log Storage work (JENKINS-38313).

(Back to List of Jenkins Special Interest Groups)