2. 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
3. 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 volume
Applications that run in different time zones or
regions
4. Cloud Application Workloads Suitability
4
Suitable Workloads Less Suitable Workloads
Applications that are used by remote or mobile
workers to manage their time and activity
Extend storage capacity
Extend archiving capability
5. 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
6. Cloud Architecture Best Practices
6
Best Practice Description
1. 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 principle
o More loosely coupled, bigger and better it scales
• No tight dependencies of components
• Build asynchronous systems
• Enable scaling horizontally
3. Implement elasticity • Elasticity implementation
o Proactive Cyclic scaling – periodic at fixed intervals
o Proactive Event-based Scaling
o Auto-scaling based on Demand
• Automate infrastructure
• Bootstrap the server instances
4. Think parallel • Design architecture that parallelizes
o Requesting data
o Storing data
o Processing data or executing jobs
• Multi-thread requests, asynchronous, thread-safe
7. Cloud Architecture Best Practices
7
Best Practice Description
5. Keep dynamic data
closer to the compute
and
Static 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 cloud
o Take advantage of in-cloud free data transfer and
lower latencies
• Static data (eg. Images, video, audio, PDF, js, css files, use
content delivery service
o Caching at edge location, lower access latency
o Faster access to popular objects
6. Security • Protect your data in transit
• Protect your data at rest
• Protect your access credentials
• Secure your Applications
8. 1. Design for Failure and Nothing will Fail – AWS Example
8
Design For Failure – AWS tactics
9. 2. Decouple your Components – AWS Example
9
Decoupling Components using Queues