Matt Tavis Solutions Architect Architectural Design Patterns in Cloud Computing

Similar documents
Jinesh Varia Technology Evangelist Architectural Design Patterns in Cloud Computing

Steve Riley Sr. Technical Program Manager How to Think Cloud. Architectural Design Patterns for Cloud Computing

Web Application Hosting in the AWS Cloud Best Practices

TECHNOLOGY WHITE PAPER Jun 2012

Scalable Architecture on Amazon AWS Cloud

TECHNOLOGY WHITE PAPER Jan 2016

Web Application Hosting in the AWS Cloud Best Practices

Application Security Best Practices. Matt Tavis Principal Solutions Architect

Design for Failure High Availability Architectures using AWS

Software- as- a- Service (SaaS) on AWS Business and Architecture Overview

Preparing Your IT for the Holidays. A quick start guide to take your e-commerce to the Cloud

Amazon Elastic Beanstalk

Microservices on AWS

Cloud computing - Architecting in the cloud

Netop Environment Security. Unified security to all Netop products while leveraging the benefits of cloud computing

Alfresco Enterprise on AWS: Reference Architecture

Learning Management Redefined. Acadox Infrastructure & Architecture

Cloud Models and Platforms

How AWS Pricing Works May 2015

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

Migration Scenario: Migrating Backend Processing Pipeline to the AWS Cloud

Amazon Web Services. Elastic Compute Cloud (EC2) and more...

Cloud Computing In Reality: Experience sharing in cloud solution developments and evaluations

Amazon EC2 Product Details Page 1 of 5

Scaling in the Cloud with AWS. By: Eli White (CTO & mojolive) eliw.com - mojolive.com

Architecture Statement

Opsview in the Cloud. Monitoring with Amazon Web Services. Opsview Technical Overview

Amazon Cloud Storage Options

Web Application Deployment in the Cloud Using Amazon Web Services From Infancy to Maturity

Cloud Computing with Amazon Web Services and the DevOps Methodology.

Migration Scenario: Migrating Batch Processes to the AWS Cloud

EEDC. Scalability Study of web apps in AWS. Execution Environments for Distributed Computing

How AWS Pricing Works

Fault-Tolerant Computer System Design ECE 695/CS 590. Putting it All Together

Designing Apps for Amazon Web Services

Using ArcGIS for Server in the Amazon Cloud

A Comparison of Clouds: Amazon Web Services, Windows Azure, Google Cloud Platform, VMWare and Others (Fall 2012)

GIS and the Cloud. Richard Cantwell

Primex Wireless OneVue Architecture Statement

Reliable Data Tier Architecture for Job Portal using AWS

Introduction to AWS in Higher Ed

Amazon Web Services Primer. William Strickland COP 6938 Fall 2012 University of Central Florida

Drupal in the Cloud. Scaling with Drupal and Amazon Web Services. Northern Virginia Drupal Meetup

When talking about hosting

High-Availability in the Cloud Architectural Best Practices

Storage Options in the AWS Cloud: Use Cases

Scalable Application. Mikalai Alimenkou

An Introduction to Cloud Computing Concepts

CLOUD COMPUTING WITH AWS An INTRODUCTION. John Hildebrandt Solutions Architect ANZ

Chapter 9 PUBLIC CLOUD LABORATORY. Sucha Smanchat, PhD. Faculty of Information Technology. King Mongkut s University of Technology North Bangkok

Running Oracle Applications on AWS

StorReduce Technical White Paper Cloud-based Data Deduplication

How To Choose Between A Relational Database Service From Aws.Com

How To Cloud Compute At The Cloud At The Cyclone Center For Cnc

ArcGIS 10.3 Server on Amazon Web Services

Logentries Insights: The State of Log Management & Analytics for AWS

Using ArcGIS for Server in the Amazon Cloud

Amazon Web Services Student Tutorial

Simone Brunozzi, AWS Technology Evangelist, APAC. Fortress in the Cloud

Amazon Web Services Yu Xiao

Scalable Web Application

IAN MASSINGHAM. Technical Evangelist Amazon Web Services

KT ucloud storage. Two Years of Life with OpenStack Swift / Jaesuk Ahn, Cloud OS Dev. Team, Korea Telecom

Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings

Financial Services Grid Computing on Amazon Web Services January 2013 Ian Meyers

Amazon AWS in.net. Presented by: Scott Reed

Alfresco Enterprise on Azure: Reference Architecture. September 2014

High Performance MySQL Choices in Amazon Web Services: Beyond RDS. Andrew Shieh, SmugMug Operations smugmug.

Intro to AWS: Storage Services

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

Securely Moving Your Business Into the Cloud

ur skills.com

Introduction to Amazon Web Services! Leo Senior Solutions Architect

Hadoop & Spark Using Amazon EMR

VX 9000E WiNG Express Manager INSTALLATION GUIDE

Amazon s Corporate IT Deploys SharePoint 2010 to the Amazon Web Services Cloud

3/21/2011. Topics. What is load balancing? Load Balancing

Administrative Issues

Getting Started with AWS. Web Application Hosting for Linux

Storage Options in the AWS Cloud

Architecting for the Cloud: Best Practices January 2011

Migrating a running service to AWS

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.

Introduction to Database Systems CSE 444. Lecture 24: Databases as a Service

Best Practices for Siebel on AWS

Introduction to DevOps on AWS

C Examcollection.Premium.Exam.34q

AIST Data Symposium. Ed Lenta. Managing Director, ANZ Amazon Web Services

Topics. 1. What is load balancing? 2. Load balancing techniques 3. Load balancing strategies 4. Sessions 5. Elastic load balancing

Cloud Computing project Report

319 MANAGED HOSTING TECHNICAL DETAILS

Cloud Computing. Adam Barker

Transcription:

Matt Tavis Solutions Architect mtavis@amazon.com Architectural Design Patterns in Cloud Computing

Cloud Best Practices Whitepaper Prescriptive guidance to Cloud Architects Just Search for Cloud Best Practices to find the link ttp://media.amazonwebservices.co m/aws_cloud_best_practices.pdf

Cloud Computing Attributes What makes the Cloud so attractive Abstract Resources On-Demand Provisioning Focus on your needs, not on hardware specs. As your needs change, so should your resources. Ask for what you need, exactly when you need it. Get rid of it when you don t need Scalability in minutes Scale out or in depending on usage needs. Pay per consumption No contracts or long-term commitments. Pay only for what you use. Efficiency of Experts Utilize the skills, knowledge and resources of experts.

The Living and Evolving Cloud AWS services and basic terminology Most Applications Need: 1. Compute 2. Storage 3. Messaging 4. Payment 5. Distribution 6. Scale 7. Analytics

Scalability Build Scalable Architecture on AWS A scalable architecture is critical to take advantage of a scalable infrastructure Characteristics of Truly Scalable Service Increasing resources results in a proportional increase in performance A scalable service is capable of handling heterogeneity A scalable service is operationally efficient A scalable service is resilient A scalable service becomes more cost effective when it grows

Cloud Architecture Lessons using Amazon Web Services 1. Design for failure and nothing fails 2. Loose coupling sets you free 3. Implement Elasticity 4. Build Security in every layer 5. Don't fear constraints 6. Think Parallel 7. Leverage different storage options

1. Design for Failure and nothing will really fail "Everything fails, all the time" Werner Vogels, CTO Amazon.com Avoid single points of failure Assume everything fails, and design backwards Goal: Applications should continue to function even if the underlying physical hardware fails or is removed or replaced.

2. Loose coupling sets you free The looser they're coupled, the bigger they scale Independent components Design everything as a Black Box De-coupling for Hybrid models Load-balance clusters Use Amazon SQS as Buffers Tight Coupling Controller A Controller B Controller C Loose Coupling using Queues Q Q Q Controller A Controller B Controller C

3. Implement Elasticity Elasticity is fundamental property of the Cloud Don t assume health or fixed location of components Use designs that are resilient to reboot and re-launch Bootstrap your instances: Instances on boot will ask a question Who am I & what is my role? Enable dynamic configuration Use Auto-scaling (Free) Use Elastic Load Balancing on multiple layers Use configurations in SimpleDB to bootstrap instance

4. Build Security in every layer Design with Security in mind With cloud, you lose a little bit of physical control but not your ownership Create distinct Security Groups for each Amazon EC2 cluster Use group-based rules for controlling access between layers Restrict external access to specific IP ranges Encrypt data at-rest in Amazon S3 Encrypt data in-transit (SSL) Consider encrypted file systems in EC2 for sensitive data Rotate your AWS Credentials, Pass in as arguments encrypted Use MultiFactor Authentication

4. Build Security in every layer Design with Security in mind Web Security Group: TCP 80 0.0.0.0/0 TCP 443 0.0.0.0/0 TCP 22 App App Security Group: TCP 8080 Web TCP 22 172.154.0.0/16 TCP 22 App DB Security Group: TCP 3306 App TCP 3306 163.128.25.32/32 TCP 22 App

5. Don't fear constraints Re-think architectural constraints Better IOPS on my database? Multiple read-only / sharding / DB clustering More RAM? Distribute load across machines Shared distributed cache Your hardware failed or messed up config? simply throw it away and switch to new hardware with no additional cost Hardware Config does not match? Implement Elasticity Performance Caching at different levels (Page, Render, DB)

6. Think Parallel Serial and Sequential is now history Experiment different architectures in parallel Multi-treading and Concurrent requests to cloud services Run parallel MapReduce Jobs Use Elastic Load Balancing to distribute load across multiple servers Decompose a Job into its simplest form

7. Leverage many storage options One size DOES NOT fit all Amazon S3: large static objects Amazon CloudFront: content distribution Amazon SimpleDB: simple data indexing/querying Amazon EC2 local disc drive : transient data Amazon EBS: persistent storage for any RDBMS + Snapshots on S3 Amazon RDS: RDBMS service - Automated and Managed MySQL

7. Leverage many storage options Which storage option to use when? Amazon S3 + CF Amazon EC2 Ephemeral Store Amazon EBS Amazon SimpleDB Amazon RDS Ideal for Ideal examples Not recommended for Not recommended examples Storing Large write-once, read-many types of objects, Static Content Distribution Media files, audio, video, images, Backups, archives, versioning Querying, Searching Database, File Systems Storing nonpersistent transient updates Config Data, scratch files, TempDB Storing Database logs or backups, customer data Sensitive data Off-instance persistent storage for any kind of data, Clusters, boot data, Log or data of commercial RDBMS like Oracle, DB2 Content Distribution Querying lightweight attribute data Querying, Mapping, tagging, clickstream logs, metadata, shared-state management, indexing Relational (joins) query OLTP, DW cube rollups Storing and querying structured Relational and referential Data Complex transactional systems, inventory management and order fulfillment systems Simple lookups

Applying Cloud Architecture Lessons Moving a Web Architecture to the Cloud

Exterior Firewall Hardware or Software Solution to open standard Ports (80, 443) Web Load Balancer Hardware or Software solution to distribute traffic over web servers MyWebSite.com LB Web Tier Fleet of machines handling HTTP requests. Backend Firewall Limits access to application tier from web tier App Load Balancer Hardware or Software solution to spread traffic over app servers LB Tier Fleet of machines handling Application specific workloads Caching server machines can be implemented at this layer Data Tier Database Server machines with master and local running separately, Network storage for Static objects MySQL Master App server MySQL (Slave) Backups on Tapes Periodic backups stored on Tapes usually managed by 3 rd party at their site Tapes A Classic Web Architecture

MyWebSite.com DNS ELB: Web Tier LB Design for failure and nothing fails Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Master Tomcat RDS Slave Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Slave Tomcat Cloud Front Amazon S3 Availability Zone #1 Availability Zone 2 Availability Zone #n A Scalable Web Architecture on AWS

MyWebSite.com DNS ELB: Web Tier LB Loose coupling sets you free Auto-scaling group : Web Tier Auto-scaling group : App Tier Availability Zone #1 SLB RDS Master Tomcat RDS Slave Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Slave Tomcat Availability Zone 2 Cloud Front Amazon S3 Availability Zone #n A Scalable Web Architecture on AWS

MyWebSite.com DNS ELB: Web Tier LB Implement elasticity Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Master Tomcat RDS Slave Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Slave Tomcat Cloud Front Amazon S3 Availability Zone #1 Availability Zone 2 Availability Zone #n A Scalable Web Architecture on AWS

MyWebSite.com DNS ELB: Web Tier LB Build Security in every layer Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Master Tomcat RDS Slave Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Slave Tomcat Cloud Front Amazon S3 Availability Zone #1 Availability Zone 2 Availability Zone #n A Scalable Web Architecture on AWS

MyWebSite.com DNS ELB: Web Tier LB Leverage many storage options Auto-scaling group : Web Tier Auto-scaling group : App Tier Availability Zone #1 SLB RDS Master Tomcat RDS Slave Auto-scaling group : Web Tier SLB Auto-scaling group : App Tier RDS Slave Tomcat Availability Zone 2 Cloud Front Amazon S3 Availability Zone #n A Scalable Web Architecture on AWS

Cloud Architecture Lessons Best Practices 1. Design for failure and nothing fails 2. Loose coupling sets you free 3. Implement Elasticity 4. Build Security in every layer 5. Don't fear constraints 6. Think Parallel 7. Leverage many storage options

MANAGEMENT AND OPERATIONS ON AWS

Management and Operations AWS affords numerous management options Utilize existing IT management systems Amazon VPC enables existing management and operations systems, security policies, etc. to extend to cloud resources AWS partners with numerous management platform providers Utilize cloud-oriented third-party providers RightScale, Elastra and many others Leverage AWS APIs to build custom solutions API-based control enables existing workflow applications to manage AWS resources

AWS Features for Management and Operations AWS provides management and operations primitives to enable plugging AWS in anywhere CloudWatch provides real-time API-based monitoring data AutoScaling provides API-based touch-less scaling out and in for EC2 resources ElasticLoadBalancing provides APIs for touch-less balancing of load across a dynamic fleet of EC2 instances across AZs AWS Management Console offers GUI for management and visibility All AWS resources can be allocated, managed and deallocated via a flexible API set

AWS Management Console https://aws.amazon.com/console

But What if You Have What you Have?

http://aws.amazon.com