Thinking Inside the Container: A Continuous Delivery Story Maxfield Stewart Engineering Manager: Riot Games (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND.

Slides:



Advertisements
Similar presentations
Apache CloudStack Evolution Proposal Alex Huang Software Architect, Citrix Systems.
Advertisements

CMS 101: Intro to Content Management Systems Tech4Good Denver |
Immutable Infrastructure With Docker and EC2 Docker Conf 2014 Michael Bryzek CTO & Co-Founder Gilt
Sage SalesLogix What’s New in Sawgrass. Data Safeguarding.
Why we did it.... Thousands of VMs dedicated to run Jenkins!
Genuitec’s S ecure D elivery C enter 2012 Overview of delivering MyEclipse, Eclipse and IBM Rational technologies inside the firewall… Genuitec's Secure.
Cost Control Across Containers, Cloud, On-Premise, and VMs Mark Lavi Technology Evangelist (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND.
Container Networking Today Guido Appenzeller Chief Technology Strategy Officer, NSBU at VMware (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC.
Implementing Secure Docker Environments At Scale Ben Bernstein CEO Twistlock (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Structured Container Delivery Oscar Renalias Accenture Container Lead (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Docker for Ops: Operationalize Your Apps in Production Vivek Saraswat Sr. Product Evan Hazlett Sr. Software
Deploying Docker Datacenter on AWS © 2016, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Elara Introduction Wentao Zhang? (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Mitchell Adair Computer Security Group Feb. 10th, 2010 Enumerating Windows Users.
Moving Legacy Applications to Docker Josh Ellithorpe Software Architect (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Leveraging SCCM: Brockport’s Journey to Software Deployment and Image Automation Thomas Calandra Stephen Lane.
Microsoft Build /9/2017 5:00 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
How We Do Test Automation at HomeAdvisor
Job Scheduling and Runtime in DLWorkspace
INTRO TO Presenter: PhuongNQK.
Containers as a Service with Docker to Extend an Open Platform
Deployment Architectures For Containers
Fundamentals Sunny Sharma Microsoft
Facebook – Schools???.
Web application hosting with Openshift, and Docker images
OPEN-O CSIT Infrastructure
Deploying Galaxy in a secure environment to analyse sensitive data
Docker and Azure Container Service
Population Imaging Use Case - EuroBioImaging
Perforce Birds of a Feather
Docker Birthday #3.
6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft.
In-Depth Introduction to Docker
Production Line Architecture
Production Line Architecture
Docker – kontejnerizacija na serveru Vedran Vučetić, SPAN
Deploying Dockerized Apps to the Azure Container Service
SCHRödinger’s cloud storage
Atomic Gerard Braad FUDCon Phnom Penh 2016
Integrando o Docker em seu ambiente de Virtualização
Andrew Pruski SQL Server & Containers
Drupal VM and Docker4Drupal For Drupal Development Platform
I’m going to talk about my vision for the future of system administration, and a question for you to contemplate.
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
AWS DevOps Engineer - Professional dumps.html Exam Code Exam Name.
Kubernetes Container Orchestration
Intro to Config Management Using Salt Open Source
Setting policies in kubernetes
Introduction to Docker
Using docker containers
Azure Container Instances
Oracle DB and Docker Get Your Dockerized Oracle Sandbox Running in the Cloud or On- Premises Martin Knazovicky Dbvisit Software.
Tech Inside Extended Document Management System (EDMS)
Developing and Supporting Apps in Windows as a Service (WaaS)
Confidential – Oracle Internal/Restricted/Highly Restricted
HDFS on Kubernetes -- Lessons Learned
Intro to Docker Containers and Orchestration in the Cloud
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Adopting the cloud Scalable websites without servers
Simplified Development Toolkit
HDFS on Kubernetes -- Lessons Learned
Containerized Development with Eclipse Docker Tooling at scale
Daniel Mennell Mesosphere, Inc.
Configuration management suite
Introduction to Docker
DEVOPS & THE FUTURE OF TESTING
Azure Container Service
Shipping Data Science Products with R and Docker
Deploying machine learning models at scale
Containers on Azure Peter Lasne Sr. Software Development Engineer
Presentation transcript:

Thinking Inside the Container: A Continuous Delivery Story Maxfield Stewart Engineering Manager: Riot Games (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)

Who’s This Guy?

Thinking Inside the Container

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)

A Quick Note on Riot Games

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) The Scale of League MORE THAN 67 MILLION MONTHLY ACTIVE PLAYERS MORE THAN 27 MILLION DAILY ACTIVE PLAYERS 7.5 MILLION PEAK CONCURREN T PLAYERS

1.25 Million Builds a Year

10, ,000 Containers A Week

120 Jobs An Hour

A Containerized Build Farm JENKINSSWARM DOCKERHOST cAdvisor Docker-GC Container Metrics CentOS 7.2/Docker Core/32GB RAM/120GB LVS DRYDOCK BUILD HOSTS SSH Docker API

STORY TIME! (aka. Presenting the Problem)

3500+ Unique Build Jobs

650+ Builds an Hour

90+ Build Slaves

Expecting 100 More!

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Story Time.... Ticket EngineersBuild Team

Story Time.... Ticket EngineersBuild Team

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) What Did We Want? TEAMS NEEDED TO MOVE FAST PRODUCTS HAD TO OWN THEIR STACK CONFIGURA TION AS CODE

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Maybe We Want...

“Along Came a Whale” (More Story Time!)

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)

Oh Look! Another Way to Deploy!

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Docker For Newbz

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Jenkins Primer

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Jenkins Primer JENKINS “Win32” + “Java” + ”TeamA” MasterSlaves “Cent7” + “Java” + ”TeamB” “Cent7” + “GoLang” + ”TeamB”

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Jenkins Primer JENKINS “Win32” + “Java” + ”TeamA” MasterSlaves “Cent7” + “Java” + ”TeamB” “Cent7” + “GoLang” + ”TeamB” Build Job “Win32” + “Java” + ”TeamA”

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Jenkins Primer JENKINS “Win32” + “Java” + ”TeamA” MasterSlaves “Cent7” + “Java” + ”TeamB” “Cent7” + “GoLang” + ”TeamB” Build Job “Win32” + “Java” + ”TeamA” Build Job Queue

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Jenkins Primer JENKINS “Win32” + “Java” + ”TeamA” MasterSlaves “Cent7” + “Java” + ”TeamB” “Cent7” + “GoLang” + ”TeamB” Build Job “Win32” + “Java” + ”TeamA” Build Job Queue

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) What Did We Need? CONTAINER RUNNING AS A BUILD SLAVE HOW TO SCALE IT WAY TO HAVE ENGINEERS PROVIDE DOCKERFILES PROFIT?

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) A Build Slave Container

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Add a Bit of Secret Sauce... Base Slave Image Universal Riot Tools Product/App Specific Build Stuff

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) A Real Example

Provisioning and Plugins += ?

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Of Whales and Plugins MESOS PLUGIN KUBERNETES PLUGIN DOCKER PLUGIN

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Of Whales and Plugins MESOS PLUGIN KUBERNETES PLUGIN DOCKER PLUGIN

Quick Look

Provisioning and Plugins Image Name Label

Groovy To the Rescue torial/tree/master/jenkinsscripts

We Created A Monster

We Need to Inspect Our Containers

./harbormaster --registry_user "$REGISTRY_USER" --registry_token "$REGISTRY_TOKEN" --jenkins_user $USER -- jenkins_pass $PASSWORD --jenkins --dockerhost $TEST_DOCKER_HOST "$IMAGENAME" "$CLOUDNAME" "$LABELNAME"

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Are We Done?

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) But It Needs to Scale!

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) If Only...

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) If Only...

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) But It Needs to Scale! JENKINSSWARM DOCKERHOST cAdvisor Docker-GC Container Metrics CentOS 7.2/Docker Core/32GB RAM/120GB LVS BUILD HOSTS SSH Docker API

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Putting It All Together Engineer REGISTRY Image

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Putting It All Together Engineer REGISTRY HARBOR MASTER Image Name + Jenkins Label

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Putting It All Together Engineer REGISTRY HARBOR MASTER Runs Tests

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Putting It All Together Engineer REGISTRY HARBOR MASTER SWARM DOCKERHOST Image Pulled to Swarm

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Putting It All Together Engineer REGISTRY HARBOR MASTER SWARM DOCKERHOST Groovy API Called Jenkins

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Build Job Quick Look

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Dockerception

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Where to Build Containers? JENKINSSWARM DOCKERHOST cAdvisor Docker-GC Container Metrics CentOS 7.2/Docker Core/32GB RAM/120GB LVS DRYDOCK BUILD HOSTS SSH Docker API

Mai Tai’s On the Beach Build Engineer

How Do You Actually Build It?

(engineering.riotgames.com)

You Make This Sound Simple.

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Lesson 1 - Docker Isn’t “Simple” DOCKERFILES REQUIRE DECENT SYSTEMS ADMIN KNOWLEDGE DOCKER IMAGES THAT BUILD DOCKER IMAGES IS DOCKERCEPTION DOCKER “VOODOO AND BLACK MAGIC” QUESTIONS

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Lesson 2 - Containers != VM’s CANNOT MOUNT REMOTE FILE SYSTEMS HAVE RULES FOR DOCKERFILE VS RUN TIME EPHEMERAL CONTAINERS DON’T MAINTAIN STATE

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Lesson 3 - Garbage Collection DOCKER BUILD DOCKER PULL DOCKER RUN VOLUME

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Lesson 4 - Maintenance/Failure PULL HOSTS ON/OFFLINE UPDATE ALL IMAGES ROLLING RESTARTS

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Lesson 5 - How Will You Upgrade?

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP) Lesson 7 - Credentials & Security WHAT SHOULD YOU PUT IN YOUR BASE IMAGE? PASSWORDS IN YOUR SOURCE CODE? SSH KEYS IN YOUR REGISTRY? PASSING EVERYTHING IN AS A ENVIRONMENT VARIABLE?

(NOTE: PASTE IN PHOTO AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)

Over 1200 New Build Jobs Created

30% of All Environments Are Containers

Environment Change/Create/Fix Tickets Dissappeared

We No Longer Have “Just” A Build Team

QUESTIONS?