Architectural Design Patterns for Cloud Computing Rajesh Venkatesan - - PowerPoint PPT Presentation

architectural design patterns for cloud computing
SMART_READER_LITE
LIVE PREVIEW

Architectural Design Patterns for Cloud Computing Rajesh Venkatesan - - PowerPoint PPT Presentation

Architectural Design Patterns for Cloud Computing Rajesh Venkatesan Senior Architect, HCL Technologies rajeshvn@hcl.com Cloud Computing NIST Definition Provision without human On-demand interaction self-service SaaS Accessible via


slide-1
SLIDE 1

Architectural Design Patterns for Cloud Computing

Rajesh Venkatesan Senior Architect, HCL Technologies rajeshvn@hcl.com

slide-2
SLIDE 2

Cloud Computing – NIST Definition

2

  • Provision without human

interaction On-demand self-service

  • Accessible via the internet
  • Across heterogeneous platforms

Broad network access

  • Multi Tenant
  • Location Independence

Resource pooling

  • Dynamic Provisioning and

Release

  • Seemingly Unlimited

Rapid elasticity

  • Usage is measured
  • Is monitored, controlled and

reported Measured service

SaaS PaaS IaaS

slide-3
SLIDE 3

Business Requirements for the cloud applications

3

Cloud Architecture Can I keep the cost of adding a customer near zero? Can I quickly have trial instances for customers? Can I bill only based on what customer uses. Can I afford to not know when my service will go viral? Can I modularize and sell based on customers need? Can my Customers quickly purchase and get access to services? Can I aggregate services? Can I shutdown unused instances? Can I have just in time infrastructure capabilities? Can I have a solution that is completely secure? Can my partners build additional

  • fferings?

Enterprise/ Common Concern ISV Concern

slide-4
SLIDE 4

Architectural Tenets

4

Elasticity Scalability Availability Interoperability Multi Tenancy Security

slide-5
SLIDE 5

Architectural Pattern – Loose Coupling

 The fewer assumptions that a component makes of its environment, the looser it is coupled.  Location, Availability abstraction  Example

  • All types of messaging.

5

Cons Pros

slide-6
SLIDE 6

Architectural Pattern – Stateless Design

6

 State Implications  Components that have heavy in-memory state are near impossible to scale.  Failure of the component translates failure of multiple requests.  Additional nodes do not solve this problem since state is lost.  Stateless Design  Move state to a centralized persistent store. Keep components stateless. Cons Pros

slide-7
SLIDE 7

Architectural Pattern - Auto Scale

 Elasticity is a primary feature of the cloud.  Applications must take advantage of this feature.  Monitor load and adjust number of instances.  Scale Down is as important as Scale Up

7

Cons Pros

slide-8
SLIDE 8

Architectural Pattern – Partition Tolerance

 Brewer’s CAP Theorem.  Basically Available, Soft State and Eventually Consistent (BASE)  Some state can be reflected late.  Enables Availability and compromises on Consistency.  Design to take advantage of moving out “eventually consistent” data.

8

Consistency Availability Partition Tolerance

Choose Two

  • Seamless Scale
  • Complex

Programming Model

slide-9
SLIDE 9

Architectural Pattern – Failure Tolerance

 Assume everything will fail.  With loose coupling and stateless design, failure tolerance is easy to build.  Architecture must assume an application will function with minimal impact if parts of it fail.  Functional Decomposition and Physical Deployment Decoupling will limit failure to parts of system.  The cloud will enable recovery very quickly because of its very nature of instant replenishment.

9

slide-10
SLIDE 10

Architectural Pattern – Choice of Storage

The type of storage affects COST Data Classifications:  Persistent Data – Standard Persistent Storage (File)  Simple Data – Key Value Pair, Data Structure, JSON.  Static Distribution Data - CDN  RDBMS – Standard Relational Data Choose the right storage  Use Content Delivery Networks for Static Distributable Content  Use Standard Persistent Storage for storing files  Use Key Value Pair Databases for Storing Indexes, Shared State (Session) and any data for quick retrieval  Use RDBMS for Relational Data

10

slide-11
SLIDE 11

Architectural Pattern – Multi-Tenancy

 Multi Tenant Efficiency lowers the cost of adding a customer.  Various Levels

  • IaaS –Multi Tenant Virtualized Infrastructure (AWS, Rackspace

etc) [TENANT=Compute, Storage, Network]

  • PaaS – Multi Tenant Application Infrastructure (Google App

Engine, Azure, force.com etc) [Tenant=Application]

  • SaaS – Multi Tenant Application (Most SaaS Applications including

Salesforce.com, Google Apps etc) [Tenant=Customer]  “Building Multi Tenant Java Applications“, Silicon India Java Conference – Aug 2011  Concern spans across architecture.

11

vs

Cons Pros

slide-12
SLIDE 12

Architectural Pattern – Standard Integration

 Not a strict cloud concern, but more significant for cloud applications.  Once applications move out of premise, integration becomes a key concern.  Standard based integration facilitates secure access to applications.  Standards

  • Identity (SAML/OpenID/oAuth)
  • API (REST/SOAP/WSRP/JSR 168)

12

vs

Cons Pros

slide-13
SLIDE 13

Architecture Pattern - Security

Security

Data Security Application Security Infrastructure Security

Application Security

 All Inbound and Outbound interface points must be secured by default. (SSL)  Address Security Threats [OWASP Top Ten]  Use Identity and Access Management Services where available  Know your standards  SAML/OpenID for Identity Delegation 

  • Auth for API Access

Infrastructure Security

 Abstracted very efficiently by IaaS Providers.  Multi Tenant IaaS is highly secure.  Secure Access to instance  Open Needed Ports Only  Keep Certificates Safe

Data Security

 Data at rest  Use tenant specific encryption when required. Decouple encryption awareness from the data layer allowing data leaks to still be harmless.  TradeOffs  Database functions cannot be applied on encrypted fields  Performance  Data in transit  Use Secure means of transfer (https) and add authentication/ authorization layer on top.  Use In Wire Encryption for highly critical data

slide-14
SLIDE 14

PaaS – Complexity Abstraction

 Most PaaS abstract out a lot of complexity  They also implicitly force good design.  Almost all PaaS provide consistent availability of data.  Programming to PaaS enforces most of the design principles including

  • Stateless Design – Instances can be taken off

anytime.

  • Loose Coupling – Cost kicks in for additional

usage.

  • Auto Scale – Ability to configure scaling

thresholds.

  • Partition Tolerance – Most functions like queues

and data stores forces consumers to program to their model.

  • Identity – Most PaaS provide support for

SAML/OpenID (as SP and IdP)

  • Some PaaS support Multi Tenancy

14

slide-15
SLIDE 15

Cloud - Application Fitment Profile

15

Cloud Scale/Parallel Computing Elastic Short Recurring Life time Peripheral Applications (CRM, Security, Communication) Mobile, Tablet, Point Device Based

slide-16
SLIDE 16

References

 Architectural Design Patterns for the cloud [http://www.slideshare.net/AmazonWebServices/aws- architectingjvariafinal]  Windows Azure Design Patterns [http://www.slideshare.net/dpallmann/windows-azure-design-patterns]  Cloud Computing Patterns [http://cloudcomputingpatterns.org/]  Open Security Architecture [http://www.opensecurityarchitecture.org/cms/library/patternlandscape/251- pattern-cloudcomputing]  Mapping Applications to the Cloud [http://msdn.microsoft.com/en-us/library/dd430340.aspx]  Patterns For High Availability, Scalability, And Computing Power With Windows Azure[http://msdn.microsoft.com/en-us/magazine/dd727504.aspx]

16

slide-17
SLIDE 17

Questions?

17