CONTINUOUS DELIVERY WITH MESOS, DC/OS AND JENKINS

Similar documents
CONTINUOUS DELIVERY WITH DC/OS AND JENKINS

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Using DC/OS for Continuous Delivery

@joerg_schad Nightmares of a Container Orchestration System

AGILE DEVELOPMENT AND PAAS USING THE MESOSPHERE DCOS

Deploying Applications on DC/OS

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

Scale your Docker containers with Mesos

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

Building/Running Distributed Systems with Apache Mesos

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

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

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

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

SCALING LIKE TWITTER WITH APACHE MESOS

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

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

Container Orchestration on Amazon Web Services. Arun

Think Small to Scale Big

MANAGING MESOS, DOCKER, AND CHRONOS WITH PUPPET

APACHE COTTON. MySQL on Mesos. Yan Xu xujyan

POWERING THE INTERNET WITH APACHE MESOS

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

DevOps Online Training

DEVOPS TRAINING COURSE CONTENT

Kuber-what?! Learn about Kubernetes

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

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

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

Deploy Like A Boss Oliver Nicholas

How Container Schedulers and Software-based Storage will Change the Cloud

A Whirlwind Tour of Apache Mesos

P a g e 1. Teknologisk Institut. Online kursus k SysAdmin & DevOps Collection

MESOS A State-Of-The-Art Container Orchestrator Mesosphere, Inc. All Rights Reserved. 1

Docker and Security. September 28, 2017 VASCAN Michael Irwin

Beyond 1001 Dedicated Data Service Instances

Backup strategies for Stateful Containers in OpenShift Using Gluster based Container-Native Storage

UP! TO DOCKER PAAS. Ming

Mesosphere and Percona Server for MongoDB. Jeff Sandstrom, Product Manager (Percona) Ravi Yadav, Tech. Partnerships Lead (Mesosphere)

Xen and CloudStack. Ewan Mellor. Director, Engineering, Open-source Cloud Platforms Citrix Systems

Issues Fixed in DC/OS

Note: Isolation guarantees among subnets depend on your firewall policies.

System Requirements ENTERPRISE

The four forces of Cloud Native

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

70-532: Developing Microsoft Azure Solutions

Deploy an external load balancer with

AWS Course Syllabus. Linux Fundamentals. Installation and Initialization:

By: Jeeva S. Chelladhurai

Con$nuous Deployment with Docker Andrew Aslinger. Oct

Running MarkLogic in Containers (Both Docker and Kubernetes)

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

Important DevOps Technologies (3+2+3days) for Deployment

A REFERENCE ARCHITECTURE FOR DEPLOYING WSO2 MIDDLEWARE ON KUBERNETES

DevOps Course Content

Mesosphere and Percona Server for MongoDB. Peter Schwaller, Senior Director Server Eng. (Percona) Taco Scargo, Senior Solution Engineer (Mesosphere)

Network Function Virtualization over Open DC/OS Yung-Han Chen

70-532: Developing Microsoft Azure Solutions

DevOps in the Cloud A pipeline to heaven?! Robert Cowham BCS CMSG Vice Chair

The age of orchestration

DevOps Course Content

Building A Better Test Platform:

Industry-leading Application PaaS Platform

Fixing the "It works on my machine!" Problem with Docker

Processing of big data with Apache Spark

Application Centric Microservices Ken Owens, CTO Cisco Intercloud Services. Redhat Summit 2015

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

/ Cloud Computing. Recitation 5 September 26 th, 2017

[Docker] Containerization

Docker and Oracle Everything You Wanted To Know

/ Cloud Computing. Recitation 5 February 14th, 2017

FROM MONOLITH TO DOCKER DISTRIBUTED APPLICATIONS

GoDocker. A batch scheduling system with Docker containers

SECURING A MARATHON INSTALLATION 2016

Using AWS to Build a Large Scale Dockerized Microservices Architecture. Dr. Oliver Wahlen moovel Group GmbH Frankfurt, 30.

Deployment Patterns using Docker and Chef

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

Container-Native Storage

Scalable task distribution with Scala, Akka and Mesos. Dario

Microsoft Cloud Workshop. Containers and DevOps Hackathon Learner Guide

Red Hat Roadmap for Containers and DevOps

Agile CI/CD with Jenkins and/at ZeroStack. Kiran Bondalapati CTO, Co-Founder & Jenkins Admin ZeroStack, Inc. (

CONTAINERS AND MICROSERVICES WITH CONTRAIL

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

Windows Azure Services - At Different Levels

SQL Server inside a docker container. Christophe LAPORTE SQL Server MVP/MCM SQL Saturday 735 Helsinki 2018

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

Architecting for Failure in a Containerized World. Tom Faulhaber Infolace

Google Cloud Platform for Systems Operations Professionals (CPO200) Course Agenda

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

Continuous Integration using Docker & Jenkins

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

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

S Implementing DevOps and Hybrid Cloud

BUILDING A SCALABLE MOBILE GAME BACKEND IN ELIXIR. Petri Kero CTO / Ministry of Games

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan

Baremetal with Apache CloudStack

Elastic Efficient Execution of Varied Containers. Sharma Podila Nov 7th 2016, QCon San Francisco

UPGRADING A MESOS CLUSTER

OPENSTACK BEIJING CONFERENCE. by: Steven Hallett Head of Cloud Infrastructure Engineering and Operations

Transcription:

APACHE MESOS NYC MEETUP SEPTEMBER 22, 2016 CONTINUOUS DELIVERY WITH MESOS, DC/OS AND JENKINS

WHO WE ARE ROGER IGNAZIO SUNIL SHAH Tech Lead at Mesosphere @rogerignazio Product Manager at Mesosphere @ssk2

BUY MY BOOK! mesosinaction.com Use the code vecymes for 42% off!

AGENDA Background Introduction to Apache Mesos and DC/OS Components that make up modern infra. Running Jenkins as a service on DC/OS Demo Installing and configuring Jenkins Installing and configuring a load balancer Creating a new CI/CD pipeline Continuously deploying applications to DC/OS

INTRO TO APACHE MESOS AND DC/OS

A QUICK PRIMER ON CONTAINERS Virtual Machine Based Application Deployment App App App App OS OS OS OS VM VM VM VM Hypervisor Physical Server Container Based Application Deployment Isolate apps by running multiple VMs per physical server; still need to manage each guest OS! App App App Mesos Hypervisor Physical Server App Isolate apps using features of the host OS, such as Linux cgroups. Operating System Operating System Physical Server Physical Server

A QUICK PRIMER ON CONTAINERS Virtual Machines Docker Containers Linux cgroups Application Application Dependencies Application Dependencies Guest OS Linux cgroup Docker Container VM Docker Engine Hypervisor Host OS Dependencies Linux Host OS

A BIT OF CLARIFICATION https://mesos.apache.org https://dcos.io

WHAT IS MESOS? General purpose cluster resource manager Represents many machines as a single entity Advertises resources directly to frameworks Works at scale: Apple, Twitter, Airbnb, Netflix,

WHAT IS MESOS? (CONTINUED) Two-tier scheduling across resource types cpus, mem, disk, and ports by default Masters are highly available, agents are fault tolerant Checkpointing, agent recovery Resource isolation between processes Linux cgroups, Docker, Language bindings: C++, Java, Python, Go,

MESOS ARCHITECTURE Framework A Scheduler Resource offer Framework B Scheduler Agent 1 Launch task(s) Framework A Executor Mesos Master Quorum Resource offer Mesos Master (Leader) Task(s) Launch task(s) ZK Agent n ZK Mesos Master (Standby) ZK Mesos Master (Standby) Framework A Executor Task(s) Framework B Executor Task(s)

ANATOMY OF A RESOURCE OFFER (TWO-TIER SCHEDULING) Available compute resources Mesos Master(s) Mesos Agent Mesos Agent Mesos Agent 16 CPUs 128 GB RAM 1 TB disk 16 CPUs 128 GB RAM 1 TB disk 16 CPUs 128 GB RAM 1 TB disk Executor Executor Executor Tasks Tasks Tasks Master offers resources to scheduler Scheduler Scheduler accepts or declines an offer Resource offer accepted, launch executors/tasks

NEW (OLD) PROBLEMS Service discovery and load balancing BIND, Mesos-DNS, Consul-Mesos, Marathon-LB

NEW (OLD) PROBLEMS Service discovery and load balancing BIND, Mesos-DNS, Consul-Mesos, Marathon-LB Monitoring and metrics collection Collectd, Nagios, Prometheus, Snap

NEW (OLD) PROBLEMS Service discovery and load balancing BIND, Mesos-DNS, Consul-Mesos, Marathon-LB Monitoring and metrics collection Collectd, Nagios, Prometheus, Snap Persistent storage (filesystems, databases, etc) Ceph, HDFS, Amazon EBS / EFS / S3, NFS, Cassandra

NEW (OLD) PROBLEMS Service discovery and load balancing BIND, Mesos-DNS, Consul-Mesos, Marathon-LB Monitoring and metrics collection Collectd, Nagios, Prometheus, Snap Persistent storage (filesystems, databases, etc) Ceph, HDFS, Amazon EBS / EFS / S3, NFS, Cassandra Administration: named URIs vs. ports, IPAM Nginx, HAProxy, Mesos-DNS, dhcpd, Minuteman

DC/OS: BUILT ON MESOS https://dcos.io https://github.com/dcos

DC/OS: BUILT ON MESOS

JENKINS ON DC/OS

MULTIPLE JENKINS MASTERS Team A Jenkins Team B Jenkins Team X Jenkins Jenkins Agent 1 Jenkins Agent 1 Jenkins Agent 2 Jenkins Agent 2 Jenkins Agent 2......... Jenkins Agent N Jenkins Agent N Jenkins Agent N... Jenkins Agent 1

MULTIPLE JENKINS MASTERS STATIC PARTITIONING Team A Jenkins Team B Jenkins Team X Jenkins Jenkins Agent 1 Jenkins Agent 1 Jenkins Agent 2 Jenkins Agent 2 Jenkins Agent 2......... Jenkins Agent N Jenkins Agent N Jenkins Agent N 90% Utilized (Normal) 140% Utilized (40 builds in queue) 0% Utilized (Idle)... Jenkins Agent 1

RUNNING JENKINS ON DC/OS FAIR SHARING Team A Jenkins Team B Jenkins... Team X Jenkins DC/OS DC/OS Agent 1 DC/OS Agent 2 DC/OS Agent 3 DC/OS Agent 4 DC/OS Agent 5 DC/OS Agent 6... DC/OS Agent N

CONTINUOUSLY DEPLOYING APPLICATIONS TO DC/OS

DEPLOYING APPLICATIONS: BASIC REQUIREMENTS Scheduling advertising available compute resources Deployments getting an application onto a node Health checks ensuring the app/service is healthy Service discovery connecting to dependent services Persistence running stateful services in containers

DEPLOYING APPLICATIONS: SCHEDULING Before DC/OS A sysadmin provisions one or more physical/virtual servers to host the app With DC/OS Mesos resource offers (two-tier scheduling) offers available resources directly to frameworks

DEPLOYING APPLICATIONS: DEPLOYMENTS Before DC/OS By hand or using Puppet / Chef / Ansible Jenkins SSHing to the machine and running a shell script Note: all dependencies must also be present! With DC/OS Marathon deploys containers, ideally using a CI/CD tool to create/update app definitions Docker containers packages app and dependencies

DEPLOYING APPLICATIONS: HEALTH CHECKS Before DC/OS Nagios pages a sysadmin With DC/OS Marathon performs health checks, restarts unhealthy/failed instances

DEPLOYING APPLICATIONS: SERVICE DISCOVERY Before DC/OS Static hostnames / IP addresses in a spreadsheet or config management A sysadmin configures a load balancer manually or with Puppet / Chef / Ansible With DC/OS Mesos-DNS provides DNS resolution for running services (hostname / IP address, ports, etc) Load balancer configs built dynamically using cluster state

DEPLOYING APPLICATIONS: PERSISTENCE Before DC/OS With DC/OS Individual servers with RAID 1/5/6/10, expensive SANs, NFS, etc. Mesos external/persistent volumes (REX-Ray), HDFS, etc. Dedicated, statically partitioned Ceph or Gluster storage clusters Self-healing Ceph or Gluster on Mesos / DC/OS

Q: Given that we are all engineers, which tools would we like to work with?

DEMOS

PIPELINE COMPONENTS Continuous Delivery Pipeline Version Control System Continuous Integration Container Orchestrator Production Environment Load Balancer git push Container Registry DC/OS 32

PIPELINE COMPONENTS Continuous Delivery Pipeline GitHub Jenkins Marathon Mesos Marathon-lb git push DockerHub DC/OS 33

PIPELINE CONFIGURATION Continuous Delivery Pipeline Jenkinsfile marathon.json git push Dockerfile DC/OS 34

DEMOTIME

THANK YOU! Roger Ignazio roger@mesosphere.com @rogerignazio Sunil Shah sunil@mesosphere.com @ssk2 Learn more by visiting DCOS.io and Mesosphere.com