Orchestrating Distributed Deployments with Docker and Containers 1 / 30



Similar documents
Modern App Architecture for the Enterprise Delivering agility, portability and control with Docker Containers as a Service (CaaS)

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Docker for Sysadmins: what's in it for me?

Modern Application Architecture for the Enterprise

Cloud-Based dwaf A Real World Deployment Case Study. OWASP 5. April The OWASP Foundation

Private Cloud Management

Business Intelligence in Microservice Architecture. Debarshi bol.com

The Virtualization Practice

Enabling Steve Rick Senior Principal Engineers

Containers, Docker, and Security: State of the Union

Considerations for Adopting PaaS (Platform as a Service)

Linux A first-class citizen in Windows Azure. Bruno Terkaly bterkaly@microsoft.com Principal Software Engineer Mobile/Cloud/Startup/Enterprise

Gregory PaaS team

One click Hadoop clusters - anywhere

UTILIZING THE PORTABILITY OF DOCKER TO DESIGN A PORTABLE AND SCALABLE CONTINUOUS INTEGRATION STACK

CONTINUOUS DEPLOYMENT WITH SINGULARITY

OpenStack. Orgad Kimchi. Principal Software Engineer. Oracle ISV Engineering. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Open Source Datacenter Conference 2011 System Management with RHN Satellite. Dirk Herrmann, Solution Architect, Red Hat

RED HAT CONTAINER STRATEGY

The Definitive Guide To Docker Containers

Alan Conley, John Belamaric. Bloxfest - Containers

Kubernetes-Murano Integration in Mirantis OpenStack 7.0

The State of Containers and the Docker Ecosystem: Anna Gerber

Automated deployment of a microservice-based monitoring infrastructure. Augusto Ciuffoletti. 6 ottobre 2015

The future of middleware: enterprise application integration and Fuse

Team: May15-17 Advisor: Dr. Mitra. Lighthouse Project Plan Client: Workiva Version 2.1

CI Pipeline with Docker

OpenShift. Marek Jelen, OpenShift, Red Hat

Deploying Your Application On Public Cloud

Deploying complex applications to Google Cloud. Olia Kerzhner

Deploy Your First CF App on Azure with Template and Service Broker. Thomas Shao, Rita Zhang, Bin Xia Microsoft Azure Team

CONSUL AS A MONITORING SERVICE

Intro to Docker and Containers

Bimodal IT. PaaS and Containers, what are they all about? By Rhys Sharp Chief Technology Officer. August 2015

Get Ship Done! Microservices Cloud Development Made Easy Charles Eckel and David Tootill Cisco Systems

MALAYSIAN PUBLIC SECTOR OPEN SOURCE SOFTWARE (OSS) PROGRAMME. COMPARISON REPORT ON NETWORK MONITORING SYSTEMS (Nagios and Zabbix)

IBM Bluemix, the digital innovation platform

WHITEPAPER INTRODUCTION TO CONTAINER SECURITY. Introduction to Container Security

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

SCALING GILT. From Monolith Ruby App to Distributed Scala Micro-Services QCon - Brooklyn Yoni (Jonathan) Goldberg

How To Understand The 2013 Cio Agenda For A Cloud Server

WebSphere ESB Best Practices

CLOUD COMPUTING & WINDOWS AZURE

Service-Oriented Architectures

Scalable Architecture on Amazon AWS Cloud

Jenkins Slave Cloud with Apache Mesos. Klaus Azesberger Reinhard Kiesswetter Infonova GmbH

Linstantiation of applications. Docker accelerate

A Data Centric Approach for Modular Assurance. Workshop on Real-time, Embedded and Enterprise-Scale Time-Critical Systems 23 March 2011

Concevoir et déployer vos applications à base de microservices sur Cloud Foundry

A telecom use case with Cloud Foundry deployment

Building a Continuous Integration Pipeline with Docker

NetBeans IDE Field Guide

Cross-Platform ASP.NET 5 For the Cloud. Anthony Sneed

Microservices and Containers in the Middleware World

How Bigtop Leveraged Docker for Build Automation and One-Click Hadoop Provisioning

IT AS A SERVICE BROKER

Emerging Approaches in a Cloud-Connected Enterprise: Containers and Microservices

PES. Ermis service for DNS Load Balancer configuration. HEPiX Fall Aris Angelogiannopoulos, CERN IT-PES/PS Ignacio Reguero, CERN IT-PES/PS

DevOps. Josh Preston Solutions Architect Stardate

Adding scalability to legacy PHP web applications. Overview. Mario Valdez-Ramirez

Networks and Services

Configure AlwaysOn Failover Cluster Instances (SQL Server) using InfoSphere Data Replication Change Data Capture (CDC) on Windows Server 2012

Sacha Dubois RED HAT TRENDS AND TECHNOLOGY PATH TO AN OPEN HYBRID CLOUD AND DEVELOPER AGILITY. Solution Architect Infrastructure

Microservices on AWS

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Private Desktop Cloud Ready to use

A Practical Roadmap to SOA Governance Enterprise Integration Services

Getting Started with IBM Bluemix: Web Application Hosting Scenario on Java Liberty IBM Redbooks Solution Guide

local content in a Europeana cloud

WHITE PAPER Redefining Monitoring for Today s Modern IT Infrastructures

Platform as a Service and Container Clouds

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

HPC Portal Development Platform with E-Business and HPC Portlets

IBM Bluemix. The Digital Innovation Platform. Simon

HPC PORTAL DEVELOPMENT PLATFORM

Cloudy Middleware MARK LITTLE TOBIAS KUNZE

DevOps Course Content

Copyright. Robert Sandoval

Enterprise-level EE: Uptime, Speed, and Scale

Our Puppet Story. Martin Schütte. May

Deciphering The Buzzwords. Duncan

Service-Oriented Architecture and Software Engineering

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

Transformation to a ITaaS Model & the Cloud

Container Clusters on OpenStack

Bridge Development and Operations for faster delivery of applications

Amazon Web Services. Elastic Compute Cloud (EC2) and more...

White Paper. Software Development Best Practices: Enterprise Code Portal

Mobile Cloud Computing

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

STRATEGIC WHITE PAPER. The next step in server virtualization: How containers are changing the cloud and application landscape

From Months to Minutes How GE Appliances Brought Docker Into the Enterprise

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

Cloud Computing and Open Source: Watching Hype meet Reality

DockerCon Day 1 Welcome

Top 5 Reasons to Upgrade to edocs DM 5.3

Scale Cloud Across the Enterprise

Evolution of the Modern Software Supply Chain The Docker Survey, 2016

Fundamental Concepts and Models

Transcription:

Orchestrating Distributed Deployments with Docker and Containers 1 / 30

Who am I? Jérôme Petazzoni (@jpetazzo) French software engineer living in California Joined Docker (dotcloud) more than 4 years ago (I was at Docker before it was cool!) I have built and scaled the dotcloud PaaS I learned a few things about running containers (in production) 2 / 30

Outline What are microservices? What are their challenges? How does Docker help? How can we do this today? 3 / 30

What are microservices? 4 / 30

Microservices: a style of software architecture Break big application down into many small services Example: e-commerce web front-end catalog of products inventory/stock management shipping calculator payment processor billing/invoicing recommendation engine user profiles 5 / 30

Why are we doing this? (1/2) Use different stacks for different services (use the right language/tool for the job) Replace or refactor individual services easily Less coordination required when deploying deploy more often less risk more agility and speed 6 / 30

Why are we doing this? (2/2) Promotes many small teams instead of one big army smaller teams = less communication overhead cf Jeff Bezos' "two-pizza rule" Enables effective ownership of services a service always has an "owner" (=team) the owner is responsible (=on call) the owner is empowered (=can fix things) 7 / 30

What are the challenges associated with microservices? 8 / 30

Fast, efficient RPC calls Docker does not help with that. See instead: ZeroRPC Cap'n Proto XMLRPC SOAP Dnode REST Queues (like AMQP), for long-running/async operations 9 / 30

Architecturing the application in small blocks Docker does not help with that. Some tips: Pretend that you're outsourcing parts of your stack Wrap database access; each object (or table) = one service 10 / 30

Efficient deployment system Instead of deploying one monolith once in a while, we deploy many services very frequently The manual, tedious, uniquely tailored deployment system has to be replaced with something simple and reliable It must be easy to add new components and deploy them Docker does help with that. 11 / 30

Network plumbing Instead of one monolith talking to a database, we now have 100s of services talking to each other Those services will often be scaled independently Instead of direct, deterministic library calls, we now have network calls across load balancers Scaling, load balancing, monitoring must be easy to do Docker does help with that. 12 / 30

More challenges See Microservices: not a free lunch by Benjamin Wootton. 13 / 30

How does Docker help us to implement microservices? 14 / 30

Building code, without Docker Deployment scripts are fragile Configuration management is hard (and not a silver bullet) Environments differ: from dev to dev from dev to prod 15 / 30

Building code, with Docker Write a Dockerfilefor each component Builds are fast each build step is saved future builds will reuse saved steps Builds are reproducible build environment can be well-defined outside context is limited 16 / 30

17 / 30

Shipping code, without Docker Push code or build artifacts to servers Distro packages (deb, rpm...) are great, but hard to build (too generic) Artifact libraries are great, but tailored to specific languages (too specific) When deployment fails, rollback isn't guaranteed to work 18 / 30

Shipping code, with Docker Container images can be pushed to registries Container engines can pull from those registries Docker Inc. provides a free registry (the Docker Hub) Works out of the box in 2 minutes (includes account creation and engine setup) Can also be deployed on prem Rollbacks are easy (see: immutable infrastructure with containers) 19 / 30

20 / 30

Network plumbing, without Docker Application code must be modified to handle: service discovery (e.g. lookup endpoint addresses into Consul, Etcd, ZK) fail over (same, but also needs to watch for changes) Development stack becomes either: very complex (because of those extra components) different from production (because the code path differs) 21 / 30

Network plumbing, with Docker Application code doesn't deal with plumbing Application code connects to services using DNS aliases DNS aliases are injected by Docker In dev, DNS aliases map directly to service containers In prod, DNS aliases map to special-purpose containers, implementing service discovery, load-balancing, failover Those containers are called ambassadors 22 / 30

How can we do this today? 23 / 30

Developing on a single node Docker Compose Describe a stack of containers in a simple YAML file Start the stack with a single command Compose connects containers together with links Also provides simple scaling and log aggregation 24 / 30

25 / 30

Scaling with static resource scheduling Docker Compose + Docker remote API Deploy stateful services separately Replace them with ambassadors in the stack Instanciate the stack multiple times Fits well with existing IAAS auto-scaling models 26 / 30

27 / 30

Scaling with dynamic resource scheduling Docker Compose + Docker Swarm Swarm consolidates multiple Docker hosts into a single one Swarm "looks like" a Docker daemon, but it dispatches (schedules) your containers on multiple daemons Swarm talks the Docker API front and back Swarm is open source and written in Go (like Docker) Swarm was started by two of the original Docker authors (@aluzzardi and @vieux) Swarm is not stable yet (version 0.3 right now) 28 / 30

No demo 29 / 30

Thanks! Questions? @jpetazzo @docker 30 / 30