Deploy Like A Boss Oliver Nicholas

Similar documents
Scale your Docker containers with Mesos

CONTINUOUS DELIVERY WITH MESOS, DC/OS AND JENKINS

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

SCALING LIKE TWITTER WITH APACHE MESOS

Building/Running Distributed Systems with Apache Mesos

CONTINUOUS DELIVERY WITH DC/OS AND JENKINS

Using DC/OS for Continuous Delivery

利用 Mesos 打造高延展性 Container 環境. Frank, Microsoft MTC

@joerg_schad Nightmares of a Container Orchestration System

Container Orchestration on Amazon Web Services. Arun

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

Building a Data-Friendly Platform for a Data- Driven Future

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

The Long Road from Capistrano to Kubernetes

Advantages of using DC/OS Azure infrastructure and the implementation architecture Bill of materials used to construct DC/OS and the ACS clusters

POWERING THE INTERNET WITH APACHE MESOS

AGILE DEVELOPMENT AND PAAS USING THE MESOSPHERE DCOS

A Whirlwind Tour of Apache Mesos

Deploying Applications on DC/OS

SAMPLE CHAPTER IN ACTION. Roger Ignazio. FOREWORD BY Florian Leibert MANNING

Docker & Mesos/Marathon in production at OVH. Balthazar Rouberol

The Emergence of the Datacenter Developer. Tobi Knaup, Co-Founder & CTO at

Continuous Integration and Deployment (CI/CD)

Introduction To YARN. Adam Kawa, Spotify The 9 Meeting of Warsaw Hadoop User Group 2/23/13

Mesosphere and the Enterprise: Run Your Applications on Apache Mesos. Steve Wong Open Source Engineer {code} by Dell

@unterstein #bedcon. Operating microservices with Apache Mesos and DC/OS

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

Container 2.0. Container: check! But what about persistent data, big data or fast data?!

The SMACK Stack: Spark*, Mesos*, Akka, Cassandra*, Kafka* Elizabeth K. Dublin Apache Kafka Meetup, 30 August 2017.

An introduction to the Mesos Framework Zoo. Benjamin Bannier

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

YOUR APPLICATION S JOURNEY TO THE CLOUD. What s the best way to get cloud native capabilities for your existing applications?

How to Keep UP Through Digital Transformation with Next-Generation App Development

Windows Azure Services - At Different Levels

[Docker] Containerization

Networking & Security for Mesos

Enabling Low-friction Continuous Deployment via Workflows and Containers

Roadmap: Operating Pentaho at Scale. Jens Bleuel Senior Product Manager, Pentaho

Seagull: A distributed, fault tolerant, concurrent task runner. Sagar Patwardhan

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

Processing of big data with Apache Spark

TEN LAYERS OF CONTAINER SECURITY

Mesos at Yelp: Building a production ready PaaS. Rob Johnson

AEM Code Promotion and Content Synchronization Best Practices

Understanding and Evaluating Kubernetes. Haseeb Tariq Anubhavnidhi Archie Abhashkumar

Distributed Computation Models

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

Continuous Delivery the hard way with Kubernetes. Luke Marsden, Developer

Zabbix on a Clouds. Another approach to a building a fault-resilient, scalable monitoring platform

Typhoon: An SDN Enhanced Real-Time Big Data Streaming Framework

Building and Running a Solr-as-a-Service SHAI ERERA IBM

HDFS: Hadoop Distributed File System. CIS 612 Sunnie Chung

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

DevOps Online Training

5 reasons why choosing Apache Cassandra is planning for a multi-cloud future

what is cloud computing?

CONTINUOUS MONITORING OF PERFORMANCE BENCHMARKS IN KERNEL FILE SYSTEMS DRIVER DEVELOPMENT

Containerizing GPU Applications with Docker for Scaling to the Cloud

Minimizing the Risks of OpenStack Adoption

Monitoring system for geographically distributed datacenters based on Openstack. Gioacchino Vino

Building a Scalable Architecture for Web Apps - Part I (Lessons Directi)

Continuous Integration and Delivery with Spinnaker

Reproducible computational pipelines with Docker and Nextflow

Making Non-Distributed Databases, Distributed. Ioannis Papapanagiotou, PhD Shailesh Birari

Cloud providers, tools and best practices in running Magento on Kubernetes. Adrian Balcan MindMagnet Software

SBB. Java User Group 27.9 & Tobias Denzler, Philipp Oser

Triton file systems - an introduction. slide 1 of 28

Dept. Of Computer Science, Colorado State University

DISQUS. Continuous Deployment Everything. David

Cloudera Exam CCA-410 Cloudera Certified Administrator for Apache Hadoop (CCAH) Version: 7.5 [ Total Questions: 97 ]

Beginners guide to at #phpworld

Think Small to Scale Big

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

Containers Infrastructure for Advanced Management. Federico Simoncelli Associate Manager, Red Hat October 2016

Luigi Build Data Pipelines of batch jobs. - Pramod Toraskar

How can you implement this through a script that a scheduling daemon runs daily on the application servers?

Installation and setup guide of 1.1 demonstrator

Architecting for Failure in a Containerized World. Tom Faulhaber Infolace

Warehouse- Scale Computing and the BDAS Stack

FROM MONOLITH TO DOCKER DISTRIBUTED APPLICATIONS

Distributed Data Infrastructures, Fall 2017, Chapter 2. Jussi Kangasharju

Enabling Performance & Stress Test throughout the Application Lifecycle

There And Back Again

Scalable Streaming Analytics

The four forces of Cloud Native

What Building Multiple Scalable DC/OS Deployments Taught Me about Running Stateful Services on DC/OS

FROM LEGACY, TO BATCH, TO NEAR REAL-TIME. Marc Sturlese, Dani Solà

Distributed Data on Distributed Infrastructure. Claudius Weinberger & Kunal Kusoorkar, ArangoDB Jörg Schad, Mesosphere

CONTAINERS AND MICROSERVICES WITH CONTRAIL

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

We are ready to serve Latest IT Trends, Are you ready to learn? New Batches Info

Windows Server The operating system

Deployment Planning Guide

Asterisk & the Docker revolution Some lessons from the trenches

BUILDING A GPU-FOCUSED CI SOLUTION

Con$nuous Deployment with Docker Andrew Aslinger. Oct

Title DC Automation: It s a MARVEL!

Personal Statement. Skillset I MongoDB / Cassandra / Redis / CouchDB. My name is Dale-Kurt Murray. I'm a Solutiof

AZURE CONTAINER INSTANCES

Transcription:

Deploy Like A Boss Oliver Nicholas

DEPLOY LIKE A BOSS THE JOURNEY FROM 2 SERVERS TO 20,000

THE DEPLOYMENT PIPELINE MARCH 1, 2015 3

UBER TECHNOLOGIES, INC BUSINESS METRICS 311 Cities 57 Countries 1,000,000+ Rides per Day ENGINEERING METRICS 300+ Services 2500 servers per DC 2-4 Datacenters (ABS) 10's of deployments per day MARCH 1, 2015 4

OLIVER NICHOLAS MARCH 1, 2015 5

DISTRIBUTION MARCH 1, 2015 6

ORCHESTRATION MARCH 1, 2015 7

THE EARLY DAYS "DISASTER DRIVEN DEVELOPMENT"

EARLY-STAGE DEPLOYMENT SYSTEMS DEPLOY AND PRAY SIMPLE UNIX TOOLS: 1. history grep scp 2. tar zcvf - proj/ ssh user@server "cat > /var/www/proj.tgz && tar xfz proj.tgz && /etc/init.d/project restart" 3. rsync - avz proj user@server:/var/www/ && ssh user@server /etc/init.d/project restart DRAWBACKS: Not atomic Performance impact during deploy No load balancer management Brittle PROS: We don't care about any of the drawbacks yet. MARCH 1, 2015 9

THE MIDDLE AGES "GOOD ENOUGH FOR WAY TOO LONG"

MIDDLE-STAGE DEPLOYMENT SYSTEMS EASY TO BUILD, HARD TO LEAVE OPEN-SOURCE SOLUTIONS: Capistrano, Fabric Convenience wrappers for shell scripts. Encapsulate most of the SSH complexity. TYPICAL FLOW: Build Code Sync to deploy targets Take target out of LB Shutdown app Swap symlink Start app up Healthchecks, Warmup Put target back into LB Move onto next host EXAMPLE: bigo@bigo- proforce/~$ cat deploy.rb set :application, "uber" set :scm, :git set :repository, "git@git.uber.com:/proj.git" set :user, "uber" role :app, "server1", "server2", "server3" set :deploy_to, "/var/www/" namespace :deploy do end task :restart, :roles => :app do end run "/etc/init.d/proj restart" bigo@bigo- proforce/~$ cap deploy MARCH 1, 2015 11

MIDDLE-STAGE DEPLOYMENT SYSTEMS EASY TO BUILD, HARD TO LEAVE PROS: Open-source libraries Lots of recipes out there for special cases Realistically, good enough for tens of servers CONS: Not good enough for hundreds of servers. Still essentially utilizing tar-scp pipeline Though you can extend away from that (git pull from deploy target hosts) Poor support for multi-user environments (no deploy lock) MARCH 1, 2015 12

ASIDE: BUILD DISTRIBUTION MOVING BITS FROM A -> B

BUILD DISTRIBUTION ALL DRESSED UP WITH SOMEWHERE TO GO NAIVE DESIGN Early systems almost always just consist of tar-scp or equivalent Single build+distribute server SPOF, slow (good way to overload a rack switch and cause a packet storm) MORE SCALABLE APPROACHES Tiered...rsync hosts :) HDFS or equivalent distributed filesystems BitTorrent MARCH 1, 2015 14

THE MODERN ERA

MODERN ERA DEPLOYMENT SYSTEMS CALL ME, MAYBE OUT WITH THE OLD... Earlier systems were all push based. When scaling, active O(1) -> O(n) work where n scales with traffic tends to go sideways. Consistency issues when servers are inaccessible. IN WITH THE NEW.. Pull ("poll") based model. Leaf nodes (app servers) contact deploy master, rather than the other way around. Goal-based - the hard work happens on the app servers. Database-driven server lists. MARCH 1, 2015 16

CLUSTO STOP LOSING SERVERS MARCH 1, 2015 17

UDEPLOY ARCHITECTURE Coordinator in each datacenter. Worker on each deploy target. Workers poll Coordinator for target state. Coordinator has a priori concept of deploy procedure, according to hardware database and deployment policy. Deployment policy is customizable for things like stuck machines. Intermediate Coordinators take cue from primary; multiple datacenters deployed in parallel. MARCH 1, 2015 18

UDEPLOY TOUR SERVICE SELECTION MARCH 1, 2015 19

UDEPLOY TOUR SERVICE VIEW MARCH 1, 2015 20

UDEPLOY TOUR BUILD VIEW MARCH 1, 2015 21

UDEPLOY STILL NOT PERFECT STRENGTHS Coordinator only does passive work - responding to requests - in O(n) of # of Workers. High-level fault detection and rollback triggers Offloads most of the work to the Workers. DRAWBACKS... Static server pools! Deployment relies on the static mapping of service -> server. Deploys must be windowed rather than full red/black. MARCH 1, 2015 22

THE FUTURE

THE FUTURE: MESOS THE MISSING BUILDING BLOCK MESOS IS A......resource management engine....pluggable conduit for scheduling tasks against server resources. "...distributed systems kernel" MARCH 1, 2015 24

THE FUTURE: MESOS THE MISSING BUILDING BLOCK HOW IT WORKS Slave makes resource offer to the Master ("I have 22 CPUs and 32GB of RAM available"). Master sends offer to its frameworks. Framework accepts portion of offer and informs master ("Take 1 CPU and 64MB of RAM and run `yes`"). Next slave resource offer takes decremented resources into account. MARCH 1, 2015 25

THE FUTURE: MESOS AND MARATHON A FRAMEWORK FOR LONG-RUNNING TASKS MARATHON: "A cluster-wide init and control system for services in cgroups or Docker containers" Built-in support for various deployment policies, healthchecks, automated rollbacks. Rich constraint system: "distribute app across racks" "no more than one instance per server" "only deploy to machines with kernel version > 3.13" MARCH 1, 2015 26

THE FUTURE: MESOS AND MARATHON AND UDEPLOY NIRVANA? UDEPLOY KEY FEATURES: Beautiful interface for kicking off builds. Authentication and Authorization support. Coordination across multiple datacenters. Higher-order healthchecking/rollback functionality. MESOS/MARATHON KEY FEATURES: HA masters with ZK coordination already built for us. Shifts focus from instances to clusters. Homogenizes cluster resources - "server" no longer the basic unit of organization. Rich features around resource distribution. MARCH 1, 2015 27

THE FUTURE: MESOS AND MARATHON AND UDEPLOY NIRVANA? MARCH 1, 2015 28

MESOS/MARATHON/UDEPLOY AUTOSCALING FIRE YOUR OPERATIONS TEAM? SHIFT OF FOCUS MAKES SCALING EASIER: Mesos+Marathon helps us solve the "doing the work" part of scaling. We let the software handle all the placement questions. AUTOMATE THE DECISION TO SCALE: cgroups and Docker containers deployed under Mesos fine-grained CPU utilization metrics for each service instance good proxy for scaling decisions MARCH 1, 2015 29

MORE MESOS FRAMEWORKS KITCHEN SINK INCLUDED OPEN SOURCE MESOS FRAMEWORKS: Task Schedulers Aurora, Marathon, Hadoop, Spark, Storm, Chronos Lots more HDFS, Mysos, Cassandra, HyperTable ElasticSearch Jenkins MPI, Chapel Mesosphere plug! MARCH 1, 2015 30

THE LONG JOURNEY DEPLOYMENT SYSTEMS Start from simple shell pipelines Advance to Capistrano/Fabric-type DSLs Invert control flow once scale is achieved Abstract away individual servers at even larger scale Along the way, higher-availability code distribution models Go forth and Deploy like an Evil Genius. MARCH 1, 2015 31

Questions? Please remember to evaluate via the GOTO Guide App