Computing Reviews

Cloud computing design patterns
Erl T., Cope R., Naserpour A., Prentice Hall Press,Upper Saddle River, NJ,2015. 592 pp.Type:Book
Date Reviewed: 01/20/16

Design patterns document well-known solutions to common design problems. Originally introduced by a landmark 1977 architecture book [1], they have been widely adopted in the software engineering field since the 1990s, as they provide a common vocabulary that facilitates communication among project stakeholders. Hence, it is not uncommon to find titles such as Design patterns in/for X, and this book is yet another incarnation of this pattern, this time focused on cloud computing.

Cloud computing is currently in vogue and major cloud providers offer computing resources on demand. Many companies are moving their systems to the cloud and replace their traditional capital expenditures (capex) on computing hardware and infrastructure by operating pay-per-use expenses. Once regulatory issues are settled, they enjoy the scalability and elasticity of the systems operated by cloud vendors, which would often be beyond their capabilities in the more traditional capex model.

This book, from Thomas Erl’s “Service Technology” series, is neither a textbook on cloud computing nor a handbook on specific cloud technologies. It is basically a catalog of design patterns for cloud computing. Since it is tool-agnostic, you will not find the specific details involved in the implementation of common design patterns, nor thorough analyses of the tradeoffs specific technologies introduce into the mix. Unfortunately, it lacks the depth of outstanding object-oriented design pattern books [2,3] due to its very approach to the vendor-independent description of cloud computing design patterns. In a fast-moving field, however, this is probably a necessary evil in case you do not want your book to be outdated as soon as it hits the press.

Dozens of patterns are presented in this book following a common format. The pattern name is accompanied by a single-sentence requirement in question form (for example, “How can the processing capacity of virtual servers be dynamically scaled in response to fluctuating [information technology, IT] resource usage requirements?”). Then, the context where the addressed problem appears is briefly described in a few paragraphs, followed by a short description of the proposed solution. The longest section of the pattern is devoted to the description of how the pattern can be applied in practice, often in the form of a typical scenario and a step-by-step process with detailed diagrams. Finally, the “mechanisms” section lists the different systems, components, tools, and technologies that are required for (or just involved in) the implementation of the pattern. A final chapter collects compound patterns that compose sets of patterns that are used in conjunction, for example, in order to provide software-as-a-service (SaaS), platform-as-a-service (PaaS), or infrastructure-as-a-service (IaaS) solutions.

Since cloud computing is mostly about sharing the capital investment on computing resources, most of the design patterns are devoted to managing shared resources such as storage, virtual servers, and hypervisors. Scalability, elasticity, reliability, and resiliency also play important roles, as security does, which encompasses one-fourth of the pattern catalog. And you cannot miss some monitoring, provisioning, and recovery patterns.

The complete pattern catalog can be found online at http://www.cloudpatterns.org/. This website contains all of the reusable material you can find in the printed book: pattern names and descriptions, references to the mechanisms involved in the implementation of the pattern, and even the figures that illustrate the application of each pattern. However, you will not find the more detailed textual descriptions you can read in the book, which range from simplistic overviews (for example, shared resources) to informative depictions (for example, most of the security-related patterns).

This pattern catalog offers a broad overview of the specific vocabulary that has evolved within cloud computing, its most common processes, and the technologies involved in its implementation. Since the book is completely vendor-independent and tool-agnostic, technically oriented minds will not find too much depth in it, yet technical managers might find this book useful for becoming acquainted with the concepts, terminology, and technologies behind cloud computing.

More reviews about this item: Amazon, Slashdot


1)

Alexander, C. A pattern language: towns, buildings, construction. Oxford University Press, New York, NY, 1977.


2)

Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Design patterns: elements of reusable object-oriented software. Addison-Wesley, Upper Saddle River, NJ, 1994.


3)

Buschmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; Stal, M. Pattern-oriented software architecture: a system of patterns (vol. 1). Wiley, West Sussex, UK, 1996.

Reviewer:  Fernando Berzal Review #: CR144113 (1604-0230)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy