#Cloud Computing Distributed Systems: When you should build them, and how to scale. A step-by-step guide.