Anda di halaman 1dari 51

These materials are the copyright of John Wiley & Sons, Inc.

and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Platform as
a Service FOR

DUMmIES

SPECIAL EDITION

By Judith Hurwitz,
Marcia Kaufman, and Fern Halper

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Platform as a Service For Dummies, Special Edition
Published by
John Wiley & Sons, Inc.
111 River Street
Hoboken, NJ 07030-5774
www.wiley.com
Copyright 2012 by John Wiley & Sons, Inc., Hoboken, NJ
Published by John Wiley & Sons, Inc., Hoboken, NJ
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form
or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as
permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without the prior written
permission of the Publisher. Requests to the Publisher for permission should be addressed to the
Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011,
fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.Trademarks: Wiley, the
Wiley logo, For Dummies, the Dummies Man logo, A Reference for the Rest of Us!, The Dummies Way,
Dummies.com, Making Everything Easier, and related trade dress are trademarks or registered trade-
marks of John Wiley & Sons, Inc. and/or its affiliates in the United States and other countries, and may
not be used without written permission. CloudBees and the CloudBees logo are registered trademarks
of CloudBees. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc.,
is not associated with any product or vendor mentioned in this book.

LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE


NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR
COMPLETENESS OF THE CONTENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL
WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A
PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR
PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE
SUITABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE UNDERSTANDING THAT
THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR OTHER
PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A
COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR
THE AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN
ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A
POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR
THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAY
PROVIDE OR RECOMMENDATIONS IT MAY MAKE. FURTHER, READERS SHOULD BE AWARE
THAT INTERNET WEBSITES LISTED IN THIS WORK MAY HAVE CHANGED OR DISAPPEARED
BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT IS READ.

For general information on our other products and services, please contact our Business
Development Department in the U.S. at 317-572-3205. For details on how to create a custom For
Dummies book for your business or organization, contact info@dummies.biz. For information
about licensing the For Dummies brand for products or services, contact
BrandedRights&Licenses@Wiley.com.
ISBN: 978-1-118-23499-0
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Table of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
About This Book......................................................................... 1
Foolish Assumptions.................................................................. 2
How This Book Is Organized..................................................... 2
Icons Used in This Book............................................................. 3

Chapter 1: Setting the Fundamentals of the Cloud . . . . . 5


Defining Cloud Computing......................................................... 5
Defining Cloud Computing Models........................................... 7
Deployment Models for Cloud Computing............................ 10

Chapter 2: Getting into Platform as a Service . . . . . . . . 13


Traditional Development and Deployment Challenges....... 13
What Changes with PaaS?........................................................ 15
PaaS as Middleware in the Cloud............................................ 18
Different Types of PaaS............................................................ 19
Seeing the Business Value of Using a PaaS............................ 21
Buying versus Building: The Business Imperative............... 22

Chapter 3: Looking at PaaS as a Development Platform. . . 23


Developing Applications in the Cloud.................................... 24
The Role of Continuous Integration....................................... 25
The Role of Application Development Services.................... 26
PaaS Services for Development............................................... 28

Chapter 4: Using PaaS as a Deployment Platform . . . . 33


Deploying Applications to the Cloud..................................... 33
The Role of Continuous Delivery............................................ 37
Understanding PaaS Services for Deployment...................... 38
Integrating with Existing Systems and Services.................... 39

Chapter 5: Ten Steps to Take toward PaaS . . . . . . . . . . 41


Step 1: Get a Handle on Your Current Computing
Environment.......................................................................... 41
Step 2: Educate Yourself on the Value of PaaS..................... 42
Step 3: Experiment with the Options...................................... 42
Step 4: Figure Out What Your Requirements Are................. 43
Step 5: Put Together an Evaluation Team.............................. 43
Step 6: Conduct a Pilot Project............................................... 43
Step 7: Plan a Well-Designed Organizational Structure........ 44
Step 8: Continuously Evaluate Emerging Standards............. 44
Step 9: Embrace the Continuum of the Develop/
Deploy Cycle.......................................................................... 44
Step 10: Turn the Experience into a Strategy Roadmap...... 44
These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Publishers Acknowledgments
Were proud of this book and of the people who worked on it. For details on how to
create a custom For Dummies book for your business or organization, contact info@
dummies.biz. For details on licensing the For Dummies brand for products or
services, contact BrandedRights&Licenses@Wiley.com.
Some of the people who helped bring this book to market include the following:

Acquisitions, Editorial, and Media Composition Services


Development Sr. Project Coordinator: Kristie Rees
Project Editor: Carrie A. Burchfield Layout and Graphics: Lavonne Roberts,
Editorial Manager: Rev Mengle Laura Westhuis
Sr. Acquisitions Editor: Katie Feltman Proofreader: Jessica Kramer
Business Development Representative:
Sue Blessing
Custom Publishing Project Specialist:
Michael Sullivan

Publishing and Editorial for Technology Dummies


Richard Swadley, Vice President and Executive Group Publisher
Andy Cummings, Vice President and Publisher
Mary Bednarek, Executive Director, Acquisitions
Mary C. Corder, Editorial Director
Publishing and Editorial for Consumer Dummies
Kathleen Nebenhaus, Vice President and Executive Publisher
Composition Services
Debbie Stailey, Director of Composition Services
Business Development
Lisa Coleman, Director, New Market and Brand Development

About the Authors


Judith Hurwitz is a technology strategist, author, and thought leader and President of
Hurwitz & Associates, a business technology consulting and research firm focused on
the business benefits from technology investments. Marcia Kaufman, founding partner
and COO of Hurwitz & Associates, has 20+ years in business strategy and industry
research, working extensively in the financial services industry. Dr. Fern Halper, a
partner at Hurwitz & Associates, has over 20 years of experience in data analysis, busi-
ness and predictive analytics, enterprise computing, and strategy development.
Together, Judith, Marcia, and Fern are coauthors of numerous For Dummies books.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Introduction
W elcome to Platform as a Service For Dummies, Special
Edition. Cloud computing is becoming an integral part
of many companies business and technology strategies. The
implication of the adoption of the cloud means that the IT
organization is looking to leverage the cloud as a mechanism
to build, deploy, and manage applications that live in the
cloud in the form of Platform as a Service (PaaS).

PaaS provides value within your organization to different


constituents:

Business leaders: PaaS means that you can acceler-



ate the delivery of new innovative applications without
investing additional funds. You can experiment easily
with innovative ideas to support strategic business
initiatives without impacting your capital budget.
IT leaders: PaaS offers a well-architected solution that

brings together all elements required to develop, deploy,
and manage applications that are designed to run in a
variety of delivery models, including public, private, or
hybrid cloud models. The benefit for IT development and
operations management is clear with PaaS, IT is armed
with a consistent platform that avoids some of the errors
and inconsistencies that plague traditional approaches.

About This Book


This book gives you insights into what it means to lever-
age a consistent and flexible development and deployment
approach in the cloud. You also discover elements of PaaS
and how it provides a more agile development and deploy-
ment environment. This book helps business and technical
leaders understand PaaS in context with the overall cloud
model of computing.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
2 Platform as a Service For Dummies, Special Edition

Foolish Assumptions
The information on these pages is useful to many people, but
we have to admit that we did make a few assumptions about
who we think you are:

Youre already using various forms of cloud computing



and are planning a long-term strategy to move more of
your development and deployment of applications to the
cloud. You understand the benefits of using all kinds of
flexible cloud computing models and are ready to move
forward with a development and deployment platform
that gives your organization a competitive advantage.
Youre a business leader who wants IT resources to be a

utility thats optimized to leverage what youve already
paid for. You want IT to serve your business needs to
execute your strategies on your timetable and to be
your partner in innovating for the future.
Youre an IT leader who knows a lot about technology

but arent sure precisely how PaaS works. You need to
understand how PaaS changes IT and what you need to
do to support the business with cloud computing as an
important enabler.

How This Book Is Organized


This book isnt intended to be an exhaustive technical manual
on implementing and managing cloud computing. Instead, it
gives you a taste of the concepts and approaches you need to
consider when embarking on your journey to PaaS.

Weve organized this book into five chapters:

Chapter 1 gives you an overview of the fundamentals of



cloud computing, including Infrastructure as a Service
(IaaS), Software as a Service (SaaS), and PaaS.
Chapter 2 provides you with an understanding of the way

PaaS helps address IT challenges, and it lays out the dif-
ferent approaches of PaaS and how it helps streamline
development and IT operations.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Introduction 3
Chapter 3 delves into PaaS as a development platform.

The chapter provides an overview of PaaS services for
development and examines how companies can use these
services to improve the quality of software development.
Chapter 4 explains the value of PaaS as a deployment

platform with an overview on the PaaS services for
deployment and the questions you should be asking
potential providers.
Chapter 5 gives you a roadmap for getting started on

your journey to PaaS.

Icons Used in This Book


The following icons are used to point out important informa-
tion throughout the book:

Tips help identify information that needs special attention.


Pay attention to these common pitfalls of managing your
cloud environment.


This icon highlights important information that you should
remember.


This icon contains tidbits for the more technically inclined.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
4 Platform as a Service For Dummies, Special Edition

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 1

Setting the Fundamentals


of the Cloud
In This Chapter
Providing an overview of cloud computing and their models
Diving into the implementation strategies for cloud computing

C loud computing is emerging as one of the most impor-


tant transformational trends in business and computing
of the decade. Youre witnessing the beginning of a shift from
an era where enterprises assume that theyll own a com-
plete infrastructure to an era where IT is designed as a set
of services that are consumed by developers, partners, and
customers. Cloud computing allows companies to respond to
business initiatives more quickly, often at a much lower cost,
and without the complexities associated with the comput-
ing models that have been in place for decades. With cloud
computing, you can also innovate and transform IT into a set
of flexible services that enable a more agile approach than is
possible with traditional siloed computing models.

In this chapter, we provide an overview of what cloud com-


puting is and how it can help businesses to gain agility, flex-
ibility, and innovation without massive capital expenditure.

Defining Cloud Computing


Cloud computing is a method of providing a set of shared
computing resources that include applications, software,
computing, storage, networking, development and deploy-
ment platforms, and business process. Cloud computing turns

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
6 Platform as a Service For Dummies, Special Edition

traditionally siloed computing assets into a shared pool of


resources that are based on an underlying Internet founda-
tion. Cloud computing makes these resources easier to use by
supporting a self-service model so resources can be acquired
or provisioned based on need or assigned business rules.
At the same time, a business can use just the resources it
needs to complete a task. After that task is completed, those
resources can be returned to the pool.

How does this work? Some foundational capabilities are


required to support this computing model, including the
following characteristics:

Self-service provisioning and automatic de-provisioning:



Provisioning technology provides an automated way for
users to add and subtract services based on need and
business requirements.
Elasticity and the ability to scale up and down: With

elasticity, the user is able to acquire more resources in an
on demand manner, for a small duration and pays for the
capacity or capability they need. When those resources are
no longer needed, the user is able to return that capacity.
Resource pooling: Cloud architectures enable the effi-

cient creation of groups of shared resources that make
the cloud economically viable.
Billing and metering of service usage: Because custom-

ers pay only for the resources they purchase or acquire,
cloud computing environments include a way to monitor
and measure usage.

Equally important is that the cloud provides a new economic


model of computing. Instead of purchasing, managing, and
maintaining a software and server environment, a business is
able to purchase computing on a situational basis, avoiding
capital expenditures. If a company has already invested in an
internal computing environment that best serves business
requirements, portions of that environment can be trans-
formed into whats called a private cloud environment with
the same self-service and service management characteristics
as whats called a public cloud service.

While in both cases the cloud provides elasticity that allows


the pool of resources to expand or contract based on need,
some key differences still remain:

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 1: Setting the Fundamentals of the Cloud 7
A public cloud makes an unlimited pool of resources,

such as applications and storage, available to the general
public over the Internet. Public cloud services may be
free or offered on a pay-per-usage model.
A private cloud is more constrained to the size of the

internal computing environment constructed by the com-
pany and may have to be set up, managed, and adminis-
tered by the company itself. Access to a private cloud is
restricted to those users who are granted permission.

One important factor with these services is that the IT organiza-


tion offloads the responsibility for maintaining the application or
service. The public cloud provider takes over that responsibil-
ity. In addition, the organization can add services when theyre
needed. This approach saves time, money, and effort.

Defining Cloud Computing Models


Your understanding of the benefits of cloud computing must
begin with an understanding of the foundational services. The
term service is defined as a task that has been packaged so it
can be automated and delivered to customers in a consistent
and repeatable manner. Any cloud service has a set of consis-
tent characteristics: a customer can go to the self-service inter-
face and add more compute, middleware, or database services
or another application. When that service is no longer needed,
its use is discontinued and no further charge is assessed. Three
fundamental layers of cloud services exist: IaaS, SaaS, and PaaS.

Getting straight with IaaS


Infrastructure as a Service (IaaS) is one of the most straight-
forward services of the cloud computing services. IaaS is the
delivery of compute services including servers, networking,
and storage, based on a rental model. IaaS has to be either a
public or a private service. This differs from traditional hosting
models because a service can be acquired for a set time period.
In other words, the consumer of the service is charged only for
that usage instead of having to sign a long-term contract.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
8 Platform as a Service For Dummies, Special Edition

Understanding SaaS
Software as a Service (SaaS) includes purpose-built business
applications that are offered in the cloud. Hundreds of differ-
ent types of services exist, ranging from Customer Relationship
Management (CRM) systems to payment applications.

What are the characteristics of a SaaS environment? A SaaS


platform is generalized enough so its useful to a wide variety
of customers. Unlike applications that a company implements
internally, a SaaS environment handles all the development and
deployment details for the customer. The IT organization doesnt
have to handle operating system, database, software, or applica-
tion version upgrades. This complexity is handled by the vendor.
Therefore, the SaaS vendor includes the IaaS as well as the
Platform as a Service (PaaS) as part of the environment.

Many types of applications are available in the SaaS model.


Typical SaaS applications include the following:

Accounting

Collaboration

Project management

Testing

Analytics

Content management

Internet marketing

Risk management

CRM

What doesnt work as SaaS? A specialized one-of-a-kind appli-


cation that supports the needs of a few users isnt economi-
cally viable as a SaaS environment. Because SaaS vendors
typically sell based on a monthly or yearly rental model, their
products must be easy to use and easy for the end customer
to manage. A SaaS application needs be designed in a modu-
lar, service-oriented manner.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 1: Setting the Fundamentals of the Cloud 9
Expanding into PaaS
Not every service needs is available as a SaaS (see the preced-
ing section). Sometimes the development organization has
to build custom solutions to meet business demand. While
developers could use an IaaS platform (see the section earlier
in this chapter, Getting straight with IaaS) to create such an
application, the approach isnt very productive. Developers are
responsible for bringing their own middleware and lifecycle
tools to the platform; setting up the operating systems, middle-
ware, and routing; and maintaining and patching those custom
environments. PaaS has been developed to solve the problem
of having to deal with so much complexity. PaaS is an inte-
grated environment that supports the development, running,
and management of cloud-based applications.

PaaS providers create a managed environment that brings


together integrated middleware and development services
to support development organizations. These platforms
create an abstracted environment that supports the creation,
deployment, and management of a cloud environment.

PaaS has the following things going for it:

PaaS is an entire infrastructure packaged so it can be



used to design, implement, and deploy applications and
services in a public or private cloud environment.
PaaS enables an organization to leverage key middleware

services without having to deal with the complexities of
managing individual hardware and software elements.
PaaS requires a complete stack of development tools that

are accessible via a web browser (or any specialized tool,
such as an IDE) in a self-service manner.

The development and operations organizations now have a


well-orchestrated platform that supports a consistent lifecycle
approach by keeping track of the components required to track
software configurations and versions. This approach helps orga-
nizations work consistently to manage the development and
deployment process. In order to provide this level of abstraction,
a number of components have to be included in a PaaS platform:

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
10 Platform as a Service For Dummies, Special Edition

Application development and execution services



Integrated lifecycle services

Workload management services

Data management services

Deployment Models for


Cloud Computing
Whether youre interested in IaaS, SaaS, or PaaS, you need to
understand how you may use one of these services to meet
your companys business requirements. The three different
kinds of deployment models are public, private, or hybrid
(a combination of the two). What separates the three cloud
models is who actually owns, hosts, and operates the cloud
resources. Location is also another big factor. What kind of
deployment makes the most sense for you depends on factors
ranging from industry regulations to your current investments
in legacy systems. In this section, we detail each of these
cloud models so you can get a better handle on your choices.

The public cloud


When people started talking about the notion of the Cloud a
number of years ago, most were referring to whats now called
a public cloud. The public cloud is actually a set of servers, net-
works, storage, services, and interfaces owned and operated by
a third party for use by other companies that are accessible from
anywhere via the public Internet. Also, because of economies of
scale, cloud-managed service providers can staff deep IT skills in
specialty areas such as security so you dont have to.

For example, a company may decide to use a public cloud ser-


vice for a workload, such as electronic mail (e-mail). E-mail is
a good candidate for a public service because its a relatively
generic application with a well-understood workload pattern.
Companies that specialize in public cloud e-mail services can
optimize their hardware and software environment to support
this type of workload and provide different levels of security
for a price. In reality, these companies can provide e-mail serv-
ices for a fraction of the price that it costs to run and support
an internal mail service.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 1: Setting the Fundamentals of the Cloud 11
What enables the cloud provider economies of scale is a concept
known as multi-tenancy, which means that different companies
share all or some of the same underlying resources. One of the
benefits of this platform is that on-boarding a new customer can
be done in a cost-effective manner because the cloud doesnt
provide a fixed set of resources just for that customer.

Of course e-mail isnt the only service to be put into the cloud.
Other examples include video services, human resources, and
backup services to name a few.

Also, development, testing or deployment organizations may
have periods of high demand followed by less active periods.
In addition, these teams are often located across geographies.
Having an optimized platform that can be scaled up or down
based on demand is a logical economic model for many orga-
nizations. Running application development and testing in
the cloud can be less expensive than buying and configuring
servers. As long as the provider is trustworthy, companies are
seeing the benefit of using this type of public cloud service.

In the public cloud model, the end-user really doesnt have to


know anything about the underlying technology. The cloud
provider is in charge of all the development and maintenance
of the environment. If a problem exists, the cloud provider is
responsible for fixing the problem.

Whats a private cloud?


In some situations, a public platform (see the preceding sec-
tion) may not be the most appropriate environment for an
organization. The company may be part of a highly-regulated
industry and needs to prove that its IT can comply with regu-
lations. While companies like the freedom of the public cloud,
they may need more direct control for a particular portion of
their IT environments. The company may need a specialized
custom security service and already have hardware and a
hosting facility they want to amortize ownership of their infra-
structure and solution, or, more simply utilize data and appli-
cations within an existing datacenter. Those companies could
adopt whats called a private cloud.

What makes a private cloud different than a data center that


includes some server virtualization? Take a look at several
key differences:

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
12 Platform as a Service For Dummies, Special Edition

A private cloud includes automation of consistent pro-



cesses and a self-service interface that allows internal
IT operations and developers to allocate IT resources
on demand.
The private cloud offers internal IT resources in a service

delivery model.
The private cloud is designed to add automation to exist-

ing data and applications within a data center.
The private cloud manages pools of resources, including

everything from compute capability to storage, analytics,
process management, and middleware.
A private cloud implements custom security and gover-

nance capabilities specially designed for a companys
requirements.

Understanding the hybrid cloud


Most organizations that adopt a cloud-computing strategy
discover that a hybrid approach fits well into their IT strat-
egy. A hybrid cloud is an environment that utilizes both pri-
vate and public cloud services to meet a business need. This
environment allows a customer to make use of a combination
of resources at the same time through a consistent set of ser-
vices. For example, a business process may copy the results
of a business transaction from a private environment into a
public service, such as a sales automation SaaS environment.
Through automation, this process can be executed according
to best practices and in adherence with compliance rules. In
some situations, a process may be established that requires
data from a SaaS application to be physically stored in a pri-
vate cloud within a particular country.

The hybrid cloud is a single service thats deployment agnostic


depending on the needs of the business. Well-designed manage-
ment tools need to be in place to ensure that the hybrid envi-
ronment works well to support the business objectives.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 2

Getting into Platform


as a Service
In This Chapter
Dealing with the challenges of development and deployment
Looking into the changes with PaaS
Putting PaaS and middleware together in the cloud
Understanding the benefits of PaaS

I n Chapter 1, we provided an overview of what the compo-


nents and approaches to cloud computing mean to your
organization. In this chapter, we mention the challenges of
traditional software development and deployment by using a
fictitious company called HealthFirst. Through this example,
we hope you see how a business possibly like yours
deals with Platform as a Service (PaaS) challenges.

We also discuss the opportunities for saving money, improv-


ing productivity, and the ability to react to changes quickly by
using a PaaS. You see the benefits in leveraging cloud-based
development and deployment platforms by utilizing a PaaS
model. You look at the different approaches to PaaS so you
can determine which approach serves your organization best.

Traditional Development and


Deployment Challenges
HealthFirst, a fictitious company that provides healthcare serv-
ices to hospitals and group medical practices, is a good exam-
ple to illustrate the challenges with traditional development

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
14 Platform as a Service For Dummies, Special Edition

and deployment of PaaS. The company distinguishes itself from


other health services companies by providing more efficient
ways to manage patient records and billing, improving the
quality of patient care, and increasing community awareness of
health and wellness services. The company depends on sophis-
ticated and differentiated software applications to continue to
thrive in an increasingly complicated market. As the business
continues to grow, it faces four kinds of challenges.

Collaboration and coordination


across a growing company
HealthFirst is a fast-growing company and customers are press-
ing for more services, including a Software as a Service (SaaS)
delivery model. To meet the changing needs, HealthFirst began
expanding its development organization, which was already
spread across multiple locations in many different time zones.
Collaboration became difficult with the following problems:

Coordinating the software development across regions



Determining what was working

Reporting the state of development across the organiza-

tion or even across a complex project

With these additional issues, inevitably, mistakes crept into


the process.

Managing a fast-paced
development environment
In order to respond more quickly to rapidly changing busi-
ness application needs, HealthFirst also moved to an agile (for
example, iterative and incremental) development and deploy-
ment process. This change meant that management began
implementing a process that strived for a continuous delivery
of new features and functionality.

This transition was required because the traditional devel-


opment process that accumulated a large number of code
changes into periodic builds was too time consuming and
error prone to support the always working software model

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 2: Getting into Platform as a Service 15
that it needed. The company realized it needed a more auto-
mated environment to support its new way of doing things.

Middleware complexity
HealthFirst had an additional underlying issue with middle-
ware, development, and deployment tools that were compli-
cated to learn, implement, maintain, and use. (For more info
on middleware, see the section PaaS as Middleware in the
Cloud later in this chapter.)

For example, the development organization purchased more


than 50 different tools over the years, which resulted in a
complex and fragile stack of software tools and platforms
that required skilled individuals to maintain and manage. If
a developer with deep knowledge of a tool or scripts left the
company, the project often ran into problems. Because of the
complexity of the overall development process, software qual-
ity became unpredictable.

Obtaining compute resources


As projects grew in size and complexity, HealthFirsts devel-
opment team often ran out of compute or storage resources.
Getting machines and configurations to support (often cross-
platform) development and testing was difficult. Teams lost
weeks while waiting for the centralized procurement organiza-
tion to allocate the systems they needed to complete a proj-
ect. Because of this procurement bottleneck, developers
tried to hold on to resources so they always had the
resources they needed.

What Changes with PaaS?


PaaS helps reduce the complexity of the development process
by delivering and managing hosted software services used by
developers, which eliminates the installation and operational
burden from developers. PaaS accelerates the development
and delivery process because developers use the same serv-
ices to develop against that their end-users interact with in
production. By encompassing both development and runtime
services, PaaS can streamline the application lifecycle.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
16 Platform as a Service For Dummies, Special Edition

In this section, we describe just how PaaS can help, includ-


ing standardizing middleware, easing provisioning, working
across the organization, and improving control.

Reducing complexity with a PaaS


The complexity of many IT environments results in highly-
skilled developers spending too much time working on manual
tasks and solving operational problems. In a PaaS environment,
capabilities ranging from compilers, development tools, data
management, security, and middleware are abstracted (the
concept is separated from the implementation instance).

In most PaaS environments, infrastructure details are hidden


from the developer. Instead, the PaaS environment provides
an interface that exposes typical features and use cases
developers are primarily concerned with, such as versioning
and roll-backing of applications not servers pushing an
application from development to production in simple steps
or implementing high availability for a given application.

A well-designed PaaS environment can automate routine tasks


and help improve collaboration between development and
operations teams through the ways in this section.

Standardizing middleware infrastructure services
PaaS is hosted middleware (for example, software that con-
nects application components) that sits on top of IaaS. You
can think about the role of Infrastructure as a Service (IaaS)
within the environment as doing the work to allocate memory,
disk, and the like. In contrast, a PaaS platform sitting on
top of IaaS, provides seamless integration with middleware,
such as databases and distributed caching technologies,
to ensure zero data and transaction loss in the face of truly
elastic underlying IaaS. SaaS sits on top of the combination of
IaaS and PaaS. This layering helps to reduce complexity and
ensure consistency and management of resources.

Ease of service provisioning


A PaaS provides easy provisioning of development services,
including build, test, and repository services to help elimi-
nate bottlenecks associated with non-standard environments,
which in turn improves efficiency, reduces errors, and ensures

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 2: Getting into Platform as a Service 17
consistency in the management of the development lifecycle.
Additionally, PaaS provides ease of provisioning in runtime
services, including application runtime containers for staging,
running, and scaling applications.

Minimizing friction with IT


Traditionally, when a new application server or other mid-
dleware was introduced into an organization, IT needed to
make sure that the middleware could access other services
that were part of the application. Development and Quality
Assurance (QA) had to wait for IT to help them with this
sometimes causing intradepartmental friction.

With PaaS, conflict is minimized because all middleware is


easier to manage and connect.

Improving the control over IT resources


In PaaS, resources can be acquired from a pool of shared
software assets by using a self-service process. When the
resource is no longer needed by the developer, it can be auto-
matically returned. This empowers development and QA to
drive processes and reduce demands on IT.

Improving collaboration
PaaS changes the way that development and operations inter-
act with resources. Instead of traditional application develop-
ment being hand offs, with PaaS, the state of software becomes
more visible to the organization. For instance, a developer may
say that a module of an application is complete, but he hasnt
tested it on all Web browsers. With PaaS, the team can see
whether software is working, broken, ready to be released to
manufacturing, staged, and so on across the entire application
lifecycle. You can buy this functionality, but its native to PaaS.

To leverage many of the benefits of PaaS, you may need to


make a tradeoff. For example, if you want to update your
application and choose to go with tools that arent part of the
prescribed environment, the process can still be done, but
you lose some of the efficiency of working within a more con-
trolled environment. If you break the mold and do it outside
the framework, you need to do it manually. In other words,
you can be locked into the vendors platform tools.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
18 Platform as a Service For Dummies, Special Edition

PaaS and the application lifecycle


In PaaS, the application lifecycle from development through
testing, staging, and deployment is baked into the platform.
The development and runtime platforms are provided as serv-
ices, so the formal lifecycle of an application is more directly
supported. For example, developers and test teams interact
with the same hosted application and runtime as the opera-
tions people use.

One of the impacts of having an abstracted platform is that


it supports development to deployment to operation proce-
dures that today are mostly manual, which helps support agile
development (discussed in more detail in Chapters 3 and 4).
Removing the manual processes enables faster development
release cycles, which in turn can support more rigorous meth-
ods around quality and continuous integration.

PaaS as Middleware
in the Cloud
Middleware is the glue that helps connect software compo-
nents and is a critical method of delivering standardized
application services, but it can be complicated. When middle-
ware services are hosted, like they are in a PaaS, they can
provide a development team with the ability to pre-determine
how the organization wants connectivity to happen and how
integration between services is handled. IT management can
then set the rules upfront about what types of services to use
under specific business conditions.

For example, an organization may want to mandate the use of


a specific database for an application because of the need to
have sufficient transaction speed. Because this abstraction
of middleware is service based, its Application Programming
Interfaces (APIs) are typically well defined, so managing the
integration is simplified.

You used to have to install resources and interact with them


on your machines. Now, those services are managed and
made available to you with PaaS. Youll see some key differ-
ences between PaaS and traditional middleware:

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 2: Getting into Platform as a Service 19
Resources arent delivered as software in PaaS. Instead,

theyre hosted, always-on, on-demand, served up
as services.
The scope of where development and delivery can take

place in a PaaS is the cloud instead of a single machine
or process.
Resources in the data center, now served up by IaaS,

are managed by the PaaS for the purposes of supporting
applications. Its not just the machine supporting the
application. In fact, Cloud IaaS means infrastructure is
available programmatically, so middleware can now be
expanded to take direct advantage of it.
Without infrastructure constraints, you can deliver and
update software continuously. This process is harder in
older-generation middleware with hardcoded endpoints.

Middleware and services have no installation and configura-
tion because theyre an integral part of the PaaS platform.

Different Types of PaaS


All PaaS environments arent the same. You need to consider
several different approaches to PaaS.

PaaS anchored to a
SaaS environment
Some SaaS platforms are becoming core business services for
many companies. Offerings, such as Workday, SugarCRM, and
Salesforce.com, are replacing traditional on-premises systems
of record. Some of these SaaS vendors focus on expanding
their offerings to the platform level. Salesforce.com, for exam-
ple, provides a PaaS platform called Force.com that exposes
the native Salesforce.com APIs, development tools, and mid-
dleware so it becomes a platform that software developers
can use to build new applications on top of.

This approach can be sensible if a company wishes to extend


the capabilities of their Salesforce.com (or other kinds of
SaaS) applications.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
20 Platform as a Service For Dummies, Special Edition

PaaS tied to an operating


environment
When you tie a PaaS to an operating environment, you can
perform certain actions easier. This approach makes sense if
the customer is certain to use only a specific IaaS provider to
run its applications and doesnt require the depth of a dedi-
cated PaaS provider.

Companies like Microsoft with its Azure platform and Amazon


with Beanstalk are offering their APIs and abstractions so
developers can build or deploy applications with this sup-
port. For example, the Windows Azure platform is based on
Windows and SQL abstractions. Microsoft has abstracted
a set of development tools, management, and services. For
customers with deep expertise with .NET, the movement
to the Azure based PaaS is straightforward. The developer,
in essence, ties the development and deployment to the
Microsoft infrastructure.

Amazon.com offers its own PaaS platform focused on deploy-


ment. The PaaS environment, AWS Elastic Beanstalk, is
intended to help customers whove built applications on
Amazons cloud to more easily deploy and manage applica-
tions within the Amazon AWS cloud.

Open platform-based
PaaS environments
Open platform-based PaaS is intended to promote an open pro-
cess and environment that isnt tied to a single cloud imple-
mentation. Several open platform initiatives are underway:

Cloud Foundry is a VMware-led project thats a PaaS



environment for building, deploying, and operating
cloud applications.
OpenShift is a Red Hat initiative.

CloudBees is a Java PaaS platform thats independent of

the underlying platform and is intended to allow develop-
ers to cover the full application build, test, run, manage
lifecycle, either on a public or hybrid cloud.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 2: Getting into Platform as a Service 21

Seeing the Business Value


of Using a PaaS
You can enjoy a number of business benefits from using a
PaaS. This section includes those perks.

Reducing costs
PaaS can certainly reduce costs. And in order to evaluate the
economic impact of PaaS, take a look at the costs that are
directly and indirectly related to the application or type of work-
load you want to move to the cloud. These costs may include

Server and storage overhead: Unused computing capac-



ity requires power and cooling to run as well as demand-
ing floor space thats often a huge expense for companies.
Network: Network bandwidth in data centers isnt unlim-

ited. Many companies find moving commodity services
to cloud-based services more cost effective. This prac-
tice frees up expensive network capacity, floor space,
and energy consumption.
Software maintenance: The cost of managing software

updates and changes is often a burden to development and
operational organizations and a huge expense both in terms
of time and money. While a platform requires a per-user,
per-month charge, the cost is typically offset by the cost of
software license costs and yearly maintenance fees.
Support personnel: These costs include staff responsible

for everything from storage and archiving to patch man-
agement, networks and security, and help desk.

Improving speed, flexibility,


and agility
Continuous delivery, if adopted, is the ultimate goal to get
products to market faster and to align with agile development
practices. PaaS can help

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
22 Platform as a Service For Dummies, Special Edition

Enable faster time to market and the ability to react to



changes and opportunities quickly without huge upfront
investments and heavyweight planning.
Expand your organizations investments as needed,

becoming more competitive.

Buying versus Building: The


Business Imperative
The PaaS option has two pieces: One is the platform, and
the other is service. The PaaS isnt just delivering software
to your organization; its servicing it as well. As new updates
and new configurations are authorized, the PaaS-based cloud
service can control keeping the software updated based on
customer requirements.

One of the primary decisions you need to make is whether


you want to setup, configure, maintain, and administer
the PaaS yourself (either on a public or private IaaS) or
whether you want a provider to give you a fully-serviced
PaaS offering leaving you as the consumer of that PaaS,
not as the maintainer.

If your organization decides to manage a PaaS based on your


own purchased software, youre still required to manage the
details, including setup, configuration, monitoring, maintain-
ing, and patching the software.

When a company decides to use a service to manage these


tasks, the result is reduced friction between the development
and deployment organization. There will, of course, be situ-
ations when its critical for the internal team to control and
manage complex software environments.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 3

Looking at PaaS as a
Development Platform
In This Chapter
Developing applications in the cloud
Understanding the role of continuous integration in PaaS
Looking at the core of PaaS support: Application development services
Knowing which PaaS services for development are right for you

Y ou may be wondering how Platform as a Service (PaaS)


development in the cloud differs from the traditional
on-premises approach. How will PaaS help to make the
development process faster and more secure? What will this
approach mean for your development team?

In this chapter, we provide you with an overview of what it


means to use PaaS as a development environment. We describe
how PaaS services can raise the performance standards for all
developers on a team by making it easier to incorporate best
practices for achieving software quality. You get a foundation
for understanding how your organization can take advantage of
PaaS to meet your goals.

Make sure that the environment you use in the cloud to develop
your applications provides you with the most effective and most
secure services. Developing in this way also impacts how your
development and operations teams function.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
24 Platform as a Service For Dummies, Special Edition

Developing Applications
in the Cloud
Developing in a PaaS environment is different than the way
development organizations have produced software over the
past few decades. In a traditional model, the development
team may select a variety of different tools operating sys-
tems, middleware, testing products, and the like. Many organi-
zations have been very effective with this approach. However,
typically, problems of managing complexity exist especially
in an era where more and more aspects of daily life are con-
trolled by software.

Managing the complexity of traditional software development


environments often translates into spending a lot of time
and money on building, managing, maintaining, and upgrad-
ing these environments. As a result, companies have fewer
resources to apply to designing, developing, and testing soft-
ware. The net impact on developers is that they may fall short
of achieving their primary objectives:

Producing high-quality and secure software



Meeting user expectations

Completing software development projects on time and

within budget

PaaS, on the other hand, provides hosted services used during


development, such as middleware and operating systems.
Because these services are always available for a developer to
use without installation, maintenance, or IT support, the devel-
oper doesnt have to deal directly with complex services and
middleware unless they want to be exposed to the details.

PaaS can bring many advantages in terms of improving the


economics of the development process and increasing the
speed and agility of the development teams. In addition to
providing self-service access to infrastructure resources,
many PaaS vendors take responsibility for the IT platform
maintenance and security requirements that are typically
managed by developers and IT staff. The company benefits
from a decrease in capital expenditures by eliminating the
need to buy servers, middleware, and other infrastructure to

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 3: Looking at PaaS as a Development Platform 25
support all resource requirements. In addition, PaaS costs are
typically relative to the number of users, so platform costs are
more in line with overall development costs and salaries.

By using a PaaS environment for development, individual devel-


opers and their IT partners can enjoy these additional benefits:

Continue to use development tools they already under-



stand and value but in a cloud environment
Increase the focus on the business goals because the

details of configurations or selecting and integrating
development tools are handled behind the scenes
Avoid costly mistakes by making the process easier to

incorporate continuous integration while developing faster
Write more secure code because the PaaS automatically

manages security updates and has data privacy and pro-
tection rules built into the fabric of the environment
Write higher-quality code by leveraging sophisticated

software development tools that would otherwise be
very costly to implement and maintain
Speed up development time by eliminating the need to

request and wait for additional IT infrastructure
Speed up development time by eliminating the need to

do maintenance work and upgrade components
Deliver applications on multiple devices and multiple

operating systems faster

The Role of Continuous


Integration
Continuous integration is a technique that follows continuous
build and test patterns and makes sure software defects are
detected as early as possible. Continuous integration and test-
ing is the best way to make sure that the product always works
even while coding is ongoing. While this software development
best practice isnt unique to the cloud, its critically important
for companies aiming to become successful with PaaS because
developers are able to increase the speed at which they deliver

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
26 Platform as a Service For Dummies, Special Edition

products in PaaS environments so much so, in fact, that


teams can easily get out of synch with one another.

Sometimes, synchronizing development teams efforts may be


difficult. The contributing factors include

Teams that are distributed across business units or dif-



ferent geographic regions of a company
Software code that needs to work across multiple plat-

forms and devices
Software development process that requires individual

components that all need to work together in a service
oriented way
Market dynamics that lead to faster software develop-

ment lifecycle

The software quality and time to develop may suffer unless


the team has a way to test for, locate, and fix errors early
in the software development process.

While it can be hard for development teams to keep in synch in
traditional software environments, these challenges can be mag-
nified in PaaS because of the increased speed of development.

In PaaS, continuous integration is easier because the IT
staff doesnt need to install and manage new hardware and
software or manage many other aspects of overall platform
infrastructure. In fact, PaaS helps to make possible a very
aggressive form of continuous integration thats required to
support the fast-paced and highly-iterative development pro-
cess needed to develop Software as a Service (SaaS) solutions.

The Role of Application


Development Services
Application development services are the core of PaaS sup-
port for the development process. Theyre the anchor serv-
ices that streamline the process of developing applications in
the cloud. A PaaS platform

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 3: Looking at PaaS as a Development Platform 27
Provides the developer with a complete environment to

provision, develop, build, test, and stage applications
Abstracts the details from the developer so developers

can focus on the task of coding and not on supporting
the systems needed for development and testing

An integrated development environment (IDE) is a software


application that includes all the tools that a software devel-
oper needs to develop software. Typically, the programs
included in an IDE can be used to write, change, compile,
deploy, and debug software. IDEs are commonly used by
developers on their desktops in traditional environments and
can also be used with shared cloud services when using PaaS.

When the IDE is used with the cloud, you, as the developer,
have some key advantages:

You can still use your existing IDE on your desktop, but it

becomes much easier and faster to share your code with
other members of your team.
You can push your code into a shared repository in the

cloud so everyone has immediate access to the same
code and tools.
You can test your code during development against the

same systems your end-users will access, using services
provided by the PaaS.
As a result, errors in the code are found earlier, and the
resulting applications are delivered faster.

A well-designed PaaS environment has enough flexibility and


modularity that it can be useful in many different scenarios
and handle a wide range of development objectives. In addi-
tion, the PaaS environment must be able to support the
developer with a wide range of services that encompasses
the entire software development lifecycle.

To ensure that your PaaS provider offers the right set of flex-
ible services so you can make the most of your PaaS develop-
ment environment, use the following checklist:

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
28 Platform as a Service For Dummies, Special Edition

Can you choose from a menu of la carte services so you



can select the services that are right for you?
Can you start slowly with just a few services and then

add on later if needed?
Are your choices constrained in any way based on the

specifications of your PaaS provider?
Will your PaaS provider host the specific services you

want to use so you can use them in the PaaS environment
and you dont have to host them yourself?
Are sophisticated build-and-testing services made avail-

able in such a way to encourage early identification of
software coding errors?

PaaS Services for Development


The same set of PaaS services isnt right for everyone. You
should demand flexibility and a variety of options from your
PaaS vendor. This section gives you the most important soft-
ware development services that may be offered by your
PaaS provider.

Hosted software configuration


management services
Developers use software configuration management services
to keep track of the different versions and modules of code
that are created during the software development process.
The code is stored in an online repository. GitHub is an exam-
ple of a popular hosted service used for this purpose.

Software configuration management services help the devel-


oper to manage the sandbox environment used to create and
test code. The developer stores software code (sometimes
also known as a forge) in the sandbox. This environment
needs to include the right operating system and tools, such
as source code editors, debuggers, compilers, performance
profilers, and source code management systems to know
when and how a piece of software has changed.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 3: Looking at PaaS as a Development Platform 29
Build services
The PaaS should be able to support a variety of application
build processes that allow developers to combine services
into a deployable application. The build process contains
several steps, including writing code, compiling code into an
executable, invoking code, running, and then testing the code.

When creating an application, the developers generally produce


multiple modules of code with dependencies. The build services
in the PaaS should help the developer keep track of the individ-
ual modules of code. Some examples of these build tools are

Maven: Used by most Java developers to build and



assemble their applications as well as manage dependen-
cies to other 3rd party software modules
Maven repositories: Online repository where built
(binary) software is stored and versioned along with
associated meta-data, where it can be retrieved and
consumed by other software based on their declared
dependencies

Web application server


The PaaS environment helps developers quickly test the
applications theyre building by allowing developers to deploy
using the production runtime system. This type of testing is
important because a developer typically creates a web appli-
cation by using his own local environment, and due to the
difficulty of getting access to more than a single machine, the
developers environment may be very different from the pro-
duction environments.

To tighten testing cycles, the developer may use an in-process


web application server that works perfectly on a local envi-
ronment but then behaves differently in production. The PaaS
makes it simple to access and isolate production systems, so
developers can stop wasting time mocking up simulations and
avoid the risk of discovering runtime errors in production or
at late stages of delivery.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
30 Platform as a Service For Dummies, Special Edition

Frameworks
Developers typically use a development framework to help
create quality software that performs well under varying con-
ditions. While frameworks are used in traditional software
environments, these frameworks can be more consistently
shared across large distributed teams when used in a PaaS
environment. Some of the key benefits of using frameworks in
a PaaS environment include

Quickly establishing a consistent structure for an



application
Accessing secure and tested foundational software

modules for coding
Accessing run-time services for testing to make sure that

the application runs properly in production

Your PaaS provider may have the following two examples of


frameworks available:

Spring: One of the most commonly used application



development frameworks for enterprise Java
The Play framework: For building web applications with

Java and Scala

Database services
One of the most important tests for a new application is to
understand how it works with real end-user data. This type
of testing often presents a challenge for developers because
the application may be intended to work with data stored in
a very large and complex database. Developers often install
a lightweight database in their development environment in
order to test the code with data but arent able to test against
a true production database during the development phase.

One of the major advantages of developing in a PaaS environ-


ment is that the developer can have immediate access to a
database with the same characteristics of the eventual pro-
duction database. For example, if the application needs to call
a MySQL database in production, the developer can leverage
PaaS database services to test the code with hosted MySQL
database already provided by the PaaS.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 3: Looking at PaaS as a Development Platform 31
Test and automation tools
Testing services can be built into the PaaS platform or provided
by its ecosystem of services. These services can include User
Interface testing or load testing. Access to these tools is ben-
eficial to companies of all sizes; however, the impact on small
to midsize companies can be huge. Smaller companies may not
have the resources to purchase and maintain the state of the
art tools designed to improve the quality of the development
process. These smaller teams can use PaaS to have access to
the same best practice environment that many of the larger
competitors have built in house at a very high price.

Test and automation tool examples include the following:

Jenkins: Most widely used continuous integration server;



initiates build jobs as developers check-in code, works
with Maven, and contains many plug-ins to customize
how and why the builds happen, and to connect to vari-
ous supporting systems
Selenium: Designed for testing how your software per-

forms with multiple browsers, such as Safari, Chrome,
and Firefox
Sonar: Provides feedback on the quality of your code

Performance analysis tools


A limitation exists on how many different kinds of tests can be
applied to the code in the developers own local environment.
Performance analysis, including production profiling and load
testing, is hard for the developer to do on his own. The devel-
oper may not be able to replicate the wide range of machines
and networks that may be found in end-user environments.
Examples of cloud-based tools designed for this purpose include

SOASTA: Leverages clusters of cloud machines to simu-



late user load on your application based on a number of
criteria (number and type of clients, geographical loca-
tion, load pattern, and so on)
New Relic: Designed to provide insight to end-user behav-

ior, monitor server behavior, and identify bottlenecks

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
32 Platform as a Service For Dummies, Special Edition

Development-to-test-to-production
coordination services
The PaaS provider can provide services that enable updates
of cloud applications without interrupting services. For exam-
ple, in your own data center, you may roll out the new version
of the software to one segment of users at a time. With PaaS,
you can make sure that the flow between development, test-
ing, and deployment is more seamless. PaaS helps you guaran-
tee no loss of uptime.

While these concerns cross more into deployment, they also


impact development. For example, a Java web application may
make use of a session store to ensure the state is maintained
in the event of failure and across updates. The PaaS provider
can help by providing a session store capability built-in and by
automatically coordinating the update rollout process. So, the
developer can make use of the session store directly and also
test to make sure it always works properly during the develop-
ment lifecycle. As the application is updated, the developer can
also ensure that application-level changes work across versions
that use the same session store.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 4

Using PaaS as a
Deployment Platform
In This Chapter
Using the cloud to deploy applications
Gaining competitive advantage with continuous delivery in PaaS
Outlining the important PaaS services for deployment
Integrating PaaS with existing systems and services in your data center

J ust as there are complexities with the development pro-


cess (see Chapter 3 for more info), deploying applica-
tions to the cloud in a traditional model means managing a
heterogeneous set of application services, data services, vari-
ous middleware, and integration services. For example, the
development or operations team has to think about how these
services are configured, deployed, and managed according to
changing requirements. You also have the issue of scaling the
application as needed. In this chapter, you get an overview of
what it means to use PaaS as a deployment environment.

Deploying Applications
to the Cloud
The usage of general cloud resources and easy availability of
the underlying infrastructure makes putting the deployment
of applications into operation much easier. Cost efficiencies
are gained based on the standardized delivery of services in
a multi-tenant architecture. PaaS automates many aspects
of the deployment lifecycle that are typically managed by IT

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
34 Platform as a Service For Dummies, Special Edition

development staff in traditional environments. Some of the


deployment functions built into PaaS platforms are

Allocating resources

Staging and testing applications

Provisioning nodes on the server clusters

Installing, configuring, and securing load balancers,

application servers, and databases

The standardization of PaaS deployment lifecycle services


means that the services are both easier to deploy and main-
tain consistently. In a PaaS environment, all the key deploy-
ment functions are abstracted from the developer masking
them from the complexities of these sophisticated features.
As a result, PaaS makes the process of updating applications
after theyve been deployed faster and more efficient.

PaaS takes on the responsibility of connecting applications.


The integration services provided with the PaaS make this
simple. Some issues still remain for consideration, including
service management, access to a variety of services, and inte-
gration across environments.

Staging and testing


applications in PaaS
The PaaS environment allows for much greater flexibility in the
way that deployment teams create staging areas environ-
ments used to test changes to a private version of an applica-
tion before the new or revised application goes live for their
applications. It can take a lot of time and manual effort on the
part of the IT team to get the staging area set up appropriately.
The staging area needs to completely replicate the databases,
web servers, connections, and other dynamic components of
the application environment or you run the risk of allowing
errors into your live system. All of this can be quickly and easily
handled with PaaS allowing developers to focus more on meeting
customer requirements and less on IT infrastructure issues.

Basically with PaaS, you can take a much more logical and
practical approach to the staging and testing of applications.
As a user of PaaS deployment services, you expect the follow-
ing in your staging environment:

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 4: Using PaaS as a Deployment Platform 35
Full mirror of your live environment for the switch

Rollback to pre-change environment if errors are found

Partition existing cloud resources for phased deployment

and testing within pre-defined limits

How do these PaaS capabilities impact the testing process


prior to rolling out a new version of an application? Consider
the developer who needs to roll out a new version of an online
shopping application for a retailer. She has ten servers run-
ning the existing application. In the past, her approach has
been to take one server offline at a time. This approach intro-
duces operational problems:

A reduction in the amount of resource currently serving



the existing application to be able to introduce the new
version. If the new version causes a change in load or
code path, or servers are already highly utilized, users
may see degradation in service.
As the new application becomes more heavily loaded

with real users, a stress-related issue may arise in pro-
duction that was difficult to test for. So, the rollout pro-
cess may need to be rolled back quickly and the
operational processes for rollback can be at least as
difficult as for rollout.

These operational problems can easily be eliminated with


PaaS. The new version rollout can be handled in a different
way. With PaaS, the developer can create ten new instances
in a completely replicated environment the new instances
have the new application but otherwise are 100 percent like
the old ones. The new requests can all be routed to the new
instances in a controlled manner, and you dont need to can-
nibalize the existing with the live environment.

If an unexpected error occurs, your full existing environ-


ment is in place, so you can guarantee no loss of service.
When youre comfortable with the new application, you can
retire the old systems. In a pay-as-you-go PaaS environment,
this approach is simpler, because traditionally the process
involves meetings, planning, installing, and wiring.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
36 Platform as a Service For Dummies, Special Edition

Advantages of PaaS
for deployment
Many of the advantages of the PaaS model for deployment are
based on the efficient use of computing resources resulting
from the multi-tenant cloud environment. The deployment
team benefits by having much more time to focus on the
specific demands of deploying high-quality applications. The
easy availability of infrastructure in the PaaS model allows
for a more iterative style of deployment, supporting fast itera-
tions, which are a requirement for the delivery of Software as a
Service (SaaS) applications. When you dont have to arrange for
new machines and software stacks ahead of time, the IT staff is
free to think differently about how quickly they can roll out new
versions of applications and meet the needs of the business.

As end-users increasingly consume SaaS, PaaS supports the


need to continuously deliver new features. PaaS makes sure the
infrastructure supports you as you make these changes and
roll them out, allowing you to focus on the application itself.

Some of the key advantages of PaaS are as follows:

Immediate access to pre-configured and optimized run-



time environment: You dont need to tend to the setup
of your environment. This eliminates many time consum-
ing concerns for the deployment staff related to the oper-
ating system, hardware selection and compatibility.
Simplified application deployment process: Dont wait

for IT intervention for the initial deployment deploy
additional versions of the app for preview, testing, or
evaluation without additional IT resources. IT is freed to
focus on other more critical IT issues.
High availability, scalability, firewall, and networking:

These areas are part of the PaaS environment. You dont
need to be concerned about setup and configuration of
these capabilities.
System maintenance: The PaaS provider is responsible for

system maintenance. You dont have to maintain the hard-
ware, operating system, or the complex software stacks
needed to support the application runtime environment.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 4: Using PaaS as a Deployment Platform 37
The ease of use that you get from PaaS can have a downside
depending on your requirements. What is the tradeoff? Your
PaaS provider needs to make some assumptions in order to
provide you with easy access to a pre-integrated runtime envi-
ronment. For example, your environment may include JBoss,
Tomcat, and Java. If you work for a time with the PaaS provid-
ers pre-integrated environment and then your requirements
change, you may be locked-in.

In the case of an Open PaaS (see Chapter 2 for more details


on Open PaaS), your application is typically quite portable,
but you develop a dependency on the operational character-
istics of the particular PaaS provider after all, operational
efficiency is a key reason to use PaaS. There may be an opera-
tional cost to move away from a particular vendors PaaS envi-
ronment. You may want to consider an Open PaaS to minimize
vendor lock-in. Standards are evolving to further help in PaaS
interoperability, and you should be aware of your PaaS ven-
dors commitment to standards.

The Role of Continuous Delivery


Smart IT organizations understand that development and
deployment must be based on a lifecycle process. An applica-
tion isnt developed once and then deployed. The applications
that operate innovative businesses have to evolve. These
changes may be both a consequence of changing business
models as well as changing technology options.

The goal of continuous delivery is to reduce the time to move


from development to production by continually iterating on code
while keeping the product in a high-quality, working state. Then,
as soon as some meaningful piece of new code is written and
tested, its released into the production environment. When the
business provides feedback, including new functions or pointing
out unanticipated issues, changes can be made immediately and
rolled out. The underlying structure and abstractions that are
foundational to PaaS help ensure that applications can be built,
deployed, tested, and managed in a highly iterative manner. With
PaaS you can make the choice to deliver incremental change in a
continuous cycle or to deliver changes in a coordinated release.
Either way you can use PaaS to deliver these changes easier and
faster and for competitive advantage.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
38 Platform as a Service For Dummies, Special Edition

In order to deliver on these advantages and make sure you


get the competitive advantage you expect by moving to PaaS,
your provider should answer the following questions:

How do you integrate continuous integration and the over-



all application lifecycle management across the PaaS?
How will you ensure that my web application can scale?

How will you guarantee that my web application can take
on an unanticipated increased load and still perform?
Whats your solution for auto scaling and high availability?

If one of your machines goes down, how will you ensure

that end-user experience is uninterrupted and remains
consistent?
Whats your plan for disaster recovery? Do you support

running in multiple regions so my application will auto-
matically be supported in an alternative region if my base
region is struck by a disaster?
How easy is it to use my favorite development frame-

works during development, testing, and in production
using the PaaS? The PaaS may provide native support
for some frameworks, but in any case, if not, needs to
make it possible for you to use and make updates to the
frameworks yourself. How do I coordinate updates of
frameworks across multiple applications as both frame-
works and applications evolve?

Understanding PaaS Services


for Deployment
The PaaS provider becomes your first line of defense when it
comes to deployment and operational issues. Most PaaS pro-
viders have a dashboard for visualizing overall systems per-
formance. You can use this tool to monitor whether your PaaS
provider is up or down and is meeting its service level agree-
ments (SLAs). Ideally, in a hybrid environment, you should
look for a dashboard that gives you uniform visibility across
your own resources and those of your PaaS provider.

Some of the most important deployment services are covered


in this section.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 4: Using PaaS as a Deployment Platform 39
Monitoring and notification services
All aspects of the PaaS environment that may impact end-user
performance need to be monitored. Security issues should be
given the utmost attention by your PaaS environment.

Your runtime environment needs as much security and


protection as your development environment to support
customer and suppliers. In order to monitor security, your
PaaS provider (or the underlying IaaS provider) needs to scan
networks, operating systems, and applications in order to
prevent intrusion or denial of service attacks. In addition, you
need to have sufficient insight into the monitoring capabilities
to satisfy audit requirements.

Load balancing and secure


connection services
Your PaaS provider needs to ensure that the load balanc-
ing service adequately supports your end-users regardless
of how they access your application (desktop, mobile). You
want assurance that your end-users are always routed over a
secure channel to a live endpoint.

Data management services


Users of PaaS services need to trust that their provider main-
tains all service level agreements related to scalability and
isolation of their data. Be confident that all requests for larger
or additional instances, as well as any updates to your data,
are isolated and visible only to you. The PaaS needs to pro-
vide you with the ability to share data among your own eco-
system (say, between your own applications) in addition to
supporting isolation of the data from other tenants.

Integrating with Existing


Systems and Services
The reality is that enterprises have substantial investments in
existing services. Therefore, ensure that your PaaS provider

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
40 Platform as a Service For Dummies, Special Edition

makes it easy to integrate services deployed in the PaaS envi-


ronment with services running in your data center. Before
choosing a PaaS vendor, make sure it can support the applica-
tions and services you need to integrate together.

With an application in the cloud, you have many points of


integration:

The application may integrate with a CRM application in



your organization.
The application may integrate with other services in

the cloud.
Enterprises that have invested in designing infrastructure

with a service-oriented approach will be in the best posi-
tion to integrate internal services with cloud services.
Enterprises that have focused on taking existing infra-

structure and wrapping key components so they can be
exposed as services are ready to begin to integrate ser-
vice in a hybrid environment.

In order to make all this happen, the PaaS provider must have
well-documented and well-defined interfaces for you to use.
In other words, at the center of integration capabilities
between applications in the cloud or on-premises are
Application Programming Interfaces (APIs). These APIs,
which are part of the PaaS platform, enable companies to
quickly integrate their services into a wide variety of applica-
tions on a diverse set of platforms.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 5

Ten Steps to Take


toward PaaS
In This Chapter
Assessing your current computing environment
Educating yourself and others on PaaS
Knowing the PaaS requirements
Having the proper team and organization

P art of your journey to leveraging Platform as a Service


(PaaS) requires taking a step back and planning. To think
through your approach to PaaS, we share ten steps that help
you get started.

Step 1: Get a Handle on Your


Current Computing Environment
Before you can plan your future you have to understand your
past and current situations. Ask yourself these questions:

What type of computing environment do you currently



have?
How well does it support your existing business needs,

and how well will it support change?
What business are you in?

Are you in a position to sell services to your customers

and partners?
Do you have a structure that allows you to move quickly?

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
42 Platform as a Service For Dummies, Special Edition

By understanding where you are and whats working, you can


understand what you need for the future.

Step 2: Educate Yourself


on the Value of PaaS
If youre thinking about PaaS, you probably have some experi-
ence with cloud computing. But now youre ready to move to
the next phase with your cloud journey. You want to create new
innovations that help your organization be more competitive.

It is tempting to simply jump in and start buying tools and


technology to use with your Infrastructure as a Service (IaaS)
environment. But before you jump, take a look at these tips:

Educate yourself on your options (check out Chapter 2
for the different kinds of PaaS).
Get familiar with the different vendor offerings for PaaS.

Understand how each platform works and what skills

youll have to learn.

Step 3: Experiment
with the Options
Many companies dont have direct experience with PaaS and
may make decisions without the knowledge necessary to
avoid pitfalls. One of the benefits of the cloud model is that
you can experiment with commercial offerings on the market
without spending cash. Many of the vendors allow developers
to try before they buy. So, take the time to experiment.

For example, some PaaS offerings are tied to a specific


Software as a Service (SaaS) model. You may want to link your
new development efforts to that SaaS offering if that SaaS envi-
ronment is the foundation of the value you offer to customers.
In some situations, you may want to keep PaaS separate from
the SaaS environment. With some experimentation, youll get
a good idea of what it means to use a PaaS environment.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
Chapter 5: Ten Steps to Take toward PaaS 43

Step 4: Figure Out What


Your Requirements Are
Create a set of requirements with consideration for pop-up
concerns:

What language do you prefer to work with?



How much abstraction do you need?

Do you want a platform that automates many of the rou-

tine tasks in both development and deployment?
What type of middleware is already in use and what mid-

dleware services do you need?
How much integration do you need to do with other

public or private environments?

Getting the answers to these questions makes your selection


process a lot easier.

Step 5: Put Together


an Evaluation Team
A PaaS environment can have a dramatic change in how your
organization develops software, so you dont want to make
a decision on your own. A PaaS environment touches many
parts of the business, so put together a team that represents
all the key constituents and stakeholders to include represen-
tatives from development, quality assurance, and operations.

Step 6: Conduct a Pilot Project


Identify a project thats well-defined and can show the develop-
ment and operations team how well PaaS supports the develop-
ment of a business project. You may want to try several PaaS
environments so you can experience different approaches.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.
44 Platform as a Service For Dummies, Special Edition

Step 7: Plan a Well-Designed


Organizational Structure
Technology is only as good as how well the organization is
prepared to use it. Change is difficult and many developers
and operational personnel may be resistant to trying a new
approach. Educate your team on both cloud computing itself
and the benefits of a PaaS environment.

Many IT professionals are concerned that cloud environments


may make their skills and knowledge obsolete. However, PaaS
actually makes IT more effective in supporting the business.

Step 8: Continuously Evaluate


Emerging Standards
Cloud computing as a commercial practice for companies is evolv-
ing, so you should continue to evaluate emerging standards and
best practices. Embrace these approaches to remain competitive.

Step 9: Embrace the Continuum


of the Develop/Deploy Cycle
Successful companies understand that after they develop
and deploy an application through a PaaS environment that
they arent finished. Applications are increasingly becom-
ing dynamic. Cloud-based applications are continually being
updated with the latest innovations.

Step 10: Turn the Experience


into a Strategy Roadmap
Plot out a roadmap for what youre going to put into practice
over the next few years. If you took a peek at any of the steps
before this section, use those steps as the beginning of your
journey in planning. Dont try to plan for ten years. A 3- to 5-year
roadmap helps you construct a meaningful and realistic plan.

These materials are the copyright of John Wiley & Sons, Inc. and any
dissemination, distribution, or unauthorized use is strictly prohibited.