Continuous Integration in the Cloud with Hudson

Similar documents
<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Continuous Integration (CI) and Testing - Configuring Bamboo, Hudson, and TestMaker

JAVA WEB START OVERVIEW

How Liferay Is Improving Quality Using Hundreds of Jenkins Servers

"Build and Test in the Cloud "

7 Ways to Optimize Jenkins/Hudson White Paper

Amazon Elastic Beanstalk

How Bigtop Leveraged Docker for Build Automation and One-Click Hadoop Provisioning

Cloud computing - Architecting in the cloud

Jenkins: The Definitive Guide

Continuous Integration: Put it at the heart of your development

Amazon EC2 Product Details Page 1 of 5

Scalable Architecture on Amazon AWS Cloud

Click Start > Control Panel > System icon to open System Properties dialog box. Click Advanced > Environment Variables.

Big Data Trends and HDFS Evolution

Big data blue print for cloud architecture

Developer support in a federated Platform-as-a-Service environment

Distributed Scheduling with Apache Mesos in the Cloud. PhillyETE - April, 2015 Diptanu Gon

Assignment # 1 (Cloud Computing Security)

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

WHAT S NEW IN SAS 9.4

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

How To Deploy Sangoma Sbc Vm At Amazon Cloud Service (Awes) On A Vpc (Virtual Private Cloud) On An Ec2 Instance (Virtual Cloud)

Amazon Web Services Primer. William Strickland COP 6938 Fall 2012 University of Central Florida

JMeter in the Cloud. Get Loaded!

Elastic Management of Cluster based Services in the Cloud

Content Distribution Management

Hadoop-based Open Source ediscovery: FreeEed. (Easy as popcorn)

AWS Account Setup and Services Overview

Using The Hortonworks Virtual Sandbox

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

TECHNOLOGY WHITE PAPER Jun 2012

1. Product Information

Hadoop & Spark Using Amazon EMR

AdWhirl Open Source Server Setup Instructions

Zend Server Amazon AMI Quick Start Guide

Online Backup Client User Manual Linux

An Analysis of Propalms TSE and Microsoft Remote Desktop Services

Cloud Computing. Adam Barker

v4: How to create a BartPE Rescue CD for Macrium Reflect

Project SailFin: Building and Hosting Your Own Communication Server.

Load and Performance Load Testing. RadView Software October

Using SUSE Studio to Build and Deploy Applications on Amazon EC2. Guide. Solution Guide Cloud Computing.

ST 810, Advanced computing

RecoveryVault Express Client User Manual

VDI Gen2: Quick Reference Guide Top 5 Questions to Ask a VDI Vendor Before Making a Purchase

Hudson configuration manual

Drupal in the Cloud. Scaling with Drupal and Amazon Web Services. Northern Virginia Drupal Meetup

Background on Elastic Compute Cloud (EC2) AMI s to choose from including servers hosted on different Linux distros

Manjrasoft Market Oriented Cloud Computing Platform

Hadoop Setup. 1 Cluster

Manjrasoft Market Oriented Cloud Computing Platform

Cloud Models and Platforms

Continuous Integration and Delivery at NSIDC

Elastic Detector on Amazon Web Services (AWS) User Guide v5

Scalable Application. Mikalai Alimenkou

Online Backup Client User Manual

AXIOM 4 AXIOM SERVER GUIDE

Single Node Hadoop Cluster Setup

Getting Started with Amazon EC2 Management in Eclipse

Deploy XenApp 7.5 and 7.6 and XenDesktop 7.5 and 7.6 with Amazon VPC

MyCloudLab: An Interactive Web-based Management System for Cloud Computing Administration

How To Image A Single Vm For Forensic Analysis On Vmwarehouse.Com

Online Backup Client User Manual

How To Install An Aneka Cloud On A Windows 7 Computer (For Free)

Deployment of Private, Hybrid & Public Clouds with OpenNebula

Chapter 1 - Web Server Management and Cluster Topology

BITDEFENDER SECURITY FOR AMAZON WEB SERVICES

Web Application Firewall

Building a Continuous Integration Pipeline with Docker

Alfresco Enterprise on AWS: Reference Architecture

Elluminate Live! Access Guide. Page 1 of 7

A central continuous integration platform

HDFS Cluster Installation Automation for TupleWare

System Management. Leif Nixon. a security perspective 1/37

A Comparison of Clouds: Amazon Web Services, Windows Azure, Google Cloud Platform, VMWare and Others (Fall 2012)

1 What is Cloud Computing? Cloud Infrastructures OpenStack Amazon EC CAMF Cloud Application Management

Developing Plugins for Cloud Scale

Backup & Disaster Recovery Appliance User Guide

Tutorial: Using HortonWorks Sandbox 2.3 on Amazon Web Services

CITRIX 1Y0-A17 EXAM QUESTIONS & ANSWERS

VMware vrealize Automation

Continuous integration with Jenkins CI

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Informatica Cloud & Redshift Getting Started User Guide

CS54100: Database Systems

OpenStack. Orgad Kimchi. Principal Software Engineer. Oracle ISV Engineering. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Whitepaper. Business Service monitoring approach

Building Success on Acquia Cloud:

Volume SYSLOG JUNCTION. User s Guide. User s Guide

MySQL Administration and Management Essentials

Options in Open Source Virtualization and Cloud Computing. Andrew Hadinyoto Republic Polytechnic

Transcription:

Continuous Integration in the Cloud with Hudson Kohsuke Kawaguchi Jesse Glick Sun Microsystems, Inc. Hudson committers

Rise of Continuous Integration Offload from people, push to computers $ computers us time 2

Spend more CPU power to help you even if it only helps a little Ever bloating IDEs Static code analysis tools More frequent build/test executions AKA Continuous Integration 3

Hudson http://hudson-ci.org/ Open-source CI server at java.net Emphasis on ease of installation and use Extensibility GUI for human users REST API for program users 130+ community-developed public plugins By 120+ contributors Estimated 20,000 installations 4

It basically does builds and tests Check out the source code Do builds and/or tests Java,.NET, shell script, Record results Subversion, Perforce, Git, Mercurial, CVS, Binary, test results, code coverage, static analysis Notify people E-mail, IM, RSS, tray apps, IDEs 5

Localized to 8 languages 6

Adoption in all kinds of businesses 7

Before we talk about clouds When I talk to people, they have computers Lots of them, lying around, under-utilized Just lacking software to use them effectively Let s use lots of computers effectively first Then we ll talk about EC2 8

Going distributed You need to use multiple computers because You need different environments You need isolation One computer can t keep up with all the loads 9

Distributed builds with Hudson Master Slaves Serves HTTP requests Stores all important info 170KB single jar Assumed to be unreliable Scale to at least 100 Link Single bi-di byte stream No other requirements 10

How master and slaves start talking Via sshd Master talks to sshd on a slave Send slave.jar and java -jar slave.jar SSH session becomes bi-di byte stream 11

How master and slaves start talking Via JNLP Java Web Start on slave initiates the session Hudson sends JNLP file and jar files A separate socket connection is made 12

How master and slaves start talking Once started, can be installed as Windows service 13

How master and slaves start talking Specifically for Windows Hudson speaks DCOM to talk to Windows Remotely install a service and starts it No manual intervention needed 14

Heterogeneous Cluster Challenge Your builds/tests need to run on specific environment Dependency to individual nodes hurts utilization jobs slaves Wombat Windows test Windows #1 GlassFish Windows test Windows #2 Hudson Windows test Solaris #1 Hudson Solaris test 15

Labels to rescue Label is a group of slaves Tie jobs to labels jobs slaves Wombat Windows test Windows #1 GlassFish Windows test Hudson Windows test Windows Solaris Windows #2 Solaris #1 Hudson Solaris test 16

Setting up slaves Keeping slaves look alike is a good thing General system administration tasks Network configuration Package installations for native tools Tools like Puppet or cfengine are supposed to help Install build tools in the cluster Particularly hard on heterogeneous environment Prepare tools on one file system rsync to everywhere This part of Hudson needs improvements 17

Forecasting failures Hudson monitors key health metrics of slaves Low disk space, insufficient swap Clock out of sync Extensible Slaves put offline automatically Catch problems before it breaks builds 18

Installing new slaves For first 20 or so slaves, we did it manually Insert CD, click, type, click, type, click, But that doesn t scale Then we automated 19

Automated System Installations Hudson + pxe-install plugin BOOTP proxy TFTP pxelinux Your corporate IT guy & his DHCP server Slaves Power on, hit F12 PC boots from network (PXE) Choose OS from menu Chain boot into OS Installs non-interactively 20

Automated System Installations Trivial with most Linux and Solaris Works with Windows, too Called Windows Deployment Service Needs a Windows 2003 server Vista (easy) or XP (hard) deployment Turns out quite useful outside Hudson, too No more broken CD drives No more CD-Rs 21

System Utilization Monitoring Showing about 25% utilization 22

When it s time to add more slaves There s almost always something in the queue 23

Hudson made this extensible Hudson detects excessive workload With exponential decay to filter out noise Hudson notifies plugins Plugins can provision more slaves 24

25

Amazon EC2: The Good Pay as you go (15 /h or so) Programmable API Instances launch pretty quickly (esp. Linux) EC2 instances are forgetful Good fit with Hudson Loads on Hudson tend to be spiky Tests are embarrassingly parallel At least in theory 26

Amazon EC2: The Bad Your data is still inside your firewall Takes time to check out code or to archive build artifacts Some data just can t be moved EC2 instances are forgetful Your build/test may depend on your environment Can your tests run in parallel? 27

Hudson EC2 plugin Built on top of typica* What does it do? Automatically provision slaves on EC2 on demand Pick the right AMI depending on demand Connect and install JDK on demand Shut down unused instances * http://code.google.com/p/typica/ 28

Hudson EC2 plugin usage Tell Hudson your AWS account information 29

Hudson EC2 plugin usage Tell Hudson what AMIs you want to start 30

Putting it all together # of executors capacity usage time 31

Hudson Appliance on EC2 Run the master in the cloud too, if you like Hudson on stock OpenSolaris AMI Data stored persistently in Elastic Block Storage Dynamically expandable thanks to ZFS Online, too Packaged as a wizard 32

33

34

Hudson Hadoop plugin Distributed file system Exactly two mouse clicks to install Turn every Hudson slave into a Hadoop node Automatic data replication (fail tolerant) Nice for storing old artifacts, logs, test records, Map/reduce framework Large scale test results analysis / datamining More interesting work to be done in the future 35

Selenium Grid Use Hudson slaves as Selenium RC nodes Hudson slaves Hudson master (selenium hub) 36

Why Selenium Grid & Hudson? Hudson wants a heterogeneous cluster Selenium wants that, too Centralized management Automatic selenium installation 37

Kohsuke Kawaguchi Jesse Glick kohsuke.kawaguchi@sun.com jesse.glick@sun.com http://hudson-ci.org/ 38