Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2

Similar documents
Getting Started With Amazon EC2 Container Service

Containers and the Evolution of Computing

Introduction to Amazon EC2 Container Service (Amazon ECS) Hands On Lab

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

S U M M I T B e r l i n

Running MarkLogic in Containers (Both Docker and Kubernetes)

Docker and Oracle Everything You Wanted To Know

Docker II - Judgement Day

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

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

Deployment Patterns using Docker and Chef

DevOps Tooling from AWS

Microservices on AWS. Matthias Jung, Solutions Architect AWS

Microservices Architekturen aufbauen, aber wie?

Securing Microservices Containerized Security in AWS

Kuber-what?! Learn about Kubernetes

Building a Microservices Platform, Patterns and Best Practices

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

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Kuberiter White Paper. Kubernetes. Cloud Provider Comparison Chart. Lawrence Manickam Kuberiter Inc

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

Midterm Presentation Schedule

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

AGILE DEVELOPMENT AND PAAS USING THE MESOSPHERE DCOS

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

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

개발자와운영자를위한 DevOps 플랫폼 OpenShift Container Platform. Hyunsoo Senior Solution Architect 07.Feb.2017

/ Cloud Computing. Recitation 5 February 14th, 2017

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

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

Serverless Predictions at Scale

STATE OF MODERN APPLICATIONS IN THE CLOUD

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

Reactive Microservices Architecture on AWS

Deep Dive on Microservices and ECS

Amir Zipory Senior Solutions Architect, Redhat Israel, Greece & Cyprus

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

CogniFit Technical Security Details

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

UP! TO DOCKER PAAS. Ming

Think Small to Scale Big

DevOps on AWS Deep Dive on Continuous Delivery and the AWS Developer Tools

The age of orchestration

Deploying and Operating Cloud Native.NET apps

Industry-leading Application PaaS Platform

When (and how) to move applications from VMware to Cisco Metacloud

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Introducing Amazon Elastic File System (EFS)

Training on Amazon AWS Cloud Computing. Course Content

Deploying and Operating Cloud Native.NET apps

OpenShift on Public & Private Clouds: AWS, Azure, Google, OpenStack

DevOps Technologies. for Deployment

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

Amazon AWS-Solution-Architect-Associate Exam

70-532: Developing Microsoft Azure Solutions

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

A DEVOPS STATE OF MIND WITH DOCKER AND KUBERNETES. Chris Van Tuin Chief Technologist, West

Managing Deep Learning Workflows

Designing MQ deployments for the cloud generation

Azure Highlights. Randy Pagels Sr. Developer Technology Specialist US DX Developer Tools - Central Region

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

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Why Kubernetes Matters

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS

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

The importance of monitoring containers

Container Orchestration on Amazon Web Services. Arun

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

MySQL In the Cloud. Migration, Best Practices, High Availability, Scaling. Peter Zaitsev CEO Los Angeles MySQL Meetup June 12 th, 2017.

AWS 101. Patrick Pierson, IonChannel

S Implementing DevOps and Hybrid Cloud

Real-life technical decision points in using cloud & container technology:

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

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

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

Conversing in the Cloud. Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan

Deep Dive on AWS CodeStar

Wrapp. Powered by AWS EC2 Container Service. Jude D Souza Solutions Wrapp Phone:

Architecting for Greater Security in AWS

Beyond 1001 Dedicated Data Service Instances

Javaentwicklung in der Oracle Cloud

Logging, Monitoring, and Alerting

HOW TO PLAN & EXECUTE A SUCCESSFUL CLOUD MIGRATION

Getting Started with AWS Security

Introduction to Kubernetes Storage Primitives for Stateful Workloads

INTRODUCTION TO NEXTFLOW

Azure Day Application Development. Randy Pagels Sr. Developer Technology Specialist US DX Developer Tools - Central Region

Przyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform. Jarosław Stakuń Senior Solution Architect/Red Hat CEE

Module Day Topic. 1 Definition of Cloud Computing and its Basics

Enabling Cloud Adoption. Addressing the challenges of multi-cloud

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

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

Go Faster: Containers, Platforms and the Path to Better Software Development (Including Live Demo)

About Intellipaat. About the Course. Why Take This Course?

Enroll Now to Take online Course Contact: Demo video By Chandra sir

The four forces of Cloud Native

PrepAwayExam. High-efficient Exam Materials are the best high pass-rate Exam Dumps

Continuous Delivery for Cloud Native Applications

Declarative Modeling for Cloud Deployments

Zend PHP Cloud Application Platform

Transcription:

Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2 Ian Massingham AWS Technical Evangelist @IanMmmm 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Agenda Containers EC2 Container Service Common patterns Demo Q&A

Containers

What are containers? App1 App2 Bins/Libs Bins/Libs Guest OS Server OS virtualization Process isolation Automation Images

Container advantages App1 App2 Bins/Libs Guest OS Bins/Libs Portable Server

Container advantages App1 App2 Bins/Libs Guest OS Bins/Libs Flexible Server

Container advantages App1 App2 Bins/Libs Guest OS Bins/Libs Fast Server

Container advantages App1 App2 Bins/Libs Guest OS Bins/Libs Efficient Server

A container pipeline IT Operations Utilities Patches Base Image

A container pipeline IT Operations Ruby Utilities Patches Base Image Redis Logger

A container pipeline IT Operations Developer Ruby App Utilities Patches Base Image Redis Logger

A container pipeline IT Operations Developer Ruby App Utilities Patches Base Image Redis Logger

App1 Bins/Libs App2 Bins/Libs Guest OS Server

EC2 Container Service Benefits

Easily manage clusters for any scale Nothing to run Complete state Control and monitoring Scale

Flexible container placement Applications Batch jobs Multiple schedulers

Designed for use with other AWS services Elastic Load Balancing Amazon Elastic Block Store Amazon Virtual Private Cloud AWS Identity and Access Management AWS CloudTrail

Extensible Comprehensive APIs Open source agent Custom schedulers

Common Patterns

Pattern 1: services and applications Simple to model Decompose to smaller (micro) services Blue / green deployments

Pattern 2: batch jobs Share pools of resources APIs provide cluster state Auto Scaling, Spot, Reserved Instances

EC2 Container Service terminology

Key components: container instances Amazon EC2 instances Docker daemon Amazon ECS agent https://github.com/aws/amazon-ecs-agent

Key components: clusters Regional Resource pool Grouping of container instances Start empty, dynamically scalable

Key components: task definitions Volume Definitions Container Definitions

Key components: task definitions Shared Data Volume PHP App Time of day App

Key components: task definitions Shared Data Volume PHP App Time of day App Shared Data Volume Schedule PHP App Time of day App Container Instance

Key components: task definitions { "environment": [], "name": "simple-demo", "image": "my-demo", "cpu": 10, "memory": 500, "portmappings": [ { "containerport": 80, "hostport": 80 } ], "mountpoints": [ { "sourcevolume": "my-vol", "containerpath": "/var/www/myvol" }, } ], "entrypoint": [ "/usr/sbin/apache2", "-D", "FOREGROUND" ], "essential": true { "name": "busybox", "image": "busybox", "cpu": 10, "memory": 500, "volumesfrom": [ { "sourcecontainer": "simple-demo" } ], "entrypoint": [ "sh", "-c" ], "command": [ "/bin/sh -c \"while true; do /bin/ date > /var/www/my-vol/date; sleep 1; done\"" ], "essential": false }

Key components: task definitions { "environment": [], "name": "simple-demo", "image": "amazon/amazon-ecs-sample", "cpu": 10, "memory": 500, "portmappings": [ { "containerport": 80, "hostport": 80 } ], "mountpoints": [ { "sourcevolume": "my-vol", "containerpath": "/var/www/myvol" }, } ], "entrypoint": [ "/usr/sbin/apache2", "-D", "FOREGROUND" ], "essential": true [ ] { } "image": "mysql", "name": "db", "cpu": 500 megabytes 10, of memory "memory": 500, "essential": true, Expose port 80 in container "entrypoint": [ to "/entrypoint.sh" port 80 on host ], "environment": [ { Create "name": and "MYSQL_ROOT_PASSWORD", mount volumes "value": "pass" } ], "portmappings": [] 10 CPU units (1024 is full CPU), Essential to our task

Key components: task definitions [ { "image": "tutum/wordpress-stackable", "name": "wordpress", "cpu": 10, "memory": 500, "essential": true, "links": [ "db" ], "entrypoint": [ "/bin/sh", "-c" ], "environment": [ ], "portmappings": [ { "containerport": 80, "hostport": 80 } ] }, ] From Docker Hub Mount volume from other container Command to exec { "name": "busybox", "image": "busybox", "cpu": 10, "memory": 500, "volumesfrom": [ { "sourcecontainer": "simple-demo" } ], "entrypoint": [ "sh", "-c" ], "command": [ "/bin/sh -c \"while true; do /bin/ date > /var/www/my-vol/date; sleep 1; done\"" ], "essential": false }

Key components: tasks Unit of work Grouping of related containers Run on container instances

Key components: run a task Good for short-lived containers, for example batch jobs

Key components: create a service Good for longrunning applications and services

Microservices and elastic resource pools with ECS Boyan Dimitrov, Platform Automation Lead @ Hailo @nathariel

Microservices intro Monolith App Small, self-contained units of execution with well defined API Built around business capabilities or domain objects Responsible for one thing and one thing only Fully automated lifecycle Service A Service C Service B Service D Service E Each service (at Hailo) gets for free: Discovery Configuration A/B testing capabilities Monitoring & Instrumentation and much more AWS Summits 2015

What do we have Microservices ecosystem based on Go Designed specifically for the cloud different building blocks and components will constantly be in flux, broken or unavailable 1000+ AWS instances spanning multiple regions 200+ services in production AWS Summits 2015

Service interactions not as scary as it looks! AWS Summits 2015

Service deployment at present Each service is decoupled from the rest and deployed individually We run multiple services on the same instance We rely on auto scaling groups for organizing and scaling our workload We use static partitioning to match a service to an auto scaling group An automated deployment system takes care of all service lifecycle details AWS Summits 2015 Main goals: Reliability, Ease of Use, Resource Efficiency

Deployment overview and our journey towards containers CI Pipeline Amazon S3 Process Container Docker Registry Auto Scaling Group Provisioning Service Provisioning Service Auto Scaling Group Instance Instance Provisioning Manager

How hard is to deploy a service? service name version auto scaling group AWS Summits 2015

Is this good enough? service name version As a developer: How do I figure this one out? Would my service live there forever? What if my team owns 20+ services? auto scaling group AWS Summits 2015 Main goals: Reliability, Ease of Use, Resource Efficiency

What about resource efficiency? 35% Utilization instance instance instance instance instance instance Auto Scaling Group A 85% Utilization instance instance instance Auto Scaling Group B AZ eu-west-1a AWS Summits 2015 AZ eu-west-1b AZ eu-west-1c Main goals: Reliability, Ease of Use, Resource Efficiency

Challenges Our overall utilization across the services auto scaling groups is between 25% and 50% Performance of individual services is way more complex than simple CPU and memory calculations. Accumulated interference on the instance needs to be accounted for Static partitioning of services is hard and non scalable Our developers should not care about service placement or infrastructure specifics! AWS Summits 2015

So what do we want? 75-80% Utilization instance instance instance instance instance instance Elastic resource pool eu-west-1a eu-west-1b eu-west-1c One word such difference! Main goals: Reliability, Ease of Use, Resource Efficiency

Our solution cluster management on top of an elastic resource pool QoS Scheduler Cloud Provider AWS Cluster Manager ECS ECS Agent ECS Agent ECS Agent ECS Agent ECS Agent ECS Agent instance instance instance instance instance instance Elastic Resource Pool eu-west-1a eu-west-1b eu-west-1c

Why ECS? It is a managed service! It is great for storing and enforcing task state Designed with custom schedulers in mind The agent code is available on a public GitHub repo and it is in GO! Easy to integrate with other AWS services AWS Summits 2015

Why building our own scheduler? We want a cloud-native scheduler that is aware of the cloud specifics and our microservices ecosystem: Service Priority Service specific runtime metrics Interference Cloud awareness ( availability zones, pool elasticity ) Running services in a pay as you go fashion will soon be a reality as much as todays on demand compute AWS Summits 2015

Take Service Priority as an example { service : Foo mincpu": 10, minmemory": 500, mininstances : 3, Priority : Default } { service : Baz mincpu": 50, minmemory": 1500, mininstances : 3, Priority : Critical } AWS Summits 2015

Service criticality matters when resources are constrained t0 t1 instance instance instance X instance instance instance t2 instance instance Star6ng instance t3 AWS Summits 2015 instance instance instance

Thanks! Use Promo Code AWS10 for 10 off your ride home @nathariel boyan@hailocab.com @HailoTech facebook.com/hailouk

LONDON