SlideShare a Scribd company logo
Continuous Integration
by DevOps University
Certified DevOps Foundation Workshop
https://www.devopsuniversity.org/
❖ Workshop Details
❖ Topics Covered in Workshop
➢ Table of contents
❖ DevOps Foundation Certification
➢ Registration for the Exam
➢ Validity of Exam voucher
➢ Certification Exam format
➢ Other details about the Certification
❖ Lab Readiness - Prerequisites for the Workshop
DevOps Foundation Workshop
Agenda
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and
manage projects written in C#, Ruby, Scala, and other languages.
Maven addresses two aspects of building software: how software is built, and its
dependencies.
The Maven project is hosted by the Apache Software Foundation, where it was formerly
part of the Jakarta Project.
What is Maven?
Maven
DevOps integrates
Developers and operation
teams
to improve collaboration and
productivity
automating infrastructure,
automating workflows
measuring application
performance
by
Continuously
Each of these build lifecycles is defined by a different list of build phases, wherein a build phase
represents a stage in the lifecycle.
validate - validate the project is correct.
compile - compile the source code of the project.
test - test the compiled source code using a suitable unit tests.
package - take the compiled code and package it in its distributable
format, such as a JAR.
verify - run any checks on results of integration tests to ensure quality are met
install – Install package locally to be used as dependency for other projects.
deploy - done in the build environment, copies the final package to the remote repository for sharing
with other developers and projects.
Maven Lifecycle
Maven
Source: SlideShare
by
Maven Lifecycle
Maven
Source: SlideShare
by
Jenkins is a free and open source automation server. It helps automate the parts of software
development related to building, testing, and deploying, facilitating continuous integration and
continuous delivery.
The Jenkins project was originally named Hudson, and was renamed after a dispute with Oracle,
which had forked the project and claimed rights to the project name. The Oracle fork, Hudson,
continued to be developed for a time before being donated to the Eclipse Foundation.
Oracle's Hudson is no longer maintained and was announced as obsolete in February 2017.
On April 20, 2016 version 2 was released with the Pipeline plugin enabled by default. The plugin
allows for writing build instructions using a domain specific language based on Apache Groovy.
Jenkins Introduction
Jenkins
Continuous Integration (CI) is a development practice where developers integrate code into a shared
repository frequently, preferably several times a day.
Each integration can then be verified by an automated build and automated tests. While automated
testing is not strictly part of CI it is typically implied.
In software engineering, continuous integration (CI) implements continuous processes of applying
quality control - small pieces of effort, applied frequently.
Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver
it, by replacing the traditional practice of applying quality control after completing all development.
Continuous Integration
Jenkins
Continuous Integration & Testing
Jenkins
Source: Redhat
Continuous delivery is an extension of continuous integration to make sure that you can release new
changes to your customers quickly in a sustainable way.
This means that on top of having automated your testing, you also have automated your release
process and you can deploy your application at any point of time by clicking on a button.
It aims at building, testing, and releasing software with greater speed and frequency.
The approach helps reduce the cost, time, and risk of delivering changes by allowing for more
incremental updates to applications in production.
However, if you truly want to get the benefits of continuous delivery, you should deploy to production
as early as possible.
Continuous Delivery
Jenkins
Continuous Delivery
Jenkins
Source: Redhat
DevOps CI/CD Pipelines
Jenkins
Source: Medium
DevOps CI/CD Pipelines
Jenkins
Below are some of the benefits of Continuous Integration and Continuous Delivery:
1. Smaller Code Changes: One technical advantage of continuous integration and continuous
delivery is that it allows you to integrate small pieces of code at one time.
2. Fault Isolations: Fault isolation refers to the practice of designing systems such that when
an error occurs, the negative outcomes are limited in scope.
3. Faster Release Rate: Failures are detected faster and as such, can be repaired faster, leading
to increasing release rates.
4. More Testing: Implementing Continuous Integration and Delivery ensures more
automated testing which helps to improve the quality of product.
5. Reduce Costs: Automation in the CI/CD pipeline reduces the number of errors that can
take place in the many repetitive steps of CI and CD.
Continuous Integration & Delivery
Benefits
Jenkins
WHO USES JENKINS?
PLUG-INS
Over 600 plug-ins available for customization
Examples:
• JIRA
• Ant
• Maven
• JUnit
• Javadoc
• SSH
• MSBuild
• NUnit
• PowerShell
• Email Notifications
https://wiki.jenkins-ci.org/display/JENKINS/Plugins
JDK JDK 1.8 or above
Memory 2 GB RAM (recommended)
Disk Space No minimum requirement. However, all builds will be stored
on the Jenkins machines, it has to be ensured that sufficient
disk space is available for build storage.
Operating System Jenkins can be installed on Windows, Ubuntu/Debian, Red
Hat/Fedora/CentOS, Mac OS X, openSUSE, FReeBSD,
OpenBSD, Gentoo.
Java Container The WAR file can be run in any container that supports
Servlet 2.4/JSP 2.0 or later.(An example is Tomcat 5).
● Download Jenkins: Open the official website of Jenkins :
https://jenkins.io/index.html
Click on Download Jenkins and download the LTS Release.
● From the command prompt, browse to the directory where the
jenkins.war file is present. Run the following command:
java -jar jenkins.war
● Extraction of the war file is done by an embedded webserver called
winstone.
● Jenkins by default runs on port 8080, but we can run it on different
port by issuing following command:
java -jar jenkins.war --httpPort=8181
Installation & Configuration Jenkins
● Open http://localhost:8080/jenkins to check the Jenkins
Dashboard.
● We can now get the Jenkins-git setup enabled by
clicking the Manage Jenkins option and then click the
Available tab and enter the search keyword ie; git.
● Install the git plugin and restart Jenkins by issuing this
command in the browser:
http://localhost:8080/jenkins/restart
Installation & Configuration Jenkins
There can be multiple users that can operate Jenkins for the
same set of project holding different responsibility.
● So it is very important to restrict access of users so they can
operate on their responsibility in a controlled manner.
● To manage access of users :
● Click on Manage Jenkins from the home page.
● Click on the link Configure global security.
● Under “Access Control” you will see an “Authorization”
label.
Managing Security
● Open http://localhost:8080/jenkins to check the Jenkins
Dashboard.
● We can now get the Jenkins-git setup enabled by
clicking the Manage Jenkins option and then click the
Available tab and enter the search keyword ie; git.
● Install the git plugin and restart Jenkins by issuing this
command in the browser:
http://localhost:8080/jenkins/restart
Installation & Configuration Jenkins
THANK
training@devopsuniversity.org
YOU

More Related Content

Similar to Continous Integration.pptx

DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
Ifunga Ndana
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
MahmoudAlnmr1
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
shahidafrith
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Edureka!
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
PrathapM32
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
motupalli2
 
Edureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdfEdureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdf
relekarsushant
 
Jenkins Pipelining and Gatling Integration
Jenkins Pipelining and  Gatling IntegrationJenkins Pipelining and  Gatling Integration
Jenkins Pipelining and Gatling Integration
Knoldus Inc.
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
Jasmine Conseil
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Gourav Varma
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Kalkey
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
Niklas Heidloff
 
Build server
Build serverBuild server
Build server
Christophe Vanlancker
 
Dev ops continuousdeliveryforcloudproduct
Dev ops continuousdeliveryforcloudproductDev ops continuousdeliveryforcloudproduct
Dev ops continuousdeliveryforcloudproduct
Gopinath Ramachandran
 
Implementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginImplementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins Plugin
Satish Prasad
 
Devops
DevopsDevops
Devops
JyothirmaiG4
 
Jenkins & IaC
Jenkins & IaCJenkins & IaC
Jenkins & IaC
HungWei Chiu
 

Similar to Continous Integration.pptx (20)

Jenkins
JenkinsJenkins
Jenkins
 
DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
 
Edureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdfEdureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdf
 
Jenkins Pipelining and Gatling Integration
Jenkins Pipelining and  Gatling IntegrationJenkins Pipelining and  Gatling Integration
Jenkins Pipelining and Gatling Integration
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
Resume
ResumeResume
Resume
 
Build server
Build serverBuild server
Build server
 
Dev ops continuousdeliveryforcloudproduct
Dev ops continuousdeliveryforcloudproductDev ops continuousdeliveryforcloudproduct
Dev ops continuousdeliveryforcloudproduct
 
Implementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginImplementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins Plugin
 
Devops
DevopsDevops
Devops
 
Jenkins & IaC
Jenkins & IaCJenkins & IaC
Jenkins & IaC
 

Recently uploaded

J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
Divya Somashekar
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 

Recently uploaded (20)

J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 

Continous Integration.pptx

  • 1. Continuous Integration by DevOps University Certified DevOps Foundation Workshop https://www.devopsuniversity.org/
  • 2. ❖ Workshop Details ❖ Topics Covered in Workshop ➢ Table of contents ❖ DevOps Foundation Certification ➢ Registration for the Exam ➢ Validity of Exam voucher ➢ Certification Exam format ➢ Other details about the Certification ❖ Lab Readiness - Prerequisites for the Workshop DevOps Foundation Workshop Agenda
  • 3. Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven addresses two aspects of building software: how software is built, and its dependencies. The Maven project is hosted by the Apache Software Foundation, where it was formerly part of the Jakarta Project. What is Maven? Maven DevOps integrates Developers and operation teams to improve collaboration and productivity automating infrastructure, automating workflows measuring application performance by Continuously
  • 4. Each of these build lifecycles is defined by a different list of build phases, wherein a build phase represents a stage in the lifecycle. validate - validate the project is correct. compile - compile the source code of the project. test - test the compiled source code using a suitable unit tests. package - take the compiled code and package it in its distributable format, such as a JAR. verify - run any checks on results of integration tests to ensure quality are met install – Install package locally to be used as dependency for other projects. deploy - done in the build environment, copies the final package to the remote repository for sharing with other developers and projects. Maven Lifecycle Maven Source: SlideShare by
  • 6. Jenkins is a free and open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. The Jenkins project was originally named Hudson, and was renamed after a dispute with Oracle, which had forked the project and claimed rights to the project name. The Oracle fork, Hudson, continued to be developed for a time before being donated to the Eclipse Foundation. Oracle's Hudson is no longer maintained and was announced as obsolete in February 2017. On April 20, 2016 version 2 was released with the Pipeline plugin enabled by default. The plugin allows for writing build instructions using a domain specific language based on Apache Groovy. Jenkins Introduction Jenkins
  • 7. Continuous Integration (CI) is a development practice where developers integrate code into a shared repository frequently, preferably several times a day. Each integration can then be verified by an automated build and automated tests. While automated testing is not strictly part of CI it is typically implied. In software engineering, continuous integration (CI) implements continuous processes of applying quality control - small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. Continuous Integration Jenkins
  • 8. Continuous Integration & Testing Jenkins Source: Redhat
  • 9. Continuous delivery is an extension of continuous integration to make sure that you can release new changes to your customers quickly in a sustainable way. This means that on top of having automated your testing, you also have automated your release process and you can deploy your application at any point of time by clicking on a button. It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. However, if you truly want to get the benefits of continuous delivery, you should deploy to production as early as possible. Continuous Delivery Jenkins
  • 13.
  • 14. Below are some of the benefits of Continuous Integration and Continuous Delivery: 1. Smaller Code Changes: One technical advantage of continuous integration and continuous delivery is that it allows you to integrate small pieces of code at one time. 2. Fault Isolations: Fault isolation refers to the practice of designing systems such that when an error occurs, the negative outcomes are limited in scope. 3. Faster Release Rate: Failures are detected faster and as such, can be repaired faster, leading to increasing release rates. 4. More Testing: Implementing Continuous Integration and Delivery ensures more automated testing which helps to improve the quality of product. 5. Reduce Costs: Automation in the CI/CD pipeline reduces the number of errors that can take place in the many repetitive steps of CI and CD. Continuous Integration & Delivery Benefits Jenkins
  • 16.
  • 17. PLUG-INS Over 600 plug-ins available for customization Examples: • JIRA • Ant • Maven • JUnit • Javadoc • SSH • MSBuild • NUnit • PowerShell • Email Notifications https://wiki.jenkins-ci.org/display/JENKINS/Plugins
  • 18. JDK JDK 1.8 or above Memory 2 GB RAM (recommended) Disk Space No minimum requirement. However, all builds will be stored on the Jenkins machines, it has to be ensured that sufficient disk space is available for build storage. Operating System Jenkins can be installed on Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo. Java Container The WAR file can be run in any container that supports Servlet 2.4/JSP 2.0 or later.(An example is Tomcat 5).
  • 19. ● Download Jenkins: Open the official website of Jenkins : https://jenkins.io/index.html Click on Download Jenkins and download the LTS Release. ● From the command prompt, browse to the directory where the jenkins.war file is present. Run the following command: java -jar jenkins.war ● Extraction of the war file is done by an embedded webserver called winstone. ● Jenkins by default runs on port 8080, but we can run it on different port by issuing following command: java -jar jenkins.war --httpPort=8181 Installation & Configuration Jenkins
  • 20. ● Open http://localhost:8080/jenkins to check the Jenkins Dashboard. ● We can now get the Jenkins-git setup enabled by clicking the Manage Jenkins option and then click the Available tab and enter the search keyword ie; git. ● Install the git plugin and restart Jenkins by issuing this command in the browser: http://localhost:8080/jenkins/restart Installation & Configuration Jenkins
  • 21. There can be multiple users that can operate Jenkins for the same set of project holding different responsibility. ● So it is very important to restrict access of users so they can operate on their responsibility in a controlled manner. ● To manage access of users : ● Click on Manage Jenkins from the home page. ● Click on the link Configure global security. ● Under “Access Control” you will see an “Authorization” label. Managing Security
  • 22. ● Open http://localhost:8080/jenkins to check the Jenkins Dashboard. ● We can now get the Jenkins-git setup enabled by clicking the Manage Jenkins option and then click the Available tab and enter the search keyword ie; git. ● Install the git plugin and restart Jenkins by issuing this command in the browser: http://localhost:8080/jenkins/restart Installation & Configuration Jenkins