Friday, September 12, 2008

20 Real-Life Challenges of Cloud Computing

Nikita Ivanov of GridGain offers some excellent insight into the nuts and bolts of getting the cloud to work. Definitely worth a read. To summarize:
  • Most likely you do NOT need cloud computing
  • The best way to think about cloud computing is “Data Center with API”
  • You will spend weeks and months fine tuning your cloud based application
  • You are about to deal with 100s and 1000s of remote nodes
  • You cannot rely on the fact that environment will be homogeneous
  • Debugging problem on a cloud scale requires deep understanding of distributed computing
  • IP multicast will likely not work or work with significant networking limitations.
  • Traffic inside is very cheap or free – but traffic outside is expensive and can “get you” very quickly
  • If you have to use cloud all the time, the economics change and it may be cheaper to traditionally rent in a data center
  • Up time and per-computer reliability is low – comprehensive failover support on grid middleware is a must
  • Static IPs are not guaranteed
  • Almost always plan on having multiple clouds
  • External clouds may present data sharing problems
  • Carefully think through dev/qa/prod layout and how this is all organized
  • Clunky (re)deployment of your application onto the cloud can stop your development process
  • Connections are often one-directional so comprehensive communication capabilities supporting one-directional connectivity and disjoint clouds in grid middleware is a must
  • Cloud are implemented based on hardware virtualization – make sure your grid middleware can dynamically provision such images on demand
  • Stick with open source stack
  • Linear scalability can only be achieved in a control test environment. Real world applications will exhibit non-linear scalability.
  • [His] Personal recommendation: use Amazon EC2/S3 services

No comments: