Professional Documents
Culture Documents
April 2013
Building Infrastructure and Platform Cloud Services, Release 3.0
E39816-01
Contributing Author: Dr. James Baty, Stephen Bennett, Scott Mattoon, Mark Wilkins
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
Audience....................................................................................................................................................... x
Document Structure .................................................................................................................................... x
How to Use This Document....................................................................................................................... x
Related Documents ..................................................................................................................................... x
Document Map ............................................................................................................................................ xi
Other References......................................................................................................................................... xii
Conventions ............................................................................................................................................... xiii
1 Introduction
1.1 Program level and Project Level Scopes.................................................................................. 1-2
1.2 Cloud Service Development Phases for Platform and Infrastructure Services ................. 1-3
1.3 Relevant Topics ........................................................................................................................... 1-4
2 Inception
2.1 Inception Phase Activities ......................................................................................................... 2-1
2.2 Requirement Analysis ................................................................................................................ 2-2
2.2.1 Classification of Cloud service requirements .................................................................. 2-3
2.3 Cloud Service Identification ...................................................................................................... 2-4
2.3.1 Basic steps in Cloud service identification....................................................................... 2-5
2.3.2 Detailed activities in the Cloud service identification process ..................................... 2-6
2.3.2.1 Platforms........................................................................................................................ 2-7
2.3.2.2 Database......................................................................................................................... 2-7
2.3.2.3 Infrastructure ................................................................................................................ 2-7
2.3.2.4 Extension services......................................................................................................... 2-8
2.3.2.5 Capacity Planning ........................................................................................................ 2-8
2.3.2.6 Development Cloud ..................................................................................................... 2-8
2.3.2.7 Cloud candidate services stack................................................................................... 2-8
2.3.2.8 Defining the service boundaries.............................................................................. 2-10
2.3.2.9 Determining the deployment model ...................................................................... 2-10
2.3.2.10 Service justification.................................................................................................... 2-10
2.3.2.11 Workload validation ................................................................................................. 2-11
iii
2.4 Cloud Service Portfolio Management and Release Planning ............................................ 2-11
2.5 Putting it together .................................................................................................................... 2-13
2.6 An Example............................................................................................................................... 2-13
2.6.1 Problem .............................................................................................................................. 2-13
2.6.2 Solution .............................................................................................................................. 2-13
3 Elaboration
3.1 Cloud Service Definition............................................................................................................ 3-1
3.1.1 Defining Cloud Service Contracts ..................................................................................... 3-2
3.1.2 Defining Service APIs ......................................................................................................... 3-2
3.1.2.1 Characteristics of good Cloud APIs........................................................................... 3-3
3.1.2.2 IaaS API.......................................................................................................................... 3-3
3.1.2.3 PaaS API......................................................................................................................... 3-3
3.1.3 Defining service specifications........................................................................................... 3-5
3.1.3.1 Template for Cloud service definition....................................................................... 3-5
3.1.3.2 Defining Service metrics.............................................................................................. 3-6
3.2 Designing Cloud services .......................................................................................................... 3-7
3.2.1 Design Choices ..................................................................................................................... 3-8
3.2.2 Service Design Template .................................................................................................... 3-9
3.2.3 Service Assembly Template ............................................................................................... 3-9
3.3 Putting it together .................................................................................................................... 3-10
4 Construction
4.1 Cloud Service Implementation ................................................................................................. 4-1
4.2 Packaging and Assembly........................................................................................................... 4-2
4.2.1 Defining Deployable Entities ............................................................................................. 4-3
4.3 Cloud Service Testing................................................................................................................. 4-4
4.4 Putting it together ....................................................................................................................... 4-6
5 Transition
5.1 User Acceptance Testing............................................................................................................ 5-1
5.2 Cloud Service Deployment........................................................................................................ 5-3
5.3 Putting it together ....................................................................................................................... 5-4
6 Operate
6.1 Operations Best Practices........................................................................................................... 6-2
7 Summary
iv
v
List of Figures
11 Cloud Service Development - Program and Project Scopes ................................................. 1-2
12 Cloud Service Development Process ....................................................................................... 1-3
21 Inception Phase Activities.......................................................................................................... 2-1
22 Requirements Analysis .............................................................................................................. 2-2
23 Cloud Service Development Influencing Factors................................................................... 2-4
24 Cloud Service Identification Steps............................................................................................ 2-5
25 Cloud Service Identification Process........................................................................................ 2-6
26 Cloud Candidate Services Stack Model................................................................................... 2-9
27 Cloud Candidate Services Stack Example............................................................................... 2-9
28 Cloud Service Portfolio Management and Release Planning ............................................ 2-12
29 Inception Phase - putting it together..................................................................................... 2-13
31 Elaboration Phase Activities...................................................................................................... 3-1
32 Cloud Service Definition............................................................................................................ 3-2
33 PaaS API ....................................................................................................................................... 3-4
34 Cloud Service Design ................................................................................................................. 3-8
35 Elaboration Phase..................................................................................................................... 3-10
41 Construction Phase Activities ................................................................................................... 4-1
42 Cloud Service Implementation ................................................................................................. 4-2
43 Packaging and Assembly........................................................................................................... 4-3
44 Cloud Service Testing................................................................................................................. 4-5
45 Construction Phase - Putting it together ................................................................................. 4-6
51 Transition Phase Activities ........................................................................................................ 5-1
52 User Acceptance Testing............................................................................................................ 5-2
53 Cloud Service Deployment........................................................................................................ 5-3
54 Transition Phase - Putting it together ...................................................................................... 5-4
61 Operate - OA&M Phase Activities............................................................................................ 6-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 methodology to build PaaS and IaaS Cloud services.
Building PaaS and IaaS services differs from building SaaS services and hence is
addressed in a separate document.
ix
The figure above illustrates where this document is placed in the ETS/Topic Area grid.
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 developing IaaS and PaaS Cloud services and
understanding how it differs from traditional application development methodologies.
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:
Introduction chapter provides an overview of Cloud service development
methodology.
Chapter 1 describes the inception phase of Cloud service development.
Chapter 2 describes the elaboration phase of Cloud service development.
Chapter 3 describes the construction phase of Cloud service development.
Chapter 4 describes the transition phase of Cloud service development.
Chapter 5 provides an introduction to the operational activities involved in Cloud
development.
Summary provides the conclusion for this document.
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.
x
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 industry specific solution perspectives based
on ORA. They define the high level business processes and functions, and the software
capabilities in an underlying technology infrastructure that are required to build
enterprise-wide industry solutions. ESDs also 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 within a particular industry.
Document Map
The picture below shows the document map of documents related to this document.
xi
Creating a Roadmap for Cloud
Building Cloud Infrastructure - Implementation of Physical and Management
Infrastructure
Building Application Services
Building Infrastructure and Platform Cloud Services (this document)
This document is one of the series of documents that comprise Oracle Reference
Architecture. It is a practitioner's guide that focuses on a methodology to build
Infrastructure and Platform Cloud services.
Please consult the ITSO web site for a complete listing of ORA documents as well as
other materials in the ITSO series.
Other References
"Database Consolidation onto Private Clouds", Oracle Whitepaper. By Vengurlekar
et al.
"ITIL Best Practices with Oracle Enterprise Manager 10g and Oracle PeopleSoft
Help Desk", Oracle Whitepaper, By Sharma, et al.
"Billing and Revenue Management for Cloud Computing", Oracle BRM datasheet.
http://www.opengroup.org/projects/soa-soi/, Service Oriented Cloud
Computing Infrastructure, The Open Group
"Oracle Cloud Computing", June 2011 Oracle whitepaper, Rex Wang.
Oracle Cloud Resource Model API -
http://www.oracle.com/technetwork/topics/cloud/oracle-cloud-resource-mo
del-api-154279.pdf
"Oracle ExaLogic Elastic Cloud - A brief introduction", Oracle Whitepaper, By
Piech, Palmeter, Lehman
Oracle Cloud Resource Model API -
http://www.oracle.com/technetwork/topics/cloud/oracle-cloud-resource-mo
del-api-154279.pdf
xii
Conventions
The following text conventions are used in this document:
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated
with an action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for
which you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code
in examples, text that appears on the screen, or text that you enter.
xiii
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. Deploying business applications using a Cloud delivery model provides
several benefits to the organizations. Cloud introduces 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) would
typically find it easier to adopt Cloud since SOA and Cloud require several
organizational changes that are very 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 with brand
new methodologies 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. This guide focuses on
the methodology for building Infrastructure and Platform Cloud services.
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 Cloud Roadmap" 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 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
as the primary development process.
Introduction 1-1
Program level and Project Level Scopes
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.
In contrast, an enterprise business delivery project identifies Cloud services based on
the Infrastructure and Platform requirements of a 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 road mapping activity 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.
It is important to note that Cloud services should be built future proof and hence need
to be designed to handle the future load requirements and spikes in current demand.
So the service development and portfolio management activities need to be aligned to
ensure that Cloud services can support the needs of the 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
stringent scalability requirements of the Cloud. The "Building Cloud Infrastructure"
document covers this topic in more detail.
Implement focus area has four phases - Inception, Elaboration, Construction, and
Transition. These phases closely align with Oracle Unified Method (OUM) and Unified
Process (UP).
Figure 12 shows the high level activities involved in the Cloud service development
process grouped by phases.
Introduction 1-3
Relevant Topics
Inception 2-1
Requirement Analysis
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 or shared requirements and refine them into enterprise requirements. These
requirements are to become enterprise assets and should be maintained at the
enterprise scope. Typically an asset management or metadata management repository
is used for this purpose.
The requirements that drive Infrastructure and Platform services are identified and
developed into Cloud service 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.
Enterprise IT requirements may 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 following types of requirements, most of which are related to the Cloud
characteristics, are important while identifying the Infrastructure and Platform
services.
Inception 2-3
Cloud Service Identification
Please 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 rebrand 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.
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.
Inception 2-5
Cloud Service Identification
a) Existing Cloud Service - a service identified already exists in the enterprise or public
domain
b) New Cloud Service - the service identified does not exist and needs to be built
c) Modified Cloud Service - an existing Cloud service has been discovered but it
requires modifications before it could be used for this project
The final step in the process is identifying the workloads and their characteristics.
Workload requirements validate the Cloud service definitions and ensure that the
Cloud services built are suitable for deploying the workload. Some of the questions to
ask are -
Is the workload permanent or transient?
Is it a batch program or OLTP application?
Is the workload going to have sudden spikes?
What business processes are run on the workload? This is important to identify the
business unit, criticality etc of the workload.
Who has organizational ownership of the workload? This is important because
often cloud adoption is driven within organizations by a 'champion' - so can
directly affect the cloud service identification process.
Are there any constraints or restrictions on the workload? The service may not
support some of the features of the underlying service platform. For example, a
Java service provider may exclude the use of RMI and thread management.
the project and are refined to the enterprise scope. These requirements are further
analyzed by the service creation project team for validity before identifying services
for implementation.
In most cases, non-functional requirements and architecture standards drive the
platform, technology, and information decisions. These decisions drive the choice of
the platforms (PaaS), databases, and Infrastructure (IaaS).
Functional requirements primarily drive SaaS decisions. Functional requirements are
implemented as SOA services or application components. SOA services can be
deployed as Cloud SaaS offerings. Application components may be custom developed
or acquired as a COTS product, if available commercially. SaaS service development is
covered in the "Building application Services for Cloud" document.
Identifying these services is part science and part art. There is no clear-cut and
prescriptive method to identify cloud services. This section provides some general
ideas and guidelines to help you identify the Cloud services.
The applicability of each of the following services is dependent on the requirements.
2.3.2.1 Platforms
The platform on which the application will be run is determined based on the
technical requirements and architecture standards. For example, latency and HA
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.2 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.3 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?
Inception 2-7
Cloud Service Identification
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.
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.
Inception 2-9
Cloud Service Identification
then public Cloud services from multiple vendors are compared to determine the best
fit for the project requirements.
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.
Inception 2-11
Cloud Service Portfolio Management and Release Planning
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.
2.6 An Example
2.6.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 10ms delay. This low latency requirement is
consistent across all three business lines (Equity, Forex, and Options/Derivatives). The
business has 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.
ABC Bank is investigating whether Cloud is the right deployment option and if so,
how the Cloud services can be identified.
2.6.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 very similar to the
Quotes Engines used in the equity and Forex trading applications.
The architecture team determines that these requirements can be fulfilled by a
Complex Event Processing (CEP) product deployed on a hardware that supports low
Inception 2-13
An Example
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 two PaaS
candidates and passes the requirements on to the Cloud service creation team.
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.
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.
Elaboration 3-1
Cloud Service Definition
Elaboration 3-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
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
implementations written for solitary, proprietary application management
interfaces.
For PaaS providers a standardized management API would bring the following
benefits:
Because the strength and features of a PaaS offering's application management
API are unlikely to be perceived as key differentiators from other PaaS offerings,
the existence of a standardized management API allows providers to leverage the
experience and insight of the specification's contributors and invest their design
resources in other, more valuable areas.
Elaboration 3-5
Cloud Service Definition
Elaboration 3-7
Designing Cloud services
For Infrastructure and Platform services, service templates or assemblies are created
from reference configurations. Service templates are instantiated to create deployable
entities. 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.
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?
Elaboration 3-9
Putting it together
Figure 41 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 4-1
Packaging and Assembly
Construction 4-3
Cloud Service Testing
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.
Construction 4-5
Putting it together
The transition activities are a) User Acceptance Testing and b) Cloud Service
Deployment. These high level activities are shown in Figure 51.
Transition 5-1
User Acceptance Testing
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 5-3
Putting it together
Operate 6-1
Operations Best Practices
Service management activities such as upgrades and patching are done by updating
the deployment entities and redeploying them as opposed to patching the running
instances. Since the services are shared across multiple consumers, the providers must
develop policies around when the services can be upgraded and how the changes will
be communicated to the consumers.
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, 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 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 such as Waterfall,
Iterative, or Agile. It does not make any assumptions on if the methodology is iterative
or not. The key is to identify the Cloud service requirements and build them at
enterprise scope using dedicated specialist teams.
Summary 7-1