PRE 102 - Cloud-based Software Architecture Learnings from the Field


Ricardo Villalobos - Microsoft


One of the challenges that many companies and organizations face when trying to take advantage of the cloud is making sure that the architecture of their applications are ready for a distributed computing environment. Most of the traditional, legacy software patterns assume that the different layers or modules will be deployed on single, non-clustered instances, ignoring the benefits of following a design-for-failure approach. Existing methodologies for software architecture are rooted in the principles of object-oriented and n-tier designs. While these approaches worked superbly for small scale systems, they begin to break down in highly distributed, loosely-coupled cloud-based implementations. During this session, lessons learned after working with some of the most forward-thinking and innovative ISVs in the field will be presented, providing concrete examples of how to externalize storage and caching services and how to decouple tiers using a façade pattern approach. We will also deep dive into Command-Query Responsibility Segregation (CQRS), which is an emerging cloud pattern that offers significant advantages, such as managing concurrency conflicts, avoiding data staleness, and being able to adapt to changing business requirements. Specific real-life situations will be used to illustrate these scenarios, emphasizing the benefits that different companies have found after applying them and migrating their applications to the Microsoft Windows Azure platform.