Where does Jenkins fit in the devops pipeline?

Viewed 1690

I don't know where could I fit the jenkins tool in the following devops pipeline:

code -> integrate -> test -> release -> deploy -> operate

Maybe it can be in every steps ?

4 Answers

Jenkins is a build factory. In other words, its primary use is to run tasks that dedicated to build, integrate and deliver applications. It's a typical DEVOPS tool.

Jenkins can be used to build pipelines (sequences of tasks) or to be called from a pipeline (to execute one of the pipeline's tasks).

The great thing about Jenkins is that it integrates nicely with other devops tools:

  • SCM: SVN, Github, Gitlab
  • Build: maven, gradle
  • Test: Cucumber reports
  • Quality: SonarQube
  • Deployment: Octopus Deploy, XL Deploy, Run Deck...

You name it!

However, Jenkins is generally not used to "code" and "operated" applications.

A typical pipeline would be:

Try Pull Request => Build Release Candidate => Deploy RC on Integration => Deploy on Production

This is a over simplified pipeline, just to give an idea of the scope of this tool. A production grade piepline should include security checks, and integrate nicely with human validation when needed.

Jenkins is use for the Build, Test, and Deploy stages of the continuous delivery pipeline.

You can have "n" number of stages in a pipeline that can be configured using Jenkins.

Stages as follows (example) :-

code -> integrate -> test -> release -> deploy -> operate

Currently in the business sector Jenkins is used as follows:

If you are a software developer you need Jenkins for two reasons:

  • To build your project and check that it completes all the requirements concerning the pmd rules, checkstyles, findbugs, etc.
  • To deploy a new environment so to evaluate yourself. You need to see that the changes you made are the proper one and as you wanted them to be.

If you are a tester or a test automation engineer you want it two three reasons:

  • To build your code and check for findbugs, pmds and qaplugs generally
  • To test the software product, of the client or of your company's product
  • To create dynamic environments so to test the changes of the developers (mostly as a regression testing and not as an individual)

If you are a business related, project manager or supervisor you can do the next two actions:

  • Execute the tests so that you can see yourself if the product is working properly
  • Check the reports that Jenkins can give you every after test execution
Related