Cloud applications have a unique set of characteristics. They run on commodity hardware, provide services to untrusted users, and deal with unpredictable workloads. These factors impose a range of problems that you, as a designer or developer, need to resolve. Your applications must be resilient so that they can recover from failures, secure to protect services from malicious attacks, and elastic in order to respond to an ever changing workload. This guide demonstrates design patterns that can help you to solve the problems you might encounter in many different areas of cloud application development. Each pattern discusses design considerations, and explains how you can implement it using the features of Windows Azure. The patterns are grouped into categories: availability, data management, design and implementation, messaging, performance and scalability, resilience, management and monitoring, and security. You will also see more general guidance related to these areas of concern. It explains key concepts such as data consistency and asynchronous messaging. In addition, there is useful guidance and explanation of the key considerations for designing features such as data partitioning, telemetry, and hosting in multiple datacenters. These patterns and guidance can help you to improve the quality of applications and services you create, and make the development process more efficient. Enjoy!
Alex Homer is a technical writer assigned to the Microsoft patterns & practices division in Redmond. Following a career within and outside of the IT world, including an eclectic range of jobs from tractor driver to double-glazing salesman, he spent many years as a software and training specialist before tiring of the conference circuit and joining Microsoft. However, he has so far resisted the dubious attractions of Seattle weather in favor of working from home in the idyllic rural surroundings of the Derbyshire Dales in the heart of England. Now he spends his days knee-deep in design patterns and architectural literature; writing books, documentation, sample code, and producing technical guidance in its myriad other forms - most of which is helpfully co-authored by two over-inquisitive cats.
covers many aspects of the architectural principles.. design patterns can be used as reference while building new cloud native applications or migrating from monolith to micro or modular services.. indeed good read ..
An excellent text, plenty of insights for any architect out there. Plain and simple. Next to the Iceweasel’s window, which I’m using to write this review, is a Sublime Text instance running in the background with some 380 lines of notes and ideas, supporting my feeling that I just finished reading something real good.
It is true, this book was meant to provide guidance to cloud architects that host their applications on Windows Azure. The examples that come with each design pattern, indeed, show how to apply those concepts on the Microsoft cloud platform. But, with this being said…
The examples are exquisite. The code is clear and is both well explained by the authors and comes with comments. The design patterns do apply to any cloud-based application. Actually, they do apply to any highly available application whose components are independent and loosely coupled!
Point 2 explains those almost 400 lines in Sublime Text. The 24 design patterns do indeed apply to any kind of backend system. It doesn’t matter if backed up by the cloud or not.
The authors use a common format to present the patterns: each is introduced by a context. The typical scenario(s) generating the problem comes next, followed by the solution(s). Each chapter is finally closed by some insights on the concepts just explained: not only how to best apply them, but also what pitfalls the architect should be aware of. Oh and yea, and the (Azure) sample application(s) that demonstrate the usage of what has just been explained.
The greatest thing are the schemas. Each pattern comes, in fact, with one or more graphical representation. Schemas are usually the weak link in practically all the IT books; often the authors come up with some quick ugly UML rectangle that confuses the readers, instead of adding value. Cloud Design Patterns comes, instead, with clear and comprehensible schemas. Ice on the cake.
I definitely suggest the book to anyone involved into the design of the architecture of any system, be it on the cloud or not. A must have!
As usual, you can find more reviews on my personal blog: http://books.lostinmalloc.com. Feel free to pass by and share your thoughts!