Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Jenkins & the Cloud A Match Made in Heaven Ryan Campbell Kohsuke.

Slides:



Advertisements
Similar presentations
Cloud computing is used to describe a variety of computing concepts that involve a large number of computers connected through a real-time communication.
Advertisements

Jenkins User Conference San Francisco, Sept #jenkinsconf Testing Salesforce at Cloud Scale Thomas Greg
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
Jenkins User Conference Jenkins User Conference Israel, 06 June 2013 #jenkinsconf Pre-Tested Commits with Jenkins and Reviewboard Yardena Meymann VMware.
Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Dean Yu Yahoo!, Inc. Continuous Integration.
EHarmony in Cloud Subtitle Brian Ko. eHarmony Online subscription-based matchmaking service Available in United States, Canada, Australia and United Kingdom.
Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Red Hat on Jenkins: By the numbers Nam Duong Red Hat, Inc.
©2013 CloudBees, Inc. All Rights Reserved 1 Next Step in Automation: Elastic Build Environment Kohsuke Kawaguchi / CloudBees, Inc.
Towards Autonomic Adaptive Scaling of General Purpose Virtual Worlds Deploying a large-scale OpenSim grid using OpenStack cloud infrastructure and Chef.
Jenkins User Conference Jenkins User Conference New York, May #jenkinsconf Yale Build and Deploy E Camden Fisher Yale University ITS.
Modern app development Continuous value delivery and rapid response to change.
Jenkins User Conference Jenkins User Conference San Francisco, Sept #jenkinsconf Using Jenkins in the Enterprise and the Cloud Mark Prichard Kohsuke.
Jenkins User Conference Jenkins User Conference San Francisco, Sept #jenkinsconf Using Jenkins for the build and deployment of.NET applications.
© 2009 IBM Corporation ® IBM Software Group Introduction to Cloud Computing Vivek C Agarwal IBM India Software Labs.
Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 Extreme Testing with Jenkins and Selenium Jason Huggins CTO,
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
Continuous Integration after Hudson, CruiseControl, and Home Built Mile High Agile 2011 – Mark Waite.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
Introduction to Amazon Web Services (AWS)
VAP What is a Virtual Application ? A virtual application is an application that has been optimized to run on virtual infrastructure. The application software.
Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Addressing Key Challenges with Viral Adoption of Jenkins Sacha.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Jenkins User Conference Jenkins User Conference Israel, 06 June 2013 #jenkinsconf Supercharge your Test & Dev Process with Jenkins and the Cloud Gil Hoffer.
PHP, QA, and Jenkins Eric Cope June 25, 2013
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 7 2/23/2015.
Getting Started with Jenkins: A VMWorld workshop
AUTOBUILD Build and Deployment Automation Solution.
Model a Container Runtime environment on Your Mac with VMware AppCatalyst VMworld Fabio Rapposelli
Jason Stowe Condor Week 2009 April 22 nd, Coming to Condor Week since Started as a User.
Jenkins User Conference Jenkins User Conference Palo Alto, Oct 23 Jenkins: State of Union
Struts2 Plugin Development - Extending Struts2 Justin Yip.
Platinu m Sponsor s Silver Sponsors Gold Sponsor s.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
VMware vSphere Configuration and Management v6
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
3/12/2013Computer Engg, IIT(BHU)1 CLOUD COMPUTING-1.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Running a production Jenkins instance Harpreet Singh, Senior Director, Product Management Kohsuke Kawaguchi Jenkins founder ©2012 CloudBees, Inc. All Rights.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
© 2016 CloudBees, Inc. All Rights Reserved 1 Jenkins 2.0 and Beyond Nigel Harniman, Senior Solution Architect.
KAASHIV INFOTECH – A SOFTWARE CUM RESEARCH COMPANY IN ELECTRONICS, ELECTRICAL, CIVIL AND MECHANICAL AREAS
Windows Azure and iOS Chris Risner Windows Azure Technical Evangelist Microsoft
Cloud Installation & Configuration Management. Outline  Definitions  Tools, “Comparison”  References.
#SummitNow Rapid Test Driven Development with Alfresco …and a bit of continuous delivery Barcelona, November 6 th 2013 Gabriele Columbro
Information Initiative Center, Hokkaido University North 11, West 5, Sapporo , Japan Tel, Fax: General.
Deploying Elastic Java EE Microservices in the Cloud with Docker
1 Policy Based Systems Management with Puppet Sean Dague
Alfresco Software Provisioning Kit
Course: Cluster, grid and cloud computing systems Course author: Prof
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Stress Free Deployments with Octopus Deploy
Use of HLT farm and Clouds in ALICE
Maven 04 March
Infrastructure Orchestration to Optimize Testing
Docker Birthday #3.
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Cloud Management Mechanisms
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
IT Atoumation / Conf. Mgmt...
Andrew Pruski SQL Server & Containers
Advanced Integration and Deployment Techniques
X in [Integration, Delivery, Deployment]
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Automating your CI/CD Stack with Java and Groovy
Continuous deployment best practices, methods and tools.
AWS Cloud Computing Masaki.
JENKINS TIPS Ideas for making your life with Jenkins easier
Cloud Computing: Concepts
Presentation transcript:

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Jenkins & the Cloud A Match Made in Heaven Ryan Campbell Kohsuke Kawaguchi CloudBees, Inc.

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Who are we? Ryan Campbell – Main guy behind Kohsuke Kawaguchi – Main guy behind Jenkins, Nectar, and helping other Jenkins efforts in CloudBees when I can

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Jenkins, back in 2006 Distributed builds support

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Cloud Ladder Static Distributed Elastic Lots of masters Elastic masters

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf What is Private Edition? Jenkins as a service, for intranet Revolves around MetaNectar – Controls many Jenkins Same extensibility Meta Nectar

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf What is Public Edition? Jenkins as a Service – 1000’s of masters – More than 1,000,000 build minutes served Forge – Git, SVN, Maven Ecosystem – Sonar – SauceLabs – Artifactory

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf JENKINS AT SCALE: LESSONS LEARNED

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Problem: Configuration Management What do we mean? – Preparing slaves into the right shape – Preparing masters into the right shape – Keeping them in good shape

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Jenkins does a lot Tool installer extension point – Automatically install build tools – Grown from 3 to 8 in this year Slave Setup Plugin – Let you run arbitrary shell script upon the slave connection – Great way to run Puppet

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf But Jenkins can’t do it all… Base image configuration Master provisioning Other server types

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf How we did in Chef – Declarative – Idempotent – Extensible Using Ruby – Composable package “httpd” cookbook_file “/etc/httpd.conf” do source “myconfig” end service “httpd” do action :start end

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Chef architecture chef-server slaves web-tier masters

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Chef Pro Tips Build from source, but ship pre-baked images (ie, AMI’s in ec2) for fast, reliable provisioning Let nodes self-register with Chef server for painless elasticity – You can do this in /etc/chef/client.rb

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Jenkins and Chef/Puppet Checkout the Chef Recipes for Jenkins – Configure masters, slaves, even jobs Same for puppet

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf And Private Edition Clone templates in VMWare – Works well with “dumb” approach – Works well with puppet/chef, too – Of course, this is pluggable

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Problem: Slave Provisioning Yes, we had extension points But someone needs to implement them

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf OSS Implementations EC2 Plugin – Fully functioning, worked as example for others Several provider-neutral plugins – Delta Cloud API – JClouds VMWare Lab Manager, libvirt, etc. Wish list: vagrant plugin!

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Slave Provisioning - Public Implements Cloud extension point Providore! Uses JClouds to talk to EC2 – Bonus tip: Use cloud libraries such as jclouds and fog instead of directly using provider’s API Pools slave instances Manages slave lifecycle

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Provision from Pool slave pool providore request slave reuse

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Or provision from ec2 ec2 api providore request slave provision Cloud mantra: Degrade gracefully when cloud API’s are unavailable. Learn to live without them.

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Initialize and authorize providore slave 1. Attach workspace 2. Authorize master

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Attach slave to master providore 1. Notify master 2. Connect via SSH slave

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Release and Recycle providore 1. Release slave 2. Reset and recycle slave

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Slave Pooling in Private Slaves can be owned by MetaNectar Meta Nectar

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Slave Pooling in Private Then it gets leased to Jenkins Meta Nectar

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Slave Pooling in Private After use it can go back to pool Meta Nectar

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Benefits Even out use by different teams – Works with not-so-elastic infrastructure MetaNectar could scrub instances – Anything from no-op to revert to snapshot

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Monitoring Why? – CI is the heart of the dev process – Trends, correlation How? – Nagios, Zenoss, Cacti, munin

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Public Uses Nagios Extensible – author your own commands Text based configuration – generate configuration dynamically Dependencies – prevents notification storms when core services go down Pager Duty integration

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf What to monitor Anything you want to work What the user sees – the GUI/index page Heap/Permgen Load Free disk space Slave availability curl

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Groovy Queue Monitor j = jenkins.model.Jenkins.instance if(j.queue.items.length > 50) println(“WARNING, queue clogging”) $ curl -u “user:pass” -data-urlencode \ \ | grep WARNING

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Problem: Managing Plugins Particularly important aspect of configuration mgmt Bigger environment often uses proprietary plugins Consistency across masters help reduce the support overhead

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Managing Plugins: How Bundle them in the war – WEB-INF/plugins/*.hpi Lay them down during provisioning – WEB-INF/init.groovy – $JENKINS_HOME/init.groovy

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf What Jenkins offers Remotely install plugins via CLI or REST API $ export JENKINS_URL= $ java -jar jenkins-cli.jar install-plugin \ git subversion chucknorris $ java -jar jenkins-cli.jar install-plugin \./path/to/local.hpi

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Internal: Update Center vs. Sites Only one UpdateCenter – Jenkins.getInstance().getUpdateCenter() Aggregates Many Update Sites – Can be local or remote – Updated using user’s browser if remote Consider https

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Custom Update Site Use update-center2https://github.com/jenkinsci/backend- update-center2 Use Maven to find plugins – Internal – External Signature is required – Jenkins has to have your certificate, too Also see: simple Update Site plugin – More about this in lightning talk later

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf In We’ve built UI around it

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Private: Plugin Management Blacklisting – Known issues in your environment Forced installation – Sometimes with configuration

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Problem: One-time work, or is it? Setting up Jenkins is no longer one-time work if you have many masters – Ripe for productivity gain By “setting up” I mean: – Seed SCM credentials – Configure JIRA, Sonar, Sventon, … plugins

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf One-time work, or is it? Groovy script can be used to configure plugins Extension point to customize behaviors – MailAddressResolver – Subtyping existing plugins to reduce/infer config – Custom ToolInstallers import …; j=Jenkins.instance d=j.getDescriptorByType(JiraProjectProperty) s=new JiraSite(“ d.setSites(s);

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf More Improvements Needed More improvements in core would help – Installing plugins without restart – Extension point for inferring SCM browser Setting up push notification from SCM repository to Jenkins?

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Conclusion Jenkins at scale has interesting challenges – Inevitable already in large organizations – Soon for everyone as computers get cheap What we did hopefully would inspire you Any questions?

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Thank You To Our Sponsors Platinum Sponsor Gold Sponsor Silver Sponsor Bronze Sponsors Coming Soon: The CloudBees Newsletter for Jenkins Please complete the Jenkins survey to help us better serve the community (bonus: a chance to win an Apple TV!)

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Nothing to see here beyond this page. Please move on.

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Even More So in CI When you need it, you need it a lot – Matrix builds – Downstream builds – Parallel tests You want result now

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf But when you don’t Sitting idle, wasting electricity – Most weekends – Late night and morning

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Sparc Roadmap

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Horizontal Scaling Google1,000,000 (?) Facebook70,000 1&1 Internet70,000 Rackspace56,000 Microsoft, Amazon, Yahoo, IBM, …

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Jenkins, back in 2009

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Dynamic Slave Provisioning 55 time # of executors capacity usage

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf ALM integration Spin up new projects quickly Dynamically integrate ALM services as they are provisioned Examples – SCM, Sonar, mvn Repository Managers, or external tools like SauceLabs Automatically install & configure plugin

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf SCM Repository Integration Jenkins is a person identity, too! – Separate from user identity – Git SSH public/private keys – SVN Implement SubversionCredentialProvider Standard Commit Hooks – DIE POLLING DIE – Challenge: How do we automate this?

Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf ALM Tool Integration Example Sonar instance per Jenkins Use CLI to install plugins Use Groovy script to configure plugin FIXME – the script below Feature request ;-) – Plugin installation without restart S = new SonarInstallation(“mysql:url”,”username”,”password”) Jenkins.instance.getDescriptorByName(“”) sonarDescriptor.setInstallations(s);