cloud workload guidelines
TRANSCRIPT
Cloud WorkloadGuidelines
LEE JEN WEI
1
Cloud-Readiness Key Considerations
2
Key Application Considerations How To Address It
Performance If app does not perform in cloud, the desired savings evaporate
• Identify and fix performance constraints• Decouple compute-intensive components• Fine tune using actual usage patterns
Elasticity Applications must be designed to scale out/up for agility and scale in/down for cost savings.
• Do no design a monolithic application• Break it into scalable components to
maximize scale-up and down, out and in
Resilience Less control and visibility. Build the application ready for failure.
• Ensure the application is designed to recover from failure
• Build components loosely coupled• Perform tests for failure scenarios
Security New risk and vulnerabilities in a shared environment. Security should be built-in, verified and monitored.
• Check security, use https / VPN• Encrypt privacy sensitive information• Test all 3rd party components
Cloud Application Workloads Suitability
3
Suitable Workloads Less Suitable Workloads
Service Oriented Architecture (SOA) Applications that involve extremely sensitive data, regulatory or legal risk in disclosure. Require special treatment to run on cloud.
Development & Test, Proof of concepts
Applications that are run on the private networks or high performance hardware that are very performance- sensitive
Applications that are expected to be hit periodically/seasonally with sudden burst /surges of high traffic or load
Applications that require frequent and/or voluminous transactions against on-premise databases that cannot be migrated
Applications that run infrequently but require significant computing resource
Applications that run on legacy platforms that are typically not supported or having weak support by cloud provider
Applications that require massive storage and growth volumeApplications that run in different time zones or regions
Cloud Application Workloads Suitability
4
Suitable Workloads Less Suitable Workloads
Applications that are used by remote or mobile workers to manage their time and activityExtend storage capacity
Extend archiving capability
Cloud Workload Examples
5
Workload Examples
Web sites, Mobile Apps, Social
Web Portal sites, Mobile App backend, Mobile Web sites, Microsites, CMS, Intranet portals, etc
Proof of concepts, Development/Testing
Product/software evaluations, Personalisation (eg. Ab Initio), Distributed load/performance testing, etc
Sporadic Compute-intensive Applications
Promotions or events driven applications, high volume mass email / push notification applications
Analytics Map Reduce jobs, batch jobs, Memory/Storage/Compute resource intensive applications
Storage, Archiving Mobile app data backup,Storing high volume of static assets/objects (eg. Images, video files) on AWS S3 and access via web service provided by S3,Application archive log files, etc
Collaboration Enterprise Social Networking/collaboration apps, Web conferencing apps, File-sharing apps, etc
Cloud Architecture Best Practices
6
Best Practice Description1. Design for failure and
nothing will fail• Design for hardware/software failure• Build mechanism to handle the failures• Impervious to reboots and relaunches• Self-healing and self-recoverable from failures
2. Decouple your components
• SOA design principleo More loosely coupled, bigger and better it scales
• No tight dependencies of components• Build asynchronous systems• Enable scaling horizontally
3. Implement elasticity • Elasticity implementationo Proactive Cyclic scaling – periodic at fixed intervalso Proactive Event-based Scalingo Auto-scaling based on Demand
• Automate infrastructure• Bootstrap the server instances
4. Think parallel • Design architecture that parallelizeso Requesting datao Storing datao Processing data or executing jobs
• Multi-thread requests, asynchronous, thread-safe
Cloud Architecture Best Practices
7
Best Practice Description5. Keep dynamic data
closer to the compute andStatic data closer to end user
• Reduce latency• Reduce cost
o Charged for bandwidth in/out of cloud• Move large datasets to be processed outside into cloud
first before computation• Applications consuming data generated in cloud should
be hosted in cloudo Take advantage of in-cloud free data transfer and
lower latencies• Static data (eg. Images, video, audio, PDF, js, css files, use
content delivery serviceo Caching at edge location, lower access latencyo Faster access to popular objects
6. Security • Protect your data in transit• Protect your data at rest• Protect your access credentials• Secure your Applications
1. Design for Failure and Nothing will Fail – AWS Example
8
Design For Failure – AWS tactics
2. Decouple your Components – AWS Example
9
Decoupling Components using Queues
3. Implement Elasticity – AWS Example
10
Automate the Infrastructure
4. Think Parallel – AWS Example
11
Implementing Parallelization
5. Keep Dynamic Data closer to the Compute andStatic Data closer to End User – AWS Example
12
Implementing Data Tactics
6. Security – AWS Example
13
Securing your Applications using Security Groups