We arrive at our last appointment with Cloud Design Patterns.
Cloud Computing Patterns
CloudComputingPatterns.org is basically a marketing channel for pushing this Springer volume. The book itself seems quite useful and is well organized (but not particularly cheap).
The book divides patterns into five major groups:
- Cloud Computing Fundamentals
- Cloud Offering Patterns
- Cloud Application Architecture Patterns
- Cloud Application Management Patterns
- Composite Cloud Application Patterns
Cloud Computing Fundamentals
Fundamentals include characteristic principles of Cloud Computing NIST and Cloud Service and Deployment models. So, for instance, how can the IAAS service model be designed to accommodate the widest possible range of use-cases:
“How can different customers share a physical hosting environment so that it can be used on-demand with a pay-per-use pricing model?”
“A provider offers physical and virtual hardware, such as servers, storage and networking infrastructure that can be provisioned and decommissioned quickly through a self-service interface. “
Cloud Offering Patterns
Let’s take Blob Storage.
“How can large files be stored, organized and made available over a network?”
Cloud Computing Patterns’ answer:
“Data elements are organized in a folder hierarchy similar to a local file system. Each data element is given a unique identifier comprised of its location in the folder hierarchy and a file name. This unique identifier is passed to the storage offerings to retrieve a file over a network. ”
Cloud Application Architectures
How about a Batch Processing Component?
“How can asynchronous processing requests be delayed to be handled when conditions for their processing are optimal?”
“Asynchronous processing requests are accepted at all times but stored them (sic) until conditions are optimal for their processing. Based on the number of stored requests, environmental conditions, and custom rules, components are instantiated to handle the requests. Requests are only processed under non-optimal conditions if they cannot be delayed any longer. “
Cloud Application Management
The Elastic Queue pattern:
“How can the number of required application component instances be adjusted based on monitored asynchronous accesses?”
And the solution:
“Queues that are used to distribute asynchronous requests among multiple application components instances are monitored. Based on the number of enqueued messages the Elastic Queue adjusts the number of application component instances handling these requests.“
Composite Cloud Applications
For the composite applications, we can evaluate the Three-Tier Cloud Application Pattern
“How can presentation logic, business logic, and data handling be decomposed into separate tiers that are scaled independently?”
The pattern provides the solution described by text and image:
“The application is decomposed into three tiers shown exemplarily in Figure, where each tier is elastically scaled independently. The presentation tier is comprised of a load balancer and an application component that implements the Stateless Component pattern and User Interface Component pattern. The business logic tier is comprised of an application component implementing the State in the other portal, less Component pattern in addition to the Processing Component pattern. “
CloudPatterns.org is a portal owned by Arcitura Education Inc, a global provider of vendor-neutral training and certification programs. Their online database of design patterns will obviously serve marketing goals, to attract professionals on courses and certifications of their list. But it’s very well organized and boasts rich content. They begin with:
Mechanisms are well-defined IT artifacts established within an IT industry and often unique to a certain computing model or platform. These mechanisms are often called Design Patterns to better define use-case problems and solutions. The Virtual Server, for instance, is a framework that’s useful for “hosting” related patterns. Similarly with the Hypervisor.
… as an aside, this is the first time I have used the internet at 36,000 feet … very impressive …Compound patterns are effectively design models, composed of a set of very well defined models, or the design patterns. We can see something similar in the IAAS compound pattern from Cloud Computing Patterns.
Each element in the graph is either necessary or optional (shown as a dashed line) for the functioning of the compound pattern.
Cloud Design Patterns
CloudPattern provides a great definition of the whole idea behind patterns in their overview, in particular, this:
NIST Reference Architecture Mapping – This content is provided for those interested in how a given pattern can relate to the components that comprise the National Institute of Standards (NIST) Cloud Computing Reference Architecture.
Patterns can play significant roles for cloud computing, sometimes even allowing optimizations that don’t yet exist out of the box from mainstream platforms. The Storage Workload Management approach is one example. Load Balanced Virtual Server Instances, and Zero Downtime that allows live migration are others.
A pattern I particularly appreciate is Power Consumption Reduction, something that should be adopted by all the big cloud providers to optimize and more efficiently manage data center electricity consumption. This approach is often effectively used by private virtualized data centers but has been resisted in some operations due to the perception of higher latency. Maybe it could be introduced together with accurate forecasts of seasonal and daily load.
This ends our series of posts dedicated to the world of Cloud Design Patterns. I hope I’ve aroused your curiosity and helped you deepen and develop your understanding of this fascinating aspect of Cloud Computing.