aws enterprise summit manila migrating applications to aws

Post on 16-Apr-2017

478 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© 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

Planning your Migration to AWS Cloud

Selecting Migration Patterns for your applications

Walk through your options and associated AWS Services

Sections

Planning Your Cloud Migration Strategy

http://bit.ly/CloudMigrationStrategy

White Paper: Migrating your Existing Apps to the AWS Cloud

Planning Your Cloud Migration Strategy

http://bit.ly/CloudMigrationStrategy

White Paper: Migrating your Existing Apps to the AWS Cloud

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

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

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)

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

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

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?

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

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

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

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

.Net Java Python

NodeJS Ruby PHP

Docker

Beanstalk supports a range of runtime containers

User Application

Application Service

HTTP Service

Language Interpreter

Operating System

Host

…all wired into the Beanstalk framework

Example Wizard driven deployment from within Visual Studio IDE

(Eclipse also supported)

Automatically Deploy Web Solutions

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

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.

The heart of the OpsWorks Service

Agent on each

EC2 instanceOpsWorkstalks with

Instance Lifecycle and Configuration Hooks

Deploying you Apps via OpsWorks

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

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

Template

JSON formatted file

Parameter definition

Resource creation

Configuration actions

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

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/

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

“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

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)

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

Thank you

Migrating Applications to the AWS Cloud

Johnathon Meichtry

@cloudguyapac

top related