design consideration for cloud applications agenda how
play

Design Consideration for Cloud Applications Agenda How cloud - PowerPoint PPT Presentation

Design Consideration for Cloud Applications Agenda How cloud applications are different? Quick view on challenges? Design consideration Key take away 2 How cloud applications are different? Pay per use (no Mandatory network On


  1. Design Consideration for Cloud Applications

  2. Agenda • How cloud applications are different? • Quick view on challenges? • Design consideration • Key take away 2

  3. How cloud applications are different? Pay per use (no Mandatory network On Demand Self commitment ,utility pricing) service Elastic capacity scale up Resources are abstract Location independent and scale down on demand and virtualized resources pooling 3

  4. Design Challenges of cloud application Development Typical cloud Example application Key Design challenges Application Traditional Multi-tier J2EE applications Security of sensitive data, applications which are generally design for performance, availability stable demand. and consistency Synchronous End user interaction is primary Elastic scalability. Shared applications focus. Such as web application nothing architecture where large number of users where large number of users preferably stateless. preferably stateless. may be hitting the application in Location independent short time. resource pooling. Asynchronous Typically batch application Self provisioning, High applications which do not support end user reliability, Resource interactions. They work on monitoring , Eventual large set of data, extracting, consistency, multi- inserting data into database. tenancy, vendor lock-in Ref - NIST http://csrc.nist.gov/groups/SNS/cloud-computing/index.html 4

  5. Genesis of design decisions for cloud application Cloud Software as a Computing service 2001s � Next generation internet Utility computing � Network based Grid Computing � Next generation data computing subscription to centre � Provide a scalable � Provide a scalable applications applications 1990s 1990s � Offering computing � Progress in standard environment for resources as processors network centric � Internet access metered service � Remote � Solving large application development, � In expensive servers testing, deployment. � Distributed storage problems with provisioning � Single user provider � Server virtualization parallel computing. � Application � Negotiation and � Business continuity model pay per use � Single domain virtualizations management of � commercial resource sharing. � Schedulers � Multi domain � Non commercial and public funded. 5

  6. Genesis of design decisions for cloud application Your Your Application Governance Testing, Problem Monitoring, Diagnostics, Architectural View and (Scalability, Availability, Recovery, Data verification Quality, Security) LifeCycle (Provisioning, growth, Failure, Recovery, Reallocation) (Provisioning, growth, Failure, Recovery, Reallocation) Cloud Cloud Servers Web of Meta Data Categories, Capabilities, Configurations & Dependencies Element Management Cloud Infra (Split Resource Basic (Private or Facilities & Responsibility) Management Monitoring Public) Logistics Software & Hardware Infrastructure 6 Ref http://www.slideshare.net/DSPIP/cloud-computing-introduction-2978287

  7. Genesis of design decisions for cloud application 7

  8. Design Consideration Consideration Suggestions • How to make application • Have sufficient logs in application more secured? Security of • Use encryption to secure your sensitive data sensitive data at rest (Social like PII, PCI etc. at rest but store the “Key” on- premise. security, Credit Card, bank • Use federated identities for Authentication. • Use federated identities for Authentication. account)Security of data in account)Security of data in Let’s Let’s You may use standards like SAML, OAuth etc. flight Look at • Use delegated Authorization to externalize • How to ensure data is stored it from application. May use Standards like Security in a particular data center XACML. • How to ensure whether • Use tombstone concept to ensure all data “delete” actually deleted the are deleted. Data to be deleted are update data from cloud & from all with tombstone value for deletion. Delete the places (log files, Storage, service make sure to delete all data. • Consider using Security Development life services) cycle http://www.microsoft.com/security/sdl/defaul t.aspx 8

  9. Design Consideration Consideration Suggestions • How to Scale out and • Make your application Stateless . Defer application state. Use scale in? Why scale up is cache, databases, NoSQL storages not possible etc. • How to built Fault • How to built Fault • Do not use local storage of VM, as • Do not use local storage of VM, as Elastic tolerant it is not durable. Scalability • Design your application to be loosely coupled • Create object as late as possible “Late binding” • Use Dependency Injection • Use Service Orientation • Use staged event driven architecture 9

  10. Design Consideration Consideration Suggestions • What to built inside application • Use automated configurations to deploy new instance • Redundancy • Use Phi accrual failure detection • Stateless behavior to find “suspicion level” to trigger • When to trigger provisioning? provisioning. provisioning. Self Self • Whether binary measurement of • Whether binary measurement of • Do staged deployment over cloud. Provisioning availability is good enough? 10

  11. Design Consideration Consideration Suggestions • Should we do big bang • Do staged design for cloud application. approach to cloud • Suggested stages of design application • Virtualization - Virtualized infrastructure development or Design Design and applications staged? staged? • Cloud experimentation - Experiment in • Whether cloud life EC2 : Define reference architecture infrastructure is • Cloud foundation - Lay foundation of cycle matured enough for scalable application architecture reliable deployment? • Cloud exploitation – select cloud Should we take environment and begin broad base pessimistic approach? deployments : manual provisioning and deployment • Hyper cloud – Achieve dynamic sharing of application workload, capacity arbitrage, and self service application provisioning. 11

  12. Design Consideration Consideration Suggestions • Latency Factor • Fewer network calls, ask for more data • Shared Environment at a time. This will help controlling the • Is it due to Hybrid throttling (some clouds throw you out if environment? application is excessively using the bandwidth) bandwidth) • Use caching and replication with read Performance slaves. • Keep you dynamic data closer to compute. • Use Multi version concurrency control (MVCC) to avoid locking while reading. • Use bloom filter which is a special kind of cache to reduce key lookups. 12

  13. Design Consideration Consideration Suggestions • CAP Theorem • Most of cloud application follow eventually Availability: consistency model. Each client can • Use gossip protocol to always read keep state of each servers. keep state of each servers. and write Weak • Use hinted hands off for consistency data consistency/ • Use Multi version Pick Two concurrency control (MVCC) to avoid locking and read consistency. Consistency: All Partition Tolerance: client always has The system work the same view of well despite the data physical network partition 13

  14. Design Consideration Consideration Suggestions • Do you know Everything • Estimate cost for different usage is a cost? scenarios including testing • Computation power is • Take cost into consideration cost when estimating features • Data storage is cost • Data storage is cost • Optimize the utilization of each • Optimize the utilization of each Cost • Integration is cost resource consideration • Management is a cost • Shut down the services automatically • Use caching, compression and batching to minimize the data transfer • Avoid vendor lock-in by using standardize API to minimize switching cost. 14

  15. Key Take Away Account for Get familiar with Analyze fitment of unreliability of application design application for underlying patterns e.g. Gossip cloud infrastructure protocol, eventual consistency, hinted hands off, bloom filter Avoid vendor lock-in Factor cost Loosely coupled by the use of considerations into cloud application standard API and Architecture is difficult to abstraction Considerations diagnose. 15

  16. Thanks

Recommend


More recommend