Why we did it.... Thousands of VMs dedicated to run Jenkins!

Slides:



Advertisements
Similar presentations
Wei Lu 1, Kate Keahey 2, Tim Freeman 2, Frank Siebenlist 2 1 Indiana University, 2 Argonne National Lab
Advertisements

Virtual Machine Technology Dr. Gregor von Laszewski Dr. Lizhe Wang.
HADOOP IN DOCKER CONTAINERS
12/6/2006Saroj/P2V 1 Study of P2V and V2P Using UltimateP2V By Saroj Patil CS522 : Semester project presentation Professor : Dr. C. Edward Chow.
Apache CloudStack Evolution Proposal Alex Huang Software Architect, Citrix Systems.
© 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice In search of a virtual yardstick:
Towards High-Availability for IP Telephony using Virtual Machines Devdutt Patnaik, Ashish Bijlani and Vishal K Singh.
12/6/2006Saroj/P2V 1 Study of P2V and V2P Using UltimateP2V By Saroj Patil CS522 : Semester project presentation Professor : Dr. C. Edward Chow.
Virtualization for Cloud Computing
VIRTUALISATION OF HADOOP CLUSTERS Dr G Sudha Sadasivam Assistant Professor Department of CSE PSGCT.
ProjectWise Virtualization Kevin Boland. What is Virtualization? Virtualization is a technique for deploying technologies. Virtualization creates a level.
VMware vSphere 4 Introduction. Agenda VMware vSphere Virtualization Technology vMotion Storage vMotion Snapshot High Availability DRS Resource Pools Monitoring.
Introduction to Virtual Machines. Administration Presentation and class participation: 40% –Each student will present two and a half times this semester.
Microsoft Desktop Virtualization Migrating to Windows 7 With MED-V.
Real Security for Server Virtualization Rajiv Motwani 2 nd October 2010.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Virtualization Lab 3 – Virtualization Fall 2012 CSCI 6303 Principles of I.T.
SAIGONTECH COPPERATIVE EDUCATION NETWORKING Spring 2010 Seminar #1 VIRTUALIZATION EVERYWHERE.
SAIGONTECH COPPERATIVE EDUCATION NETWORKING Spring 2009 Seminar #1 VIRTUALIZATION EVERYWHERE.
Copyright © 2011 EMC Corporation. All Rights Reserved. MODULE – 6 VIRTUALIZED DATA CENTER – DESKTOP AND APPLICATION 1.
VMware Infrastructure 3 The Next Generation in Virtualization.
IISWC 2007 Panel Benchmarking in the Web 2.0 Era Prashant Shenoy UMass Amherst.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Server Virtualization
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Programming in Hadoop Guangda HU Huayang GUO
Virtual techdays INDIA │ august 2010 virtual techdays INDIA │ august 2010 Consolidate and Virtualize your Linux Environment M.S.Anand │ Technology.
Michael Kelley Virtualizing Linux and FreeBSD Workloads on Windows Server Hyper-V INF335 A.
David Kim Product Manager CLI306 Industry Trends Windows Vista Enterprise Flexible Desktop Computing Options Windows Vista Enterprise Centralized Desktop.
Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Tools and techniques for managing virtual machine images Andreas.
Hands-On Virtual Computing
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Information Initiative Center, Hokkaido University North 11, West 5, Sapporo , Japan Tel, Fax: General.
Copyright © Univa Corporation, All Rights Reserved Using Containers for HPC Workloads HEPiX – Apr 21, 2016 Fritz Ferstl – CTO, Univa.
Containers: Life Beyond Microservices? Sushil Kumar Robin Systems.
Microsoft Build /9/2017 5:00 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Virtualization for Cloud Computing
Univa Grid Engine Makes Work Management Automatic and Efficient, Accelerates Deployment of Cloud Services with Power of Microsoft Azure MICROSOFT AZURE.
Expanding Mesos Ecosystems Enabling Mesos on Windows
INTRO TO Presenter: PhuongNQK.
Containers as a Service with Docker to Extend an Open Platform
Scalable containers with Apache Mesos and DC/OS
Fundamentals Sunny Sharma Microsoft
Bentley Systems, Incorporated
Web application hosting with Openshift, and Docker images
Azure Architect – IaaS or PaaS?
Web application hosting with Openshift, and Docker images
Diskless Networks By Sam Morris.
Introduction to Distributed Platforms
VAGRANT AND DOCKER AS LEARNING ENVIRONMENTS
Docker and Azure Container Service
Containers and Virtualisation
Containers in HPC By Raja.
Drupal VM and Docker4Drupal For Drupal Development Platform
Integration of Singularity With Makeflow
Windows Server & Hyper-V Containers Vaggelis Kappas
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Introduction to Docker
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Introduction Apache Mesos is a type of open source software that is used to manage the computer clusters. This type of software has been developed by the.
OpenShift vs. Vanilla k8s on OpenStack IaaS
Presented by Bogdan Stanca-Kaposta (Spirent)
Backfilling the Grid with Containerized BOINC in the ATLAS computing
Roots/Git to Deploy What is continuous integration and continuous delivery How they are used at the Innovation Co-Lab Victor Wang, Software Engineer &
Azure Container Service
SQL Server Devops with production data
Presentation transcript:

Delivering eBay's CI Solution with Apache Mesos & Docker Mohit Soni Ashish Hunnargikar Software Engineer Software Engineer

Why we did it.... Thousands of VMs dedicated to run Jenkins! Utilization is less than 5%  VMs idle most of time (no one runs CI builds frequently) VM sprawl and poor resource utilization Polyglot application stacks (Java, C++, Node.js, Python, Scala) Different OS flavors (Ubuntu & RHEL) Software version conflicts Special hardware requirements Build slave management and maintenance is a nightmare

And here’s what we did.... Mesos for cluster management Marathon to launch Jenkins masters Jenkins Mesos-plugin to launch build slaves Build slaves Dockerized as well as regular

Why use Docker containers? Managing varied slave flavors in a large cluster is hard! Docker effectively isolates dependencies inside the container Docker allows host OS to remain independent of workload dependencies Why build Docker-in-Docker? Run Docker build/push/pull inside a Docker container Eliminates redundant CI build dependency downloads Helps to enforce a heterogeneous Mesos slave cluster Allow different OS flavors Prevent software version conflicts Application dependencies Hardware independence

Basic Use Case Build C++ & Java applications on both RHEL & Ubuntu Mesos slave host server is running Ubuntu Jenkins job is running builds in a RHEL or Ubuntu container Application dependencies can be preinstalled in base images OR can be downloaded during build time

Advanced Use Case Build RHEL & Ubuntu Docker images Mesos slave host server is running Ubuntu Jenkins job is running inside a Docker container Jenkins job is building a RHEL/Ubuntu Docker image from an application Dockerfile

Enabling the Docker CI workflow using Jenkins & Mesos

Initial Build Strategy Individual Docker-in-Docker Setup Complete isolation Docker daemon running inside the Docker container requires privileged mode I/O overhead of downloading and duplicating all the AUFS layers

Optimized Build Strategy Shared Docker-in-Docker Setup Docker daemon not required inside the container so no privileged mode Single reusable AUFS image layer cache Redundant network and disk I/O eliminated for layer downloads Lack of isolation for layers

For more information visit: Q&A www.ebaytechblog.com http://www.ebaytechblog.com/2014/04/04/delivering-ebays-ci-solution-with-apache-mesos-part-i/ http://www.ebaytechblog.com/2014/05/12/delivering-ebays-ci-solution-with-apache-mesos-part-ii/ For more information visit: Apache Mesos: http://mesos.apache.org Jenkins Mesos Plugin: https://github.com/jenkinsci/mesos-plugin Docker: https://www.docker.io Marathon Framework: https://github.com/mesosphere/marathon