Professional Documents
Culture Documents
January 2014
Building Cloud Services, Release 3.1
E49942-01
Copyright 2013, 2014 Oracle and/or its affiliates. All rights reserved.
Contributor: Cliff Booth, Dave Chappalle, Bob Hensle, Rob Reakes, Graham Mcmillan
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it
on behalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical data"
pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As
such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and
license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of
the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software
License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other
measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages
caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks
are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD,
Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced
Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information on content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your
access to or use of third-party content, products, or services.
Contents
Preface ................................................................................................................................................................. ix
Document Purpose...................................................................................................................................... ix
Document Scope .......................................................................................................................................... x
Related Documents ..................................................................................................................................... xi
Document Map .......................................................................................................................................... xiii
Audience..................................................................................................................................................... xiii
Document Structure .................................................................................................................................. xiii
How to Use This Document..................................................................................................................... xiv
Conventions ............................................................................................................................................... xiv
1 Introduction
1.1 Differentiating Cloud Services.................................................................................................. 1-2
1.1.1 Specific Considerations for SaaS........................................................................................ 1-5
1.2 Program Level v. Project Level Activities ............................................................................... 1-5
1.3 Cloud Service Development Phases......................................................................................... 1-7
iii
2.3.2.11 Service justification.................................................................................................... 2-12
2.3.2.12 Workload validation ................................................................................................. 2-13
2.4 Cloud Service Portfolio Management and Release Planning ............................................ 2-13
2.5 Cloud Architecture Refinement............................................................................................. 2-14
2.5.1 Cloud Services and SOA.................................................................................................. 2-15
2.5.2 Providers and Consumers ............................................................................................... 2-16
2.5.3 Architectural Capabilities................................................................................................ 2-16
2.6 Other Program Level Considerations ................................................................................... 2-17
2.7 An Example............................................................................................................................... 2-17
2.7.1 Problem .............................................................................................................................. 2-17
2.7.2 Solution .............................................................................................................................. 2-17
3 Inception
3.1 Inception Phase Activities.......................................................................................................... 3-1
4 Elaboration
4.1 Cloud Service Definition............................................................................................................ 4-1
4.1.1 Defining Cloud Service Contracts ..................................................................................... 4-2
4.1.2 Defining Service APIs ......................................................................................................... 4-2
4.1.2.1 Characteristics of good Cloud APIs........................................................................... 4-2
4.1.2.2 IaaS API.......................................................................................................................... 4-3
4.1.2.3 PaaS API......................................................................................................................... 4-3
4.1.2.4 SaaS API ......................................................................................................................... 4-5
4.1.3 Defining service specifications........................................................................................... 4-6
4.1.3.1 Template for Cloud service definition....................................................................... 4-6
4.1.3.2 Defining Service metrics.............................................................................................. 4-7
4.2 Designing Cloud services .......................................................................................................... 4-8
4.2.1 Design Choices ..................................................................................................................... 4-9
4.2.2 Service Design Template ................................................................................................. 4-10
4.2.3 Service Assembly Template ............................................................................................ 4-11
5 Construction
5.1 Cloud Service Implementation ................................................................................................. 5-1
5.2 Packaging and Assembly........................................................................................................... 5-2
5.2.1 Defining Deployable Entities ............................................................................................. 5-3
5.3 Cloud Service Testing................................................................................................................. 5-4
6 Transition
6.1 User Acceptance Testing............................................................................................................ 6-1
6.2 Cloud Service Deployment........................................................................................................ 6-2
7 Operate
7.1 Operations Best Practices........................................................................................................... 7-2
8 Summary
iv
v
List of Figures
11 Cloud Service Development - Programs and Projects........................................................... 1-6
12 Focus Areas and Program/Project Scope................................................................................ 1-7
13 Cloud Service Development Process ....................................................................................... 1-8
21 Cloud Service Analysis Activities ............................................................................................ 2-2
22 Requirements Analysis .............................................................................................................. 2-3
23 Cloud Service Development Influencing Factors................................................................... 2-6
24 Cloud Service Identification Steps............................................................................................ 2-6
25 Cloud Service Identification Process........................................................................................ 2-7
26 Cloud Candidate Services Stack Model................................................................................ 2-10
27 Cloud Candidate Services Stack Example............................................................................ 2-11
28 Cloud Service Portfolio Management and Release Planning ............................................ 2-14
29 Cloud Architecture Refinement............................................................................................. 2-15
31 Inception Phase Activities (SaaS).............................................................................................. 3-2
32 Inception Phase Activities (IaaS and PaaS) ............................................................................. 3-2
41 Elaboration Phase Activities...................................................................................................... 4-1
42 Cloud Service Definition............................................................................................................ 4-2
43 PaaS API ....................................................................................................................................... 4-4
44 Cloud Application Integration.................................................................................................. 4-5
45 Cloud Service Design ................................................................................................................. 4-9
51 Construction Phase Activities ................................................................................................... 5-1
52 Cloud Service Implementation ................................................................................................. 5-2
53 Packaging and Assembly........................................................................................................... 5-3
54 Cloud Service Testing................................................................................................................. 5-4
61 Transition Phase Activities ........................................................................................................ 6-1
62 User Acceptance Testing............................................................................................................ 6-2
63 Cloud Service Deployment........................................................................................................ 6-3
71 Operate - OA&M Phase Activities............................................................................................ 7-1
vi
Send Us Your Comments
Oracle welcomes your comments and suggestions on the quality and usefulness of this
publication. Your input is an important part of the information used for revision.
Did you find any errors?
Is the information clearly presented?
Do you need more information? If so, where?
Are the examples correct? Do you need more examples?
What features did you like most about this document?
If you find any errors or have any other suggestions for improvement, please indicate
the title and part number of the documentation and the chapter, section, and page
number (if available). You can send comments to us at:
its_feedback_ww_grp@oracle.com.
vii
viii
Preface
Document Purpose
This document describes a methodological approach to building Cloud services
spanning all the Cloud service models, from Software-as-a-Service (SaaS), through
Platform-as-a-Service (PaaS), to Infrastructure-as-a-Service (IaaS).
The word "software", in the context of SaaS, however, is a particularly broad term
covering a wide range of categories of machine instructions spanning the layers of the
traditional IT architecture stack. Typically, the term "SaaS" narrows the use of the
word "software", referring most of the time at least, to a Cloud based delivery model
for business applications. Such business applications commonly include financial
accounting software, customer relationship management (CRM), enterprise resource
planning (ERP), human capital management (HCM), and a plethora of custom
applications. This is not to say that SaaS is necessarily constrained to business
applications, however, software at the lower levels of the IT stack, in the context of
cloud, would typically belong to other cloud models. For example, operating system
software belongs to IaaS while middleware software falls into the category of PaaS.
Since SaaS generally refers to application software at the top of the IT stack, this
category of software will be referred to interchangeably as either "SaaS" or "application
services" for the purposes of this document.
ix
The approach presented in this document is intended to augment existing software
development strategies by focusing on the aspects of cloud service construction that
are distinct from existing engineering practices. In addition, this approach loosely
follows an enterprise-class variation of the Unified Process (UP) and as such lends
itself to integration with existing Iterative and Incremental Development (IID)
methods including the Oracle Unified Method (OUM) and Agile development
frameworks.
Document Scope
The focus of this document is engineering of Cloud services for delivery through any
of the Cloud service models i.e. SaaS, PaaS, IaaS. Little attention is given to
foundational cloud concepts since these are covered in other ITSO documents. For
example the definition of Cloud service models and associated sub-models can be
found in the Cloud Foundation Architecture document.
This document describes the practices specific to the engineering of cloud services in
the framework of a Software Development Lifecycle (SDLC). It identifies the primary
architecture and design concerns for engineering services for cloud (SaaS) and
identifies the key technical criteria for selection of the underlying layers e.g. SaaS on
PaaS, IaaS, or traditional IT environment (PaaS on IaaS, or traditional IT environment,
etc.). While this document focuses on the aspects of service engineering that are
unique to cloud it is intended only to augment, rather than replace, existing strategies
for engineering and associated SDLC methods.
In the context of Oracle Unified Method (OUM), this document describes the
activities within the Envision and Implement focus areas. As such, it encompasses
program and project level activities for building Cloud services. In addition to
covering all the project phases in the Implement focus area (Inception, Elaboration,
Construction, and Transition), Cloud Service Analysis and Cloud Architecture
Refinement (from the Initiate, and Maintain and Evolve phases) are introduced briefly
to show how analysis and architecture support service projects at the program level.
The broader subject of business justification for engineering Cloud services is beyond
the scope of this document; however, this subject is covered in the document Creating a
Roadmap to Cloud Computing. Creating a Roadmap to Cloud Computing also describes the
project methodology and implementation phases used in this document. Program
level Envision considerations in this document are limited to concerns that directly
impact implementation of Cloud service projects, such as, platform selection.
Similarly, the Operate focus area, describing processes and procedures for the effective
operation of Cloud services, is covered by the Cloud Operations document.
While the focus of this document is Cloud Service projects, the word "project" is used
to refer to a variety of different types of projects associated with Cloud. Some example
of different Cloud projects are "cloud platform services projects" (as in PaaS), "initial
cloud build project", and also projects that deploy applications to a cloud. Where the
specific type of project is not obvious from the context its description is expanded.
The diagram below shows how this document fits in the ITSO document set in relation
to other ETS topics.
x
While this document necessarily touches some broader topics, such as software
architecture or operations, these are included only insofar as they are concerns of any
Software Development Lifecycle (SDLC). Other topic areas, such as business and
strategy, are beyond the scope of this document.
The importance of cost and benefits of Cloud to both providers and consumers is
critical to the successful adoption of Cloud. However, what is measured will vary
greatly depending on many factors, such as, planning an enterprise wide cost savings
initiative or an application migration for agility. Given the complexity of the subject of
costing it is beyond the scope of this document. Some information on this subject can
be found in Creating a Roadmap to Cloud Computing which introduces the topic of how
to measure an allocate costs incurred.
Related Documents
IT Strategies from Oracle (ITSO) is a series of documentation and supporting
material designed to enable organizations to develop an architecture-centric approach
to enterprise-class IT initiatives. ITSO presents successful technology strategies and
solution designs by defining universally adopted architecture concepts, principles,
guidelines, standards, and patterns.
xi
ITSO is made up of three primary elements:
Oracle Reference Architecture (ORA) defines a detailed and consistent architecture
for developing and integrating solutions based on Oracle technologies. The reference
architecture offers architecture principles and guidance based on recommendations
from technical experts across Oracle. It covers a broad spectrum of concerns pertaining
to technology architecture, including middleware, database, hardware, processes, and
services.
Enterprise Technology Strategies (ETS) offer valuable guidance on the adoption of
horizontal technologies for the enterprise. They explain how to successfully execute a
strategy by addressing concerns pertaining to architecture, technology, engineering,
strategy, and governance. An organization can use this material to measure their
maturity, develop their strategy, and achieve greater levels of adoption and success. In
addition, each ETS extends the Oracle Reference Architecture by adding the unique
capabilities and components provided by that particular technology. It offers a
horizontal technology-based perspective of ORA.
Enterprise Solution Designs (ESD) are cross-industry (applicable to many industries)
and industry-specific (focused on a single vertical industry) solution perspectives
based on the Oracle Reference Architecture. They adhere to the ORA principles and
also draw on the best practices and guidelines provided in ETS collateral. They define
the high level business processes, business functions, and software capabilities that are
required to build enterprise-wide industry solutions. ESDs map the relevant
application and technology products against solutions to illustrate how capabilities in
Oracle's complete integrated stack can best meet the business, technical, and
quality-of-service requirements.
This document is a practitioner guide within the Cloud Enterprise Technology
Strategy.
Please consult the ITSO web site for a complete listing of ORA documents and
associated materials in the ITSO series.
xii
Document Map
The picture below shows the ITSO Cloud documents, their scope and relationships.
This document is part of a set of practitioner guides that includes the following:
Creating a Roadmap to Cloud
Building Cloud Services (this document)
Building Cloud Infrastructure - Implementation of Physical and Management
Infrastructure
Cloud Operations
Cloud Governance
Cloud Security
This document, Building Cloud Services Release 3.1, supersedes the original
document, Building Infrastructure and Platform Cloud Services Release 3.0.
Additional references can be found in the Appendices.
Audience
This document is intended for enterprise architects, application architects, project
managers and developers. The material is designed for a technical audience that is
interested in learning about Cloud architecture and how to develop an approach for
building enterprise class Cloud services.
Document Structure
This document is organized into chapters based on the lifecycle phases of the Cloud
service development methodology. The chapters are organized as follows:
Chapter 1, "Introduction," presents an overview of the Oracle methodological
approach for Cloud service development.
Chapter 2, "Program Level Activities Overview," outlines the more broadly
scoped activities concerned with the enterprise-wide architecture encompassing
all Cloud projects. In the context of OUM, this chapter highlights the
xiii
Cloud-specific activities with the Initiate / Maintain and Evolve phases (within in
the Envision focus area) for Cloud service development.
Chapter 3, "Inception," describes project start-up activities including requirements
analysis and verification of business objectives for a Cloud service development.
Chapter 4, "Elaboration," describes the elaboration phase of Cloud service
development.
Chapter 5, "Construction," describes the construction phase of Cloud service
development.
Chapter 6, "Transition," describes the transition phase of Cloud service
development.
Chapter 7, "Operate," provides an introduction to the operational activities
involved in Cloud development.
Chapter 8, "Summary," is a brief summary and concluding remarks.
Appendix A, "Further Reading," provides a lists of additional resources.
Appendix B, "References," provides a lists of additional resources.
Glossary provides a definition of the terms highlighted in bold throughout
document.
Conventions
The following text conventions are used in this document:
Convention Meaning
boldface Boldface type in text indicates a term defined in the text, the ORA
Master Glossary, or in both locations.
italic Italics type in text indicates the name of a document or external
reference.
underline text Underline text indicates a hypertext link.
xiv
1
Introduction
1
Most organizations have recognized Cloud Computing as a key strategy for enabling
business agility and organizational efficiency. Successful adoption of Cloud
Computing requires a) clearly defined roadmap and b) well-defined development and
operational processes for building and operating Cloud infrastructure and Cloud
services. Building business applications as Cloud services provides many benefits to
the corporations as well as Cloud service providers. At the same time, Cloud
Infrastructure and Platform services present new ways of developing, deploying, and
managing applications. This kind of a paradigm shift is hard to achieve without
changes to traditional organization structure and development processes.
Organizations that are already using Service Oriented Architecture (SOA) will
typically find it easier to adopt Cloud, since SOA and Cloud require several
organizational and engineering discipline changes that are similar. Other organizations
may need to look at the way they develop IT capabilities and make necessary changes
to take advantage of Cloud. This doesn't mean that existing methodologies need to be
replaced, but some adjustments may be needed to accommodate this shift.
The process of developing Infrastructure as a Service (IaaS), Platform as a Service
(PaaS), and Software as a Service (SaaS) are somewhat different from traditional IT
engineering practices. This guide focuses on the methodology for building Software
(applications), Infrastructure, and Platform Cloud services where they are distinct
from traditional software engineering.
The methodology described in this document is intended to be customized for the
needs of your organization. "One size fits all" approach may not be suitable for Cloud
due to the variety of different forms and magnitudes that it can take. This
methodology provides general guidance on what needs to happen, but it is flexible
enough to be customized if needed. For example, the order in which Cloud services
are identified and built may depend on the specific strategy of the organization. What
should be determined first? Is it the service model or the deployment model? Each
approach has its own merits and pitfalls, so organizations should make the choice of
whichever approach works better for them.
The ITSO document Creating a Roadmap to Cloud Computing defines the process of
creating a pragmatic roadmap for Cloud. The roadmap activity typically spins off
several projects that include service development and infrastructure build out projects.
The intention of this document is not to provide a comprehensive end-to-end process
that replaces the existing software development methodology used in enterprises but
rather to highlight the variations required to successfully build Cloud services so that
existing development process can be modified accordingly. However, if you do not
currently use a formal process for software development, this process can be adopted
in conjunction with any Iterative and Incremental Development (IID) method, such as
the Oracle Unified Method (OUM), as the primary development process.
Introduction 1-1
Differentiating Cloud Services
NIST definitions and other broader characteristics are described in more detail in the
ITSO Cloud Foundation Architecture document. In order to develop Cloud services it is
necessary to consider what these differentiating characteristics mean in the context of
the various tiers of cloud services. The following lists outline the ways in which the
cloud characteristics manifest in services, starting with the NIST characteristics:
On-demand self-service: a consumer should be able to acquire Software, Platform,
or Infrastructure services, select appropriate service levels, administer its
capabilities, and manage service consumption with little or no involvement from
the provider's personnel.
Resource pooling: services should be provided from shared platform and
infrastructure resources (compute, network, storage) that may be allocated from a
pool as needed and released back to the pool when demand subsides. Ideally this
growth and contraction of resource allocation occurs automatically within
parameters agreed in advance between provider and consumer. Resource pooling
is primarily a capability of the underlying Cloud infrastructure, however,
architectural strategies must be established across the service tiers in order to
make use of this capability by ensuring the resources can be consumed effectively
and managed accordingly.
Rapid elasticity: service capabilities may be rapidly scaled up and down as needed
(ideally automatically). Resources available to the service consumer should appear
unlimited (within the constraints of service level agreements). In general, rapid
elasticity is provided at the infrastructure level, but, as with the closely related
resource pooling, this capability must link architecturally across the service tiers.
Measured service (metering): Types of metrics vary widely across Software,
Platform, and Infrastructure services, but it is important to establish the
relationships between them when multiple tiers of services are being deployed.
This enables consistent, end-to-end accounting of resource utilization.
Broad network access: ideally the application service should be available
anywhere (that matters to the consumer) on any device. Naturally some
real-world constraints should be applied, but the general implication is that the
service should be accessible using widely adopted, standard network protocols
(i.e. Internet Protocols) using thin client (such as freely available browsers or other
"thin" applications) fixed and mobile devices. Specifically, this precludes legacy
telecoms communications technologies and heavy-client applications commonly
tied to a specific type of device (typical of the ASP model) and thus avoids the
need for end-point maintenance by the provider. In some cases, regulatory or
policy constraints may require that network access be quite narrow (e.g. a highly
secure environment supporting consumers via a private network), however, part
of this capability can still be achieved through the use of browser-based solutions
and the essence of Rich Internet Applications can still be provided without the
"Internet".
The ITSO Cloud Foundation Architecture document extends the list of characteristics
with:
Multi-tenancy: multiple, separate user communities may be accommodated by
cloud application services. While accommodating disparate groups of users
requires great attention to security and governance, some level of harvesting of
intelligence about user behavior, sharing of reference data, and mechanisms for
cooperation, etc. may offer benefits for the provider and consumers.
Scale and velocity: in this combined characteristic, scale of course refers to the
potential for great scalability in a cloud environment, not just in terms of raw
computing resources, but also the capabilities associated with business growth in a
cloud environment. Closely connected to scale is velocity, the greatly improved
speed of getting things done in the cloud. In terms of application services scale
and velocity might include the ability to rapidly expand the use of an application:
this has many implications ranging from the basic scalability of service through
removal of technical constraints, to elimination of friction in human processes
through automation and abstraction. In some ways scale and velocity is merely a
summary result of achieving other cloud characteristics, but in Software, Platform,
or Infrastructure service terms, the requirements for this characteristic should be
carefully assessed at an early stage. Many architecture and design decisions will be
critical to achieving scale and velocity, while the long-term success of Cloud in any
given environment may hinge on this characteristic: the need for scale and velocity
will help define the meaning and importance of the five NIST and other
characteristics.
Automation: automation is a cornerstone of cloud computing, without it many of
the characteristics mentioned here would be impractical. Through automation
many of the mundane, time-consuming operational tasks required to support
Software, Platform, or Infrastructure service development can executed by the
developer as needed thus applying the cloud self-service strategy. Self-service
through automation and abstraction in software development is commonly called
Introduction 1-3
Differentiating Cloud Services
It is worth noting at this point that the use of the word "functional" when referring to
Cloud service requirements or capabilities takes on a slightly different meaning from
that of traditional software engineering, particularly when used in the context of
Infrastructure and Platform services. In software engineering "functional
requirements" distinguish the business purpose of an application (e.g. "transfer funds")
from the technical ("non-functional") implementation needs (e.g. "apply level 3
transaction consistency"). In the case of IaaS and PaaS the consumer is no longer the
end-user of an application. Instead, Infrastructure and Platform service consumers
considers more technical capabilities (such as database consistency and concurrency)
to be the function of the service.
Introduction 1-5
Program Level v. Project Level Activities
The significant requirements emerging from enterprise level strategic planning will
drive the determination of (1) service model layering and (2) the SaaS deployment
model and (3) the degree to which the enterprise will be a provider of SaaS. This is
outlined in Chapter 2 of this document while further guidance on this subject can be
found in the ITSO document Creating a Roadmap to Cloud Computing.
Cloud development is supported by multiple projects. Figure 11 illustrates three
types of projects -
Cloud services project,
Business delivery project, and
Cloud infrastructure project
Cloud infrastructure projects may be required to support the other types if it is not
already established; however, infrastructure is out of scope for this document and is
covered separately in Building Cloud Infrastructure.
Figure 11 shows multiple entry points into Cloud service development. Enterprises
are typically both consumers (public Cloud services directly consumed by business or
brokered by IT) and providers (private Cloud services built and operated by IT). This
use case is slightly different from a Commercial Cloud Service Provider (CCSP) as
Commercial Cloud Service Providers predetermine commercial Cloud services based
on the market drivers and their own business strategy. So identifying services is
relatively straight forward in this case. The service boundaries still need to be
validated by the process and may result in further breakdown of services.
In addition to defining business functionality, an enterprise business delivery project
identifies Cloud services based on the Infrastructure and Platform requirements of an
application project. Non-functional (non-business functional, to be precise) and
technical requirements have a major impact on the design of Infrastructure and
Platform Cloud services.
IT initiatives such as modernization, consolidation, and rationalization may result in
the identification of IT capabilities that could be implemented with new or existing
Cloud services. For example, existing servers may be consolidated and migrated to a
private Cloud for agility and cost reduction reasons.
Another entry point shown in the diagram is from the program scoped activities such
as road map creation where Cloud services are strategically identified based on the
business drivers, strategy, and roadmap. These requirements are further refined and
implemented by the Cloud services project as well.
Cloud services should be designed to be "future proof", that is, to handle spikes in
future load requirements, to provide modular capabilities to facilitate alternative
configurations, new assurance and security requirements, etc. The service
development should be aligned with portfolio management activities to ensure that
Cloud services can support the needs of current and near-future projects. Cloud
services must be designed to elastically scale on demand, however, a Cloud Provider
must ensure that there are sufficient resources available to support the scalability
requirements of the Cloud. The "Building Cloud Infrastructure" document covers this
topic in more detail.
Due to the high start-up costs for Cloud and the inability to predict all requirements
from the outset, it is generally a good idea to plan for a phased roll-out. This also
reduces the problem of overlapping costs of providing large-scale services before
consumers are able to migrate. These planning and cost management issues are
covered in more detail in the document Creating a Roadmap to Cloud Computing.
The Envision focus area deals with development and maintenance of enterprise level
IT strategy, architecture, and governance. This is explained in more detail in Creating a
Roadmap to Cloud Computing. Envision also assists in the transition from
enterprise-level planning and strategy activities to the identification and initiation of
specific projects. It is this part of Envision that is of particular interest in the initiation
and coordination of Cloud services projects. Envision activities span both "Initiate" and
Introduction 1-7
Cloud Service Development Phases
"Maintain and Evolve" phases. While the Initiate phase provides strategic guidance in
the creation of Cloud projects, it is the later Maintain and Evolve phase that enables
the incorporation of feedback as new Cloud service requirements emerge from the
projects themselves.
The Implement focus area provides an Iterative and Incremental Development (IID)
framework to develop and implement business solutions with consistency and
predictability combined with rapid deployment. The project level phases are
Inception, Elaboration, Construction, and Transition.
Cloud Operations is such a significant topic that it has a separate focus area (Operate)
and a separate ITSO document, Cloud Operations. Cloud Operations is also introduced
in Chapter 7.
The primary areas of interest in this document are indicated by the dotted line in
Figure 12. While Envision activities are mostly beyond the scope of this document,
they are shown here in order to identify key inputs (however, this is not intended to be
an exhaustive list). The key process of interest in building Cloud services is Enterprise
Architecture. This process creates and maintains an enterprise-level view of both the
application and technical architecture of the systems.
Figure 13 shows the relationship between program scoped analysis and architecture
activities and the various types of projects (Cloud services and Cloud infrastructure)
that follow them.
At the program scope, the key activities of interest are Cloud Service Analysis and
Cloud Architecture Refinement. Cloud Service Analysis provides service identification
and requirements for the initiation of projects. Cloud Architecture Refinement assumes
that a Cloud Reference Architecture already exists and provides a mechanism for
maintaining it. An outline of the program scoped activities, Cloud Service Analysis
and Cloud Architecture Refinement, can be found in Chapter 2.
At the project level Figure 13 shows four phases of Cloud service development -
Inception, Elaboration, Construction, and Transition. These phases closely align with
Oracle Unified Method (OUM) and Unified Process (UP).
The remainder of the document covers Cloud service project scoped activities by
OUM/UP phase:
The Inception phase focuses on start-up concerns, such as, project feasibility,
requirements review, and building the project team.
The Elaboration phase focuses on design details, such as, service interfaces.
The Construction focuses on the development of the Cloud service. One of the
main concerns addressed in this phase is packaging and assembly of Cloud
services into deployable entities that allow rapid provisioning and
decommissioning. Cloud service testing is performed in this phase.
The last phase of the Implement focus area is Transition in which User Acceptance
Testing (UAT) and production deployment activities occur. UAT of Cloud services
is somewhat different from the traditional UAT. This topic is discussed in more
detail in.Section 6.1, "User Acceptance Testing"
It is important to remember that this method is intended to be implemented following
Iterative and Incremental Development (IID) practices. While the "focus" of these
phases is outlined here, there is no intention to perform only a subset of the project
disciplines. Indeed, the goal of IID is to involve every discipline to create a tangible,
incremental result in each iteration of each phase. The statements in the foregoing list
merely identify the focus of this document, in particular the parts that are unique to
Cloud service development, within the context of the OUM or UP framework.
Introduction 1-9
Cloud Service Development Phases
The activities and work-products at the program level (Initiate, Maintain and Evolve
phases described in the Envision focus area in OUM) typically include the following:
Roadmap planning
Business analysis
Enterprise architecture
Cloud service candidate identification
Portfolio management
Governance
While most of these activities are beyond the scope of this document it is important to
ensure that projects are adequately supported by coordinated, program level Cloud
Service Analysis and Cloud Architecture Refinement. These work-products, Cloud
Service Analysis and Cloud Architecture Refinement, fall into the categories of
"business analysis" and "enterprise architecture" respectively, both during the Initiate
phase and iteratively through the Maintain and Evolve phase.
The OUM Envision Focus Area encompasses all the activities of the Initiate and
Maintain & Evolve phases and provide a coordinated mechanism, not only for driving
business analysis and concrete Cloud architecture definition into projects, but also a
mechanism to refine these assets using feedback from projects and new requirements
from business leadership.
As with traditional software engineering, Cloud service development also begins with
requirements. However, Cloud service development differs from traditional
engineering in a couple of ways. In most cases, Infrastructure and Platform services
are enterprise scoped services shared by multiple projects within the enterprise, which
means that the method should support identifying common requirements and
isolating or refining them into enterprise requirements that can further be built as
Cloud services.
in-flight projects. In all cases, Cloud services should be built with reuse in mind, so
future projects can use the Cloud service with little or no change.
In the case of an enterprise, business delivery projects receive requirements from the
line of business for implementing specific business functionality. Commercial Cloud
Service Providers define their requirements based on market demand and their
business strategy.
One of the first steps in the Cloud service development process is to identify the
common / shared requirements and refine them into enterprise Cloud requirements.
These requirements are to become enterprise assets and should be maintained at the
enterprise scope. Typically an enterprise asset management or metadata management
repository is used for this purpose.
The requirements that are common across multiple projects are identified and
classified into SaaS and PaaS/IaaS requirements. Infrastructure and Platform services
are primarily influenced by non-functional or technical requirements and architecture
standards. In this context, "non-functional" requirements mean that they are not
functional-business requirements.
IT requirements also drive the need for Infrastructure and Platform Cloud services.
These requirements typically stem from the IT cost reduction efforts that result in data
center modernization, consolidation, and application rationalization initiatives. For
example, IT may decide to modernize the infrastructure to the latest hardware and
storage technologies. In order to minimize impact to the business, IT would perform
this upgrade using a phased approach. Some organizations choose to rollout
virtualization first, and then replace the underlying hardware. By moving to Cloud,
these organizations can build the virtualization layer, and Cloud capabilities first, and
then can migrate all the applications to the Cloud running on modernized hardware.
The resource requirements that come out of this analysis are fed back into the
infrastructure project analysis. This process is explained in more detail in the Building
Cloud Infrastructure document.
The following types of Cloud service requirements, most of which are related to the
Cloud characteristics, are important while identifying the Cloud services.
Cloud service scalability requirements - current and future demands, anticipated
spikes in load
Cloud service Availability requirements - up time, business criticality, business
impact, business continuity, and disaster recovery
Service invocation requirements (API) - How the users (mostly the application
developers) are going to use and manage the service.
Elasticity requirements - Does the service require dynamic scaling up and scaling
down? How fast does the service need to change capacity in response to demand?
Security requirements - includes a definition of the security entities, how data and
application will be secured, authentication, authorization, and audit requirements.
Integration requirements - internal and external integration requirements.
Self service provisioning needs - this is typically not a directly stated business
requirement but rather derived from the agility requirements such as time-to-deploy.
Self service management needs - If the development team or "devops" team can
manage certain aspects of the application, what would they be? Typically application
management is performed by the business owners (or their IT delivery teams) while
the operations of the platform and infrastructure are performed by the operations
team. "Devops" typically falls between these opposite ends of the process,
encompassing packaging and promotion of releases to testing environments for
example.
Metrics - What metrics need to be collected?
Service business metrics - usage, reuse, ROI, number of business units supported
etc.
Service operational metrics - up time, health, utilization metrics etc.
Many of the items listed here have inherent security requirements. While security is
called out on its own, it is also a consideration within self-service provisioning,
management, etc. Cloud security is covered in more detail in the document Enterprise
Strategy for Cloud Security.
Note that this case may require new "IT" capabilities to be built to deliver cost
reduction or to improve performance.
This is a bottom-up scenario, where existing IT capabilities are re-architected
and migrated to Cloud architecture through IT consolidation, rationalization,
or modernization initiatives.
Migration efforts may identify new Cloud services to be created using existing
assets or existing Cloud services to be discovered for the migration of
applications.
Application or Service components are already known in this case and the key
task is to identify if they are suitable for Cloud deployment and the type of
Cloud based on the business requirements and architecture constraints.
The third classification is where pre-built new services are added to the existing
Cloud service portfolio. This is a common scenario for Commercial Cloud Service
Providers who often add new Cloud services through M&A.
Some level of standardization is required to re-brand the acquired services and
integrate with the common Cloud management infrastructure.
Possibly migrate the services to run in the base Cloud.
Integration of these acquired Cloud services into the Cloud service catalog.
Note that the benefits of the cloud need to be experienced by both the cloud provider
(e.g. lower cost to manage and maintain) and cloud consumer (e.g. lower cost of using
or flexibility and agility of the cloud). If only one party is benefiting then tensions are
likely to arise in the adoption of cloud. For example, IT might benefit from cost
savings while consumers see only constraints (either by IT dictating what application
services are available or what applications can be deployed to the cloud). In this case,
if the IT department, as cloud provider is reducing costs then this cost saving must be
shared with the cloud consumer in the form of lower usage charges. Alternatively, if
the consumer is getting the benefits of better customer experience then the IT provider
may have to be paid for the improved level of service because they might need to
provide more hardware etc.
For this reason, it might be useful to split this category of benefits into requirements
that reduce cost (clarifying who gets the cost saving) from requirements that improve
customer experience (clarifying who benefits and who pays for that improvement).
The service model determines which layer or layers of the architecture will support the
requirements. An enterprise may decide to build SaaS Cloud on custom platform or
deploy business applications on a PaaS Cloud. The choice of architecture depends on
the enterprise guiding principles, perceived benefits, and architecture factors.
The deployment model determines where the Cloud service is going to reside and
how it will be managed. The requirements may be fulfilled by custom in-house
development or off the shelf Cloud offerings from external providers. This choice has
a major impact on Cloud service development.
Another aspect that has a major impact on how Cloud services are built is the role of
the organization building the Cloud services. A commercial Cloud provider may
gather requirements, build and manage services differently than an enterprise that is
building the Cloud for its own use. Similarly, an Intermediation Cloud broker plays
the role of both consumer and provider, which makes their Cloud service
development lifecycle unique. What happens in the development of Cloud services
depends on roles such as builder, consumer, and operator.
The deployment model could be determined either before identifying the service
candidates or after. The roadmap planning process would normally determine the
deployment model of applications to be migrated to Cloud. Enterprises define guiding
2.3.2.1 Applications
Application requirements have traditionally been divided into "functional" and
"nonfunctional". Functional refer to the business activities performed by the
application. This is the applications primary purpose, but functional application
requirements analysis is a well-established discipline and is beyond the scope of this
document. Understanding nonfunctional application requirements on the other hand
are critical to successful cloud adoption.
Nonfunctional application requirements must be specified in generic high-level terms
using categories such as, Reliability, Availability, Scalability, and Performance (RASP).
In this way the business needs can be specified first without regard for technological
constraints or simply operating within existing capabilities. Once these business level
statements of nonfunctional requirements is established they may be considered in the
context of the underlying platform and infrastructure and what capabilities can be
offered to meet these requirements.
2.3.2.2 Platforms
The platform on which the application will be run is determined based on the
technical requirements and architecture standards. For example, latency and
availability requirements may lead to the selection of a Java based application server
and the architecture standards may narrow it down to Oracle WebLogic server
platform.
If the project has reliability or store-and-forward requirements, there is most likely a
need for a queuing platform.
2.3.2.3 Database
Database presents another opportunity to leverage Cloud services. Most applications
require a database of some kind and architectural standards typically dictate the use of
a standardized database version across the enterprise. Making the database available
as a Cloud service is one way of enforcing these standards. In addition it provides
automated provisioning and self service benefits that are inherent to a Database as a
Service (DBaaS) cloud.
A number of key issues need to be considered while identifying database services.
These include data availability, data redundancy, backup and restore, and
performance.
2.3.2.4 Infrastructure
The next step is to identify the infrastructure needs of the project. Infrastructure
includes compute capacity, storage capacity, and network components. A ballpark
estimate of the resource requirements with an understanding of the low and high
usage marks is helpful in deciding the infrastructure services. If an organization
chooses multiple numbers of smaller compute nodes, it will be necessary to make sure
that the workload can scale horizontally.
The requirements also drive the type and size of the storage service. To determine the
best suitable storage service, it is essential to understand the nature of the workload.
The design of the storage service is influenced by factors such as:
Is the data mostly read-only or read-write?
Is data access "chatty" (small chunks of data accessed frequently) or is it large
amounts of data accessed infrequently?
Performance requirements for data access that may further drive the physical
characteristics of the storage technology
Monitoring and management needs
Network components such as load balancers and routers also need to be considered.
Security requirements drive the need for one or more firewalls in the architecture for
example (Cloud security is covered in more detail in the document Enterprise Strategy
for Cloud Security). Network components are typically shared across multiple Cloud
services and multi-tenancy is a key consideration when identifying such services.
An example of the Cloud candidate services stack is shown in Figure 27. It illustrates
that the JMS and Java platform services are running on a 2CPU/16GB RAM compute
service while the database service is running on a dedicated Exadata node. The red
arrows illustrate the request flow across these services.
This model serves multiple purposes. It shows how the services (or service candidates)
are stacked up and the dependencies between them. It also shows which services are
built on other services and which ones are extension services. Finally, it can be used to
identify new services, existing services, and modified services.
How will the service support multi-tenancy? In the extreme case of Public SaaS,
the mechanism for providing isolation between services (and tenants) is of critical
importance.
New Cloud services or modifications to the existing services need to be justified before
taken up for delivery by the Cloud service creation team. Resource constraints,
architecture constraints, and economic rationale are some of the factors influencing
this justification. If the Cloud service creation team decides not to build the Cloud
service, it is passed back to the project team for localized implementation.
If the discovered service requires modifications, an impact analysis should be
performed to assess how the change will affect the existing consumers. A well-defined
versioning approach is required to ensure that the new version is fully functional and
the old versions are phased out. Service versioning is also essential to isolating and
tracking modifications, and facilitating roll back to older versions.
Cloud projects often suffer the dilemma of whether to create the services first and wait
for the business units to start using them or build Cloud services as the need arises in
the first project. Cloud release planning ensures that services are planned and
developed in support of evolving business requirements.
Cloud service metadata should be managed in an enterprise asset management tool
such as an Enterprise Metadata Repository with associated dependencies. This goes a
long way in ensuring that services are planned in line with the demand and the project
teams utilize the services for effective cost control and maximal agility. A taxonomy to
describe Cloud services may include metadata elements such as:
Projects using the Cloud service
Lifecycle environments the Cloud service is deployed on (e.g. Dev, Test, Prod)
Business units using the Cloud service
Cloud service template associated with the service
Assembly or topology
Another aspect of Service Release Planning is to prioritize the service development
based on available resources.
Not all services identified by the Service Release Planning process are built in-house.
IT may decide to broker some of the services from a public Cloud provider based on
cost and time-to-deploy factors.
Service creation and project delivery need to be synchronized such that Cloud services
are ready and available for consumption when the business projects need them.
Sometimes a private Cloud would have the necessary infrastructure built already;
hence the deployment of Cloud services would be fast. However, there may be
instances where a service that doesn't currently exist is just identified for the needs of a
particular project.
requirements are likely to emerge, but since these affect the enterprise architecture for
Cloud they must be considered at the enterprise level.
2.7 An Example
This section shows a simplified example of Cloud service identification.
2.7.1 Problem
ABC Bank is expanding into new markets and is introducing an options trading
product. ABC Bank is already offering customers equity and Forex trading. Quotes
must be provided really fast with less than 50ms delay. This low latency requirement is
consistent across all three business lines (Equity, Forex, and Options/Derivatives). The
business units have also dictated that the application must be up 99.999% on trading
days and the system should be able to accommodate additional load seamlessly as the
quote volume varies widely. ABC Bank has presence in over 20 countries and different
regions use the platform at different times. The traders of the bank use remote trading
desks.
A number of smaller banks have also contacted ABC Bank in the recent months to ask
if they could use the quoting engine platform for their customers. The management
has taken a strategic decision to run their IT as a business and offer the quotes engine
as a Service to the external consumers.
ABC Bank is investigating whether Cloud is the right deployment option and if so,
how the Cloud services can be identified.
2.7.2 Solution
As part of a multi-year initiative, ABC Bank had started building a private Cloud two
years ago. IT had built the necessary Cloud management infrastructure and a few
Cloud services over the last two years. The private Cloud embodies all essential
characteristics of Cloud, including self-service, elasticity, broad network access,
measurement, and resource pooling. The elasticity and resource pooling are important
because the different regions use the platform at different times, the broad network
access is important for remote trading desks, the measurement and monitoring is
important for checking the QoS.
ABC Bank's IT has determined that one of the key components of the architecture is
the Quotes Engine that provides option quotes. This component is the same as the one
used in the equity and Forex trading applications. IT has also determined that this
functionality can be offered as a service to external consumers based on the
requirements they have received from the smaller bank partners.
The architecture team determines that these requirements can be fulfilled by a
Complex Event Processing (CEP) product deployed on a hardware that supports low
latency and high availability requirements. The architecture team has established
middleware standards. Oracle Event Processing (OEP) has been standardized as the
preferred platform for Event Driven Architecture.
Based on the initial requirements analysis the project team identifies one SaaS
candidate and two PaaS candidates and passes the requirements on to the Cloud
service creation team.
The functional requirements did not have a match with existing services, so a new
Quotes Engine service needs to be built. This new service should support the internal
customers, the three business units and the external customers, the small banks.
Based on the non-functional requirements of the project the architecture team
identifies OEP as a service candidate. The availability and low latency requirements
also drive the need for a high performance database as a service.
The Cloud service creation team further analyzes the requirements and identifies an
OEP service and an Oracle NoSQL database as a service. Further boundary analysis
suggests that OEP deployed on Oracle Exalogic can better satisfy the business
requirements.
The Cloud service creation team also determines that the Oracle NoSQL database can
be deployed on an existing Infrastructure cloud service without any modifications.
Since there is significant reuse of the OEP platform service and Oracle NoSQL
database service, these services are easily justified and accepted by the service creation
team.
The service creation team also evaluates the workload requirements and ensures that
the service can handle the load patterns.
Inception 3-1
Inception Phase Activities
Figure 31 shows the two primary inputs to this phase for SaaS: the application
requirements and the Cloud service capabilities available from the Cloud architecture.
The process shows the requirements being split into traditional "functional"
requirements and the application architecture specification that determines the
capabilities required from the underlying Platform and Infrastructure.
Some examples of architectural capabilities were given in Section 2.5.3 and these are
the types of capabilities that must be matched to the application requirements.
The outputs from this phase are (1) traditional use cases and (2) Cloud specific
application architecture.
A number of differences arise in the Inception phase for Infrastructure and Platform
services. These are shown in Figure 32. The primary input to this activity is the
requirement for either a Platform or Infrastructure service. While most of these
requirements should be established at the program level from an analysis of the
application portfolio for architectural requirements, these may also arise from
additional discoveries during the inception phase of SaaS projects. New requirements
arising from application projects in this way must be considered at the program level
with a number of possible outcomes, including (1) the Cloud service project fails
feasibility checks, (2) an alternative architectural strategy is proposed by EA, (3) a new
Infrastructure and Platform service project is identified to fill the gap.
The outputs for this phase are (1) technical architecture describing the required
capabilities of the service, its APIs, etc. and (2) use cases describing how the service
should be used.
Elaboration 4-1
Cloud Service Definition
Standards support
Good documentation
Abstract
Encapsulate multiple Cloud resource management tasks into one
Elaboration 4-3
Cloud Service Definition
The following is a non-exhaustive list of common PaaS use cases which PaaS providers
may choose to support. These are application oriented use cases that assume an entire
application is deployed to the platform. This may not be the case, where the platform
is just a queuing service or data warehouse service, for example.
Building and packaging an application in a local development environment
Building an application in a development environment running in the cloud
Importing a platform deployable entity into the cloud
Uploading application artifacts into the cloud
Run, stop, suspend, snapshot, and patch an application instance
While patching an application instance is mentioned here, it is noteworthy that
patching is at odds with the a common Cloud principle of application versioning and
simple migration between older or newer versions: you do not patch in place in this
model as it makes it significantly more difficult to test, recover, etc.
A standardized PaaS management API has the following benefits from the consumer
point of view.
Portability - By standardizing the management API for the use cases around
deploying, stopping, starting, and updating applications, the standardized API
increases consumers' ability to port their applications between PaaS offerings.
Popular development environments could use the APIs to create plug-ins. Over
time, such generic implementations are likely to be of higher quality than the
Elaboration 4-5
Cloud Service Definition
Elaboration 4-7
Designing Cloud services
For all Cloud services, service templates are created from reference configurations. In
the case of Infrastructure or Platform services, assembly templates are instantiated to
create deployable entities. SaaS templates for service instantiation may not involve
deployable entities, but may simply identify the elements needed to describe the
consumers configuration. This could be as little as configuration data in a database.
APIs and service integration components are designed next. Some Cloud services need
workflows that are specific to those services. These service specific workflows are to be
designed as well. In a Test Driven Development (TDD) environment, test cases and
test scripts are also created during the Elaboration phase.
Elaboration 4-9
Designing Cloud services
Scalability - Scale and velocity are two of the key design considerations for Cloud.
How is the service going to be scaled over long term? What are the capacity
requirements? What is the strategy for long term scaling?
High Availability - How do we ensure that the service is highly available? How is
redundancy handled? How are load distribution and failover accomplished?
Elasticity - How is the service going to scale up and scale down as the workload
requirements change? Does the infrastructure support automatic scale up and
down? Does the service design support the elasticity requirements?
Self Service - Does the service design satisfy the self service requirements? How
does it interact with the management infrastructure?
Metering and monitoring - How will the service metrics be collected and pushed
to the Cloud management and monitoring framework? Application service
consumption by the consumer is measured and reported in terms of usage of the
service (rather than consumption of underlying infrastructure metrics such as I/O,
CPU, storage, etc.). Service usage metrics might include, for example, the number
of users using the service, the number of business transactions performed, the
number of employees managed in a HR system, etc.
In the case of SaaS, an important consideration would be integration (both
business process and data). How is this SaaS process/application interoperate
with other enterprise applications? How is the data going to be shared
(considering security and data transformation) and how would this process
integrate with the other in-house business processes?
The location of the equipment can be different from the location of its owner
which in turn may be different from who manages it. For example, a private
Cloud might be located in a building owned by a hosting company providing
services that are managed by someone else.
Elaboration 4-11
Designing Cloud services
Figure 51 shows the high level activities in the Construction phase of Cloud service
development method. These activities are Cloud service implementation, Packaging
and assembly, and Cloud service testing.
Construction 5-1
Packaging and Assembly
Construction 5-3
Cloud Service Testing
The notion of being able to create pre-built templates for deployment is extremely
powerful and has a number of advantages that drive down operational costs and
complexity. These include:
Ability to easily replicate deployable entities in production, even allowing for
variations of the them without adding complexity
Reduced risk of configuration errors as deployable entities are moved between
development, test and production environments
Replicated environments facilitate high-level standardization and consistency
across application infrastructures, allowing for simple implementation of best
practices.
Accelerated deployment of new infrastructures and applications
In order to realize these benefits, a simple means of composing deployable entities of
the components is required. Specifically what is needed is tooling that allows for the
composition of components as well as endpoint mapping of externalized systems and
other larger non-virtual systems such as databases and identity management servers.
Tools that enable introspection of a running system in order to capture a metadata
description of a known good configuration are especially valuable in making the
process of defining deployable entities simple and reliable.
Following list captures some of the key tasks involved in Cloud service testing.
Test the provisioning of Cloud services beginning from discovering the service in
the service catalog, ordering, and deployment of the service. Provisioning process
orchestrates several resources behind the scenes and the test cases should cover
validation of each of the resources provisioned.
Test the service usage with test workloads that are similar to the anticipated
consumer workloads.
Test service scalability, elasticity, and fault tolerance to ensure that the service
level agreements can be met.
Test multi-tenancy and security of services. This is a key concern for most
consumers and testing these capabilities and publishing the results will provide
the necessary assurance to the consumers.
Test monitoring and management of the Cloud service. This includes both
operational monitoring and self-service monitoring. Test all the self-service
management capabilities made available to the consumers.
Test service termination and cleanup with particular focus on what happens to the
consumer data after service termination.
Regression test the pieces as new services or capabilities are introduced to the
cloud. The cloud will be evolving especially since initially it may not have all the
cloud capabilities because it may take time to set up.
SaaS development will also be accompanied by a list of traditional software
engineering activities related to the application functional testing (business logic), such
as System Integration Testing (SIT), User Acceptance Testing (UAT), etc. Once again,
these activities have been omitted from the diagram because they are unchanged by
the Cloud environment.
Construction 5-5
Cloud Service Testing
The transition activities are a) User Acceptance Testing and b) Cloud Service
Deployment. These high level activities are shown in Figure 61.
Transition 6-1
Cloud Service Deployment
UAT, in the traditional sense, is applicable more to the enterprise than a Commercial
Cloud Service Provider (CCSP). A CCSP may allow a trial period during which the
consumer may try the services and provide feedback. The following issues must be
considered with respect to this kind of trial or open-beta testing.
What part of the lifecycle precedes and follows this testing?
What happens to the data? Is it retained and rolled forward to the next phase in
the lifecycle, or thrown away? Or, more generally, are there any service level
objectives, and if so, what are they?
What is the feedback mechanism? Is it active and formal, or passive and informal?
Cloud application builders may test the service to ensure that the applications they
build will run on the Cloud service. Enterprise UAT steps are similar to Testing steps
in the construction phase but are performed by the users of the service.
Test the provisioning of services beginning from discovering the service in the
service catalog and ordering the service.
Test service consumption by provisioning the service and testing its functionality.
Test service scalability, elasticity, and fault tolerance.
Test service multi-tenancy and security.
Test monitoring and management of the Cloud service
Test service termination and cleanup from the user's perspective. The user might
want to test data recovery after termination.
Transition 6-3
Cloud Service Deployment
Operate 7-1
Operations Best Practices
Services must be continually monitored to ensure that the SLAs are met. Any
violations to the SLA must be automatically detected and escalated.
Metrics are constantly collected and passed on to the respective systems for analytics
or billing purposes. The underlying Cloud infrastructure must provide ways of
collecting and conveying the service specific metrics. The principle of charge-back or
at least show-back is a powerful transformational lever in the deployment of a cloud
when the aim is cost reduction. The cloud will constrain consumers because they have
to share these resources with other stakeholders and cost is an important driver to
move them from dedicated kit and applications to a shared platform.
The consumers monitor the service they deploy using the self-service management
capabilities. The provider is responsible for monitoring the platform components on
which the service is running.
Diagnostics and troubleshooting also happens at multiple levels. Consumers have
access to the self-service logs, hence can diagnose any issues related to the payload. If
the issue is in the underlying infrastructure, it is diagnosed by the Cloud provider
operations team or support analyst groups.
Backup and recovery capabilities are essential for any Cloud. Data and other assets
must be backed up periodically and recovered when necessary.
Cloud services may need to be retired at the end of their useful life. Cloud services
may be retired for a variety of reasons such as technology obsolescence, market shift,
changes in business priorities, and migrations. Older versions of Cloud services are
typically retired to make way to new versions of services. In a multi-tenant subscriber
environment, Cloud service retirement should be well planned and the subscribers
must be provided with sufficient notice to migrate to the newer versions if applicable.
Cloud Operations is covered in detail in the ITSO document, "Operating a Cloud".
Cloud is quickly becoming a key strategy for business and IT alignment and is starting
to dominate architecture roadmap discussions. Most enterprises have either adopted
or have plans to adopt Cloud as a strategic choice in support of their business and
technology goals. Most Cloud implementations are going to involve some kind of a
hybrid approach where enterprise private Clouds are integrated with either other
private Clouds or public Clouds. Understanding both provider and consumer
perspectives of the Cloud is necessary to successfully implement complex and
highly-scalable Cloud infrastructures that support internal and external needs.
Cloud services are differentiated from traditional IT applications by the scale and
velocity, and the level of automation required. Building successful Cloud services
requires well defined method, extensive planning, and precise execution to ensure that
the services meet and support the business goals.
The Cloud service development process for Application, Infrastructure, and Platform
Cloud services defined in this document is intended to augment the existing
methodologies or to serve as a starting point where no methodologies are currently
being used. This process can be used with a variety of development methodologies
including a flavours of UP and Agile methods. In all cases, primary concerns should
be ensuring Cloud Computing strategies are appropriate to providing expected
benefits and that service development follows a architecture-led, structured approach
for effective and consistent results.
Summary 8-1
8-2 Building Cloud Services
A
AFurther Reading
The IT Strategies From Oracle series contains a number of documents that offer
insight and guidance on many aspects of technology. In particular, the following
Oracle Reference Architecture (ORA) documents may be of interest:
ORA Cloud Foundation - This document presents a conceptual architecture for Cloud,
specifying architectural characteristics and expectations of Cloud at a business and
operational level. Also included are architectural principles, standards, and concepts.
ORA Cloud Infrastructure - This document relates the Cloud characteristics and
requirements, as defined by the conceptual architecture, to the Oracle infrastructure
and provides a number of technical architecture views.
ORA Security - This document describes important aspects of security including
identity, role, and entitlement management; authentication, authorization, and
auditing (AAA); and transport, message, and data security required to secure the
modern IT environment.
ORA SOA Foundation - This document is suggested pre-reading for those wishing to
get a deeper background to the SOA aspect of this document. It presents important
basic concepts of SOA that are instrumental to building applications for a SOA
environment. It covers topics including the components of a service, service layering,
service types, the service model, composite applications, invocation patterns, and
standards that apply to SOA.
ORA SOA Infrastructure - Infrastructure plays a key role in a successful enterprise
SOA environment. The SOA Infrastructure document describes the role of
infrastructure and the capabilities it provides. It offers an array of views to define
infrastructure for SOA, including logical and physical views, as well as technology
and product mapping.
References B-1
B-2 Building Cloud Services
Glossary
The following Cloud specific terms and abbreviations are included here for easy
reference. Please see the ORA Master Glossary for other terms used in the various
ORA documents.
CAPEX
A common business term meaning capital expenditure. A capital expenditure occurs
when a business spends money on tangible assets.
COTS
Abbreviation for "commercial, off-the-shelf", referring to t a commercial product as
opposed to a custom built one.
Infrastructure-as-a-Service (IaaS)
A Cloud service model in which consumers deploy and run arbitrary software, and
provisions processing, storage, networks, and other fundamental computing
resources. The IaaS provider manages or controls the underlying physical Cloud
infrastructure (i.e. everything below the operating system layer).
OPEX
A common business term meaning operational expenditure. Operational expenditure
refers to the running costs of a business.
Software-as-a-Service (SaaS)
A Cloud service model in which consumers use applications in a computing
environment exhibiting Cloud characteristics. A SaaS provider manages or controls
the underlying software and infrastructure regardless of whether it is a traditional
computing environment or some other PaaS/IaaS combination.
Glossary-1
Platform-as-a-Service (PaaS)
Platform-as-a-Service (PaaS)
A Cloud service model in which consumers use programming languages and tools
supported by the provider and then control the deployed application. The PaaS
provider manages or controls the underlying Cloud platform, which includes
everything below the run-time execution environment.
Glossary-2