Previously, many challenges in architecting systems for high-performance computing revolved around resource management: how to guard and ration access to limited compute and storage resources, and, correspondingly, how to make resource usage as efficient as possible. The cloud allows us to change our mindset. All the clouds provide a data layer, like Amazon S3, which provides a virtually unlimited amount of storage with close to a per- fect level of durability and high availability. Similarly, they provide nearly infinite, elas- tically scaling compute resources like Amazon Elastic Compute Cloud (Amazon EC2) and the abstractions built on top of it. We can architect our systems with the assump- tion that we have an abundant amount of compute resources and storage available and focus on cost-effectiveness and productivity instead.