CICD by Jenkins

Jenkins is an extensible continuous integration and continuous delivery tool, enabling you to manage the build and deployment of a variety of different kinds of applications and infrastructure services.

The team at Servana have been an absolute pleasure to work with. They are incredibly knowledgable and responsive. Their inclusive approach has empowered our engineering team, while allowing them to retain their autonomy. I’d have no hesitation recommending them.

Adam Hoyle, Lead IOS Engineer, LVMH Digital

Jenkins is a specialised tool that is designed to provide software teams from all sorts of backgrounds with the necessary capabilities to build and refine their source code in the best possible way. Based on Java, Jenkins can run on Windows, MacOS and Linux, enabling it to support a vast ecosystem of software development languages and platforms.

Jenkins opensource

Difference between Jenkins Opensource and Cloudbees Jenkins Distribution ?

Cloudbees Jenkins Distribution

The Cloudbees Jenkins Distribution is the platform we base our managed service on. It follows the Jenkins LTS release cycle and the software package contains three extra previously commercial plugins from Cloudbees.

CloudBees Jenkins Advisor

Keeps an eye out for potential issues and makes recommendations for your Jenkins, all free from CloudBees, the Jenkins experts.

CloudBees Assurance Program

Lists the set of plugins, plugin versions and plugin dependencies that CloudBees has tested for compatibility and security.

Beekeeper Upgrade Assistant

Administrative dashboard that works in parallel with the CloudBees Assurance Program to provide a centralized view of the monitored Jenkins plugins, recommended actions, and configuration options available.

Why we choose Jenkins Opensource

Concurrency and Parallelism

Software engineering teams build more software more often whether that’s for building on the trunk, feature branches or pull requests. Without concurrency, these kinds of tasks would take incrementally more time to complete. Concurrency and parallelism is a valuable commodity in the CICD (continuous integration and continuous delivery) space. Jenkins provides the lowest price point for concurrency and parallelism, enabling your teams to build, test and deploy software faster than on any other solution.

Pipelines

For Organisations, they help to standardise the software development process integrating quality control and change management. As a software development manager, you know that any new release has been through a variety of refinements and test stages, and this provides confidence in production. Established pipelines can be adapted to provide the same basic levels of improvement for new teams.

For DevOps Engineers, pipelines add a consistent process for numerous teams building similar kinds of software. The pipeline configuration language is very portable and includes all the necessary functionality to do continuous delivery and continuous deployment. It is possible for DevOps engineers to scale team capabilities by making smart decisions around how they organise logic in the pipeline and we’ve seen this propel organisations undergoing a DevOps transformation.

Tool Versions

For Software Engineers, Jenkins can bootstrap any development tool version with a single line of source code. Various teams can run their versions of a tool dependency, ensuring that you only get the tool version you need inside your pipelines.

Plugins

For Organisations, plugin reduce the time it takes to integrate numerous existing enterprise solutions. We recommend a sober approach to plugin management, but they have enormous benefits for integrating 3rd party systems. Jenkins has sophisticated plugins for integrating a variety of tools and services. Plugins we use often are;

  • Multi-branch pipeline plugin( also referred to as workflow-cps core comprises of multiple plugins)
  • Config history plugin
  • Credentials
  • Kubernetes
  • Jenkins templating engine plugin

Practical Concerns running a Jenkins Server

Running a Jenkins server is complex and does come with a steep learning curve. We recommend any organisation using Jenkins to review the available resources online for security best practice. There are two requirements from a security perspective;

  1. The Jenkins Server should run on a well secured Linux server.
  2. The Jenkins service should run as an unprivileged ‘jenkins’ user and overall system privilege should be restricted.

Once the above concerns are met we also advise;

  1. The Jenkins Server should be hosted on a TLS endpoint only.
  2. Use IP whitelisting
  3. Use a SAML based user management plugin
  4. Perform regular security updates
  5. Limit the use of plugins

If this isn’t something you want to undertake we offer very cost effective managed Jenkins services. Servana is an Official Jenkins Support Partner for EMEA enabling you to get the best possible support.