Cloudcomputingpatterns
Cloudcomputingpatterns
http://www.cloudcomputingpatterns.org
Cloud Computing Patterns
Patterns are a widely used concept in computer
science to describe good solutions to reoccurring
problems in an abstract form. Such conceptual
solutions can then be applied in concrete use cases
regardless of used technologies, such as software,
middleware, or programming languages. We employ
patterns to describe cloud service models and cloud
deployment types in an abstract form to categorize
the offerings of cloud providers. Furthermore, we
give reoccurring cloud application architectural
patterns on how to design, build, and manage
applications that use these cloud offerings. The
abstraction of these patterns make them applicable
to challenges faced by developers regardless of the
actual technologies and cloud services that they are
using.
http://www.cloudcomputingpatterns.org
Static Workload
IT resources with an equal utilization over time experience static workload.
http://www.cloudcomputingpatterns.org
Infrastructure as a Service (IaaS)
Providers share physical and virtual hardware IT resources between customers to
enable self-service, rapid elasticity, and pay-per-use pricing.
http://www.cloudcomputingpatterns.org
Public Cloud
IT resources are provided as a service to a very large customer group in order to
enable elastic use of a static resource pool.
How can the cloud properties be provided across clouds and other
environments?
http://www.cloudcomputingpatterns.org
Elastic Infrastructure
Hosting of virtual servers, disk storage, and configuration of network connectivity is
offered via a self-service interface over a network.
http://www.cloudcomputingpatterns.org
Hypervisor
To enable the elasticity of clouds, the time required to provision and decommission
servers is reduced through hardware virtualization.
How can virtual hardware that has been abstracted from physical
hardware be used in applications?
http://www.cloudcomputingpatterns.org
Block Storage
Centralized storage is integrated into servers as a local hard drive to enable access to
this storage via the local file system.
How can large files be stored, organized, and made available over a
network?
How can data elements be stored so that relations between them can
be expressed and expressive queries are enabled to retrieve required
information effectively?
n<w+r
http://www.cloudcomputingpatterns.org
Virtual Networking
Networking resources are virtualized to empower customers to configure networks,
firewalls, and remote access using a self-service interface.
How can it be ensured that messages are only deleted from a message
queue if they have been received successfully?
How can it be ensured that messages are only deleted from a message
queue if they have been received successfully at least once?
http://www.cloudcomputingpatterns.org
Loose Coupling
A broker encapsulates concerns of communication partner location, implementation
platform, time of communication, and data format.
http://www.cloudcomputingpatterns.org
Stateful Component
Multiple instances of a scaled-out application component synchronize their internal
state to provide a unified behavior.
How can the complexity of data storage be hidden while ensuring data
structure configurability?
http://www.cloudcomputingpatterns.org
Shared Component
A component is accessed by multiple tenants to leverage economies of scale.
http://www.cloudcomputingpatterns.org
Restricted Data Access Component
Data provided to clients from different environments is adjusted based on access
restrictions.
http://www.cloudcomputingpatterns.org
Provider Adapter
Provider interfaces are encapsulated and mapped to unified interfaces to separate
concerns of interactions with the provider from application functionality.
PULL: PUSH:
http://www.cloudcomputingpatterns.org
Elasticity Management Process
Application component instances are added and removed automatically to cope
with increasing or decreasing workload, respectively.
http://www.cloudcomputingpatterns.org
Two-Tier Cloud Application
Presentation and business logic is bundled to one stateless tier that is easy to scale.
This tier is separated from the data tier that is harder to scale.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Native Cloud Applications 92
Three-Tier Cloud Application
Presentation, business logic, and data handling are separated to scale stateless
presentation and compute-intensive processing independent of the data tier.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Native Cloud Applications 93
Content Distribution Network
Applications component instances and data handled by them are globally
distributed to meet the access performance required by a global user group.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Native Cloud Applications 94
Composite Cloud Application Patterns
Native Cloud Applications
http://www.cloudcomputingpatterns.org
Hybrid User Interface
Varying workload from a user group interacting asynchronously with an application
is handled in an elastic environment.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Hybrid Cloud Applications 96
Hybrid Processing
Processing functionality that experiences varying workload is hosted in an elastic
cloud while the remainder of an application resides in a static environment.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Hybrid Cloud Applications 97
Hybrid Backend
Backend functionality (data-intensive processing and storage) is experiencing
varying workloads and is hosted in an elastic cloud.
How can processing components that experience varying workload
and access large amounts of data be hosted in an elastic environment
while the remainder of the application is hosted in a static
environment?
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Hybrid Cloud Applications 98
Hybrid Data
Data of varying size is hosted in an elastic cloud while the remainder of an
application resides in a static environment.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Hybrid Cloud Applications 99
Hybrid Backup
Data is periodically extracted from an application to be archived in an elastic cloud
for disaster recovery purposes.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Hybrid Cloud Applications 100
Hybrid Application Functions
Some application functionality provided by user interfaces, processing, and data
handling is experiencing varying workload and is hosted in an elastic cloud.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Hybrid Cloud Applications 101
Hybrid Development Environment
A production runtime environment is replicated and mocked in an elastic
environment where new applications can be developed and tested.
Compositehttp://www.cloudcomputingpatterns.org
Cloud Application Patterns – Hybrid Cloud Applications 102
The End.
http://www.cloudcomputingpatterns.org