#jenkinsconf. Managing jenkins with multiple components project. Jenkins User Conference Israel. Presenter Name Ohad Basan

Similar documents
Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

Real World CI with Red Hat Cloud Suite. Sim Zacks - Principal Quality Engineer Oded Ramraz - Manager QE Ops TLV

The OpenStack Project Continuous Integration System. Elizabeth K.

Code Review for DevOps

Infrastructure-as-Code and CI Infrastructure at Open Stack A look at one of the largest CI systems and system administration

Building Scaleable Cloud Infrastructure using the Red Hat OpenStack Platform

Seven Habits of Highly Effective Jenkins Users

Tools for Distributed, Open Source Systems Administration

BRINGING HOST LIFE CYCLE AND CONTENT MANAGEMENT INTO RED HAT ENTERPRISE VIRTUALIZATION. Yaniv Kaul Director, SW engineering June 2016

Best Practices for a Mission- Critical Jenkins

Distributed CI: Scaling Jenkins on Mesos and Marathon. Roger Ignazio Puppet Labs, Inc. MesosCon 2015 Seattle, WA

Red Hat Virtualization 4.1 Product Guide

openqa Helping SUSE Linux Enterprise with Automated Testing Richard Brown openqa Technical Lead

From Bare Metal to Cloud

Continuous Delivery of your infrastructure. Christophe

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

Pipeline as Code for your IAC. Kris

ovirt Node June 9, 2012 Mike Burns ovirt Node 1

Be smart. Think open source.

Challenges in Cutting Edge CI. #jenkinsconf. Real-life story. Jenkins User Conference Israel #jenkinsconf. Gil

Integrating ovirt, Foreman And Katello To Empower Your Data-Center Utilization

OpenStack Infrastructure tools

Organising benchmarking LLVM-based compiler: Arm experience

From Bare Metal to Cloud. Andy ICCLab, ZHAW Piotr Kasprzak, GWDG

Dr. Jenkins, M.D., at Your Service: An overview of Jenkins at. #jenkinsconf. Cerner Corporation. Jenkins User Conference San Francisco

EVERYTHING AS CODE A Journey into IT Automation and Standardization. Raphaël Pinson

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

AGENDA. 13:30-14:25 Gestion des patches, du provisionning et de la configuration de RHEL avec Satellite 6.1, par Michael Lessard, Red Hat

At a high level, the current OPNFV CI pipeline can be summarized as follows:

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

The Road to Digital Transformation: Increase Agility Building and Managing Cloud Infrastructure. Albert Law Solution Architect Manager

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

Accelerate OpenStack* Together. * OpenStack is a registered trademark of the OpenStack Foundation

openqa Avoiding Disasters of Biblical Proportions Marita Werner QA Project Manager

Continuous Integration using Docker & Jenkins

DevOps Online Training

Speeding Up Infrastructure Provisioning with CloudForms. Jason Dillaman Principal Architect, Red Hat Nick Lane Consultant, Red Hat

Lifecycle management with Foreman and Katello Basics and Spacewalk migration

How to Take the CI/CD Plunge

UP! TO DOCKER PAAS. Ming

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

TM DevOps Use Case TechMinfy All Rights Reserved

Implementation of Continuous Integration for Linux Images

Amir Zipory Senior Solutions Architect, Redhat Israel, Greece & Cyprus

End to End SLA for Enterprise Multi-Tenant Applications

Build Cloud like Rackspace with OpenStack Ansible

CONTAINERS AND MICROSERVICES WITH CONTRAIL

Running RHV integrated with Cisco ACI. JuanLage Principal Engineer - Cisco May 2018

OPNFV Release Notes for the Arno SR1 release of OPNFV when using Foreman as a deployment tool

White Paper(Draft) Continuous Integration/Delivery/Deployment in Next Generation Data Integration

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

Red Hat Satellite Server 6.2 Pattern

What s New in Red Hat OpenShift Container Platform 3.4. Torben Jäger Red Hat Solution Architect

Effective Configuration Management (9 Things You Should Be Doing)

Taming your heterogeneous cloud with Red Hat OpenShift Container Platform.

Continuous Deployment with Gerrit and Jenkins

Continuous Integration / Continuous Testing

CLOUD INFRASTRUCTURE ARCHITECTURE DESIGN

Container in Production : Openshift 구축사례로 이해하는 PaaS. Jongjin Lim Specialist Solution Architect, AppDev

Virtualization Food Fight. Rik van Riel

Using vrealize Code Stream. 16 MAY 2017 vrealize Code Stream 2.3

Using vrealize Code Stream

Deploying VMware NSX with OpenStack

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

DevOps Course Content

Using vrealize Code Stream. 12 APRIL 2018 vrealize Code Stream 2.4

ACCELERATE APPLICATION DELIVERY WITH OPENSHIFT. Siamak Sadeghianfar Sr Technical Marketing Manager, April 2016

AALOK INSTITUTE. DevOps Training

RED HAT ENTERPRISE VIRTUALIZATION Virtualisation today, transition for the future

TDF Infra Overview. from developers' perspective

CLOUD WORKLOAD SECURITY

DEVOPS COURSE CONTENT

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

Chapter 1 - Continuous Delivery and the Jenkins Pipeline

AEM Code Promotion and Content Synchronization Best Practices

개발자와운영자를위한 DevOps 플랫폼 OpenShift Container Platform. Hyunsoo Senior Solution Architect 07.Feb.2017

ci-management Release 1.0.0

A WEB-BASED SOLUTION TO VISUALIZE OPERATIONAL MONITORING LINUX CLUSTER FOR THE PROTODUNE DATA QUALITY MONITORING CLUSTER

OPENSTACK PRIVATE CLOUD WITH GITHUB

I keep hearing about DevOps What is it?

Continuous Delivery for Cloud Native Applications

OpenStack Architecture and Pattern Deployment with Heat. OpenStack Architecture and Pattern Deployment using Heat Ruediger Schulze

PaaS Anywhere. Isaac Christoffersen Architect, Vizuri

Large-Scale Automation with Jenkins

Managed Conversion of Guests to ovirt. Arik Hadas Senior Software Engineer Red Hat 21/8/15

Docker for People. A brief and fairly painless introduction to Docker. Friday, November 17 th 11:00-11:45

Automated Provisioning

Jenkins in the Enterprise Building resilient CI infrastructure

Thanks for Live Snapshots, Where's Live Merge?

Proxmox Virtual Environment

Docker and Oracle Everything You Wanted To Know

Red Hat OpenStack Platform 10 Product Guide

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

Patching and Updating your VM SUSE Manager. Donald Vosburg, Sales Engineer, SUSE

Think Small to Scale Big

Deep Dive on AWS CodeStar

ovirt and Docker Integration

How to bootstrap a startup using Django. Philipp Wassibauer philw ) & Jannis Leidel

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Multi-Arch Layered Image Build System

Transcription:

Jenkins User Conference Israel #jenkinsconf Managing jenkins with multiple components project Presenter Name Ohad Basan Presenter Company Www.redhat.com July 16, 2014 #jenkinsconf

Who am I Ohad Basan CI engineer at Red Hat Member of the RHEV (Red Hat Enterprise Virtualization) CI team Full time geek

Agenda Testing multiple components w/o loosing your mind AKA 'Factory Flow' Puppet for jenkins jobs, possible? Giving developers access to automation infra Automate cool tasks in jenkins, foreman and other devops tools via fabric

What is Factory flow?

Problems with testing multiple components project at once Project is made out of multiple components that are constantly changing and depend on each other If two or more components change before the tests being you have no idea which component broke the functionality We had to isolate the environment of each component while keep the other component stable.

What we had Every job builds all the components Time consuming. Load on git. Error prone. In order to isolate the environments we created distinct jenkins slaves for each component. Each job compiles its own product. Time Consuming Error prone. Increase load of git. Resource heavy. (many slaves)

Solution - FACTORY Listener job > Polls for SCM changes. Create custom rpms > Builds the relevant component Add missing from stable Links the compiled component with the rest of the missing stable component and Publish - publishes the files on a repository that contains all the needed components. (full project) Automation jobs Receive the repository link from the publisher, deploy it on the jenkins slaves and run the tests.

How did we solve it? Multijob!

Multijob Jenkins Plugin Pros Really easy to configure Nice and comfortable view Cons Huge mess when running the the same job concurrently. Not flexible can't dynamically chose which jobs to run. Can't pass dynamic parameters from upstream jobs.

Evolution Build Flow Plugin Pros Very dynamic and flexible Highly maintained Cons View is not always comfortable (We customized it to make it more readable) Graphs not always working

How do we configure so many jobs? We test a huge matrix Different operating systems versions Different product components Different product versions Backward compatible restrictions Layered products consumption (jboss, kvm)

Layered product Ovirt (Backend) > Application Server (JBOSS) > Operating system (Red Hat Linux). VDSM (Hypervisor) > Libvirt > KVM (Kernel Virtual Machine) > Operating system Red Hat does ALL the components and EVERYTHING is changing all the time.

Puppet for jenkins jobs, possible? Meet jenkins-job builder http://ci.openstack.org/jenkins_jobs.html This tool uses YAML files that act as template file to generate jenkins jobs with different values and configuration

Example of YAML file

Giving developers access to automation infra How can a dev test a patch? Unit tests Lint Very basic sanity But for system tests, they need massive infra to run it, almost impossible for a dev

Mission: Patches verification Every patch has to be verified before merging Some patches are really hard to verify and require a complicated setup (several bare metal machines, storage servers, complicated configuration and preparation) The Solution...

Developer job

Developer job We give developers a special job to test their patches with It will checkout their branch, build the component that they chose and will run an automation job that they can choose. Build flow to rescue.. (again!) Using the factory flow infrastructure.

Managing the system Keeping track on problems can get complicated Problems can originate in infrastructure problems, automation problems, or product problems. We are using python fabric task to maintain and keep track on our environment.

What is fabric? Fabric is a python library and cli for easy deployments through ssh http://www.fabfile.org/ We use it as a wrapper for performing all sorts of commands on our ci environment. We use Foreman api to use Fabric for foreman tasks.

Foreman Tasks JENKINS TASKS

one can perform a command on a foreman query with fabric.

What is fabric? Fabric is a python library and cli for easy deployments through ssh http://www.fabfile.org/ We use it as a wrapper for performing all sorts of commands on our ci environment. We use Foreman api to use Fabric for foreman tasks.

Fabric view update tasks We keep track on automation problems with JIRA ticket tracking system. For bugs we use bugzilla. We have fabric task that keeps the jobs description updated for tracking the bugs' statuses. (using jira and bugzilla api) All you have to do is write BZ:XX in the description and a cronjob with fabric will update the status

The Future Provisioner provisioning slaves dynamically at the beginning of each test and then tearing them down at the end. Provisioning from foreman hostgroup using an openstack setup Nested virtualization Run the hypervisor tests on a vm using nested kvm. Adding more flow and components to the factory flow Adopting these solutions to other Red Hat products

Links Fabric - http://www.fabfile.org/ Build flow - https://wiki.jenkinsci.org/display/jenkins/build+flow+plugin Multi job - https://wiki.jenkinsci.org/display/jenkins/multijob+plugin Job builder - http://ci.openstack.org/jenkins-jobbuilder/ Foreman api - https://pypi.python.org/pypi/pythonforeman

Open Source Red Hat Enterprise Virtualization is using code from the upstream project ovirt - an open source virtual data center manager. http://www.ovirt.org Public gerrit is on gerrit.ovirt.org FEEL FREE TO CONTRIBUTE CODE! My E-mail: obasan@redhat.com

Jenkins User Conference Israel #jenkinsconf Thank You To Our Sponsors Platinum Gold Silver