FROM MONOLITH TO DOCKER DISTRIBUTED APPLICATIONS

Similar documents
CONTINUOUS INTEGRATION CONTINUOUS DELIVERY

Launching StarlingX. The Journey to Drive Compute to the Edge Pilot Project Supported by the OpenStack

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

Designing MQ deployments for the cloud generation

Scaling Jenkins with Docker and Kubernetes Carlos

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

MANAGING MESOS, DOCKER, AND CHRONOS WITH PUPPET

Scale your Docker containers with Mesos

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

Kubernetes: Twelve KeyFeatures

Container Orchestration on Amazon Web Services. Arun

Using DC/OS for Continuous Delivery

Container-Native Storage

DEVOPS COURSE CONTENT

@joerg_schad Nightmares of a Container Orchestration System

An Introduction to Kubernetes

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

The Art of Container Monitoring. Derek Chen

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

AALOK INSTITUTE. DevOps Training

Project Kuryr. Antoni Segura Puimedon (apuimedo) Gal Sagie (gsagie)

DevOps Course Content

[Docker] Containerization

CONTINUOUS DELIVERY WITH MESOS, DC/OS AND JENKINS

CONTINUOUS DELIVERY WITH DC/OS AND JENKINS

From Zero to Production Our Mesos Journey. Chien Huey DevOps Engineer XO Group, Inc.

What s New in Red Hat OpenShift Container Platform 3.4. Torben Jäger Red Hat Solution Architect

Cloudera s Enterprise Data Hub on the Amazon Web Services Cloud: Quick Start Reference Deployment October 2014

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

Kubernetes - Networking. Konstantinos Tsakalozos

Package your Java Application using Docker and Kubernetes. Arun

The Long Road from Capistrano to Kubernetes

Overview of Container Management

Netflix OSS Spinnaker on the AWS Cloud

Seven Habits of Highly Effective Jenkins Users

OpenStack Magnum Pike and the CERN cloud. Spyros

Project Calico v3.1. Overview. Architecture and Key Components

Rok: Decentralized storage for the cloud native world

OpenStack Magnum Hands-on. By Saulius Alisauskas and Bryan Havenstein

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

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

Big Data Security. Facing the challenge

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

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

Comparison of Service Description and Composition for Complex 3-tier Cloud-based Services

CIT 668: System Architecture. Amazon Web Services

A REFERENCE ARCHITECTURE FOR DEPLOYING WSO2 MIDDLEWARE ON KUBERNETES

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

Deploying Liferay Digital Experience Platform in Amazon Web Services

Project Calico v3.2. Overview. Architecture and Key Components. Project Calico provides network security for containers and virtual machine workloads.

Spark and Flink running scalable in Kubernetes Frank Conrad

Kuber-what?! Learn about Kubernetes

AGILE DEVELOPMENT AND PAAS USING THE MESOSPHERE DCOS

Scientific Workflows and Cloud Computing. Gideon Juve USC Information Sciences Institute

OnCommand Cloud Manager 3.2 Deploying and Managing ONTAP Cloud Systems

Continuous Delivery for Cloud Native Applications

How to build scalable, reliable and stable Kubernetes cluster atop OpenStack.

SCALING LIKE TWITTER WITH APACHE MESOS

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

USER GUIDE. Veritas NetBackup CloudFormation Template

Introduction to Cloud Computing

AWS Course Syllabus. Linux Fundamentals. Installation and Initialization:

Deliver Docker Containers Continuously on AWS. Philipp

ThoughtSpot on AWS Quick Start Guide

Weiting Chen Zhen Fan

Building/Running Distributed Systems with Apache Mesos

Cloud Computing /AWS Course Content

Securing Microservice Interactions in Openstack and Kubernetes

Deploying Applications on DC/OS

Orchestration Ownage: Exploiting Container-Centric Datacenter Platforms

Introduction to Mesos and the Datacenter Operating System

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

HOW TO PLAN & EXECUTE A SUCCESSFUL CLOUD MIGRATION

Practical Considerations for Multi- Level Schedulers. Benjamin

Exam Name: VMware Certified Professional on vsphere 5 (Private Beta)

SAP VORA 1.4 on AWS - MARKETPLACE EDITION FREQUENTLY ASKED QUESTIONS

Amazon AMI Build Guide January Doc Version 1.5

RED HAT GLUSTER TECHSESSION CONTAINER NATIVE STORAGE OPENSHIFT + RHGS. MARCEL HERGAARDEN SR. SOLUTION ARCHITECT, RED HAT BENELUX April 2017

Baremetal with Apache CloudStack

You Have Stateful Apps - What if Kubernetes Would Also Run Your Storage?

Operating and managing an Atomic container-based infrastructure

Introduction to Kubernetes Storage Primitives for Stateful Workloads

NET1821BU THE FUTURE OF NETWORKING AND SECURITY WITH NSX-T Bruce Davie CTO, APJ 2

Minimal OpenStack Starting Your OpenStack Journey

Experiences with OracleVM 3.3

Microservices. Chaos Kontrolle mit Kubernetes. Robert Kubis - Developer Advocate,

GoDocker. A batch scheduling system with Docker containers

Ingress Kubernetes Tutorial

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

Amazon Web Services Training. Training Topics:

Thinking Inside the Container: A Continuous Delivery Story Engineering Manager: Riot Games

Windows Azure Services - At Different Levels

Setting up Kubernetes with Day 2 in Mind. Angela Chin, Senior Software Engineer, Pivotal Urvashi Reddy, Senior Software Engineer, Pivotal

NVMe over Fabrics (NVMe-oF) For Containers

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

Kubernetes Integration with Virtuozzo Storage

Beyond 1001 Dedicated Data Service Instances

Container Networking and Openstack. Fernando Sanchez Fawad Khaliq March, 2016

Amazon Web Services (AWS) Solutions Architect Intermediate Level Course Content

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

Transcription:

FROM MONOLITH TO DOCKER DISTRIBUTED APPLICATIONS Carlos Sanchez @csanchez Watch online at carlossg.github.io/presentations

ABOUT ME Senior So ware Engineer @ CloudBees Author of Jenkins Kubernetes plugin Long time OSS contributor at Apache Maven, Eclipse, Puppet,

DOCKER DOCKER DOCKER

OUR USE CASE Scaling Jenkins Your mileage may vary

A 2000 JENKINS MASTERS CLUSTER 3 Mesos masters (m3.xlarge: 4 vcpu, 15GB, 2x40 SSD) 317 Mesos slaves (c3.2xlarge, m3.xlarge, m4.4xlarge) 7 Mesos slaves dedicated to ElasticSearch: (c3.8xlarge: 32 vcpu, 60GB) 12.5 TB - 3748 CPU Running 2000 masters and ~8000 concurrent jobs

ARCHITECTURE

Isolated Jenkins masters Isolated build agents and jobs Memory and CPU limits

CLUSTER SCHEDULING Distribute tasks across a cluster of hosts Running in public cloud, private cloud, VMs or bare metal HA and fault tolerant With Docker support of course

APACHE MESOS A distributed systems kernel

ALTERNATIVES Docker Swarm / Kubernetes

MESOSPHERE MARATHON

TERRAFORM

TERRAFORM resource "aws_instance" "worker" { count = 1 instance_type = "m3.large" ami = "ami-xxxxxx" key_name = "tiger-csanchez" security_groups = ["sg-61bc8c18"] subnet_id = "subnet-xxxxxx" associate_public_ip_address = true tags { Name = "tiger-csanchez-worker-1" "cloudbees:pse:cluster" = "tiger-csanchez" "cloudbees:pse:type" = "worker" } root_block_device { volume_size = 50 } }

TERRAFORM State is managed Runs are idempotent terraform apply Sometimes it is too automatic Changing image id will restart all instances

IF YOU HAVEN'T AUTOMATICALLY DESTROYED SOMETHING BY MISTAKE, YOU ARE NOT AUTOMATING ENOUGH

Hitler uses Docker

STORAGE Handling distributed storage Servers can start in any host of the cluster And they can move when they are restarted

DOCKER VOLUME PLUGINS Flocker GlusterFS NFS EBS

KUBERNETES GCE disks Flocker GlusterFS NFS EBS

SIDEKICK CONTAINER A privileged container that manages mounting for other containers Can execute commands in the host and other containers

A lot of magic happening with nsenter

IN OUR CASE Sidekick container Jenkins masters need persistent storage, build agents (typically) don't Supporting EBS (AWS) and external NFS

PERMISSIONS Containers should not run as root Container user id!= host user id i.e. jenkinsuser in container is always 1000 but matches ubuntuuser in host

MEMORY Scheduler needs to account for container memory requirements and host available memory Prevent containers for using more memory than allowed Memory constrains translate to Docker --memory

WHAT DO YOU THINK HAPPENS WHEN? Your container goes over memory quota?

WHAT ABOUT THE JVM? WHAT ABOUT THE CHILD PROCESSES?

CPU Scheduler needs to account for container CPU requirements and host available CPUs

WHAT DO YOU THINK HAPPENS WHEN? Your container tries to access more than one CPU Your container goes over CPU limits

Totally different from memory Mesos/Kubernetes CPU translates into Docker --cpushares

NETWORKING Multiple services running in the same ports Must redirect from random ports in the host Services running in one host need to access services in other hosts

NETWORKING: SERVICE DISCOVERY DNS is not great, caching can happen at multiple levels marathon-lbuses haproxyand Marathon API A typical nginxreverse proxy is also easy to setup

NETWORKING: SOFTWARE DEFINED NETWORKS Create new custom networks on top of physical networks Allow grouping containers in subnets

NETWORKING: SOFTWARE DEFINED NETWORKS Battlefield: Calico, Flannel, Weave and Docker Overlay Network http://chunqi.li/2015/11/15/battlefield-calico-flannel- Weave-and-Docker-Overlay-Network/

SCALING New and interesting problems

LOGGING Running ElasticSearch as a cluster service, and the ELK stack Docker configured to log to syslog Logstash redirecting syslog to ElasticSearch Embedded Kibana dashboard in CloudBees Jenkins Operations Center

AWS Resource limits: VPCs, S3 snapshots, some instance sizes Rate limits: affect the whole account Retrying is your friend, but with exponential backoff

EMBRACE FAILURE!

OPENSTACK Custom flavors Custom images Different CLI commands There are not two OpenStack installations that are the same

UPGRADES / MAINTENANCE Moving containers from hosts Draining hosts Rolling updates Blue/Green deployment Immutable infrastructure

THANKS csanchez.org csanchez carlossg