SlideShare a Scribd company logo
Continuous Integration   -   an experience report - Harald Søvik Computas AS © Computas AS
Outline The Mats Project Branch- and release management Build servers Experience with Hudson  Thoughts and ideas © Computas AS
The Mats Project Norwegian Food Safety Authority 20-30 developers 4 years of development 6 years of maintenance (15 devs) ~50 integration points Swing and web  © Computas AS
The Mats Project © Computas AS
The Mats Project © Computas AS
The Mats Project Core technologies Java 1.6 Java EE5 JBoss 4.2 Oracle RAC 10g webMethods 6.5 © Computas AS
The Mats Project Dev tools IntelliJ IDEA 8.1 Subversion 1.6 Maven 2.0 Testing tools VMware Windows TS / Citrix Linux © Computas AS
The Mats Project One development branch  scrum 3 teams á 5 devs sprints á 4-5 weeks 10-15 sprints in each release One maintenance branch 1 team á ~7 devs scrumban, kanban, ... release each 3 weeks © Computas AS
Branch- and release management © Computas AS
Branch- and release management Each branch: Build server Reference environment Test environment Verification environment Unit- and integration tests Doc and maven site Tools, build plugins DB scripts Appserver configuration © Computas AS
Cruise Control © Computas AS
Cruise Control Simple interface Monolithic configuration file No connection build/job Some plugins Difficult to express complex build jobs Difficult to access build artifacts .. unable to abort builds ! © Computas AS
CI tools CruiseControl the original Continuum the maven way Luntbuild the challenger Hudson the new kid in town http://groups.google.com/group/EtoE/browse_thread/thread/b6675c74c03a621b © Computas AS
Hudson © Computas AS
© Computas AS
Hudson GUI Lots of files in ~/.hudson Lots of plugins Watch build output Access workspace RSS, email, IM Slave builds More stable ! © Computas AS
 
Hudson jobs Deploy at once deploy to mavenrep pros and cons “ Pipeline build” one job per module primary tests build dependents © Computas AS
Hudson slaves “ Keep the Build Fast” SSH slaves pki, mvn, svn UI testing watir selenium © Computas AS
Hudson: deploy ! Environments Deploy immediately Deploy nightly  Deploy weekly “ Value chain”-tests Automation Single click build Database scripts © Computas AS
Hudson metrics mvn site PMD CPD NCSS surefire findbugs changelog © Computas AS
Hudson and branches Problem: A > B > C B is being branched B’ Can B’ break C without knowing ? © Computas AS
Hudson and branches Solution 1: Yes, of course: B’ should be a job C’ should be a job ! Breakage should be instant ! © Computas AS  A B C B’ C’
Hudson and branches Solution 2: That is not a problem All dependencies should be static Entire tree is private No breakage until merge © Computas AS  A B C B’ C’ A’
Continuous deployment Deploy into production Unit tests Integration tests Performance tests UI tests Then: immediately! © Computas AS
Continuous deployment No interruption to the end user Upgrade ”live” objects Upgrade ”live” configuration Redeploy quicker than change frequency Change must be immutable Trustworthy tests Promote changesets ! © Computas AS
Thanks ! twitter.com/harals [email_address] © Computas AS

More Related Content

PPTX
NodeJS and what is actually does
PDF
Octopus Deploy Tech Fest 2014
PPTX
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
PPSX
Pipeline de deploy com ASP.NET Core e VSTS
PDF
Working in harmony
PPTX
Romulus crisan + radu pascal click'n'deploy
PPTX
Deployment taken seriously with Octopus Deploy and TeamCity
PDF
VueJS Best Practices
NodeJS and what is actually does
Octopus Deploy Tech Fest 2014
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
Pipeline de deploy com ASP.NET Core e VSTS
Working in harmony
Romulus crisan + radu pascal click'n'deploy
Deployment taken seriously with Octopus Deploy and TeamCity
VueJS Best Practices

What's hot (19)

PPTX
Click’n’Deploy | SuperSpeakers @CodeCamp Iasi, 2014
PDF
Aws, play! couch db scaling soa in the cloud
PDF
DevOps, Cloud, and the Death of Backup Tape Changers
PPTX
WorldwidePageTest demo @ #VelocityConf
PDF
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PDF
The WordPress Performance Team
PDF
NodeSummit - MEAN Stack
PDF
Саша Белецкий "Continuous Delivery в продуктовой разработке"
PPTX
Welcome to Azure DevOps
PDF
Nürnberg WooCommerce Talk - 11/24/16
PDF
slide-dnrdw
PPTX
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
PPTX
Continuous delivery applied (RJUG)
PPTX
Deployment of DevOps Environment with CA Solutions
PPTX
MEAN stack
PPTX
WinOps Conf 2016 - Michael Greene - Release Pipelines
PDF
Web Policies & Reporting
PDF
The swiss knife of a word press developer
PDF
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
Click’n’Deploy | SuperSpeakers @CodeCamp Iasi, 2014
Aws, play! couch db scaling soa in the cloud
DevOps, Cloud, and the Death of Backup Tape Changers
WorldwidePageTest demo @ #VelocityConf
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
The WordPress Performance Team
NodeSummit - MEAN Stack
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Welcome to Azure DevOps
Nürnberg WooCommerce Talk - 11/24/16
slide-dnrdw
WinOps Conf 2016 - Jeffrey Snover - The DevOpsification of Windows Server
Continuous delivery applied (RJUG)
Deployment of DevOps Environment with CA Solutions
MEAN stack
WinOps Conf 2016 - Michael Greene - Release Pipelines
Web Policies & Reporting
The swiss knife of a word press developer
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
Ad

Viewers also liked (20)

PDF
Lidings China & Pacific Expertise
PPT
소셜미디어를활용한온라인마케팅
PPT
PDF
Design & Politix Do Not Mix
PPT
Progressivism under taft
PPT
Citizenship and government
PPT
Skills and methods
PDF
Il Caso Stamina sul Web
PPT
ID Presentation
PDF
Amministrative 2011: la popolarità dei candidati su Facebook
PDF
A77 1
PPT
Exponents
PPT
A18 49 & A25 54 Nov One Sheets Lite
PDF
Abitare Sostenibile: Analisi delle Opinioni sul Web
PPT
Peloponnesian War
PPT
A nation divided
PPT
Webcast Wcm
PDF
Servizio Pubblico di Santoro: analisi delle opinioni on line
PPT
IOTW: Overseas Undergraduate Studies, by Syahidah Sahrom
PPT
Women in public life
Lidings China & Pacific Expertise
소셜미디어를활용한온라인마케팅
Design & Politix Do Not Mix
Progressivism under taft
Citizenship and government
Skills and methods
Il Caso Stamina sul Web
ID Presentation
Amministrative 2011: la popolarità dei candidati su Facebook
A77 1
Exponents
A18 49 & A25 54 Nov One Sheets Lite
Abitare Sostenibile: Analisi delle Opinioni sul Web
Peloponnesian War
A nation divided
Webcast Wcm
Servizio Pubblico di Santoro: analisi delle opinioni on line
IOTW: Overseas Undergraduate Studies, by Syahidah Sahrom
Women in public life
Ad

Similar to Continuous Integration (20)

PPTX
Learn About Continuous Integration With Hudson Directly From the Source
PPTX
Hudson@java one2010
PDF
Improving Engineering Processes using Hudson - Spark IT 2010
PPTX
Linuxtag 2012 - continuous delivery - dream to reality
PPTX
Automating the build and deployment of legacy applications
PDF
Continuous Testing
PDF
Hudson at FISL 2009
PPTX
Hudson
 
PDF
Automate your build on Android with Jenkins
PPT
Continuous integration
PDF
Continuous integration (eng)
PDF
Apache Continuum Build, Test, and Release
PDF
Hudson_WhitePaper
PDF
Architecting for the cloud storage build test
PDF
Yale Jenkins Show and Tell
PDF
Recipes for Continuous Delivery (ThoughtWorks Geeknight)
PDF
Getting More from Your CI Server: Taking Hudson to the Next Level
PPTX
Continuous Integration & the Release Maturity Model
PPTX
Functional Continuous Integration with Selenium and Hudson
PPT
DevOps / Agile Tools Seminar 2013
Learn About Continuous Integration With Hudson Directly From the Source
Hudson@java one2010
Improving Engineering Processes using Hudson - Spark IT 2010
Linuxtag 2012 - continuous delivery - dream to reality
Automating the build and deployment of legacy applications
Continuous Testing
Hudson at FISL 2009
Hudson
 
Automate your build on Android with Jenkins
Continuous integration
Continuous integration (eng)
Apache Continuum Build, Test, and Release
Hudson_WhitePaper
Architecting for the cloud storage build test
Yale Jenkins Show and Tell
Recipes for Continuous Delivery (ThoughtWorks Geeknight)
Getting More from Your CI Server: Taking Hudson to the Next Level
Continuous Integration & the Release Maturity Model
Functional Continuous Integration with Selenium and Hudson
DevOps / Agile Tools Seminar 2013

More from Harald Soevik (6)

PPTX
Enhance your Maven plugins with Groovy
PPTX
Modularization, testing and technical debt (in a large agile project)
PDF
Tech challenges in a large scale agile project
PPTX
Scrum skjuler teknisk gjeld
PPT
Maven 2 - more than a build tool
Enhance your Maven plugins with Groovy
Modularization, testing and technical debt (in a large agile project)
Tech challenges in a large scale agile project
Scrum skjuler teknisk gjeld
Maven 2 - more than a build tool

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Empathic Computing: Creating Shared Understanding
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation theory and applications.pdf
Network Security Unit 5.pdf for BCA BBA.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
Empathic Computing: Creating Shared Understanding
The AUB Centre for AI in Media Proposal.docx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Big Data Technologies - Introduction.pptx
Understanding_Digital_Forensics_Presentation.pptx
MYSQL Presentation for SQL database connectivity
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Encapsulation_ Review paper, used for researhc scholars
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology

Continuous Integration

  • 1. Continuous Integration - an experience report - Harald Søvik Computas AS © Computas AS
  • 2. Outline The Mats Project Branch- and release management Build servers Experience with Hudson Thoughts and ideas © Computas AS
  • 3. The Mats Project Norwegian Food Safety Authority 20-30 developers 4 years of development 6 years of maintenance (15 devs) ~50 integration points Swing and web © Computas AS
  • 4. The Mats Project © Computas AS
  • 5. The Mats Project © Computas AS
  • 6. The Mats Project Core technologies Java 1.6 Java EE5 JBoss 4.2 Oracle RAC 10g webMethods 6.5 © Computas AS
  • 7. The Mats Project Dev tools IntelliJ IDEA 8.1 Subversion 1.6 Maven 2.0 Testing tools VMware Windows TS / Citrix Linux © Computas AS
  • 8. The Mats Project One development branch scrum 3 teams á 5 devs sprints á 4-5 weeks 10-15 sprints in each release One maintenance branch 1 team á ~7 devs scrumban, kanban, ... release each 3 weeks © Computas AS
  • 9. Branch- and release management © Computas AS
  • 10. Branch- and release management Each branch: Build server Reference environment Test environment Verification environment Unit- and integration tests Doc and maven site Tools, build plugins DB scripts Appserver configuration © Computas AS
  • 11. Cruise Control © Computas AS
  • 12. Cruise Control Simple interface Monolithic configuration file No connection build/job Some plugins Difficult to express complex build jobs Difficult to access build artifacts .. unable to abort builds ! © Computas AS
  • 13. CI tools CruiseControl the original Continuum the maven way Luntbuild the challenger Hudson the new kid in town http://groups.google.com/group/EtoE/browse_thread/thread/b6675c74c03a621b © Computas AS
  • 16. Hudson GUI Lots of files in ~/.hudson Lots of plugins Watch build output Access workspace RSS, email, IM Slave builds More stable ! © Computas AS
  • 17.  
  • 18. Hudson jobs Deploy at once deploy to mavenrep pros and cons “ Pipeline build” one job per module primary tests build dependents © Computas AS
  • 19. Hudson slaves “ Keep the Build Fast” SSH slaves pki, mvn, svn UI testing watir selenium © Computas AS
  • 20. Hudson: deploy ! Environments Deploy immediately Deploy nightly Deploy weekly “ Value chain”-tests Automation Single click build Database scripts © Computas AS
  • 21. Hudson metrics mvn site PMD CPD NCSS surefire findbugs changelog © Computas AS
  • 22. Hudson and branches Problem: A > B > C B is being branched B’ Can B’ break C without knowing ? © Computas AS
  • 23. Hudson and branches Solution 1: Yes, of course: B’ should be a job C’ should be a job ! Breakage should be instant ! © Computas AS A B C B’ C’
  • 24. Hudson and branches Solution 2: That is not a problem All dependencies should be static Entire tree is private No breakage until merge © Computas AS A B C B’ C’ A’
  • 25. Continuous deployment Deploy into production Unit tests Integration tests Performance tests UI tests Then: immediately! © Computas AS
  • 26. Continuous deployment No interruption to the end user Upgrade ”live” objects Upgrade ”live” configuration Redeploy quicker than change frequency Change must be immutable Trustworthy tests Promote changesets ! © Computas AS
  • 27. Thanks ! twitter.com/harals [email_address] © Computas AS

Editor's Notes

  • #11: -> Important to maintain reproducability
  • #13: Interface also over jmx. Simple to version control config in subversion Difficult to spot errors. Requires all builds to be sane before start. Complex build jobs: pipeline builds
  • #16: several instances. each branch needs one instance if they do changes across the project
  • #17: More difficult to keep config in SVN, and to create a new instance. Easier to create new jobs.
  • #18: Mental break
  • #21: Using maven and hudson to update various environments for testing.
  • #22: PMD – Programming Mistake Detector CPD – Copy Paste Detection NCSS - Non Commenting Source Statements
  • #24: ” Trust parent to detect if he breaks his child” Instant breakage, but a lot of effort during work. Trouble if a lot of artifacts has to be branched.
  • #25: Do not trust parent to break me. ” Do not trust anyone, escpecially not parent” More stable, but postpones trouble.