aws enterprise summit manila migrating applications to aws

38
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Johnathon Meichtry Principal Solutions Architect APAC Twitter: @cloudguyapac 5 th November 2015 Migrating Applications to the AWS Cloud

Upload: amazon-web-services

Post on 16-Apr-2017

480 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: AWS Enterprise Summit Manila Migrating Applications To AWS

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

Johnathon Meichtry

Principal Solutions Architect APAC

Twitter: @cloudguyapac

5th November 2015

Migrating Applications to the

AWS Cloud

Page 2: AWS Enterprise Summit Manila Migrating Applications To AWS

Planning your Migration to AWS Cloud

Selecting Migration Patterns for your applications

Walk through your options and associated AWS Services

Sections

Page 3: AWS Enterprise Summit Manila Migrating Applications To AWS

Planning Your Cloud Migration Strategy

http://bit.ly/CloudMigrationStrategy

White Paper: Migrating your Existing Apps to the AWS Cloud

Page 4: AWS Enterprise Summit Manila Migrating Applications To AWS

Planning Your Cloud Migration Strategy

http://bit.ly/CloudMigrationStrategy

White Paper: Migrating your Existing Apps to the AWS Cloud

Page 5: AWS Enterprise Summit Manila Migrating Applications To AWS

Early Candidate Targets

• Spikey workloads (e.g. web applications)

• Dev/Test applications and their environments

• Grid computing / 3D / Image Rendering Apps

• Analytics Applications

AND

• Explosive data growth

• Application backup and archiving

• App Disaster recovery options

Page 6: AWS Enterprise Summit Manila Migrating Applications To AWS

Our Shared Security Model

AWS Foundation Services

Compute Storage Database Networking

AWS Global

Infrastructure Regions

Availability

Zones Edge

Locations

Client-side Data

Encryption

Server-side Data

EncryptionNetwork Traffic

Protection

Platform, Applications, Identity & Access Management

Operating System, Network, & Firewall Configuration

Customer applications & content

Custo

mers

Customers have

their choice of

security

configurations

IN the Cloud

AWS is

responsible for

the security OF

the Cloud

Page 7: AWS Enterprise Summit Manila Migrating Applications To AWS

What We Are Trying to Achieve…

Corporate

Data Centers

On-Premises

Resources

Cloud

ResourcesIntegration

• Maintain Existing Compliance

• Leverage Previous Investments

• Maintain & Interoperate with Legacy workloads

Network Connectivity (Internet, VPN or Direct Connect)

Page 8: AWS Enterprise Summit Manila Migrating Applications To AWS

Assumption:

Application is a self contained atomic unit

Application Tiers and Data can be moved all at one

Common Migration Patters: Move Entire

Application

App

1

App

2

App

NCorporate

Data Center

Page 9: AWS Enterprise Summit Manila Migrating Applications To AWS

Assumption:

Application is well understood & latency is not an issue

Common Migration Patters: Move Application Tier(s)

...

Corporate

Data Center

App Web

App Middle

App DB

Page 10: AWS Enterprise Summit Manila Migrating Applications To AWS

Developer/Coder:• Wants to predominantly work on their application. And….

A) has little to do with infrastructure the application runs upon; OR

B) “lightly” involved in the underlying infrastructure their application runs on.

Software Engineer/Architect:• Intimately works on all application components and deeply involved in what

infrastructure the solution runs on.

• Jumps in and engineers under the hood for maximum solution performance.

Dev Ops Engineer:• Heavily involved in Continuous Integration/ Continuous Deployment (CI/CD).

• Automates anything and everything possible for maximum change velocity.

What Kind of Developer, Coder or Software

Engineer Are You?

Page 11: AWS Enterprise Summit Manila Migrating Applications To AWS

Application Deployment and Provisioning Options

Elastic Beanstalk OpsWorks CloudFormation

Elastic Compute Cloud Application Container Application Automation Templated Provisioning

Amazon

EC2Developer / Coder

Dev Ops Engineer

Software Engineer/Architect

Higher-level Services

Page 12: AWS Enterprise Summit Manila Migrating Applications To AWS

Application Deployment and Provisioning Options

Elastic Beanstalk OpsWorks CloudFormation

Elastic Compute Cloud Application Container Application Automation Templated Provisioning

Amazon

EC2

Do it yourself (DIY) application deployment – on a virtual machine

Page 13: AWS Enterprise Summit Manila Migrating Applications To AWS

EC2 (Virtual Machine) Instance Families

General Purpose: M1, M3 (, T2)

Compute Optimized: C1, CC2, C3, C4

Memory Optimized: M2, CR1, R3

Storage Optimized: HI1, HS1, I2

GPU: CG1, G2

Micro: T1, T2

Page 14: AWS Enterprise Summit Manila Migrating Applications To AWS

Application Deployment and Provisioning Options

Elastic Beanstalk OpsWorks CloudFormation

Elastic Compute Cloud Application Container Application Automation Templated Provisioning

Amazon

EC2

You bring your application and AWS provide a managed runtime

Page 15: AWS Enterprise Summit Manila Migrating Applications To AWS

.Net Java Python

NodeJS Ruby PHP

Docker

Beanstalk supports a range of runtime containers

Page 16: AWS Enterprise Summit Manila Migrating Applications To AWS
Page 17: AWS Enterprise Summit Manila Migrating Applications To AWS

User Application

Application Service

HTTP Service

Language Interpreter

Operating System

Host

Page 18: AWS Enterprise Summit Manila Migrating Applications To AWS
Page 19: AWS Enterprise Summit Manila Migrating Applications To AWS
Page 20: AWS Enterprise Summit Manila Migrating Applications To AWS
Page 21: AWS Enterprise Summit Manila Migrating Applications To AWS
Page 22: AWS Enterprise Summit Manila Migrating Applications To AWS

…all wired into the Beanstalk framework

Page 23: AWS Enterprise Summit Manila Migrating Applications To AWS

Example Wizard driven deployment from within Visual Studio IDE

(Eclipse also supported)

Automatically Deploy Web Solutions

Page 24: AWS Enterprise Summit Manila Migrating Applications To AWS

Application Deployment and Provisioning Options

Elastic Beanstalk OpsWorks CloudFormation

Elastic Compute Cloud Application Container Application Automation Templated Provisioning

Amazon

EC2

You bring your application (Chef recipes) and AWS makes it easy to

deploy and operate applications of all shapes and sizes

Page 25: AWS Enterprise Summit Manila Migrating Applications To AWS

AWS OpsWorks Primer

A stack represents

your application. One

stack might be used

for staging and

another for

production.

A layer defines how to

setup and configure a

set of instances and

related resources

such as volumes

and software.

Simply tell OpsWorks

where it can find your

code and define any

additional deployment

tasks. Then

OpsWorks will take

care of deploying your

app in your desired

configuration.

Scale your stack based

on time or

load. Clone your

production stack to a

different region. Set

up user permissions and

access. Automate

workflows for common

tasks.

Page 26: AWS Enterprise Summit Manila Migrating Applications To AWS

The heart of the OpsWorks Service

Agent on each

EC2 instanceOpsWorkstalks with

Page 27: AWS Enterprise Summit Manila Migrating Applications To AWS

Instance Lifecycle and Configuration Hooks

Page 28: AWS Enterprise Summit Manila Migrating Applications To AWS

Deploying you Apps via OpsWorks

Page 29: AWS Enterprise Summit Manila Migrating Applications To AWS

Application Deployment and Provisioning Options

Elastic Beanstalk OpsWorks CloudFormation

Elastic Compute Cloud Application Container Application Automation Templated Provisioning

Amazon

EC2

Declaratively define your entire architecture, applications, OS

deployment scripts, databases and control other AWS services.

For those that want full control of everything – DevOps centric

Page 30: AWS Enterprise Summit Manila Migrating Applications To AWS

CloudFormation Components

Template

JSON formatted file

Parameter definition

Resource creation

Configuration actions

CloudFormation

Framework

Stack creation

Stack updates

Error detection and rollback

Stack

Configured AWS services

Comprehensive service support

Service event aware

Customisable

Page 31: AWS Enterprise Summit Manila Migrating Applications To AWS

Template

JSON formatted file

Parameter definition

Resource creation

Configuration actions

Page 32: AWS Enterprise Summit Manila Migrating Applications To AWS

Templates can take user input to feed configuration values for other sections of the template

{

"Parameters" : {

"KeyName" : {

"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the

instance",

"Type" : "String"

}

},

}

Snippet: Taking user defined parameters

Template

JSON formatted file

Parameter definition

Resource creation

Configuration actions

User Input Driven

Page 33: AWS Enterprise Summit Manila Migrating Applications To AWS

What does a Database definition look like?

Template

JSON formatted file

Parameter definition

Resource creation

Configuration actions

“RDSmsSqlDB": {

"Type": "AWS::RDS::DBInstance",

"Properties": {

"AllocatedStorage": "20",

"BackupRetentionPeriod": "1",

"DBInstanceClass": "db.t1.micro",

"DBName": "MsSQLDatabase",

"DBParameterGroupName": "default.sqlserver-ex-10.5",

"Engine": "sqlserver-ex",

"EngineVersion": "10.50.2789.0.v1",

"MasterUsername": "xxxx",

"MasterUserPassword": "xxxx",

"Port": "1433",

"PreferredBackupWindow": "00:00-00:30",

"PreferredMaintenanceWindow": "mon:15:30-mon:16:00",

"DBSecurityGroups": [

{

"Ref": "dbsgdefault"

}

]

}

},

Snippet: Creating a SQL Server Express RDS instance

More Information at http://aws.amazon.com/documentation/cloudformation/

Page 34: AWS Enterprise Summit Manila Migrating Applications To AWS

Benefits of Templated Environments

CloudFormation

Template

Procedural definitionCreate it programmatically

Known configurationStore stack configuration in source

control

Parameter drivenDynamic and user-driven templates

CollaborationShare templates with ease as just

files

Page 35: AWS Enterprise Summit Manila Migrating Applications To AWS

“I just want my app to

run, and I only want

access to machines if I

really need to”

“I want to source control

my entire datacenter

deployment like I would

my configuration files”

Elastic Beanstalk & CloudFormation

Growing

Requirements

High level, shrink

wrapped rapid

approach

Fine grained,

declarative control

over all your assets

Elastic

Beanstalk CloudFormationAWS

Platform

Tools

Page 36: AWS Enterprise Summit Manila Migrating Applications To AWS

Others Services to consider….

Elastic Container Service

• High performance container management service that supports Docker containers and allows you to easily run

distributed applications on a managed cluster of Amazon EC2 instances.

AWS Lambda

• Compute service that runs your code in response to events.

• Lambda starts your code within milliseconds of an event such as an image upload, in-app activity, website click, or

output from a connected device.

CodeCommit, CodeDeply & CodePipeline

• CodeCommit is a secure, highly scalable, managed source control service that hosts private Git repositories.

• CodePipeline continuous delivery and release automation service that aids smooth deployments.

• CodeDeploy is a service that automates code deployments to Amazon EC2 instances.

CodeCommit

(Source

Control)

CodePipeline

(CI/CD Workflow)

CodeDeploy

(Deployment)

Page 37: AWS Enterprise Summit Manila Migrating Applications To AWS

Covered how to plan your application migration to AWS

Explored application migration patters – horizontal & vertical

Covered 4 main options & AWS services that assist developers

• Do It Yourself

• Automated managed environments & deployments

• Layered Architecture Stacks with recipe driven customizations

• DevOps centric – Declarative models

Summary

Page 38: AWS Enterprise Summit Manila Migrating Applications To AWS

Thank you

Migrating Applications to the AWS Cloud

Johnathon Meichtry

@cloudguyapac