Skip to main content

2014 | Buch

Cloud Computing Patterns

Fundamentals to Design, Build, and Manage Cloud Applications

verfasst von: Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter

Verlag: Springer Vienna

insite
SUCHEN

Über dieses Buch

The current work provides CIOs, software architects, project managers, developers, and cloud strategy initiatives with a set of architectural patterns that offer nuggets of advice on how to achieve common cloud computing-related goals. The cloud computing patterns capture knowledge and experience in an abstract format that is independent of concrete vendor products. Readers are provided with a toolbox to structure cloud computing strategies and design cloud application architectures. By using this book cloud-native applications can be implemented and best suited cloud vendors and tooling for individual usage scenarios can be selected. The cloud computing patterns offer a unique blend of academic knowledge and practical experience due to the mix of authors. Academic knowledge is brought in by Christoph Fehling and Professor Dr. Frank Leymann who work on cloud research at the University of Stuttgart. Practical experience in building cloud applications, selecting cloud vendors, and designing enterprise architecture as a cloud customer is brought in by Dr. Ralph Retter who works as an IT architect at T‑Systems, Walter Schupeck, who works as a Technology Manager in the field of Enterprise Architecture at Daimler AG,and Peter Arbitter, the former head of T Systems’ cloud architecture and IT portfolio team and now working for Microsoft.

Voices on Cloud Computing Patterns

Cloud computing is especially beneficial for large companies such as Daimler AG. Prerequisite is a thorough analysis of its impact on the existing applications and the IT architectures. During our collaborative research with the University of Stuttgart, we identified a vendor-neutral and structured approach to describe properties of cloud offerings and requirements on cloud environments. The resulting Cloud Computing Patterns have profoundly impacted our corporate IT strategy regarding the adoption of cloud computing. They help our architects, project managers and developers in the refinement of architectural guidelines and communicate requirements to our integration partners and software suppliers.

Dr. Michael Gorriz – CIO Daimler AG

Ever since 2005 T-Systems has provided a flexible and reliable cloud platform with its “Dynamic Services”. Today these cloud services cover a huge variety of corporate applications, especially enterprise resource planning, business intelligence, video, voice communication, collaboration, messaging and mobility services. The book was written by senior cloud pioneers sharing their technology foresight combining essential information and practical experiences. This valuable compilation helps both practitioners and clients to really understand which new types of services are readily available, how they really work and importantly how to benefit from the cloud.

Dr. Marcus Hacke – Senior Vice President, T-Systems International GmbH

This book provides a conceptual framework and very timely guidance for people and organizations building applications for the cloud. Patterns are a proven approach to building robust and sustainable applications and systems. The authors adapt and extend it to cloud computing, drawing on their own experience and deep contributions to the field. Each pattern includes an extensive discussion of the state of the art, with implementation considerations and practical examples that the reader can apply to their own projects.

By capturing our collective knowledge about building good cloud applications and by providing a format to integrate new insights, this book provides an important tool not just for individual practitioners and teams, but for the cloud computing community at large.

Kristof Kloeckner – General Manager,Rational Software, IBMSoftware Group

Inhaltsverzeichnis

Frontmatter
1. Introduction
Abstract
Cloud computing is the logical evolution of Information Technology (IT) in a world that is becoming more and more based on the division of work. From small family-owned stores to big corporations the trend to outsource IT is prevalent. Cloud computing brings principles that are long established in other industries to the IT. Take the transportation industry as an example. If you want to use a car you can get this functionality in a wide range of service models. From your own car that you buy and are responsible for, to cars sourced from a company-internal pool, to a rental car from one of the rent-a-car agencies, from car-sharing models, to taxis the functionality is essentially the same – a car enabling fast self-paced driving from A to B. The differentiating factor of these mobility providers is their business model to deliver functionality and the level of guaranteed quality of service. Cloud computing brings a new choice to the service models in which IT is delivered. Cloud computing is the IT equivalent of the rent-a-car model. The promise of cloud computing is to consume IT resources (be it infrastructure, middleware platforms, software, or whole business processes) when you need them in the quantity you need them at a certain time. While this IT delivery model is not new from a technical perspective, the fundamental change is the business model that you only pay for IT resources when you actually use them. Similar to the car industry this can be game-changing and can save you lots of money, speed up your time-to-market, and make your business and IT more flexible. In other cases, where you cannot embrace this business model fully, it can be complicated and more expensive than just buying the respective IT resources and maintaining them yourself.
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter
2. Cloud Computing Fundamentals
Abstract
In this chapter, we introduce the fundamentals required for the understanding of the following chapters. As stated in the introduction, the cloud computing properties – access via network, on-demand self-service, measured service (pay-per-use), resource pooling and rapid elasticity – fundamentally change how IT resources are provided and used. It is important to understand why cloud offerings have these properties, how these properties are delivered on different levels of a typical application stack and under which conditions an application benefits from them. We begin by examining application workloads (Sect. 2.2) and show how they influence the decision for the adoption of cloud offerings. Especially, we discuss how applications experiencing different types of workloads can benefit from the cloud computing properties covered in Chap. 1. As in that previous chapter, we use the NIST cloud definition [3] and emphasis on those aspects that are important to understand the following chapters.
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter
3. Cloud Offering Patterns
Abstract
In this chapter, the different cloud offerings found in clouds are covered regarding the functionality they provide to customers and the behavior they display. After the overview and general discussion of the impact of cloud computing properties (see Sect. 1.​1 Page 3 in Chap. 1) on offering behavior, we describe different cloud environments (Sect. 3.3) as patterns. These patterns characterize the environments created in different cloud deployment models (see Sect. 2.​4 on Page 54 in Chap. 2) in more detail. Especially, they give an overview of common combinations of the other cloud offering patterns to form an IaaS (41) or PaaS (44) cloud. In the remaining sections of this chapter, we cover cloud offerings combined to provide IaaS or PaaS individually and differentiate between three general functionality-related offering types: processing offerings, storage offerings, and communication offerings.
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter
4. Cloud Application Architecture Patterns
Abstract
This chapter covers architectural patterns that describe how applications have to be designed to benefit from a cloud environment. Additionally, it is described how applications themselves can be offered as configurable cloud services. Having introduced cloud service models (see Sect. 2.​3 on Page 39 in Chap. 2) and cloud deployment types (see Sect. 2.​4 on Page 54 in Chap. 2), this chapter describes patterns that architects and developers can use to build cloud-native applications, i.e., applications that display the cloud application properties introduced in Sect. 1.​2 on Page 5 in Chap. 1. Following the overview, fundamental application architectural patterns cover the architectural principles found in most cloud-native applications to enable the cloud application properties. Application component patterns then specify patterns on how to design and build individual components of a cloud-native application, so that the overall application can be built on top of an elastic infrastructure (78) or elastic platform (81). Multi-tenancy patterns describe how cloud applications and individual components can be shared by multiple customers, so called tenants, on different levels of the application stack. Cloud integration patterns finally describe mechanisms on how to integrate multiple cloud environments or cloud environments and on-premise datacenters as well as applications both in and outside the cloud.
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter
5. Cloud Application Management Patterns
Abstract
This chapter covers architectural patterns that describe how cloud applications as described in Chap. 4, can be managed automatically by separate components (Fig. 5.1). These management components (Sect. 5.2) handle the automated management of cloud-native applications regarding dynamic elasticity, resiliency, updates etc. Due to the pay-per-use property of cloud applications covered in Sect. 1.​1, scaling tasks should be automated, because the number of provisioned IT resources, i.e., the number of provisioned virtual servers, the size of booked storage or the number of application component instances directly affects the runtime costs of an application. Furthermore, environment-based availability (88) assurances, where individual cloud resources can fail at any time, or a node-based availability (85) that does not meet requirements of an application, as well as network partitions, may create the need to monitor applications and automatically react to resource failures.
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter
6. Composite Cloud Application Patterns
Abstract
This chapter contains patterns that compose patterns covered in previous sections to describe cloud applications. Furthermore, it describes possible distribution scenarios of the composed patterns among different cloud environments forming a hybrid cloud (67) (Fig. 6.1).
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter
7. Impact of Cloud Computing Properties
Abstract
In Chap. 1, we introduced the basic principles of cloud computing, on-demand self-service, broad network access, pay-per-use, resource pooling and rapid elasticity. In Chaps. 2 and 3, we used a pattern format to describe workloads experienced by cloud applications, the hosting environments they use, and the cloud-specific properties of different cloud offerings in an abstract, vendor-neutral view. Chapter 4 covered patterns on how to deal with these properties in application architectures followed by best practices for managing cloud applications in Chap. 5. Chapter 6 covered compositions of the patterns described in previous chapters to create cloud applications.
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter
Backmatter
Metadaten
Titel
Cloud Computing Patterns
verfasst von
Christoph Fehling
Frank Leymann
Ralph Retter
Walter Schupeck
Peter Arbitter
Copyright-Jahr
2014
Verlag
Springer Vienna
Electronic ISBN
978-3-7091-1568-8
Print ISBN
978-3-7091-1567-1
DOI
https://doi.org/10.1007/978-3-7091-1568-8

Neuer Inhalt