cloud computing design considerations

41
Cloud Computing Design Considerations Kavis Technology Consulting 5-5-13

Upload: mike-kavis

Post on 11-May-2015

2.302 views

Category:

Technology


3 download

DESCRIPTION

A look at design concepts when building solutions in the cloud.

TRANSCRIPT

Page 1: Cloud Computing Design Considerations

Cloud ComputingDesign Considerations

Kavis Technology Consulting

5-5-13

Page 2: Cloud Computing Design Considerations

Scalability

Page 3: Cloud Computing Design Considerations

independence

Page 4: Cloud Computing Design Considerations

CUSTOMERS

Tenant 1

Tenant 2

Tenant 3

Tenant 4

Tenant 5

Tenant 6

APPLICATIONS

B2C Site

B2B Site

Payments

Reporting

Inventory

Billing

No impact on other TENANTS

No impact on other

APPLICATIONS

CUSTOMERindependence

APPLICATIONindependence

Page 5: Cloud Computing Design Considerations
Page 6: Cloud Computing Design Considerations
Page 7: Cloud Computing Design Considerations
Page 8: Cloud Computing Design Considerations

Multi-tenancy

Page 9: Cloud Computing Design Considerations

Independence privacy Highest Scalability

Highest Cost Minimal reuse Highest Complexity

Database Server

App Server

Tenant 1 App Tenant 2 App

Tenant 1 Tenant 2

Total Isolation

Page 10: Cloud Computing Design Considerations

independence privacy optimal Scalability Cost effective

Inefficient for small tenants Moderate Complexity

Database Server

App Server

Tenant 1 Tenant 2

Shared

App2App1

Data Isolation

Page 11: Cloud Computing Design Considerations

Least complex Most Cost effective

Lack of independence performance scalability

Data segregation

App ServerShared

Database Server

Tenant 1

Tenant 2

App 2App 1

Page 12: Cloud Computing Design Considerations

Data segregation

App ServerShared

Database Server

Tenant 1

Tenant 2

App 2App 1

Database Server

App Server

Tenant 1 Tenant 2

Shared

App2App1

Data Isolation

Hybrid approach

Page 13: Cloud Computing Design Considerations

ClientRequest

Elas

tic IP

174.

23.2

34.6

6

Internal IP12.345.67.89

Internal IP12.345.55.92

Response

Status 200 - OK<?xml version="1.0" encoding="UTF-8"?><customer id="1"> <custno>57832</custno> <firstname>John</firstname> <lastname>Smith</lastname> <address> <number>41</number> <Main St</street> <city>Midtown</city> <state>NY</state> <zip>12345</zip> <country>USA</country> </address> <email>[email protected]</email> <phone>123-456-7890</phone></customer>

Get http:/www.mydomain.com/customer/57832Accept: application/xml

ResourceState

Doing REST Right

Page 14: Cloud Computing Design Considerations

Client

Request

ResponseStatus 504 – Timeout

Elas

tic IP

174.

23.2

34.6

6

Internal IP12.345.67.89

Internal IP12.345.55.92

Retry

Response

Status 200 - OK<?xml version="1.0" encoding="UTF-8"?><customer id="1"> <custno>57832</custno> <firstname>John</firstname> <lastname>Smith</lastname> <address> <number>41</number> <Main St</street> <city>Midtown</city> <state>NY</state> <zip>12345</zip> <country>USA</country> </address> <email>[email protected]</email> <phone>123-456-7890</phone></customer>

Get http:/www.mydomain.com/customer/57832Accept: application/xml

Get http:/www.mydomain.com/customer/57832Accept: application/xml

ResourceState

Doing REST Right

Page 15: Cloud Computing Design Considerations

data

Page 16: Cloud Computing Design Considerations

Right tool for the right job• Physical characteristics• Performance characteristics• Volatility• Volume

• Transaction boundaries• Retention period• Regulatory requirements

Page 17: Cloud Computing Design Considerations

When to use RDbMS

OLTP Table based Referential Integrity ACID Transactions

Company Employees

Page 18: Cloud Computing Design Considerations

When to use Nosql

Key Value Store Best for content caching, Fast lookups Redis, MemcacheDB

Column Store Best for huge data volumes, Fast lookups, Distributed data Cassandra, Hbase Great for static, historical data

Document Databases Best for versioning various documents and formats CouchDB, Mongo

Graph Databases Best for complex relationships, social networks Neo, Infogrid

Page 19: Cloud Computing Design Considerations

Hybrid

Page 20: Cloud Computing Design Considerations

Security

Page 21: Cloud Computing Design Considerations
Page 22: Cloud Computing Design Considerations

PrivateCloud

Customer owns it all

Page 23: Cloud Computing Design Considerations

IaaS

Customer is responsible

for App Stack and up.

Page 24: Cloud Computing Design Considerations

PaaS

Customer is responsible

for Application

and up.

Page 25: Cloud Computing Design Considerations

SaaS

Customer only deals

with administering

IDs

Page 26: Cloud Computing Design Considerations

Auditing SSAE-16: SOC 2 ISO 27001 HIPAA PCI Safe harbor Software escrow

Page 27: Cloud Computing Design Considerations

Auditing

Page 28: Cloud Computing Design Considerations

Monitoring

Security Performance Capacity Uptime Throughput SLA User metrics Kpis Log file analysis

Page 29: Cloud Computing Design Considerations

Logging

Page 30: Cloud Computing Design Considerations

IntrusionDetection

TroubleShooting

Centralized logging Lock down server access Searchable logs Easier to audit Easier to find patterns

Logging

Page 31: Cloud Computing Design Considerations

Service Level agreementsCustomer demandsUptimePage load timeApi response timeReporting times Incident resolution

Page 32: Cloud Computing Design Considerations

Disaster recovery

Page 33: Cloud Computing Design Considerations

Disaster recovery

RTO (Recovery Time Objective) “Time to be back up & running”

RPO (Recovery Point Objective) “Maximum time in which data is lost”

Value“How much money is recovery worth?”

Page 34: Cloud Computing Design Considerations

Disaster recovery

Page 35: Cloud Computing Design Considerations

Disaster recovery

Page 36: Cloud Computing Design Considerations

Disaster recovery

Page 37: Cloud Computing Design Considerations

Disaster recovery

Page 38: Cloud Computing Design Considerations

Role of Devops

Asset management Policy Enforcement Disaster Recovery Access Controls

Monitoring - Operations Deployments – App Dev Support – APP Dev & Operations

Own Outright Shared Responsibility`

Page 39: Cloud Computing Design Considerations

Team Roles

DevOps Architects App Dev QA Scrum Master Build Management Security

Devops Help Desk Computer Operations Account Manager Field Support QA App Dev Finance

Development Support

Page 40: Cloud Computing Design Considerations

Business ImpactsAccounting/Finance• Capex vs Opex• Pay-as-you-go Harder to forecast costs• Pricing Balance revenue with platform costs

Legal• More rigorous RFP Process• Regulations – SOC2, PCI, ISO27001, SOX, PII, Safeharbor, software escrow, etc.• Country specific rules on privacy and data

Human Resources • Cloud requires many new skillsets• Training• Recruiting (skill shortage, remote and global workers)• New incentives

Sales• Shorter implementation cycles – Sell and go• Need to understand basics of cloud computing, especially when it comes to defending security• Need to discuss issues like privacy and SLAs