Authors: Thomas Erl, Robert Cope and Amin Naserpour
Publisher: Prentice Hall
Aimed at: Cloud system implementers
Reviewed by: Kay Ewbank
The problem with cloud services, according to the authors of this book, is that they’re too easy to set up...
This means they’re put into service without enough consideration to the dangers inherent on the Web, or the difficulties of creating a cloud system that works in real life.
This is a book mainly drawn from content from Cloud Certified Professional courses developed by Arcitura Education, and its aim is to provide a catalog of design patterns that show how particular problems can be solved or requirements met. The design patterns are templates showing how to solve particular problems. The easiest way to illustrate this is with an example. Suppose you want to set up direct I/O access to a database, and that your problem is ‘how can a virtual server overcome data transfer capacity thresholds imposed by its surrounding virtualization environment?’ Each pattern starts by describing a problem or requirements such as this one. The solution is then described (let the virtual server circumvent the hypervisor and directly access the physical server’s I/O port). You’re then given a description of how this can be achieved, and how the hardware should be configured to achieve it. Diagrams are used to show the design, and the pattern ends with a set of mechanisms that are used in the design. In the case above, mechanisms include a logical network perimeter that ensures that the allocated physical I/O cloud doesn’t allow any cloud consumers to access other cloud consumers’ IT resources.
The book has around 100 templates, all following the layout of problem, solution, application and the mechanisms used to solve the problem. The first chapter of patterns covers sharing, scaling and elasticity, with topics including workload distribution, elastic resource and network capacity, and load balancing.
The next chapter’s topic is reliability, resiliency and recovery patterns. Templates in this look at problems such as hypervisor clustering, dynamic failure detection and recovery, and non-disruptive service relocation.
The chapter on data management and storage device patterns takes different types of access, increasing in complexity from direct I/O through LUN, single root I/O virtualization, up to cloud storage and RAID-based data placement. There are several cloud storage templates, and this seemed a useful chapter.
Virtual server and hypervisor connectivity and management are next on the agenda, with templates covering virtual server connectivity isolation, NAT connectivity, server-to-host affinity and anti-affinity, all the way through to stateless hypervisors.
The need to monitor, provision and administer cloud systems is the topic of the next chapter, with templates for real time resource availability, platform provisioning, self-provisioning and automated automation.
The authors then move on to Cloud Service and Storage Security, with templates for geotagging, hypervisor protection, trusted cloud resource pools, mobile BYOD security, and cloud data breach protection among others. Network Security, Identity and Access Management is the next topic. There were some interesting templates in this chapter, such as cloud denial-of-service protection, traffic hijacking protection, and federated cloud authentication.
The final chapter covers Common Compound Patterns, where several earlier templates are combined to form an entire system – software as a service, infrastructure as a service, multitenant environment, and a variety of burst out and burst in patterns.
I found this an interesting book, but I think its relevance would only be truly understood by people actually setting up cloud systems. It is strictly vendor neutral, which sounds good but means you don’t know which particular hypervisor (say) the authors would recommend. On the whole, if you need to configure cloud systems, it would be a useful read.
Author: Peter Eeles & Peter Cripps
Publisher: Addison-Wesley, 2009
Audience: Software Architects
Reviewed by: Alex Armstrong Billed as "an indispensable resource for every working and aspiring software architect" what does this book tell us about?