Jenkins User Conference   Paris, 17 April 2012   #jenkinsconf


       Using Jenkins as Native Packages
       Factory


                     Henri Gomez
                     Axway
                          http://www.axway.com
Jenkins User Conference    Paris, 17 April 2012   #jenkinsconf



   About me
   !     CI Architect @ Axway
   !     Was Senior Ops Director
   !     Was Developer, TL and Architect
   !     JPackage Project Founder
   !     OpenJDK 7 & 8 packages for OSX
   !     ASF Member (Tomcat & XMLRPC)
Jenkins User Conference      Paris, 17 April 2012   #jenkinsconf



   Native Packages

   !     Heart of OS applications stack
   !     Dependency handling
   !     Automatic or selective updates
   !     Widely used by Ops
   !     Well suited for Cloud based Operations
Jenkins User Conference    Paris, 17 April 2012   #jenkinsconf



   Linux Packaging
   !   RPM (Redhat Package Manager)
      –  RHEL/CentOS/ Fedora
      –  SLES/OpenSuse
      –  Mandriva
   !   DEB
      –  Debian
      –  Ubuntu
Jenkins User Conference        Paris, 17 April 2012   #jenkinsconf



   Package Definition
   !   A file(.rpm, .deb)
   !   An archive (Datas & Programs)
   !   Executed code at install, update or
       remove time.
   !   Architecture related.
      –  Intel, ARM, PowerPC
      –  32 or 64bits
   !   Or architecture neutral
      –  Java application
      –  Ruby library
Jenkins User Conference       Paris, 17 April 2012   #jenkinsconf



   Package Benefits
   !     Describing requirement
   !     Provide programs, datas and settings
   !     Registering in system service(ie: logrotate)
   !     Enforcing dedicated run account
   !     Total control over runtime cycle-life
        –  Installation
        –  Update
        –  Uninstallation

       A package is much more than an archive
Jenkins User Conference      Paris, 17 April 2012   #jenkinsconf



   Maven common facts
   !   DSL build based
   !   Dependency Management
      –  At build time
      –  At deploy time
   !   Packages repositories
      –  In local mode
      –  Remotely via HTTP
   !   Nexus and Artifactory could act as RPM
       repositories
Jenkins User Conference             Paris, 17 April 2012   #jenkinsconf



   From application to RPM
   !   2 approachs

      –  OS Vendor way:
         •  Rebuilt from sources tarballs
         •  Require tarballs in build path


      –  Enterprise way:
         •  Rebuilt from Binaries (stored in Artifacts Repository)
         •  Avoid duplicate processing
         •  Trusting your delivery process
Jenkins User Conference      Paris, 17 April 2012   #jenkinsconf



   RPM building – SPEC FILE
   !     Sources
   !     Architecture
   !     Build Requirements
   !     Deploy Requirements
   !     Build
   !     Assembly
   !     Contents locations and rights
Jenkins User Conference      Paris, 17 April 2012   #jenkinsconf



   Jenkins as a Packages Factory
   !   Jenkins Master
      –  Get contents from SCM (Subversion, Git)
      –  Prepare build environment
      –  Trigger build on slaves


   !   Jenkins Slaves
      –  One slave by target (OS/Arch) platform
      –  Confident in OS compatibility
      –  Deployment on RPM repositories
Jenkins User Conference           Paris, 17 April 2012   #jenkinsconf



   Axway Packages Factory
   !   Builder
      –  5 target OS
         •  CentOS 5 / 6 in 32 and 64 bits
         •  OpenSuse 12.1 in 32 and 64 bits
         •  Suse SLES 11 in 64 bits


   !   Distributor
      –  Apache HTTPd server
      –  Packages Repositories hosting and servicing
         •  4 repos for CentOS 5/6 in 32/64 bits
         •  1 repo for OpenSuse 12.1 32/64 and SLES 11.
Jenkins User Conference                Paris, 17 April 2012            #jenkinsconf



   Axway Packages Factory Builder



                                                       CentOS 5 32 bits

                                                       CentOS 5 64 bits

                                                       CentOS 6 32 bits

                                                       CentOS 6 64 bits

                                                       OpenSuse 12.1 32 bits

                                                       OpenSuse 12.1 64 bits

                                                       Suse SLES 11 64 bits




               i5 3.0Ghz, 16GB RAM, 500Gb HD
                    Host OS OpenSuse 12.1
                       VirtualHost 4.1.8
                         7 Hosted VMs
Jenkins User Conference          Paris, 17 April 2012   #jenkinsconf



   Jenkins Factory in-depth
   !   Builder
      –  take control on slaves via SSH
      –  Trigger build jobs after SCM change
      –  Trigger jobs on 5/6 VMs via Matrix Plugin

   !   Slaves
      –  Build package on OS / Arch
      –  Send build packages to distributor via SCP


   !   Distributor
      –  Reindex repositories via cron if something change
Jenkins User Conference            Paris, 17 April 2012               #jenkinsconf



   Jenkins Factory in-depth



                                                              Repositories
                                                          reindexed by cron
                                                          if update detected




             Parallel build on
                                   Build binaries
              slaves (Matrix)
                                 uploaded via SCP




                                                                      New packages
                                                                   immediatly available
                                                                     remotely via HTTP
Jenkins User Conference   Paris, 17 April 2012   #jenkinsconf



   Initial method – 1 Job / OS-Arch
Jenkins User Conference   Paris, 17 April 2012   #jenkinsconf



   Initial method – 1 Job / OS-Arch
Jenkins User Conference   Paris, 17 April 2012   #jenkinsconf



   Final method – 1 Job with Matrix
Jenkins User Conference   Paris, 17 April 2012   #jenkinsconf



   Final method – 1 Job with Matrix
Jenkins User Conference             Paris, 17 April 2012    #jenkinsconf



   Packages Tricks
   ! CentOS/RHEL use one repo by arch
      –  One repository for x86 32bits with native/noarch
      –  One repository for x86 64bits with native/noarch

   è One slave by architecture for native
   è Use one slave builder by arch even for noarch packages

   ! OpenSuse/SLES use a common repository
      –  One dir for x86 32bits
      –  One dir for x86 64bits
      –  One dir for noarch

   è  One slave by architecture for native
   è  You could use 32 or 64 bits builder for noarch packages
Jenkins User Conference   Paris, 17 April 2012   #jenkinsconf



   Thank You To Our Sponsor

More Related Content

PDF
Containers technologies
PDF
DockerCon SF 2015: Docker Security
PDF
Tokyo OpenStack Summit 2015: Unraveling Docker Security
PDF
Evoluation of Linux Container Virtualization
PDF
Distro Recipes 2013 : Debian and quality assurance
PDF
Distro Recipes 2013 : Make Debian and compiler agnostic
PDF
How Secure Is Your Container? ContainerCon Berlin 2016
PPT
Containers 101
Containers technologies
DockerCon SF 2015: Docker Security
Tokyo OpenStack Summit 2015: Unraveling Docker Security
Evoluation of Linux Container Virtualization
Distro Recipes 2013 : Debian and quality assurance
Distro Recipes 2013 : Make Debian and compiler agnostic
How Secure Is Your Container? ContainerCon Berlin 2016
Containers 101

What's hot (20)

PPTX
Linux Container Brief for IEEE WG P2302
PPTX
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
PDF
Container Storage Best Practices in 2017
PDF
LinuxKit Deep Dive
PDF
Container Security: How We Got Here and Where We're Going
PDF
Pluggable Infrastructure with CI/CD and Docker
PDF
runC: The little engine that could (run Docker containers) by Docker Captain ...
PDF
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
PDF
Docker based-pipelines
PDF
App container rkt
PPTX
Intro to Docker and clustering with Rancher from scratch
PDF
Thinking inside the box (shared)
PDF
Docker_AGH_v0.1.3
PDF
Microservices using relocatable Docker containers
PDF
Upgrading CentOS on the Facebook fleet
ODP
Docker engine - Indroduc
PDF
Docker, Linux Containers, and Security: Does It Add Up?
PDF
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
PDF
Tech Talk - Vagrant
PPTX
Docker Presentation
Linux Container Brief for IEEE WG P2302
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Container Storage Best Practices in 2017
LinuxKit Deep Dive
Container Security: How We Got Here and Where We're Going
Pluggable Infrastructure with CI/CD and Docker
runC: The little engine that could (run Docker containers) by Docker Captain ...
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
Docker based-pipelines
App container rkt
Intro to Docker and clustering with Rancher from scratch
Thinking inside the box (shared)
Docker_AGH_v0.1.3
Microservices using relocatable Docker containers
Upgrading CentOS on the Facebook fleet
Docker engine - Indroduc
Docker, Linux Containers, and Security: Does It Add Up?
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Tech Talk - Vagrant
Docker Presentation
Ad

Viewers also liked (9)

PDF
From ci to cd - LavaJug 2012
PDF
Continuous Integration for your Android projects
PDF
Gradle build automation tool
PDF
Android + jenkins
PPTX
20160915 automation with_gradle
PDF
Let’s start Continuous Integration with jenkins
PDF
From ci to cd
PPTX
Jenkins - From Continuous Integration to Continuous Delivery
PPTX
Jenkins For One
From ci to cd - LavaJug 2012
Continuous Integration for your Android projects
Gradle build automation tool
Android + jenkins
20160915 automation with_gradle
Let’s start Continuous Integration with jenkins
From ci to cd
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins For One
Ad

Similar to Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012 (20)

PPTX
Moby Open Source Summit North America 2017
PDF
Containerize! Between Docker and Jube.
PDF
Building distribution packages with Docker
PPTX
Docker - Demo on PHP Application deployment
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PPTX
Best Practices for Mission-Critical Jenkins
PDF
codemotion-docker-2014
PDF
PPTX
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
PPTX
WSO2Con USA 2015: Revolutionizing WSO2 PaaS with Kubernetes & App Factory
ODP
Juc paris olivier lamy talk
PDF
Docker-v3.pdf
PDF
Modern IoT and Embedded Linux Deployment - Berlin
PDF
HLayer / Docker and its ecosystem
PDF
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
PPTX
Going literate in Amadeus JUC Berlin June 25th 2014
PPTX
I wanna talk about nsenter
PPTX
Using MySQL Containers
PPT
Develop with linux containers and docker
PDF
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Moby Open Source Summit North America 2017
Containerize! Between Docker and Jube.
Building distribution packages with Docker
Docker - Demo on PHP Application deployment
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Best Practices for Mission-Critical Jenkins
codemotion-docker-2014
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
WSO2Con USA 2015: Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Juc paris olivier lamy talk
Docker-v3.pdf
Modern IoT and Embedded Linux Deployment - Berlin
HLayer / Docker and its ecosystem
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Going literate in Amadeus JUC Berlin June 25th 2014
I wanna talk about nsenter
Using MySQL Containers
Develop with linux containers and docker
Revolutionizing WSO2 PaaS with Kubernetes & App Factory

More from Henri Gomez (19)

PDF
Devoxx France 2025 - Platform Engineering - DevOps est maintenant majeur.pdf
PDF
Devoxx France 2025 - Et si vous interrogiez le recruteur.pdf
PDF
Michelin Tech Days 2018 - Papa, c'est quoi ce fichier de log ?
PDF
DevOps Rex - 2024 - Mise en oeuvre de chaînes industrielles pour la gestion ...
PDF
SRE - Mythes et Réalités - Voxxed 2024.pdf
PDF
SRE - Mythes et Réalités - Volcamp 2023.pdf
PDF
20200225 bbl-docker-packaging-natif
PDF
Je s'appelle Glowroot - LyonJUG Oct 2018
PDF
Glowroot, le petit APM qui vous veut du bien
PDF
Glowroot, le petit APM qui vous veut du bien
PDF
20120110 paris jug-packaging-natif
PDF
20111220 lyon jug-packaging-natif
PDF
20111220 lyon jug-devops-culture
PDF
20111205 breizh jug-devops
PDF
20111205 breizh jug-packaging-natif
PDF
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
PDF
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
PDF
DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
PDF
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
Devoxx France 2025 - Platform Engineering - DevOps est maintenant majeur.pdf
Devoxx France 2025 - Et si vous interrogiez le recruteur.pdf
Michelin Tech Days 2018 - Papa, c'est quoi ce fichier de log ?
DevOps Rex - 2024 - Mise en oeuvre de chaînes industrielles pour la gestion ...
SRE - Mythes et Réalités - Voxxed 2024.pdf
SRE - Mythes et Réalités - Volcamp 2023.pdf
20200225 bbl-docker-packaging-natif
Je s'appelle Glowroot - LyonJUG Oct 2018
Glowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bien
20120110 paris jug-packaging-natif
20111220 lyon jug-packaging-natif
20111220 lyon jug-devops-culture
20111205 breizh jug-devops
20111205 breizh jug-packaging-natif
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011

Recently uploaded (20)

PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PDF
Advancing precision in air quality forecasting through machine learning integ...
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Auditboard EB SOX Playbook 2023 edition.
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PDF
Human Computer Interaction Miterm Lesson
PDF
LMS bot: enhanced learning management systems for improved student learning e...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
4 layer Arch & Reference Arch of IoT.pdf
Build Real-Time ML Apps with Python, Feast & NoSQL
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
Advancing precision in air quality forecasting through machine learning integ...
Module 1 Introduction to Web Programming .pptx
Auditboard EB SOX Playbook 2023 edition.
Co-training pseudo-labeling for text classification with support vector machi...
Lung cancer patients survival prediction using outlier detection and optimize...
A symptom-driven medical diagnosis support model based on machine learning te...
SGT Report The Beast Plan and Cyberphysical Systems of Control
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
Human Computer Interaction Miterm Lesson
LMS bot: enhanced learning management systems for improved student learning e...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Introduction to MCP and A2A Protocols: Enabling Agent Communication
Early detection and classification of bone marrow changes in lumbar vertebrae...
Rapid Prototyping: A lecture on prototyping techniques for interface design

Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012

  • 1. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Using Jenkins as Native Packages Factory Henri Gomez Axway http://www.axway.com
  • 2. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf About me !   CI Architect @ Axway ! Was Senior Ops Director ! Was Developer, TL and Architect ! JPackage Project Founder ! OpenJDK 7 & 8 packages for OSX !   ASF Member (Tomcat & XMLRPC)
  • 3. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Native Packages !   Heart of OS applications stack !   Dependency handling !   Automatic or selective updates !   Widely used by Ops !   Well suited for Cloud based Operations
  • 4. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Linux Packaging !   RPM (Redhat Package Manager) –  RHEL/CentOS/ Fedora –  SLES/OpenSuse –  Mandriva !   DEB –  Debian –  Ubuntu
  • 5. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Package Definition !   A file(.rpm, .deb) !   An archive (Datas & Programs) !   Executed code at install, update or remove time. !   Architecture related. –  Intel, ARM, PowerPC –  32 or 64bits !   Or architecture neutral –  Java application –  Ruby library
  • 6. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Package Benefits ! Describing requirement ! Provide programs, datas and settings ! Registering in system service(ie: logrotate) ! Enforcing dedicated run account !   Total control over runtime cycle-life –  Installation –  Update –  Uninstallation A package is much more than an archive
  • 7. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Maven common facts !   DSL build based !   Dependency Management –  At build time –  At deploy time !   Packages repositories –  In local mode –  Remotely via HTTP !   Nexus and Artifactory could act as RPM repositories
  • 8. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf From application to RPM !   2 approachs –  OS Vendor way: •  Rebuilt from sources tarballs •  Require tarballs in build path –  Enterprise way: •  Rebuilt from Binaries (stored in Artifacts Repository) •  Avoid duplicate processing •  Trusting your delivery process
  • 9. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf RPM building – SPEC FILE !   Sources !   Architecture ! Build Requirements ! Deploy Requirements ! Build ! Assembly !   Contents locations and rights
  • 10. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Jenkins as a Packages Factory !   Jenkins Master –  Get contents from SCM (Subversion, Git) –  Prepare build environment –  Trigger build on slaves !   Jenkins Slaves –  One slave by target (OS/Arch) platform –  Confident in OS compatibility –  Deployment on RPM repositories
  • 11. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Axway Packages Factory !   Builder –  5 target OS •  CentOS 5 / 6 in 32 and 64 bits •  OpenSuse 12.1 in 32 and 64 bits •  Suse SLES 11 in 64 bits !   Distributor –  Apache HTTPd server –  Packages Repositories hosting and servicing •  4 repos for CentOS 5/6 in 32/64 bits •  1 repo for OpenSuse 12.1 32/64 and SLES 11.
  • 12. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Axway Packages Factory Builder CentOS 5 32 bits CentOS 5 64 bits CentOS 6 32 bits CentOS 6 64 bits OpenSuse 12.1 32 bits OpenSuse 12.1 64 bits Suse SLES 11 64 bits i5 3.0Ghz, 16GB RAM, 500Gb HD Host OS OpenSuse 12.1 VirtualHost 4.1.8 7 Hosted VMs
  • 13. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Jenkins Factory in-depth !   Builder –  take control on slaves via SSH –  Trigger build jobs after SCM change –  Trigger jobs on 5/6 VMs via Matrix Plugin !   Slaves –  Build package on OS / Arch –  Send build packages to distributor via SCP !   Distributor –  Reindex repositories via cron if something change
  • 14. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Jenkins Factory in-depth Repositories reindexed by cron if update detected Parallel build on Build binaries slaves (Matrix) uploaded via SCP New packages immediatly available remotely via HTTP
  • 15. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Initial method – 1 Job / OS-Arch
  • 16. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Initial method – 1 Job / OS-Arch
  • 17. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Final method – 1 Job with Matrix
  • 18. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Final method – 1 Job with Matrix
  • 19. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Packages Tricks ! CentOS/RHEL use one repo by arch –  One repository for x86 32bits with native/noarch –  One repository for x86 64bits with native/noarch è One slave by architecture for native è Use one slave builder by arch even for noarch packages ! OpenSuse/SLES use a common repository –  One dir for x86 32bits –  One dir for x86 64bits –  One dir for noarch è  One slave by architecture for native è  You could use 32 or 64 bits builder for noarch packages
  • 20. Jenkins User Conference Paris, 17 April 2012 #jenkinsconf Thank You To Our Sponsor