20141021 aws cloud taekwon - startup best practices on aws

68
Startup Best Practices on AWS Markku Lepistö Principal Technology Evangelist @markkulepisto

Upload: amazon-web-services-korea

Post on 14-Jun-2015

381 views

Category:

Technology


6 download

DESCRIPTION

AWS APAC Principal Technology Evangelist인 Markku Lepisto의 발표내용입니다.

TRANSCRIPT

Page 1: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Startup Best Practices on AWS Markku Lepistö Principal Technology Evangelist @markkulepisto

Page 2: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

IDEA ! For the next -

Page 3: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Page 4: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Page 5: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Fail Fast Fail Cheap

Fail Forward

Page 6: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Scale Success

Page 7: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Validate Idea

Page 8: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Minimum Viable Product (MVP)

Release quickly Limited core features Iterate in production Decisions based on data

“Production is truly the only place you can validate your code”

- Michael Nygard, author of ‘Release it!

Page 9: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Application Architecture for MVP’s Core Features

Page 10: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Tightly Coupled, Monolithic (monster)

Page 11: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Decomposed to Services

Page 12: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Decomposed to Services

Page 13: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Decomposed to Services

Page 14: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Define Your MVP’s Building Blocks

Page 15: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Define Your MVP’s Building Blocks

Compute

Object Store

Load Balancer

SQL Database

Identity & Access

Data Warehouse

Application Lifecycle

CDN

Recommendation Engine

Social Login SSO

BI Analytics

Web Server

Reverse Proxy

My Second Cool Feature My Cool Feature

Page 16: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Focus

Page 17: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Focus on Your Core Differentiator

Page 18: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Offload Undifferentiating Ones to Services

Amazon EC2

Amazon S3

Elastic Load Balancing

Amazon RDS

AWS IAM

Amazon RedShift

AWS OpsWorks

Amazon CloudFront

EasyRec

HybridAuth

JasperSoft

Puma

Nginx

My Second Cool Feature My Cool Feature

Page 19: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Amazon Web Services

Page 20: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Regions, Zones and Edge Locations

Page 21: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Platform Services

Databases

Caching

Relational

No SQL

Analytics

Hadoop

Real-time

Data Workflows

Data Warehouse

App Services

Queuing

Orchestration

App Streaming

Transcoding

Email

Search

Deployment & Management

Containers

Dev/ops Tools

Resource Templates

Usage Tracking

Monitoring and Logs

Mobile Services

Identity

Sync

Mobile Analytics

Notifications

Foundation Services

Compute (VMs, Auto-scaling and Load Balancing)

Storage (Object, Block and Archive)

Security & Access Control Networking

Infrastructure Regions CDN and Points of Presence Availability Zones

Enterprise Applications

Virtual Desktops

Collaboration and Sharing

Page 22: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Discover SW Components – AWS marketplace

Page 23: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Discover SW Components – GitHub

Page 24: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Discover SW Components – NetflixOSS

Page 25: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Services are Black Boxes Exposed via APIs

My Cool Feature

Iterate, even re-write internal

implementation

API is stable, with few changes,

potentially versioning

API

e.g JSON / REST over HTTP

Page 26: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Loose Coupling Enables Scale-out and Resiliency

Use Message Queues

Page 27: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Loose Coupling Enables Scale-out and Resiliency

Use Message Queues

Simple Queue Service (SQS)

Page 28: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Loose Coupling Enables Scale-out and Resiliency

Use Idempotent Interfaces

Page 29: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Loose Coupling Enables Scale-out and Resiliency

Use Circuit Breakers

Page 30: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Loose Coupling Enables Scale-out and Resiliency

Use Circuit Breakers

Temporarily bypass unresponsive

service. Switch to degraded mode

transactions

Page 31: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Auto Scale, Load Balance, Monitor, HA Assure Each Service Separately

Page 32: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Statelessness Enables Scale-out

Separate State and Data from Compute Instances

Load Balanced, Auto Scaling pool of EC2 Workers

Scalable Services for

State and Data ElastiCache DynamoD

B S3

Page 33: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Amazon DynamoDB

Zero Admin NoSQL Service

Unlimited Storage

Provisioned Throughput

<10ms response time

Durable on SSD

Page 34: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Cloud-SOA

Service Oriented Architecture

Cloud-native New Applications SOA principles leveraging Cloud services Architect for • Automation • Scale • Cost • Availability • Data

Applications are • Always-on • Self-healing • Anti-fragile

Page 35: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Implemented by Two-Pizza Teams

Small, autonomous teams Full responsibility for Service X Decoupled launch schedules No handovers Trust

Page 36: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Putting It All Together into a Solution

Page 37: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Putting It All Together into a Solution

Page 38: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Putting It All Together into a Solution

Page 39: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Putting It All Together into a Solution

Page 40: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Page 41: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

= Programmable Platform

Page 42: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

If you can program it You can automate it

Page 43: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

AWS SDKs

Page 44: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Java SDK … res = ec2.runInstances new RunInstancesRequest([ imageId: "ami-00754474", keyName: ”MyKeyPair", instanceType: ”m3.medium", securityGroups: [”MySecurityGroup"], minCount: 1, maxCount: 1, userData: "AWSWeb.war".bytes.encodeBase64().toString() ]) …

Page 45: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Unified Command Line Interface

~ $ aws ec2 run-instances --image-id ami-554ac83c --min-count 1 --max-count 1 --key-name MyKeyPair --security-groups MySecurityGroup

Page 46: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

« Cloud Instance is an implementation of a known, good state »

Dr Rich Wolski, UCSB

Page 47: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

AMI AMI AMI

YOUR CODE

CORE SERVICES

3rd PARTY LIBRARIES

OPERATING SYSTEM

YOUR CODE

CORE SERVICES

3rd PARTY LIBRARIES

OPERATING SYSTEM

YOUR CODE

CORE SERVICES

3rd PARTY LIBRARIES

OPERATING SYSTEM

Pre-baked Image Base OS Image + Orchestration

Page 48: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

3rd Party Configuration Mgmt & Orchestration Tools

Page 49: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

AWS OpsWorks AWS CloudFormation AWS Elastic Beanstalk

DevOps framework for application lifecycle

management and automation

Templates to deploy & update infrastructure

as code

Automated resource management – web

apps made easy

DIY / On Demand DIY, on demand

resources: EC2, S3, custom AMI’s, etc.

Control Convenience

AWS Services for Application Lifecycle Management

Page 50: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Page 51: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Page 52: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

CloudFormation Template

Page 53: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Page 54: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

SOURCE CODE REPOSITORY

DNS

CONTINUOUS INTEGRATION SERVER

PROJECT MANAGEMENT SERVER

BUILDS

DATABASE

STORAGE

Page 55: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

CLOUDFORMATION TEMPLATE

BUILD + DB SNAPSHOT

Page 56: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Application Versions + Infrastructure Versions

Application Your Code

Infrastructure To Run and Support Your Code

Page 57: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Deliver Continuously

Page 58: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

test

Continuous Integration

code build plan

Agile Development

Source http://www.collab.net

deploy operate

collaboration

valu

e

DevOps

release

Continuous Delivery

Page 59: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Go Global – in Minutes

Launch in a test market A/B Testing Collect all logs Analytics Insights Iterate or Pivot

Once you hit the sweet spot – Replicate to all regions

Page 60: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Page 61: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Measure outliers & ends of distribution

Measure & Log Everything

Amazon CloudWatch

Page 62: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

COLLECT | STORE | ANALYZE | SHARE

Import Export

Glacier

S3 EC2

Redshift DynamoDB

EMR

Data Pipeline

S3 Direct Connect

Leverage AWS Big Data Services

CloudFront

Kinesis

Page 63: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Keep Iterating

Page 64: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Keep Innovating

Page 65: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

« Want to increase innovation? Lower the cost of failure »

Joi Ito MIT MediaLabs

Page 66: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

AWS Lowers the Cost of Failure

Experiment Often

Fail quickly at

a low cost

More Innovation

Experiment Infrequently

Failure is expensive

Less

Innovation

“ON-PREMISE”

Page 67: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

AWS Cloud Taekwon

Page 68: 20141021 AWS Cloud Taekwon - Startup Best Practices on AWS

Which Track to choose? I have used AWS before and/or

understand the basics?

I like to learn AWS basics & get my MVP go global

Track 1

NO

YES NO

I am a Techie & want to Dive Deep into AWS

Track 2

YES

NO YES

I like to learn Startup Insights &

Best Practices

Track 3

YES NO