Cloud architecture development faces several open challenges. These are identified as obstacles and also opportunities for improvement. Armbrust et al. have highlighted some key architectural challenges that affect cloud systems.
Challenge 1: Service Availability and Data Lock-in Problem
- When a cloud is managed by a single provider, it becomes a single point of failure.
- Even with multiple data centers, the infrastructure might still share common software or accounting systems.
Solution:
- Use multiple cloud providers for better High Availability (HA).
- To avoid DDoS attacks, some utility computing services offer quick scale-ups.
- APIs are still proprietary, leading to data lock-in.
Possible Fixes:
- Standardize APIs so SaaS developers can deploy across multiple clouds.
- Enables “surge computing”, where public clouds handle overflow from private clouds.
Challenge 2: Data Privacy and Security Concerns
- Clouds are mostly public networks, which increases the risk of attacks.
- Legal rules require providers to store data within national boundaries.
Traditional Attacks:
- Buffer overflows, DoS, spyware, malware, rootkits, Trojan horses, worms.
Cloud-Specific Threats:
- Hypervisor malware
- Guest hopping & hijacking
- VM rootkits
- Man-in-the-middle attacks during VM migration.
Solution:
- Use encryption, virtual LANs, firewalls, and packet filters.
- Apply security standards for both public and private cloud environments.
Challenge 3: Unpredictable Performance and Bottlenecks
- VMs can share CPUs/memory well, but I/O performance suffers.
- Example:
- 75 EC2 instances with STREAM → 1355 MB/s (good)
- Same 75 EC2 writing to local disk → 55 MB/s (bad)
Problem:
- I/O interference between VMs
- Data-intensive apps increase network traffic and data placement complexity
Solutions:
- Improve I/O virtualization, optimize interrupt handling
- Remove bottlenecks, upgrade weak links, discard weak servers
- Amazon CloudFront is an example of handling this with intelligent data distribution
Challenge 4: Distributed Storage and Widespread Software Bugs
- Databases in cloud apps are growing continuously
- Need for scalable, efficient SANs with high availability
- Data consistency in SAN-connected systems is a major issue
Bug Challenges:
- Bugs occur in production data centers and cannot be reproduced easily
Solutions:
- Use VMs to capture valuable info during runtime
- Simulators can also help with debugging at large scale if well-designed
Challenge 5: Cloud Scalability, Interoperability, and Standardization
Pricing Model Differences:
- Storage/network = Pay-per-byte
- Computation = Depends on VM or cycles
Examples:
- GAE: Charged per cycle, auto-scales up/down
- AWS EC2: Charged hourly per VM, even if idle
Standardization via OVF (Open Virtualization Format):
- Portable, secure, cross-platform VM format
- Doesn’t depend on specific OS or virtualization tool
- Can include multiple VMs per appliance
Needed Improvements:
- Hypervisor-agnostic VMs
- Cross-platform live migration
- Support for legacy hardware
- Standardized VM packaging and transport
- Load balancing across x86 Intel and AMD
Challenge 6: Software Licensing and Reputation Sharing
Licensing Issues:
- Traditional software licensing doesn’t fit cloud models
- Commercial licensing is not ideal for utility computing
Opportunities:
- Open-source software may remain dominant
- Pay-per-use or bulk-use licensing models can be adopted
Reputation Issues:
- Bad behavior by one customer (e.g., spam) may affect the reputation of the entire cloud
- EC2 IP addresses can be blacklisted, affecting others
Solutions:
- Create reputation-guarding services (like trusted email services)
- Legal liability transfer must be addressed via SLA agreements