SlideShare a Scribd company logo
1 of 65
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Case Study
Elad Hirsch, Evgeny Borisov
Israel Direct Insurance (IDI)
www.555.co.il
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI Company products
Internet site
Mobile
CRM
BackOffice
Telephonia
Personal Mail
Infrastructure
(different ways deliveries to client)
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
What do we have in IDI
Teams – 114
IT Teams – 12
IT employees – 121
Computers – 1200
VMs - 280
Server computers – 70
JBoss– 68
Tomcat – 14
Jetty – 8 (only for development)
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
What do we have in IDI
8 databases
1528 tables only in production
3 Brands (555, 9000000, Ynet)
262 wicket pages
3 development branches
– Trunk
– Release-Candidate
– Production
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI development software
Java
Java Script
Delphi
JAM
SQR – Structured Query Reporter
Store Procedures
Web Services
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Today IDI uses…
Maven
Subversion
Artifactory
Jenkins
Jira
Terracotta
Spring
Guice
EJB
Hibernate
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Software structure
Modules – 45
Classes – 28628
Methods – 200396
Code Lines – 2,147,100
155 – third party libraries
599 – third party JARs
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI Activity
2200 Requests to JBoss per minute
2000 Emails from our clients per hour
Emails to our clients per hour
303 Database transactions per second
9*4 Versioned deployments per year
216 Emergency deployments per year
160 Commits per week
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
6 or 7 Years ago…
Development process:
– Write code than commit to SVN
– Build JAR locally than commit JAR
– Build EAR locally from all committed JARs
– Deploy EAR
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Problems
No synchronization between sources
No synchronization between sources and
JARs
Runtime Exceptions as a result of common
JARs change.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI Continues integration
'working copy'
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Testing and JIRA problems
QA Teams can’t know what code
currently deployed.
Dev team leader not sure if JIRA issues
were commit / deployed.
What about failed commits?
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Analyzes SVN log information
Last deployment
date
Find the proper
modules
Validate if JIRA issue is
relevant to current
deployment
Automate the
procedure !!!
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
JIRA & Jenkins Integration
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
JIRA & SVN integration
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Check out the Jenkins build log
to keep track of Jira issues
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
"Real-time linking between your
source code repository and JIRA"
• JIRA Fisheye
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI Continues integration
'working copy'
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Maintain a Single Source Repository
• Subversion as Source Code Management
solution.
Dev/Staging/Production ENV’s.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
How we can check the code
before commits ?
• Developers performs commits without the
relevant JIRA issue.
• Commits are not informative enough.
• Packages are created with First Capital
letter
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Validate that commit message in format IDI-xxxxx
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Maintain a Single Source Repository
• Subversion as Source Code Management
solution.
• Dev/Staging/Production ENV’s.
• Everything you need to do a build:
– Source code.
– Test scripts.
– Properties files.
– Install scripts.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
What about third party libraries ?
• Where should we place our JARs? In svn?
• Выяснить почему неправильно хранить их
вместе.
• Вставить смешную картинку
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI Continues integration
'working copy'
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Take control on your local
and remote artifacts
• Developers cannot decide to add arbitrary
new versions of 3rd parties artifacts such ass
Spring or RestEasy.
• Time and quantity of download artifact can
scale up very fast.
• Control how your developers manage and
download your own Enterprise artifacts.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Artifactory
• Optimize artifact management between
developer workstation and the internet
repositories.
Repository Managers hide several public and internal
repository URLs behind a single point of access.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI Continues integration
'working copy'
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
User based build problems
• Build takes a lot of time.
• As you seen we have many
commits every day.
• Wasting time for every build
kill us.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Broken build dilemma
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Fast build
• Take the burden of full life-cycle build
out of the developer machine
• First notification point for:
– complex compilation problems.
– Code inspection.
– Modules dependencies issues.
• Build that is triggered by SCM change and
does an incremental compile
• Tests are not executed.
• Much faster then Full build.
• Build artifacts don’t deployed to artifactory.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Full build
• Triggered nightly and builds from an empty
directory, fetching all the source code prior
to building.
• Tests are executed.
• Deploy artifacts to Artifactory repository.
• In the event of failure immediate attention
needed to fix the problem ASAP.
• Much slower then Fast build.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Build jobs – in general
– Run predefine validations.
Build failure
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Build jobs – in general
– Run maven clean archives.
– Install dependencyManagement artifact.
– Run maven lifecycle on a refactoring POM
which includes all modules.
– Archive deployables -for use in Remote Test
Servers (HEAD,RELEASE...)
– Run some 3rd party plugins such as:
• SCP plugin.
• Jira integration.
• Code inspection.
• Continues integration game.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Full Build problem
• What about case, when full build failed
•
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Selective Build
• Function as Full build for specific modules
• Deploy mode enable the developer to
create the specific modules with the Archive
deployables (EAR, WAR , Webstart…)
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
parameterized
Jenkins Job
Mojo plugin
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Use real Java annotations
instead of JavaDocs when
writing Maven plugins.
Add ENV info to Astro EAR
Deploy to server
and monitor deployment
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
About 40 deployment
permutations
Complex
deployment
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Narrows Deployer Server
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Once upon a time ….
• Hudson didn’t support parameterized
build.
• We needed UI for complex deployment ENV’s.
• Functions as deployment dashboard.
• Developed new server (“Narrows”):
– Wicket based.
– Installed on Tomcat server.
– Allot of maintenance work (configure new ENV, set
up a new maven plugin , etc..)
– Not our main development concern.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Moving toward the jenkins
• By using parameterized build and new
jenkins plugins we were able to move all
our Narrow based jobs into Jenkins.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Conditional BuildStep Plugin
• Ever wanted to have more control
whether a step should be executed or not?
• Want to reduce the number of jobs doing
nearly the same thing?
• Add a conditional buildstep which acts as a
container. It will allow you to define a
condition controlling the execution of the
step(s).
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Builds overhead
• As you remember we have a deployment
almost every day
• Leads to enormous overhead
How we can reduce the amount
of time handling different version
of our products ?
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Snapshot
deployment
• For rapidly moving code where bug fixes
and enhancements are coming fast.
• Reduce the amount of framework based
checkout and builds.
• Less framework variation to maintain.
Always Moving forward ….
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
IDI Continues integration
'working copy'
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Lazy Developers
How can I enforce my
programmers to enter
Jenkins before and after
commit?
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Using the Jenkins Game plugin
Jenkins email build notifications
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Lazy Developers
What about code review?
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Code Inspection - Warnings Plugin
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Code Inspection - FindBugs plugin
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
If nothing helps
Chuck Norris Plugin will!
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
3 or 4 years ago…
JAM
– Program language using which solid part of CRM
was written and still exists and even expands 
– Final JAM product is EXE file
JAM Deployment:
– Every developer coping his EXE file to production
directory.
Problems:
– Bugs in production
– No tracing mechanism
– No mechanism who checks correct integration
between modules
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Jenkins is not just for java CI
• Source Code Management:
– All locally managed sources will be placed under
new SVN Repository .
• Triggers :
– Check Poll SCM for code changes every minute.
• Build:
– Create buildAllModule.bat [$ENV] to handle JAM
build in a generic way.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
And the same for the
deployment phase
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Mobile CI
Plans for the future
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Hybrid mobile development
• Build the UI with jQuery Mobile CSS 3
and HTML5
• Connect to any REST-based API
Optionally, use any PhoneGap API
• Export the app as mobile Web, Android or iOS
using PhoneGap
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Mobile CI Concerns - Building
• Creating the IOS native artifact (PhoneGap)
need to run under MAC.
• In order to do so we need to create a
Xcode project (using Xcode plugin).
• Our Jenkins server runs over Linux VM and
cannot perform Xcode project.
SO…
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Distributed builds
• Jenkins supports the "master/slave" mode,
where the workload of building projects are
delegated to multiple "slave" nodes.
Jenkins
Linux VM
MAC computer
Execute the Xcode job
using PhoneGap
Define new Phonegap
Xcode mobile job
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
A jenkins Node creation
• Jenkins offers the option to hook other
Jenkins instances as slaves via JNLP.
• The Mac slave will connect to our “Master”
and build all Xcode jobs on it.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Mobile testing…
• Mobile web:
– JavaScript integration tests that invoke
RESTful services on the server using RestEasy.
• Native applications:
– Need to support different Testing ENVS.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Mobile CI Concerns
• Deployment phase:
– No jenkins PhoneGap integration so far.
– Need to support our own Markets / AppStore
for development ENV’s.
Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
Thank You To Our Sponsors
Platinum
Sponsors
Silver
Sponsor

More Related Content

What's hot

Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefitsAmit Manwade
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Docker, Inc.
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDocker, Inc.
 
DCEU 18: Docker Container Security
DCEU 18: Docker Container SecurityDCEU 18: Docker Container Security
DCEU 18: Docker Container SecurityDocker, Inc.
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...All Things Open
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Avanti Patil
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Daniel Krook
 
Containers vs. VMs: It's All About the Apps!
Containers vs. VMs: It's All About the Apps!Containers vs. VMs: It's All About the Apps!
Containers vs. VMs: It's All About the Apps!Steve Wilson
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basicsSourabh Saxena
 
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad AfanahOn-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad AfanahDocker, Inc.
 
Continuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approachContinuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approachJuan Larriba
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...
Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...
Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...Kangaroot
 
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDocker, Inc.
 
DockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times NewsroomDockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times NewsroomDocker, Inc.
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftPatrick Chanezon
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Patrick Chanezon
 
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...Docker, Inc.
 

What's hot (20)

Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and Architecture
 
DCEU 18: Docker Container Security
DCEU 18: Docker Container SecurityDCEU 18: Docker Container Security
DCEU 18: Docker Container Security
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!
 
Containers vs. VMs: It's All About the Apps!
Containers vs. VMs: It's All About the Apps!Containers vs. VMs: It's All About the Apps!
Containers vs. VMs: It's All About the Apps!
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basics
 
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad AfanahOn-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
 
Continuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approachContinuous deployment of polyglot microservices: A practical approach
Continuous deployment of polyglot microservices: A practical approach
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...
Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...
Kubernetes made easy with Docker Enterprise - Tech deep dive on Docker/Kubern...
 
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
 
DockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times NewsroomDockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times Newsroom
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and Microsoft
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
 

Similar to Jenkins 1

Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DAnton Weiss
 
The challenge - testing the oVirt project
The challenge - testing the oVirt projectThe challenge - testing the oVirt project
The challenge - testing the oVirt projectEyal Edri
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsNigel Charman
 
JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsXebiaLabs
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJulien Carsique
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsJames Strong
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...CloudBees
 
Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Vincent Latombe
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
Jenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And GroovyJenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And GroovyDaniel Spilker
 
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyJUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyCloudBees
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptxVgPolampalli
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Andrew Bayer
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkinsmrooney7828
 
Configuration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL PluginConfiguration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL PluginDaniel Spilker
 
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...CloudBees
 

Similar to Jenkins 1 (20)

Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&D
 
The challenge - testing the oVirt project
The challenge - testing the oVirt projectThe challenge - testing the oVirt project
The challenge - testing the oVirt project
 
Jenkins Reviewbot
Jenkins ReviewbotJenkins Reviewbot
Jenkins Reviewbot
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with Jenkins
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ Nuxeo
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
Jenkins & IaC
Jenkins & IaCJenkins & IaC
Jenkins & IaC
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
 
Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Jenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And GroovyJenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And Groovy
 
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyJUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and Groovy
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkins
 
Configuration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL PluginConfiguration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL Plugin
 
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
 

More from Elad Hirsch

Data in the wild west with some DevOps to the rescue
Data in the wild west with some DevOps to the rescueData in the wild west with some DevOps to the rescue
Data in the wild west with some DevOps to the rescueElad Hirsch
 
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADSKNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADSElad Hirsch
 
JaVers (Open Source) - Object auditing and diff framework
 JaVers (Open Source) - Object auditing and diff framework JaVers (Open Source) - Object auditing and diff framework
JaVers (Open Source) - Object auditing and diff frameworkElad Hirsch
 
So you want to write a cloud function
So you want to write a cloud functionSo you want to write a cloud function
So you want to write a cloud functionElad Hirsch
 
Migrate AngularJS to Angular (v5)
Migrate AngularJS  to Angular (v5)Migrate AngularJS  to Angular (v5)
Migrate AngularJS to Angular (v5)Elad Hirsch
 
Refactoring to GO modules
Refactoring to GO modulesRefactoring to GO modules
Refactoring to GO modulesElad Hirsch
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CDElad Hirsch
 
devjam2018 - angular 5 performance
devjam2018  - angular 5 performancedevjam2018  - angular 5 performance
devjam2018 - angular 5 performanceElad Hirsch
 
Jenkins 17 IL - JavaScript CI/CD
Jenkins 17 IL - JavaScript CI/CDJenkins 17 IL - JavaScript CI/CD
Jenkins 17 IL - JavaScript CI/CDElad Hirsch
 
AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project Elad Hirsch
 

More from Elad Hirsch (10)

Data in the wild west with some DevOps to the rescue
Data in the wild west with some DevOps to the rescueData in the wild west with some DevOps to the rescue
Data in the wild west with some DevOps to the rescue
 
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADSKNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
KNATIVE - DEPLOY, AND MANAGE MODERN CONTAINER-BASED SERVERLESS WORKLOADS
 
JaVers (Open Source) - Object auditing and diff framework
 JaVers (Open Source) - Object auditing and diff framework JaVers (Open Source) - Object auditing and diff framework
JaVers (Open Source) - Object auditing and diff framework
 
So you want to write a cloud function
So you want to write a cloud functionSo you want to write a cloud function
So you want to write a cloud function
 
Migrate AngularJS to Angular (v5)
Migrate AngularJS  to Angular (v5)Migrate AngularJS  to Angular (v5)
Migrate AngularJS to Angular (v5)
 
Refactoring to GO modules
Refactoring to GO modulesRefactoring to GO modules
Refactoring to GO modules
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CD
 
devjam2018 - angular 5 performance
devjam2018  - angular 5 performancedevjam2018  - angular 5 performance
devjam2018 - angular 5 performance
 
Jenkins 17 IL - JavaScript CI/CD
Jenkins 17 IL - JavaScript CI/CDJenkins 17 IL - JavaScript CI/CD
Jenkins 17 IL - JavaScript CI/CD
 
AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project 
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Jenkins 1

  • 1. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Case Study Elad Hirsch, Evgeny Borisov Israel Direct Insurance (IDI) www.555.co.il
  • 2. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI Company products Internet site Mobile CRM BackOffice Telephonia Personal Mail Infrastructure (different ways deliveries to client)
  • 3. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf What do we have in IDI Teams – 114 IT Teams – 12 IT employees – 121 Computers – 1200 VMs - 280 Server computers – 70 JBoss– 68 Tomcat – 14 Jetty – 8 (only for development)
  • 4. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf What do we have in IDI 8 databases 1528 tables only in production 3 Brands (555, 9000000, Ynet) 262 wicket pages 3 development branches – Trunk – Release-Candidate – Production
  • 5. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI development software Java Java Script Delphi JAM SQR – Structured Query Reporter Store Procedures Web Services
  • 6. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Today IDI uses… Maven Subversion Artifactory Jenkins Jira Terracotta Spring Guice EJB Hibernate
  • 7. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Software structure Modules – 45 Classes – 28628 Methods – 200396 Code Lines – 2,147,100 155 – third party libraries 599 – third party JARs
  • 8. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI Activity 2200 Requests to JBoss per minute 2000 Emails from our clients per hour Emails to our clients per hour 303 Database transactions per second 9*4 Versioned deployments per year 216 Emergency deployments per year 160 Commits per week
  • 9. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf 6 or 7 Years ago… Development process: – Write code than commit to SVN – Build JAR locally than commit JAR – Build EAR locally from all committed JARs – Deploy EAR
  • 10. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Problems No synchronization between sources No synchronization between sources and JARs Runtime Exceptions as a result of common JARs change.
  • 11. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI Continues integration 'working copy'
  • 12. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Testing and JIRA problems QA Teams can’t know what code currently deployed. Dev team leader not sure if JIRA issues were commit / deployed. What about failed commits?
  • 13. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Analyzes SVN log information Last deployment date Find the proper modules Validate if JIRA issue is relevant to current deployment Automate the procedure !!!
  • 14. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf JIRA & Jenkins Integration
  • 15. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf JIRA & SVN integration
  • 16. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Check out the Jenkins build log to keep track of Jira issues
  • 17. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf "Real-time linking between your source code repository and JIRA" • JIRA Fisheye
  • 18. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI Continues integration 'working copy'
  • 19. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Maintain a Single Source Repository • Subversion as Source Code Management solution. Dev/Staging/Production ENV’s.
  • 20. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf How we can check the code before commits ? • Developers performs commits without the relevant JIRA issue. • Commits are not informative enough. • Packages are created with First Capital letter
  • 21. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Validate that commit message in format IDI-xxxxx
  • 22. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Maintain a Single Source Repository • Subversion as Source Code Management solution. • Dev/Staging/Production ENV’s. • Everything you need to do a build: – Source code. – Test scripts. – Properties files. – Install scripts.
  • 23. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf What about third party libraries ? • Where should we place our JARs? In svn? • Выяснить почему неправильно хранить их вместе. • Вставить смешную картинку
  • 24. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI Continues integration 'working copy'
  • 25. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Take control on your local and remote artifacts • Developers cannot decide to add arbitrary new versions of 3rd parties artifacts such ass Spring or RestEasy. • Time and quantity of download artifact can scale up very fast. • Control how your developers manage and download your own Enterprise artifacts.
  • 26. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Artifactory • Optimize artifact management between developer workstation and the internet repositories. Repository Managers hide several public and internal repository URLs behind a single point of access.
  • 27. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
  • 28. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI Continues integration 'working copy'
  • 29. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf User based build problems • Build takes a lot of time. • As you seen we have many commits every day. • Wasting time for every build kill us.
  • 30. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Broken build dilemma
  • 31. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Fast build • Take the burden of full life-cycle build out of the developer machine • First notification point for: – complex compilation problems. – Code inspection. – Modules dependencies issues. • Build that is triggered by SCM change and does an incremental compile • Tests are not executed. • Much faster then Full build. • Build artifacts don’t deployed to artifactory.
  • 32. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Full build • Triggered nightly and builds from an empty directory, fetching all the source code prior to building. • Tests are executed. • Deploy artifacts to Artifactory repository. • In the event of failure immediate attention needed to fix the problem ASAP. • Much slower then Fast build.
  • 33. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Build jobs – in general – Run predefine validations. Build failure
  • 34. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Build jobs – in general – Run maven clean archives. – Install dependencyManagement artifact. – Run maven lifecycle on a refactoring POM which includes all modules. – Archive deployables -for use in Remote Test Servers (HEAD,RELEASE...) – Run some 3rd party plugins such as: • SCP plugin. • Jira integration. • Code inspection. • Continues integration game.
  • 35. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Full Build problem • What about case, when full build failed •
  • 36. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Selective Build • Function as Full build for specific modules • Deploy mode enable the developer to create the specific modules with the Archive deployables (EAR, WAR , Webstart…)
  • 37. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf parameterized Jenkins Job Mojo plugin
  • 38. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Use real Java annotations instead of JavaDocs when writing Maven plugins. Add ENV info to Astro EAR Deploy to server and monitor deployment
  • 39. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf About 40 deployment permutations Complex deployment
  • 40. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Narrows Deployer Server
  • 41. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Once upon a time …. • Hudson didn’t support parameterized build. • We needed UI for complex deployment ENV’s. • Functions as deployment dashboard. • Developed new server (“Narrows”): – Wicket based. – Installed on Tomcat server. – Allot of maintenance work (configure new ENV, set up a new maven plugin , etc..) – Not our main development concern.
  • 42. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Moving toward the jenkins • By using parameterized build and new jenkins plugins we were able to move all our Narrow based jobs into Jenkins.
  • 43. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Conditional BuildStep Plugin • Ever wanted to have more control whether a step should be executed or not? • Want to reduce the number of jobs doing nearly the same thing? • Add a conditional buildstep which acts as a container. It will allow you to define a condition controlling the execution of the step(s).
  • 44. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
  • 45. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Builds overhead • As you remember we have a deployment almost every day • Leads to enormous overhead How we can reduce the amount of time handling different version of our products ?
  • 46. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Snapshot deployment • For rapidly moving code where bug fixes and enhancements are coming fast. • Reduce the amount of framework based checkout and builds. • Less framework variation to maintain. Always Moving forward ….
  • 47. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf IDI Continues integration 'working copy'
  • 48. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Lazy Developers How can I enforce my programmers to enter Jenkins before and after commit?
  • 49. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Using the Jenkins Game plugin Jenkins email build notifications
  • 50. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Lazy Developers What about code review?
  • 51. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Code Inspection - Warnings Plugin
  • 52. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Code Inspection - FindBugs plugin
  • 53. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf If nothing helps Chuck Norris Plugin will!
  • 54. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf 3 or 4 years ago… JAM – Program language using which solid part of CRM was written and still exists and even expands  – Final JAM product is EXE file JAM Deployment: – Every developer coping his EXE file to production directory. Problems: – Bugs in production – No tracing mechanism – No mechanism who checks correct integration between modules
  • 55. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Jenkins is not just for java CI • Source Code Management: – All locally managed sources will be placed under new SVN Repository . • Triggers : – Check Poll SCM for code changes every minute. • Build: – Create buildAllModule.bat [$ENV] to handle JAM build in a generic way.
  • 56. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf
  • 57. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf And the same for the deployment phase
  • 58. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Mobile CI Plans for the future
  • 59. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Hybrid mobile development • Build the UI with jQuery Mobile CSS 3 and HTML5 • Connect to any REST-based API Optionally, use any PhoneGap API • Export the app as mobile Web, Android or iOS using PhoneGap
  • 60. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Mobile CI Concerns - Building • Creating the IOS native artifact (PhoneGap) need to run under MAC. • In order to do so we need to create a Xcode project (using Xcode plugin). • Our Jenkins server runs over Linux VM and cannot perform Xcode project. SO…
  • 61. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Distributed builds • Jenkins supports the "master/slave" mode, where the workload of building projects are delegated to multiple "slave" nodes. Jenkins Linux VM MAC computer Execute the Xcode job using PhoneGap Define new Phonegap Xcode mobile job
  • 62. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf A jenkins Node creation • Jenkins offers the option to hook other Jenkins instances as slaves via JNLP. • The Mac slave will connect to our “Master” and build all Xcode jobs on it.
  • 63. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Mobile testing… • Mobile web: – JavaScript integration tests that invoke RESTful services on the server using RestEasy. • Native applications: – Need to support different Testing ENVS.
  • 64. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Mobile CI Concerns • Deployment phase: – No jenkins PhoneGap integration so far. – Need to support our own Markets / AppStore for development ENV’s.
  • 65. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf Thank You To Our Sponsors Platinum Sponsors Silver Sponsor