deep dive on microservicesand dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/aws... · deep...

25
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Sascha Möllering, Solutions Architect, @sascha242 May 18th, 2017 Deep Dive on Microservices and Docker

Upload: doancong

Post on 06-May-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Sascha Möllering, Solutions Architect, @sascha242May 18th, 2017

Deep Dive on Microservices and Docker

Page 2: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

What to Expect from the Session

• Microservices Architecture• Amazon ECS• The Twelve-Factor App with Amazon ECS

Page 3: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Microservices Architecture

Page 4: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

What are microservices?

“A software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building.” - Wikipedia

https://en.wikipedia.org/wiki/Microservices

Page 5: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Monolithic vs. Microservices

webserver

.package

Order UI

Order Service

Inventory Service

Shipping Service

OrderUI

Inventory Service

Order Service

Shipping Service

Page 6: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Characteristics of Microservice Architectures

Do one thing wellIndependent

Decentralized

Black box

Polyglot

You build it, you run it

Page 7: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Why Amazon ECS

• Fully managed elastic service – You don’t need to run anything, and the service scales as your microservices architecture grows

• Shared state optimistic scheduling• Integration with CloudWatch service for

monitoring and logging• Integration with Code* services for

continuous integration and delivery (CI/CD)

Page 8: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Deploying Containers on ECS – Choose a Scheduler

Batch Jobs

ECS task schedulerRun tasks once

Batch jobsRunTask (random) StartTask (placed)

Long-Running Apps

ECS service schedulerHealth managementScale-up and scale-downAZ awareGrouped containers

Page 9: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

WatchBot

ECS Cluster

SQSWatcher

Container

Running Tasks

14Data Processing

Services

3500Peak Container

Instances

500 millionCompute Hours

Used in 2016

Page 10: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Amazon ECS: Under the Hood

ALB ALB

AZ 1 AZ 2

user / scheduler

Scheduler

Cluster State Service

Placement Engine

Event Stream

Page 11: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

The Twelve-Factor App with Amazon ECS

Page 12: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

The Twelve-Factor App

1. Codebase2. Dependencies3. Config

4. Backing Services5. Build, Release Run6. Processes

7. Port Binding8. Concurrency9. Disposability

10. Dev/Prod parity11. Logs12. Admin Processes

https://12factor.net/

Page 13: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Reference Architectures

Page 14: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Example Microservice Architecture on ECS

Amazon ECR

AmazonRDS

Application Load Balancer

ECS Cluster

ECS Cluster

IAM

Amazon API Gateway*

AmazonRoute 53

Amazon CloudWatch

Page 15: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

https://github.com/awslabs/ecs-refarch-cloudformation

Private Subnet

Availability Zone Availability Zone

InternetGateway

Public Subnet Public Subnet

Private Subnet

Nat GatewayNat Gateway

AutoScaling GroupContainer InstanceContainer Instance Container InstanceContainer Instance

Application Load Balancer

CloudWatch Logs(container logs)

Amazon ECS Reference Architecture

Page 16: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Automatic Service Scaling

Publish metrics

Auto Scaling ECS service

Availability Zone A

Availability Zone B

TASK A

Add/Remove ECS tasks

TASK C

TASK BScaling Policies

Amazon CloudWatch

Amazon ECS

Application Load Balancer

Page 17: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

IAM Roles For TasksECS Cluster

EC2 Instance EC2 Instance

TASK A

TASK B

TASK B

AmazonDynamoDB

AmazonS3

Page 18: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

AWS CodePipeline

AWSCloudFormation Amazon ECS

Amazon ECRAWS CodeBuild

Developers

1 2

5

3 4

6

7

Continuous Deployment in Amazon ECS

Page 19: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Blue-Green Deployments

TaskTask

Route 53 record set

with weighted routing policy

0%100%

Page 20: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Secrets Management

•prod.app1.db-pass •general.license-code•prod.app2.user-name

ECS Cluster

EC2 Instance EC2 Instance

TASK A

TASK B

TASK B

EC2 System Manager –Parameter Store

Page 21: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Service Discovery with Route 53 and Application Load Balancers

Application Load Balancer

i-aaa i-bbb i-ccc

i-aaa i-bbb i-ccc

oAuth Target Group8080 8081

Portal Target Group

Weather Target Group

8000 8001 8002

8080

AmazonRoute 53

ECS Cluster

mydomain.com

mydomain.com mydomain.com/weather

mydomain.com/auth

Page 22: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Consuming Events for Service Discovery

app1-tst à 10.1.0.11db1-tst à 10.1.0.14app2 à 10.1.0.16db2 à 10.1.0.18my-app à 10.1.0.20

websrv1à 10.1.0.1websrv2à 10.1.0.2websrv3à 10.1.0.4app-dev1à 10.1.0.9app-dev2à 10.1.0.5app-dev3à 10.1.0.8

db-devà 10.1.0.19

Page 23: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

A Call to Action

Page 24: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Build Learn

Try It out

Deploy

Page 25: Deep Dive on Microservicesand Dockeraws-de-media.s3-eu-west-1.amazonaws.com/images/AWS... · Deep Dive on Microservicesand Docker. What to Expect from the Session • Microservices

Thank You