Cloud Computing
Design Considerations
Kavis Technology Consulting
5-5-13
Scalability
independence
CUSTOMERS
Tenant 1
Tenant 2
Tenant 3
Tenant 4
Tenant 5
Tenant 6
APPLICATIONS
B2C Site
B2B Site
Payments
Reporting
Inventory
Billing
Noimpact
on other
TENANTS
Noimpact
on other
APPLICATIONS
CUSTOMER
independence
APPLICATION
independence
Multi-tenancy
 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
 independence
 privacy
 optimal Scalability
 Cost effective
 Inefficient for small tenants
 Moderate Complexity
Database Server
App Server
Tenant 1 Tenant 2
Shared
App2App1
Data Isolation
 Least complex
 Most Cost effective
 Lack of independence
 performance
 scalability
Data segregation
App Server
Shared
Database Server
Tenant 1
Tenant 2
App 2App 1
Data segregation
App Server
Shared
Database Server
Tenant 1
Tenant 2
App 2App 1
Database Server
App Server
Tenant 1 Tenant 2
Shared
App2App1
Data Isolation
Hybrid approach
Client
Request
ElasticIP174.23.234.66
Internal IP
12.345.67.89
Internal IP
12.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>jsmith@example.com</email>
<phone>123-456-7890</phone>
</customer>
Get http:/www.mydomain.com/customer/57832
Accept: application/xml
Resource
State
Doing REST Right
Client
Request
Response
Status 504 – Timeout
ElasticIP174.23.234.66
Internal IP
12.345.67.89
Internal IP
12.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>jsmith@example.com</email>
<phone>123-456-7890</phone>
</customer>
Get http:/www.mydomain.com/customer/57832
Accept: application/xml
Get http:/www.mydomain.com/customer/57832
Accept: application/xml
Resource
State
Doing REST Right
data
Right tool for the right job
• Physical characteristics
• Performance characteristics
• Volatility
• Volume
• Transaction boundaries
• Retention period
• Regulatory requirements
When to use RDbMS
 OLTP
 Table based
 Referential Integrity
 ACID Transactions
Company Employees
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
Hybrid
Security
Private
Cloud
Customer
owns it all
IaaS
Customer is
responsible
for App Stack
and up.
PaaS
Customer is
responsible
for
Application
and up.
SaaS
Customer
only deals
with
administering
IDs
Auditing
 SSAE-16: SOC 2
 ISO 27001
 HIPAA
 PCI
 Safe harbor
 Software escrow
Auditing
Monitoring
 Security
 Performance
 Capacity
 Uptime
 Throughput
 SLA
 User metrics
 Kpis
 Log file analysis
Logging
Intrusion
Detection
Trouble
Shooting
Centralized logging
 Lock down server access
 Searchable logs
 Easier to audit
 Easier to find patterns
Logging
Service Level agreements
Customer demands
 Uptime
 Page load time
 Api response time
 Reporting times
 Incident resolution
Disaster recovery
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?”
Disaster recovery
Disaster recovery
Disaster recovery
Disaster recovery
Role of Devops
 Asset management
 Policy Enforcement
 Disaster Recovery
 Access Controls
 Monitoring - Operations
 Deployments– App Dev
 Support – APP Dev & Operations
Own Outright Shared Responsibility
`
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
Business Impacts
Accounting/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
Thank You
articles for each topic at this link
Design strategies for cloud computing

Cloud Computing Design Considerations

  • 1.
    Cloud Computing Design Considerations KavisTechnology Consulting 5-5-13
  • 2.
  • 3.
  • 4.
    CUSTOMERS Tenant 1 Tenant 2 Tenant3 Tenant 4 Tenant 5 Tenant 6 APPLICATIONS B2C Site B2B Site Payments Reporting Inventory Billing Noimpact on other TENANTS Noimpact on other APPLICATIONS CUSTOMER independence APPLICATION independence
  • 8.
  • 9.
     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
  • 10.
     independence  privacy optimal Scalability  Cost effective  Inefficient for small tenants  Moderate Complexity Database Server App Server Tenant 1 Tenant 2 Shared App2App1 Data Isolation
  • 11.
     Least complex Most Cost effective  Lack of independence  performance  scalability Data segregation App Server Shared Database Server Tenant 1 Tenant 2 App 2App 1
  • 12.
    Data segregation App Server Shared DatabaseServer Tenant 1 Tenant 2 App 2App 1 Database Server App Server Tenant 1 Tenant 2 Shared App2App1 Data Isolation Hybrid approach
  • 13.
    Client Request ElasticIP174.23.234.66 Internal IP 12.345.67.89 Internal IP 12.345.55.92 Response Status200 - 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>jsmith@example.com</email> <phone>123-456-7890</phone> </customer> Get http:/www.mydomain.com/customer/57832 Accept: application/xml Resource State Doing REST Right
  • 14.
    Client Request Response Status 504 –Timeout ElasticIP174.23.234.66 Internal IP 12.345.67.89 Internal IP 12.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>jsmith@example.com</email> <phone>123-456-7890</phone> </customer> Get http:/www.mydomain.com/customer/57832 Accept: application/xml Get http:/www.mydomain.com/customer/57832 Accept: application/xml Resource State Doing REST Right
  • 15.
  • 16.
    Right tool forthe right job • Physical characteristics • Performance characteristics • Volatility • Volume • Transaction boundaries • Retention period • Regulatory requirements
  • 17.
    When to useRDbMS  OLTP  Table based  Referential Integrity  ACID Transactions Company Employees
  • 18.
    When to useNosql 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
  • 19.
  • 20.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
    Auditing  SSAE-16: SOC2  ISO 27001  HIPAA  PCI  Safe harbor  Software escrow
  • 27.
  • 28.
    Monitoring  Security  Performance Capacity  Uptime  Throughput  SLA  User metrics  Kpis  Log file analysis
  • 29.
  • 30.
    Intrusion Detection Trouble Shooting Centralized logging  Lockdown server access  Searchable logs  Easier to audit  Easier to find patterns Logging
  • 31.
    Service Level agreements Customerdemands  Uptime  Page load time  Api response time  Reporting times  Incident resolution
  • 32.
  • 33.
    Disaster recovery RTO (RecoveryTime 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?”
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
    Role of Devops Asset management  Policy Enforcement  Disaster Recovery  Access Controls  Monitoring - Operations  Deployments– App Dev  Support – APP Dev & Operations Own Outright Shared Responsibility `
  • 39.
    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
  • 40.
    Business Impacts Accounting/Finance • Capexvs 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
  • 41.
    Thank You articles foreach topic at this link Design strategies for cloud computing

Editor's Notes

  • #2 This presentation discusses various decision points around designing applications and services in the cloud
  • #3 There are many ways to scale applications. In most on-premises systems we scale vertically by increasing memory, disk, and or CPU processing. In the cloud we scale horizontally by distributing the work across more nodes.
  • #4 A key guiding principle to scaling is the notion of independence. We should ensure that an issue in one part of the system is isolated and has no impact on other parts of the system.
  • #5 Each customer should be mutually exclusive so if one customer has a huge uptick of transactions that cause performance issues it is isolated and has no impact on other customers. Likewise, if a module like a reporting system is down or having ussies, you should still be able to bill and server customers from the other modules.
  • #14 Key to doing REST right is not to maintain application state. Instead rely on hyperlinks (HATEOAS)
  • #17 We should not be having a SQL vsNoSQL discussion. It often is SQL and NoSQL. Use the right tool to solve each unique problem.
  • #22 This chart shows where the responsibilities lie between the vendor and the customer
  • #23 When you build you own private cloud you are responsible for it all. Be careful what you ask for.
  • #24 If you use the public cloud you are responsible for the app stack and up
  • #25 If you use PaaS you are responsible for the application and up
  • #26 If you use SaaS you only focus on administration of IDs