This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
In a cloud environment it is less disruptive to add another server to your deployment than to increase the specs of an existing node so a cloud app developer could favor horizontally scalable approaches like stateless frameworks apis and architectures. When not in the cloud, every node you add comes with extra costs of maintenance, physical space , lights, guy that checks the cables (or whatever it is those guys do) so vertical solutions are preferred.
Asynchronous techniques are also preferred in the cloud because of the ease of access to additional nodes which non blocking routines can be off loaded to resulting in more scalability.
I wouldn't say new patterns are needed, just that sometimes different approaches should be taken.
I would call Map-Reduce as a design pattern, and a lot of cloud computation is built on Map Reduce.
And. Map Reduce itself can be implemented using a Produce Consumer pattern, so there's that too
However, a lot of principles go into design of cloud based architectures. From the top of my head
1) Design for failover
2) Workers should be stateless
3) Reduce contention between workers
4) Scalability over efficiency