u3Zgz
u3Zgz
u3Zgz
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Platform as<br />
a Service<br />
FOR<br />
‰<br />
DUMmIES<br />
SPECIAL EDITION<br />
By Judith Hurwitz,<br />
Marcia Kaufman, and Fern Halper
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Platform as a Service For Dummies, ® Special Edition<br />
Published by <br />
John Wiley & Sons, Inc. <br />
111 River Street <br />
Hoboken, NJ 07030-5774 <br />
www.wiley.com<br />
Copyright © 2012 by John Wiley & Sons, Inc., Hoboken, NJ<br />
Published by John Wiley & Sons, Inc., Hoboken, NJ<br />
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form<br />
or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as<br />
permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without the prior written<br />
permission of the Publisher. Requests to the Publisher for permission should be addressed to the<br />
Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011,<br />
fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.Trademarks: Wiley, the<br />
Wiley logo, For Dummies, the Dummies Man logo, A Reference for the Rest of Us!, The Dummies Way,<br />
Dummies.com, Making Everything Easier, and related trade dress are trademarks or registered trademarks<br />
of John Wiley & Sons, Inc. and/or its affiliates in the United States and other countries, and may<br />
not be used without written permission. CloudBees and the CloudBees logo are registered trademarks<br />
of CloudBees. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc.,<br />
is not associated with any product or vendor mentioned in this book.<br />
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE<br />
NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR<br />
COMPLETENESS OF THE CONTENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL<br />
WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A<br />
PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR<br />
PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE<br />
SUITABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE UNDERSTANDING THAT<br />
THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR OTHER<br />
PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A<br />
COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR<br />
THE AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN<br />
ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A<br />
POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR<br />
THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAY<br />
PROVIDE OR RECOMMENDATIONS IT MAY MAKE. FURTHER, READERS SHOULD BE AWARE<br />
THAT INTERNET WEBSITES LISTED IN THIS WORK MAY HAVE CHANGED OR DISAPPEARED<br />
BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT IS READ.<br />
For general information on our other products and services, please contact our Business<br />
Development Department in the U.S. at 317-572-3205. For details on how to create a custom For<br />
Dummies book for your business or organization, contact info@dummies.biz. For information<br />
about licensing the For Dummies brand for products or services, contact<br />
BrandedRights&Licenses@Wiley.com.<br />
ISBN: 978-1-118-23499-0<br />
Manufactured in the United States of America<br />
10 9 8 7 6 5 4 3 2 1
Table of Contents<br />
Introduction ...................................... 1<br />
About This Book......................................................................... 1<br />
Foolish Assumptions.................................................................. 2<br />
How This Book Is Organized..................................................... 2<br />
Icons Used in This Book............................................................. 3<br />
Chapter 1: Setting the Fundamentals of the Cloud ..... 5<br />
Defining Cloud Computing......................................................... 5<br />
Defining Cloud Computing Models........................................... 7<br />
Deployment Models for Cloud Computing............................ 10<br />
Chapter 2: Getting into Platform as a Service. ....... 13<br />
Traditional Development and Deployment Challenges....... 13<br />
What Changes with PaaS........................................................ 15<br />
PaaS as Middleware in the Cloud............................................ 18<br />
Different Types of PaaS............................................................ 19<br />
Seeing the Business Value of Using a PaaS............................ 21<br />
Buying versus Building: The Business Imperative............... 22<br />
Chapter 3: Looking at PaaS as a Development Platform... 23<br />
Developing Applications in the Cloud.................................... 24<br />
The Role of Continuous Integration....................................... 25<br />
The Role of Application Development Services.................... 26<br />
PaaS Services for Development............................................... 28<br />
Chapter 4: Using PaaS as a Deployment Platform .... 33<br />
Deploying Applications to the Cloud..................................... 33<br />
The Role of Continuous Delivery............................................ 37<br />
Understanding PaaS Services for Deployment...................... 38<br />
Integrating with Existing Systems and Services.................... 39<br />
Chapter 5: Ten Steps to Take toward PaaS .......... 41<br />
Step 1: Get a Handle on Your Current Computing<br />
Environment.......................................................................... 41<br />
Step 2: Educate Yourself on the Value of PaaS..................... 42<br />
Step 3: Experiment with the Options...................................... 42<br />
Step 4: Figure Out What Your Requirements Are................. 43<br />
Step 5: Put Together an Evaluation Team.............................. 43<br />
Step 6: Conduct a Pilot Project............................................... 43<br />
Step 7: Plan a Well-Designed Organizational Structure........ 44<br />
Step 8: Continuously Evaluate Emerging Standards............. 44<br />
Step 9: Embrace the Continuum of the Develop/<br />
Deploy Cycle.......................................................................... 44<br />
Step 10: Turn the Experience into a Strategy Roadmap...... 44<br />
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Publisher’s Acknowledgments<br />
We’re proud of this book and of the people who worked on it. For details on how to<br />
create a custom For Dummies book for your business or organization, contact info@<br />
dummies.biz. For details on licensing the For Dummies brand for products or<br />
services, contact BrandedRights&Licenses@Wiley.com.<br />
Some of the people who helped bring this book to market include the following:<br />
Acquisitions, Editorial, and Media<br />
Development<br />
Project Editor: Carrie A. Burchfield<br />
Editorial Manager: Rev Mengle<br />
Sr. Acquisitions Editor: Katie Feltman<br />
Business Development Representative:<br />
Sue Blessing<br />
Custom Publishing Project Specialist:<br />
Michael Sullivan<br />
Composition Services<br />
Sr. Project Coordinator: Kristie Rees<br />
Layout and Graphics: Lavonne Roberts,<br />
Laura Westhuis<br />
Proofreader: Jessica Kramer<br />
Publishing and Editorial for Technology Dummies<br />
Richard Swadley, Vice President and Executive Group Publisher<br />
Andy Cummings, Vice President and Publisher<br />
Mary Bednarek, Executive Director, Acquisitions<br />
Mary C. Corder, Editorial Director<br />
Publishing and Editorial for Consumer Dummies<br />
Kathleen Nebenhaus, Vice President and Executive Publisher<br />
Composition Services<br />
Debbie Stailey, Director of Composition Services<br />
Business Development<br />
Lisa Coleman, Director, New Market and Brand Development<br />
About the Authors<br />
Judith Hurwitz is a technology strategist, author, and thought leader and President of<br />
Hurwitz & Associates, a business technology consulting and research firm focused on<br />
the business benefits from technology investments. Marcia Kaufman, founding partner<br />
and COO of Hurwitz & Associates, has 20+ years in business strategy and industry<br />
research, working extensively in the financial services industry. Dr. Fern Halper, a<br />
partner at Hurwitz & Associates, has over 20 years of experience in data analysis, business<br />
and predictive analytics, enterprise computing, and strategy development.<br />
Together, Judith, Marcia, and Fern are coauthors of numerous For Dummies books.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Introduction<br />
Welcome to Platform as a Service For Dummies, Special<br />
Edition. Cloud computing is becoming an integral part<br />
of many companies’ business and technology strategies. The<br />
implication of the adoption of the cloud means that the IT<br />
organization is looking to leverage the cloud as a mechanism<br />
to build, deploy, and manage applications that live in the<br />
cloud in the form of Platform as a Service (PaaS).<br />
PaaS provides value within your organization to different<br />
constituents:<br />
✓ Business leaders: PaaS means that you can accelerate<br />
the delivery of new innovative applications without<br />
investing additional funds. You can experiment easily<br />
with innovative ideas to support strategic business<br />
initiatives without impacting your capital budget.<br />
✓ IT leaders: PaaS offers a well-architected solution that<br />
brings together all elements required to develop, deploy,<br />
and manage applications that are designed to run in a<br />
variety of delivery models, including public, private, or<br />
hybrid cloud models. The benefit for IT development and<br />
operations management is clear — with PaaS, IT is armed<br />
with a consistent platform that avoids some of the errors<br />
and inconsistencies that plague traditional approaches.<br />
About This Book<br />
This book gives you insights into what it means to leverage<br />
a consistent and flexible development and deployment<br />
approach in the cloud. You also discover elements of PaaS<br />
and how it provides a more agile development and deployment<br />
environment. This book helps business and technical<br />
leaders understand PaaS in context with the overall cloud<br />
model of computing.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
2<br />
Platform as a Service For Dummies, Special Edition<br />
Foolish Assumptions<br />
The information on these pages is useful to many people, but<br />
we have to admit that we did make a few assumptions about<br />
who we think you are:<br />
✓ You’re already using various forms of cloud computing<br />
and are planning a long-term strategy to move more of<br />
your development and deployment of applications to the<br />
cloud. You understand the benefits of using all kinds of<br />
flexible cloud computing models and are ready to move<br />
forward with a development and deployment platform<br />
that gives your organization a competitive advantage.<br />
✓ You’re a business leader who wants IT resources to be a<br />
utility that’s optimized to leverage what you’ve already<br />
paid for. You want IT to serve your business needs — to<br />
execute your strategies on your timetable — and to be<br />
your partner in innovating for the future.<br />
✓ You’re an IT leader who knows a lot about technology<br />
but aren’t sure precisely how PaaS works. You need to<br />
understand how PaaS changes IT and what you need to<br />
do to support the business with cloud computing as an<br />
important enabler.<br />
How This Book Is Organized<br />
This book isn’t intended to be an exhaustive technical manual<br />
on implementing and managing cloud computing. Instead, it<br />
gives you a taste of the concepts and approaches you need to<br />
consider when embarking on your journey to PaaS.<br />
We’ve organized this book into five chapters:<br />
✓ Chapter 1 gives you an overview of the fundamentals of<br />
cloud computing, including Infrastructure as a Service<br />
(IaaS), Software as a Service (SaaS), and PaaS.<br />
✓ Chapter 2 provides you with an understanding of the way<br />
PaaS helps address IT challenges, and it lays out the different<br />
approaches of PaaS and how it helps streamline<br />
development and IT operations.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Introduction 3<br />
✓ Chapter 3 delves into PaaS as a development platform.<br />
The chapter provides an overview of PaaS services for<br />
development and examines how companies can use these<br />
services to improve the quality of software development.<br />
✓ Chapter 4 explains the value of PaaS as a deployment<br />
platform with an overview on the PaaS services for<br />
deployment and the questions you should be asking<br />
potential providers.<br />
✓ Chapter 5 gives you a roadmap for getting started on<br />
your journey to PaaS.<br />
Icons Used in This Book<br />
The following icons are used to point out important information<br />
throughout the book:<br />
Tips help identify information that needs special attention.<br />
Pay attention to these common pitfalls of managing your<br />
cloud environment.<br />
This icon highlights important information that you should<br />
remember.<br />
This icon contains tidbits for the more technically inclined.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
4<br />
Platform as a Service For Dummies, Special Edition
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 1<br />
Setting the Fundamentals<br />
of the Cloud<br />
In This Chapter<br />
▶ Providing an overview of cloud computing and their models<br />
▶ Diving into the implementation strategies for cloud computing<br />
Cloud computing is emerging as one of the most important<br />
transformational trends in business and computing<br />
of the decade. You’re witnessing the beginning of a shift from<br />
an era where enterprises assume that they’ll own a complete<br />
infrastructure to an era where IT is designed as a set<br />
of services that are consumed by developers, partners, and<br />
customers. Cloud computing allows companies to respond to<br />
business initiatives more quickly, often at a much lower cost,<br />
and without the complexities associated with the computing<br />
models that have been in place for decades. With cloud<br />
computing, you can also innovate and transform IT into a set<br />
of flexible services that enable a more agile approach than is<br />
possible with traditional siloed computing models.<br />
In this chapter, we provide an overview of what cloud computing<br />
is and how it can help businesses to gain agility, flexibility,<br />
and innovation without massive capital expenditure.<br />
Defining Cloud Computing<br />
Cloud computing is a method of providing a set of shared<br />
computing resources that include applications, software,<br />
computing, storage, networking, development and deployment<br />
platforms, and business process. Cloud computing turns
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
6<br />
Platform as a Service For Dummies, Special Edition<br />
traditionally siloed computing assets into a shared pool of<br />
resources that are based on an underlying Internet foundation.<br />
Cloud computing makes these resources easier to use by<br />
supporting a self-service model so resources can be acquired<br />
or provisioned based on need or assigned business rules.<br />
At the same time, a business can use just the resources it<br />
needs to complete a task. After that task is completed, those<br />
resources can be returned to the pool.<br />
How does this work Some foundational capabilities are<br />
required to support this computing model, including the<br />
following characteristics:<br />
✓ Self-service provisioning and automatic de-provisioning:<br />
Provisioning technology provides an automated way for<br />
users to add and subtract services based on need and<br />
business requirements.<br />
✓ Elasticity and the ability to scale up and down: With<br />
elasticity, the user is able to acquire more resources in an<br />
on demand manner, for a small duration and pays for the<br />
capacity or capability they need. When those resources are<br />
no longer needed, the user is able to return that capacity.<br />
✓ Resource pooling: Cloud architectures enable the efficient<br />
creation of groups of shared resources that make<br />
the cloud economically viable.<br />
✓ Billing and metering of service usage: Because customers<br />
pay only for the resources they purchase or acquire,<br />
cloud computing environments include a way to monitor<br />
and measure usage.<br />
Equally important is that the cloud provides a new economic<br />
model of computing. Instead of purchasing, managing, and<br />
maintaining a software and server environment, a business is<br />
able to purchase computing on a situational basis, avoiding<br />
capital expenditures. If a company has already invested in an<br />
internal computing environment that best serves business<br />
requirements, portions of that environment can be transformed<br />
into what’s called a private cloud environment with<br />
the same self-service and service management characteristics<br />
as what’s called a public cloud service.<br />
While in both cases the cloud provides elasticity that allows<br />
the pool of resources to expand or contract based on need,<br />
some key differences still remain:
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 1: Setting the Fundamentals of the Cloud 7<br />
✓ A public cloud makes an unlimited pool of resources,<br />
such as applications and storage, available to the general<br />
public over the Internet. Public cloud services may be<br />
free or offered on a pay-per-usage model.<br />
✓ A private cloud is more constrained to the size of the<br />
internal computing environment constructed by the company<br />
and may have to be set up, managed, and administered<br />
by the company itself. Access to a private cloud is<br />
restricted to those users who are granted permission.<br />
One important factor with these services is that the IT organization<br />
offloads the responsibility for maintaining the application or<br />
service. The public cloud provider takes over that responsibility.<br />
In addition, the organization can add services when they’re<br />
needed. This approach saves time, money, and effort.<br />
Defining Cloud Computing Models<br />
Your understanding of the benefits of cloud computing must<br />
begin with an understanding of the foundational services. The<br />
term service is defined as a task that has been packaged so it<br />
can be automated and delivered to customers in a consistent<br />
and repeatable manner. Any cloud service has a set of consistent<br />
characteristics: a customer can go to the self-service interface<br />
and add more compute, middleware, or database services<br />
or another application. When that service is no longer needed,<br />
its use is discontinued and no further charge is assessed. Three<br />
fundamental layers of cloud services exist: IaaS, SaaS, and PaaS.<br />
Getting straight with IaaS<br />
Infrastructure as a Service (IaaS) is one of the most straightforward<br />
services of the cloud computing services. IaaS is the<br />
delivery of compute services including servers, networking,<br />
and storage, based on a rental model. IaaS has to be either a<br />
public or a private service. This differs from traditional hosting<br />
models because a service can be acquired for a set time period.<br />
In other words, the consumer of the service is charged only for<br />
that usage instead of having to sign a long-term contract.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
8<br />
Platform as a Service For Dummies, Special Edition<br />
Understanding SaaS<br />
Software as a Service (SaaS) includes purpose-built business<br />
applications that are offered in the cloud. Hundreds of different<br />
types of services exist, ranging from Customer Relationship<br />
Management (CRM) systems to payment applications.<br />
What are the characteristics of a SaaS environment A SaaS<br />
platform is generalized enough so it’s useful to a wide variety<br />
of customers. Unlike applications that a company implements<br />
internally, a SaaS environment handles all the development and<br />
deployment details for the customer. The IT organization doesn’t<br />
have to handle operating system, database, software, or application<br />
version upgrades. This complexity is handled by the vendor.<br />
Therefore, the SaaS vendor includes the IaaS as well as the<br />
Platform as a Service (PaaS) as part of the environment.<br />
Many types of applications are available in the SaaS model.<br />
Typical SaaS applications include the following:<br />
✓ Accounting<br />
✓ Collaboration<br />
✓ Project management<br />
✓ Testing<br />
✓ Analytics<br />
✓ Content management<br />
✓ Internet marketing<br />
✓ Risk management<br />
✓ CRM<br />
What doesn’t work as SaaS A specialized one-of-a-kind application<br />
that supports the needs of a few users isn’t economically<br />
viable as a SaaS environment. Because SaaS vendors<br />
typically sell based on a monthly or yearly rental model, their<br />
products must be easy to use and easy for the end customer<br />
to manage. A SaaS application needs be designed in a modular,<br />
service-oriented manner.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 1: Setting the Fundamentals of the Cloud 9<br />
Expanding into PaaS<br />
Not every service needs is available as a SaaS (see the preceding<br />
section). Sometimes the development organization has<br />
to build custom solutions to meet business demand. While<br />
developers could use an IaaS platform (see the section earlier<br />
in this chapter, “Getting straight with IaaS”) to create such an<br />
application, the approach isn’t very productive. Developers are<br />
responsible for bringing their own middleware and lifecycle<br />
tools to the platform; setting up the operating systems, middleware,<br />
and routing; and maintaining and patching those custom<br />
environments. PaaS has been developed to solve the problem<br />
of having to deal with so much complexity. PaaS is an integrated<br />
environment that supports the development, running,<br />
and management of cloud-based applications.<br />
PaaS providers create a managed environment that brings<br />
together integrated middleware and development services<br />
to support development organizations. These platforms<br />
create an abstracted environment that supports the creation,<br />
deployment, and management of a cloud environment.<br />
PaaS has the following things going for it:<br />
✓ PaaS is an entire infrastructure packaged so it can be<br />
used to design, implement, and deploy applications and<br />
services in a public or private cloud environment.<br />
✓ PaaS enables an organization to leverage key middleware<br />
services without having to deal with the complexities of<br />
managing individual hardware and software elements.<br />
✓ PaaS requires a complete stack of development tools that<br />
are accessible via a web browser (or any specialized tool,<br />
such as an IDE) in a self-service manner.<br />
The development and operations organizations now have a<br />
well-orchestrated platform that supports a consistent lifecycle<br />
approach by keeping track of the components required to track<br />
software configurations and versions. This approach helps organizations<br />
work consistently to manage the development and<br />
deployment process. In order to provide this level of abstraction,<br />
a number of components have to be included in a PaaS platform:
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
10<br />
Platform as a Service For Dummies, Special Edition<br />
✓ Application development and execution services<br />
✓ Integrated lifecycle services<br />
✓ Workload management services<br />
✓ Data management services<br />
Deployment Models for<br />
Cloud Computing<br />
Whether you’re interested in IaaS, SaaS, or PaaS, you need to<br />
understand how you may use one of these services to meet<br />
your company’s business requirements. The three different<br />
kinds of deployment models are public, private, or hybrid<br />
(a combination of the two). What separates the three cloud<br />
models is who actually owns, hosts, and operates the cloud<br />
resources. Location is also another big factor. What kind of<br />
deployment makes the most sense for you depends on factors<br />
ranging from industry regulations to your current investments<br />
in legacy systems. In this section, we detail each of these<br />
cloud models so you can get a better handle on your choices.<br />
The public cloud<br />
When people started talking about the notion of the Cloud a<br />
number of years ago, most were referring to what’s now called<br />
a public cloud. The public cloud is actually a set of servers, networks,<br />
storage, services, and interfaces owned and operated by<br />
a third party for use by other companies that are accessible from<br />
anywhere via the public Internet. Also, because of economies of<br />
scale, cloud-managed service providers can staff deep IT skills in<br />
specialty areas such as security so you don’t have to.<br />
For example, a company may decide to use a public cloud service<br />
for a workload, such as electronic mail (e-mail). E-mail is<br />
a good candidate for a public service because it’s a relatively<br />
generic application with a well-understood workload pattern.<br />
Companies that specialize in public cloud e-mail services can<br />
optimize their hardware and software environment to support<br />
this type of workload and provide different levels of security —<br />
for a price. In reality, these companies can provide e-mail services<br />
for a fraction of the price that it costs to run and support<br />
an internal mail service.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 1: Setting the Fundamentals of the Cloud 11<br />
What enables the cloud provider economies of scale is a concept<br />
known as multi-tenancy, which means that different companies<br />
share all or some of the same underlying resources. One of the<br />
benefits of this platform is that on-boarding a new customer can<br />
be done in a cost-effective manner because the cloud doesn’t<br />
provide a fixed set of resources just for that customer.<br />
Of course e-mail isn’t the only service to be put into the cloud.<br />
Other examples include video services, human resources, and<br />
backup services — to name a few.<br />
Also, development, testing or deployment organizations may<br />
have periods of high demand followed by less active periods.<br />
In addition, these teams are often located across geographies.<br />
Having an optimized platform that can be scaled up or down<br />
based on demand is a logical economic model for many organizations.<br />
Running application development and testing in<br />
the cloud can be less expensive than buying and configuring<br />
servers. As long as the provider is trustworthy, companies are<br />
seeing the benefit of using this type of public cloud service.<br />
In the public cloud model, the end-user really doesn’t have to<br />
know anything about the underlying technology. The cloud<br />
provider is in charge of all the development and maintenance<br />
of the environment. If a problem exists, the cloud provider is<br />
responsible for fixing the problem.<br />
What’s a private cloud<br />
In some situations, a public platform (see the preceding section)<br />
may not be the most appropriate environment for an<br />
organization. The company may be part of a highly-regulated<br />
industry and needs to prove that its IT can comply with regulations.<br />
While companies like the freedom of the public cloud,<br />
they may need more direct control for a particular portion of<br />
their IT environments. The company may need a specialized<br />
custom security service and already have hardware and a<br />
hosting facility they want to amortize ownership of their infrastructure<br />
and solution, or, more simply utilize data and applications<br />
within an existing datacenter. Those companies could<br />
adopt what’s called a private cloud.<br />
What makes a private cloud different than a data center that<br />
includes some server virtualization Take a look at several<br />
key differences:
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
12<br />
Platform as a Service For Dummies, Special Edition<br />
✓ A private cloud includes automation of consistent processes<br />
and a self-service interface that allows internal<br />
IT operations and developers to allocate IT resources<br />
on demand.<br />
✓ The private cloud offers internal IT resources in a service<br />
delivery model.<br />
✓ The private cloud is designed to add automation to existing<br />
data and applications within a data center.<br />
✓ The private cloud manages pools of resources, including<br />
everything from compute capability to storage, analytics,<br />
process management, and middleware.<br />
✓ A private cloud implements custom security and governance<br />
capabilities specially designed for a company’s<br />
requirements.<br />
Understanding the hybrid cloud<br />
Most organizations that adopt a cloud-computing strategy<br />
discover that a hybrid approach fits well into their IT strategy.<br />
A hybrid cloud is an environment that utilizes both private<br />
and public cloud services to meet a business need. This<br />
environment allows a customer to make use of a combination<br />
of resources at the same time through a consistent set of services.<br />
For example, a business process may copy the results<br />
of a business transaction from a private environment into a<br />
public service, such as a sales automation SaaS environment.<br />
Through automation, this process can be executed according<br />
to best practices and in adherence with compliance rules. In<br />
some situations, a process may be established that requires<br />
data from a SaaS application to be physically stored in a private<br />
cloud within a particular country.<br />
The hybrid cloud is a single service that’s deployment agnostic<br />
depending on the needs of the business. Well-designed management<br />
tools need to be in place to ensure that the hybrid environment<br />
works well to support the business objectives.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 2<br />
Getting into Platform<br />
as a Service<br />
In This Chapter<br />
▶ Dealing with the challenges of development and deployment<br />
▶ Looking into the changes with PaaS<br />
▶ Putting PaaS and middleware together in the cloud<br />
▶ Understanding the benefits of PaaS<br />
In Chapter 1, we provided an overview of what the components<br />
and approaches to cloud computing mean to your<br />
organization. In this chapter, we mention the challenges of<br />
traditional software development and deployment by using a<br />
fictitious company called HealthFirst. Through this example,<br />
we hope you see how a business — possibly like yours —<br />
deals with Platform as a Service (PaaS) challenges.<br />
We also discuss the opportunities for saving money, improving<br />
productivity, and the ability to react to changes quickly by<br />
using a PaaS. You see the benefits in leveraging cloud-based<br />
development and deployment platforms by utilizing a PaaS<br />
model. You look at the different approaches to PaaS so you<br />
can determine which approach serves your organization best.<br />
Traditional Development and<br />
Deployment Challenges<br />
HealthFirst, a fictitious company that provides healthcare services<br />
to hospitals and group medical practices, is a good example<br />
to illustrate the challenges with traditional development
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
14<br />
Platform as a Service For Dummies, Special Edition<br />
and deployment of PaaS. The company distinguishes itself from<br />
other health services companies by providing more efficient<br />
ways to manage patient records and billing, improving the<br />
quality of patient care, and increasing community awareness of<br />
health and wellness services. The company depends on sophisticated<br />
and differentiated software applications to continue to<br />
thrive in an increasingly complicated market. As the business<br />
continues to grow, it faces four kinds of challenges.<br />
Collaboration and coordination<br />
across a growing company<br />
HealthFirst is a fast-growing company and customers are pressing<br />
for more services, including a Software as a Service (SaaS)<br />
delivery model. To meet the changing needs, HealthFirst began<br />
expanding its development organization, which was already<br />
spread across multiple locations in many different time zones.<br />
Collaboration became difficult with the following problems:<br />
✓ Coordinating the software development across regions<br />
✓ Determining what was working<br />
✓ Reporting the state of development across the organization<br />
or even across a complex project<br />
With these additional issues, inevitably, mistakes crept into<br />
the process.<br />
Managing a fast-paced<br />
development environment<br />
In order to respond more quickly to rapidly changing business<br />
application needs, HealthFirst also moved to an agile (for<br />
example, iterative and incremental) development and deployment<br />
process. This change meant that management began<br />
implementing a process that strived for a continuous delivery<br />
of new features and functionality.<br />
This transition was required because the traditional development<br />
process that accumulated a large number of code<br />
changes into periodic builds was too time consuming and<br />
error prone to support the “always working” software model
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 2: Getting into Platform as a Service 15<br />
that it needed. The company realized it needed a more automated<br />
environment to support its new way of doing things.<br />
Middleware complexity<br />
HealthFirst had an additional underlying issue with middleware,<br />
development, and deployment tools that were complicated<br />
to learn, implement, maintain, and use. (For more info<br />
on middleware, see the section “PaaS as Middleware in the<br />
Cloud” later in this chapter.)<br />
For example, the development organization purchased more<br />
than 50 different tools over the years, which resulted in a<br />
complex and fragile stack of software tools and platforms<br />
that required skilled individuals to maintain and manage. If<br />
a developer with deep knowledge of a tool or scripts left the<br />
company, the project often ran into problems. Because of the<br />
complexity of the overall development process, software quality<br />
became unpredictable.<br />
Obtaining compute resources<br />
As projects grew in size and complexity, HealthFirst’s development<br />
team often ran out of compute or storage resources.<br />
Getting machines and configurations to support (often crossplatform)<br />
development and testing was difficult. Teams lost<br />
weeks while waiting for the centralized procurement organization<br />
to allocate the systems they needed to complete a project.<br />
Because of this procurement bottleneck, developers<br />
tried to hold on to resources so they always had the<br />
resources they needed.<br />
What Changes with PaaS<br />
PaaS helps reduce the complexity of the development process<br />
by delivering and managing hosted software services used by<br />
developers, which eliminates the installation and operational<br />
burden from developers. PaaS accelerates the development<br />
and delivery process because developers use the same services<br />
to develop against that their end-users interact with in<br />
production. By encompassing both development and runtime<br />
services, PaaS can streamline the application lifecycle.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
16<br />
Platform as a Service For Dummies, Special Edition<br />
In this section, we describe just how PaaS can help, including<br />
standardizing middleware, easing provisioning, working<br />
across the organization, and improving control.<br />
Reducing complexity with a PaaS<br />
The complexity of many IT environments results in highlyskilled<br />
developers spending too much time working on manual<br />
tasks and solving operational problems. In a PaaS environment,<br />
capabilities ranging from compilers, development tools, data<br />
management, security, and middleware are abstracted (the<br />
concept is separated from the implementation instance).<br />
In most PaaS environments, infrastructure details are hidden<br />
from the developer. Instead, the PaaS environment provides<br />
an interface that exposes typical features and use cases<br />
developers are primarily concerned with, such as versioning<br />
and roll-backing of applications — not servers — pushing an<br />
application from development to production in simple steps<br />
or implementing high availability for a given application.<br />
A well-designed PaaS environment can automate routine tasks<br />
and help improve collaboration between development and<br />
operations teams through the ways in this section.<br />
Standardizing middleware infrastructure services<br />
PaaS is hosted middleware (for example, software that connects<br />
application components) that sits on top of IaaS. You<br />
can think about the role of Infrastructure as a Service (IaaS)<br />
within the environment as doing the work to allocate memory,<br />
disk, and the like. In contrast, a PaaS platform sitting on<br />
top of IaaS, provides seamless integration with middleware,<br />
such as databases and distributed caching technologies,<br />
to ensure zero data and transaction loss in the face of truly<br />
elastic underlying IaaS. SaaS sits on top of the combination of<br />
IaaS and PaaS. This layering helps to reduce complexity and<br />
ensure consistency and management of resources.<br />
Ease of service provisioning<br />
A PaaS provides easy provisioning of development services,<br />
including build, test, and repository services to help eliminate<br />
bottlenecks associated with non-standard environments,<br />
which in turn improves efficiency, reduces errors, and ensures
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 2: Getting into Platform as a Service 17<br />
consistency in the management of the development lifecycle.<br />
Additionally, PaaS provides ease of provisioning in runtime<br />
services, including application runtime containers for staging,<br />
running, and scaling applications.<br />
Minimizing friction with IT<br />
Traditionally, when a new application server or other middleware<br />
was introduced into an organization, IT needed to<br />
make sure that the middleware could access other services<br />
that were part of the application. Development and Quality<br />
Assurance (QA) had to wait for IT to help them with this —<br />
sometimes causing intradepartmental friction.<br />
With PaaS, conflict is minimized because all middleware is<br />
easier to manage and connect.<br />
Improving the control over IT resources<br />
In PaaS, resources can be acquired from a pool of shared<br />
software assets by using a self-service process. When the<br />
resource is no longer needed by the developer, it can be automatically<br />
returned. This empowers development and QA to<br />
drive processes and reduce demands on IT.<br />
Improving collaboration<br />
PaaS changes the way that development and operations interact<br />
with resources. Instead of traditional application development<br />
being hand offs, with PaaS, the state of software becomes<br />
more visible to the organization. For instance, a developer may<br />
say that a module of an application is complete, but he hasn’t<br />
tested it on all Web browsers. With PaaS, the team can see<br />
whether software is working, broken, ready to be released to<br />
manufacturing, staged, and so on across the entire application<br />
lifecycle. You can buy this functionality, but it’s native to PaaS.<br />
To leverage many of the benefits of PaaS, you may need to<br />
make a tradeoff. For example, if you want to update your<br />
application and choose to go with tools that aren’t part of the<br />
prescribed environment, the process can still be done, but<br />
you lose some of the efficiency of working within a more controlled<br />
environment. If you break the mold and do it outside<br />
the framework, you need to do it manually. In other words,<br />
you can be locked into the vendor’s platform tools.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
18<br />
Platform as a Service For Dummies, Special Edition<br />
PaaS and the application lifecycle<br />
In PaaS, the application lifecycle from development through<br />
testing, staging, and deployment is baked into the platform.<br />
The development and runtime platforms are provided as services,<br />
so the formal lifecycle of an application is more directly<br />
supported. For example, developers and test teams interact<br />
with the same hosted application and runtime as the operations<br />
people use.<br />
One of the impacts of having an abstracted platform is that<br />
it supports development to deployment to operation procedures<br />
that today are mostly manual, which helps support agile<br />
development (discussed in more detail in Chapters 3 and 4).<br />
Removing the manual processes enables faster development<br />
release cycles, which in turn can support more rigorous methods<br />
around quality and continuous integration.<br />
PaaS as Middleware<br />
in the Cloud<br />
Middleware is the glue that helps connect software components<br />
and is a critical method of delivering standardized<br />
application services, but it can be complicated. When middleware<br />
services are hosted, like they are in a PaaS, they can<br />
provide a development team with the ability to pre-determine<br />
how the organization wants connectivity to happen and how<br />
integration between services is handled. IT management can<br />
then set the rules upfront about what types of services to use<br />
under specific business conditions.<br />
For example, an organization may want to mandate the use of<br />
a specific database for an application because of the need to<br />
have sufficient transaction speed. Because this abstraction<br />
of middleware is service based, its Application Programming<br />
Interfaces (APIs) are typically well defined, so managing the<br />
integration is simplified.<br />
You used to have to install resources and interact with them<br />
on your machines. Now, those services are managed and<br />
made available to you with PaaS. You’ll see some key differences<br />
between PaaS and traditional middleware:
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 2: Getting into Platform as a Service 19<br />
✓ Resources aren’t delivered as software in PaaS. Instead,<br />
they’re hosted, always-on, on-demand, served up<br />
as services.<br />
✓ The scope of where development and delivery can take<br />
place in a PaaS is the cloud instead of a single machine<br />
or process.<br />
✓ Resources in the data center, now served up by IaaS,<br />
are managed by the PaaS for the purposes of supporting<br />
applications. It’s not just the machine supporting the<br />
application. In fact, Cloud IaaS means infrastructure is<br />
available programmatically, so middleware can now be<br />
expanded to take direct advantage of it.<br />
Without infrastructure constraints, you can deliver and<br />
update software continuously. This process is harder in<br />
older-generation middleware with hardcoded endpoints.<br />
✓ Middleware and services have no installation and configuration<br />
because they’re an integral part of the PaaS platform.<br />
Different Types of PaaS<br />
All PaaS environments aren’t the same. You need to consider<br />
several different approaches to PaaS.<br />
PaaS anchored to a<br />
SaaS environment<br />
Some SaaS platforms are becoming core business services for<br />
many companies. Offerings, such as Workday, SugarCRM, and<br />
Salesforce.com, are replacing traditional on-premises systems<br />
of record. Some of these SaaS vendors focus on expanding<br />
their offerings to the platform level. Salesforce.com, for example,<br />
provides a PaaS platform called Force.com that exposes<br />
the native Salesforce.com APIs, development tools, and middleware<br />
so it becomes a platform that software developers<br />
can use to build new applications on top of.<br />
This approach can be sensible if a company wishes to extend<br />
the capabilities of their Salesforce.com (or other kinds of<br />
SaaS) applications.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
20<br />
Platform as a Service For Dummies, Special Edition<br />
PaaS tied to an operating<br />
environment<br />
When you tie a PaaS to an operating environment, you can<br />
perform certain actions easier. This approach makes sense if<br />
the customer is certain to use only a specific IaaS provider to<br />
run its applications and doesn’t require the depth of a dedicated<br />
PaaS provider.<br />
Companies like Microsoft with its Azure platform and Amazon<br />
with Beanstalk are offering their APIs and abstractions so<br />
developers can build or deploy applications with this support.<br />
For example, the Windows Azure platform is based on<br />
Windows and SQL abstractions. Microsoft has abstracted<br />
a set of development tools, management, and services. For<br />
customers with deep expertise with .NET, the movement<br />
to the Azure based PaaS is straightforward. The developer,<br />
in essence, ties the development and deployment to the<br />
Microsoft infrastructure.<br />
Amazon.com offers its own PaaS platform focused on deployment.<br />
The PaaS environment, AWS Elastic Beanstalk, is<br />
intended to help customers who’ve built applications on<br />
Amazon’s cloud to more easily deploy and manage applications<br />
within the Amazon AWS cloud.<br />
Open platform-based<br />
PaaS environments<br />
Open platform-based PaaS is intended to promote an open process<br />
and environment that isn’t tied to a single cloud implementation.<br />
Several open platform initiatives are underway:<br />
✓ Cloud Foundry is a VMware-led project that’s a PaaS<br />
environment for building, deploying, and operating<br />
cloud applications.<br />
✓ OpenShift is a Red Hat initiative.<br />
✓ CloudBees is a Java PaaS platform that’s independent of<br />
the underlying platform and is intended to allow developers<br />
to cover the full application “build, test, run, manage”<br />
lifecycle, either on a public or hybrid cloud.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 2: Getting into Platform as a Service 21<br />
Seeing the Business Value<br />
of Using a PaaS<br />
You can enjoy a number of business benefits from using a<br />
PaaS. This section includes those perks.<br />
Reducing costs<br />
PaaS can certainly reduce costs. And in order to evaluate the<br />
economic impact of PaaS, take a look at the costs that are<br />
directly and indirectly related to the application or type of workload<br />
you want to move to the cloud. These costs may include<br />
✓ Server and storage overhead: Unused computing capacity<br />
requires power and cooling to run as well as demanding<br />
floor space that’s often a huge expense for companies.<br />
✓ Network: Network bandwidth in data centers isn’t unlimited.<br />
Many companies find moving commodity services<br />
to cloud-based services more cost effective. This practice<br />
frees up expensive network capacity, floor space,<br />
and energy consumption.<br />
✓ Software maintenance: The cost of managing software<br />
updates and changes is often a burden to development and<br />
operational organizations and a huge expense both in terms<br />
of time and money. While a platform requires a per-user,<br />
per-month charge, the cost is typically offset by the cost of<br />
software license costs and yearly maintenance fees.<br />
✓ Support personnel: These costs include staff responsible<br />
for everything from storage and archiving to patch management,<br />
networks and security, and help desk.<br />
Improving speed, flexibility,<br />
and agility<br />
Continuous delivery, if adopted, is the ultimate goal to get<br />
products to market faster and to align with agile development<br />
practices. PaaS can help
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
22<br />
Platform as a Service For Dummies, Special Edition<br />
✓ Enable faster time to market and the ability to react to<br />
changes and opportunities quickly without huge upfront<br />
investments and heavyweight planning.<br />
✓ Expand your organization’s investments as needed,<br />
becoming more competitive.<br />
Buying versus Building: The<br />
Business Imperative<br />
The PaaS option has two pieces: One is the platform, and<br />
the other is service. The PaaS isn’t just delivering software<br />
to your organization; it’s servicing it as well. As new updates<br />
and new configurations are authorized, the PaaS-based cloud<br />
service can control keeping the software updated based on<br />
customer requirements.<br />
One of the primary decisions you need to make is whether<br />
you want to setup, configure, maintain, and administer<br />
the PaaS yourself (either on a public or private IaaS) or<br />
whether you want a provider to give you a fully-serviced<br />
PaaS offering — leaving you as the consumer of that PaaS,<br />
not as the maintainer.<br />
If your organization decides to manage a PaaS based on your<br />
own purchased software, you’re still required to manage the<br />
details, including setup, configuration, monitoring, maintaining,<br />
and patching the software.<br />
When a company decides to use a service to manage these<br />
tasks, the result is reduced friction between the development<br />
and deployment organization. There will, of course, be situations<br />
when it’s critical for the internal team to control and<br />
manage complex software environments.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 3<br />
Looking at PaaS as a<br />
Development Platform<br />
In This Chapter<br />
▶ Developing applications in the cloud<br />
▶ Understanding the role of continuous integration in PaaS<br />
▶ Looking at the core of PaaS support: Application development services<br />
▶ Knowing which PaaS services for development are right for you<br />
You may be wondering how Platform as a Service (PaaS)<br />
development in the cloud differs from the traditional<br />
on-premises approach. How will PaaS help to make the<br />
development process faster and more secure What will this<br />
approach mean for your development team<br />
In this chapter, we provide you with an overview of what it<br />
means to use PaaS as a development environment. We describe<br />
how PaaS services can raise the performance standards for all<br />
developers on a team by making it easier to incorporate best<br />
practices for achieving software quality. You get a foundation<br />
for understanding how your organization can take advantage of<br />
PaaS to meet your goals.<br />
Make sure that the environment you use in the cloud to develop<br />
your applications provides you with the most effective and most<br />
secure services. Developing in this way also impacts how your<br />
development and operations teams function.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
24<br />
Platform as a Service For Dummies, Special Edition<br />
Developing Applications<br />
in the Cloud<br />
Developing in a PaaS environment is different than the way<br />
development organizations have produced software over the<br />
past few decades. In a traditional model, the development<br />
team may select a variety of different tools — operating systems,<br />
middleware, testing products, and the like. Many organizations<br />
have been very effective with this approach. However,<br />
typically, problems of managing complexity exist — especially<br />
in an era where more and more aspects of daily life are controlled<br />
by software.<br />
Managing the complexity of traditional software development<br />
environments often translates into spending a lot of time<br />
and money on building, managing, maintaining, and upgrading<br />
these environments. As a result, companies have fewer<br />
resources to apply to designing, developing, and testing software.<br />
The net impact on developers is that they may fall short<br />
of achieving their primary objectives:<br />
✓ Producing high-quality and secure software<br />
✓ Meeting user expectations<br />
✓ Completing software development projects on time and<br />
within budget<br />
PaaS, on the other hand, provides hosted services used during<br />
development, such as middleware and operating systems.<br />
Because these services are always available for a developer to<br />
use without installation, maintenance, or IT support, the developer<br />
doesn’t have to deal directly with complex services and<br />
middleware — unless they want to be exposed to the details.<br />
PaaS can bring many advantages in terms of improving the<br />
economics of the development process and increasing the<br />
speed and agility of the development teams. In addition to<br />
providing self-service access to infrastructure resources,<br />
many PaaS vendors take responsibility for the IT platform<br />
maintenance and security requirements that are typically<br />
managed by developers and IT staff. The company benefits<br />
from a decrease in capital expenditures by eliminating the<br />
need to buy servers, middleware, and other infrastructure to
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 3: Looking at PaaS as a Development Platform 25<br />
support all resource requirements. In addition, PaaS costs are<br />
typically relative to the number of users, so platform costs are<br />
more in line with overall development costs and salaries.<br />
By using a PaaS environment for development, individual developers<br />
and their IT partners can enjoy these additional benefits:<br />
✓ Continue to use development tools they already understand<br />
and value but in a cloud environment<br />
✓ Increase the focus on the business goals because the<br />
details of configurations or selecting and integrating<br />
development tools are handled behind the scenes<br />
✓ Avoid costly mistakes by making the process easier to<br />
incorporate continuous integration while developing faster<br />
✓ Write more secure code because the PaaS automatically<br />
manages security updates and has data privacy and protection<br />
rules built into the fabric of the environment<br />
✓ Write higher-quality code by leveraging sophisticated<br />
software development tools that would otherwise be<br />
very costly to implement and maintain<br />
✓ Speed up development time by eliminating the need to<br />
request and wait for additional IT infrastructure<br />
✓ Speed up development time by eliminating the need to<br />
do maintenance work and upgrade components<br />
✓ Deliver applications on multiple devices and multiple<br />
operating systems faster<br />
The Role of Continuous<br />
Integration<br />
Continuous integration is a technique that follows continuous<br />
build and test patterns and — makes sure software defects are<br />
detected as early as possible. Continuous integration and testing<br />
is the best way to make sure that the product always works<br />
even while coding is ongoing. While this software development<br />
best practice isn’t unique to the cloud, it’s critically important<br />
for companies aiming to become successful with PaaS because<br />
developers are able to increase the speed at which they deliver
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
26<br />
Platform as a Service For Dummies, Special Edition<br />
products in PaaS environments — so much so, in fact, that<br />
teams can easily get out of synch with one another.<br />
Sometimes, synchronizing development teams’ efforts may be<br />
difficult. The contributing factors include<br />
✓ Teams that are distributed across business units or different<br />
geographic regions of a company<br />
✓ Software code that needs to work across multiple platforms<br />
and devices<br />
✓ Software development process that requires individual<br />
components that all need to work together in a service<br />
oriented way<br />
✓ Market dynamics that lead to faster software development<br />
lifecycle<br />
The software quality and time to develop may suffer unless<br />
the team has a way to test for, locate, and fix errors early<br />
in the software development process.<br />
While it can be hard for development teams to keep in synch in<br />
traditional software environments, these challenges can be magnified<br />
in PaaS because of the increased speed of development.<br />
In PaaS, continuous integration is easier because the IT<br />
staff doesn’t need to install and manage new hardware and<br />
software or manage many other aspects of overall platform<br />
infrastructure. In fact, PaaS helps to make possible a very<br />
aggressive form of continuous integration that’s required to<br />
support the fast-paced and highly-iterative development process<br />
needed to develop Software as a Service (SaaS) solutions.<br />
The Role of Application<br />
Development Services<br />
Application development services are the core of PaaS support<br />
for the development process. They’re the anchor services<br />
that streamline the process of developing applications in<br />
the cloud. A PaaS platform
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 3: Looking at PaaS as a Development Platform 27<br />
✓ Provides the developer with a complete environment to<br />
provision, develop, build, test, and stage applications<br />
✓ Abstracts the details from the developer so developers<br />
can focus on the task of coding and not on supporting<br />
the systems needed for development and testing<br />
An integrated development environment (IDE) is a software<br />
application that includes all the tools that a software developer<br />
needs to develop software. Typically, the programs<br />
included in an IDE can be used to write, change, compile,<br />
deploy, and debug software. IDEs are commonly used by<br />
developers on their desktops in traditional environments and<br />
can also be used with shared cloud services when using PaaS.<br />
When the IDE is used with the cloud, you, as the developer,<br />
have some key advantages:<br />
✓ You can still use your existing IDE on your desktop, but it<br />
becomes much easier and faster to share your code with<br />
other members of your team.<br />
✓ You can push your code into a shared repository in the<br />
cloud so everyone has immediate access to the same<br />
code and tools.<br />
✓ You can test your code during development against the<br />
same systems your end-users will access, using services<br />
provided by the PaaS.<br />
As a result, errors in the code are found earlier, and the<br />
resulting applications are delivered faster.<br />
A well-designed PaaS environment has enough flexibility and<br />
modularity that it can be useful in many different scenarios<br />
and handle a wide range of development objectives. In addition,<br />
the PaaS environment must be able to support the<br />
developer with a wide range of services that encompasses<br />
the entire software development lifecycle.<br />
To ensure that your PaaS provider offers the right set of flexible<br />
services so you can make the most of your PaaS development<br />
environment, use the following checklist:
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
28<br />
Platform as a Service For Dummies, Special Edition<br />
✓ Can you choose from a menu of à la carte services so you<br />
can select the services that are right for you<br />
✓ Can you start slowly with just a few services and then<br />
add on later if needed<br />
✓ Are your choices constrained in any way based on the<br />
specifications of your PaaS provider<br />
✓ Will your PaaS provider host the specific services you<br />
want to use so you can use them in the PaaS environment<br />
and you don’t have to host them yourself<br />
✓ Are sophisticated build-and-testing services made available<br />
in such a way to encourage early identification of<br />
software coding errors<br />
PaaS Services for Development<br />
The same set of PaaS services isn’t right for everyone. You<br />
should demand flexibility and a variety of options from your<br />
PaaS vendor. This section gives you the most important software<br />
development services that may be offered by your<br />
PaaS provider.<br />
Hosted software configuration<br />
management services<br />
Developers use software configuration management services<br />
to keep track of the different versions and modules of code<br />
that are created during the software development process.<br />
The code is stored in an online repository. GitHub is an example<br />
of a popular hosted service used for this purpose.<br />
Software configuration management services help the developer<br />
to manage the sandbox environment used to create and<br />
test code. The developer stores software code (sometimes<br />
also known as a forge) in the sandbox. This environment<br />
needs to include the right operating system and tools, such<br />
as source code editors, debuggers, compilers, performance<br />
profilers, and source code management systems to know<br />
when and how a piece of software has changed.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 3: Looking at PaaS as a Development Platform 29<br />
Build services<br />
The PaaS should be able to support a variety of application<br />
build processes that allow developers to combine services<br />
into a deployable application. The build process contains<br />
several steps, including writing code, compiling code into an<br />
executable, invoking code, running, and then testing the code.<br />
When creating an application, the developers generally produce<br />
multiple modules of code with dependencies. The build services<br />
in the PaaS should help the developer keep track of the individual<br />
modules of code. Some examples of these build tools are<br />
✓ Maven: Used by most Java developers to build and<br />
assemble their applications as well as manage dependencies<br />
to other 3rd party software modules<br />
✓ Maven repositories: Online repository where built<br />
(binary) software is stored and versioned along with<br />
associated meta-data, where it can be retrieved and<br />
consumed by other software based on their declared<br />
dependencies<br />
Web application server<br />
The PaaS environment helps developers quickly test the<br />
applications they’re building by allowing developers to deploy<br />
using the production runtime system. This type of testing is<br />
important because a developer typically creates a web application<br />
by using his own local environment, and due to the<br />
difficulty of getting access to more than a single machine, the<br />
developer’s environment may be very different from the production<br />
environments.<br />
To tighten testing cycles, the developer may use an in-process<br />
web application server that works perfectly on a local environment<br />
but then behaves differently in production. The PaaS<br />
makes it simple to access and isolate production systems, so<br />
developers can stop wasting time mocking up simulations and<br />
avoid the risk of discovering runtime errors in production or<br />
at late stages of delivery.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
30<br />
Platform as a Service For Dummies, Special Edition<br />
Frameworks<br />
Developers typically use a development framework to help<br />
create quality software that performs well under varying conditions.<br />
While frameworks are used in traditional software<br />
environments, these frameworks can be more consistently<br />
shared across large distributed teams when used in a PaaS<br />
environment. Some of the key benefits of using frameworks in<br />
a PaaS environment include<br />
✓ Quickly establishing a consistent structure for an<br />
application<br />
✓ Accessing secure and tested foundational software<br />
modules for coding<br />
✓ Accessing run-time services for testing to make sure that<br />
the application runs properly in production<br />
Your PaaS provider may have the following two examples of<br />
frameworks available:<br />
✓ Spring: One of the most commonly used application<br />
development frameworks for enterprise Java<br />
✓ The Play framework: For building web applications with<br />
Java and Scala<br />
Database services<br />
One of the most important tests for a new application is to<br />
understand how it works with real end-user data. This type<br />
of testing often presents a challenge for developers because<br />
the application may be intended to work with data stored in<br />
a very large and complex database. Developers often install<br />
a lightweight database in their development environment in<br />
order to test the code with data but aren’t able to test against<br />
a true production database during the development phase.<br />
One of the major advantages of developing in a PaaS environment<br />
is that the developer can have immediate access to a<br />
database with the same characteristics of the eventual production<br />
database. For example, if the application needs to call<br />
a MySQL database in production, the developer can leverage<br />
PaaS database services to test the code with hosted MySQL<br />
database already provided by the PaaS.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 3: Looking at PaaS as a Development Platform 31<br />
Test and automation tools<br />
Testing services can be built into the PaaS platform or provided<br />
by its ecosystem of services. These services can include User<br />
Interface testing or load testing. Access to these tools is beneficial<br />
to companies of all sizes; however, the impact on small<br />
to midsize companies can be huge. Smaller companies may not<br />
have the resources to purchase and maintain the state of the<br />
art tools designed to improve the quality of the development<br />
process. These smaller teams can use PaaS to have access to<br />
the same best practice environment that many of the larger<br />
competitors have built in house at a very high price.<br />
Test and automation tool examples include the following:<br />
✓ Jenkins: Most widely used continuous integration server;<br />
initiates build jobs as developers check-in code, works<br />
with Maven, and contains many plug-ins to customize<br />
how and why the builds happen, and to connect to various<br />
supporting systems<br />
✓ Selenium: Designed for testing how your software performs<br />
with multiple browsers, such as Safari, Chrome,<br />
and Firefox<br />
✓ Sonar: Provides feedback on the quality of your code<br />
Performance analysis tools<br />
A limitation exists on how many different kinds of tests can be<br />
applied to the code in the developer’s own local environment.<br />
Performance analysis, including production profiling and load<br />
testing, is hard for the developer to do on his own. The developer<br />
may not be able to replicate the wide range of machines<br />
and networks that may be found in end-user environments.<br />
Examples of cloud-based tools designed for this purpose include<br />
✓ SOASTA: Leverages clusters of cloud machines to simulate<br />
user load on your application based on a number of<br />
criteria (number and type of clients, geographical location,<br />
load pattern, and so on)<br />
✓ New Relic: Designed to provide insight to end-user behavior,<br />
monitor server behavior, and identify bottlenecks
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
32<br />
Platform as a Service For Dummies, Special Edition<br />
Development-to-test-to-production<br />
coordination services<br />
The PaaS provider can provide services that enable updates<br />
of cloud applications without interrupting services. For example,<br />
in your own data center, you may roll out the new version<br />
of the software to one segment of users at a time. With PaaS,<br />
you can make sure that the flow between development, testing,<br />
and deployment is more seamless. PaaS helps you guarantee<br />
no loss of uptime.<br />
While these concerns cross more into deployment, they also<br />
impact development. For example, a Java web application may<br />
make use of a session store to ensure the state is maintained<br />
in the event of failure and across updates. The PaaS provider<br />
can help by providing a session store capability built-in and by<br />
automatically coordinating the update rollout process. So, the<br />
developer can make use of the session store directly and also<br />
test to make sure it always works properly during the development<br />
lifecycle. As the application is updated, the developer can<br />
also ensure that application-level changes work across versions<br />
that use the same session store.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 4<br />
Using PaaS as a<br />
Deployment Platform<br />
In This Chapter<br />
▶ Using the cloud to deploy applications<br />
▶ Gaining competitive advantage with continuous delivery in PaaS<br />
▶ Outlining the important PaaS services for deployment<br />
▶ Integrating PaaS with existing systems and services in your data center<br />
J<br />
ust as there are complexities with the development process<br />
(see Chapter 3 for more info), deploying applications<br />
to the cloud in a traditional model means managing a<br />
heterogeneous set of application services, data services, various<br />
middleware, and integration services. For example, the<br />
development or operations team has to think about how these<br />
services are configured, deployed, and managed according to<br />
changing requirements. You also have the issue of scaling the<br />
application as needed. In this chapter, you get an overview of<br />
what it means to use PaaS as a deployment environment.<br />
Deploying Applications<br />
to the Cloud<br />
The usage of general cloud resources and easy availability of<br />
the underlying infrastructure makes putting the deployment<br />
of applications into operation much easier. Cost efficiencies<br />
are gained based on the standardized delivery of services in<br />
a multi-tenant architecture. PaaS automates many aspects<br />
of the deployment lifecycle that are typically managed by IT
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
34<br />
Platform as a Service For Dummies, Special Edition<br />
development staff in traditional environments. Some of the<br />
deployment functions built into PaaS platforms are<br />
✓ Allocating resources<br />
✓ Staging and testing applications<br />
✓ Provisioning nodes on the server clusters<br />
✓ Installing, configuring, and securing load balancers,<br />
application servers, and databases<br />
The standardization of PaaS deployment lifecycle services<br />
means that the services are both easier to deploy and maintain<br />
consistently. In a PaaS environment, all the key deployment<br />
functions are abstracted from the developer masking<br />
them from the complexities of these sophisticated features.<br />
As a result, PaaS makes the process of updating applications<br />
after they’ve been deployed faster and more efficient.<br />
PaaS takes on the responsibility of connecting applications.<br />
The integration services provided with the PaaS make this<br />
simple. Some issues still remain for consideration, including<br />
service management, access to a variety of services, and integration<br />
across environments.<br />
Staging and testing<br />
applications in PaaS<br />
The PaaS environment allows for much greater flexibility in the<br />
way that deployment teams create staging areas — environments<br />
used to test changes to a private version of an application<br />
before the new or revised application goes live — for their<br />
applications. It can take a lot of time and manual effort on the<br />
part of the IT team to get the staging area set up appropriately.<br />
The staging area needs to completely replicate the databases,<br />
web servers, connections, and other dynamic components of<br />
the application environment or you run the risk of allowing<br />
errors into your live system. All of this can be quickly and easily<br />
handled with PaaS allowing developers to focus more on meeting<br />
customer requirements and less on IT infrastructure issues.<br />
Basically with PaaS, you can take a much more logical and<br />
practical approach to the staging and testing of applications.<br />
As a user of PaaS deployment services, you expect the following<br />
in your staging environment:
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 4: Using PaaS as a Deployment Platform 35<br />
✓ Full mirror of your live environment for the switch<br />
✓ Rollback to pre-change environment if errors are found<br />
✓ Partition existing cloud resources for phased deployment<br />
and testing within pre-defined limits<br />
How do these PaaS capabilities impact the testing process<br />
prior to rolling out a new version of an application Consider<br />
the developer who needs to roll out a new version of an online<br />
shopping application for a retailer. She has ten servers running<br />
the existing application. In the past, her approach has<br />
been to take one server offline at a time. This approach introduces<br />
operational problems:<br />
✓ A reduction in the amount of resource currently serving<br />
the existing application to be able to introduce the new<br />
version. If the new version causes a change in load or<br />
code path, or servers are already highly utilized, users<br />
may see degradation in service.<br />
✓ As the new application becomes more heavily loaded<br />
with real users, a stress-related issue may arise in production<br />
that was difficult to test for. So, the rollout process<br />
may need to be rolled back — quickly — and the<br />
operational processes for rollback can be at least as<br />
difficult as for rollout.<br />
These operational problems can easily be eliminated with<br />
PaaS. The new version rollout can be handled in a different<br />
way. With PaaS, the developer can create ten new instances<br />
in a completely replicated environment — the new instances<br />
have the new application but otherwise are 100 percent like<br />
the old ones. The new requests can all be routed to the new<br />
instances in a controlled manner, and you don’t need to cannibalize<br />
the existing with the live environment.<br />
If an unexpected error occurs, your full existing environment<br />
is in place, so you can guarantee no loss of service.<br />
When you’re comfortable with the new application, you can<br />
retire the old systems. In a pay-as-you-go PaaS environment,<br />
this approach is simpler, because traditionally the process<br />
involves meetings, planning, installing, and wiring.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
36<br />
Platform as a Service For Dummies, Special Edition<br />
Advantages of PaaS<br />
for deployment<br />
Many of the advantages of the PaaS model for deployment are<br />
based on the efficient use of computing resources resulting<br />
from the multi-tenant cloud environment. The deployment<br />
team benefits by having much more time to focus on the<br />
specific demands of deploying high-quality applications. The<br />
easy availability of infrastructure in the PaaS model allows<br />
for a more iterative style of deployment, supporting fast iterations,<br />
which are a requirement for the delivery of Software as a<br />
Service (SaaS) applications. When you don’t have to arrange for<br />
new machines and software stacks ahead of time, the IT staff is<br />
free to think differently about how quickly they can roll out new<br />
versions of applications and meet the needs of the business.<br />
As end-users increasingly consume SaaS, PaaS supports the<br />
need to continuously deliver new features. PaaS makes sure the<br />
infrastructure supports you as you make these changes and<br />
roll them out, allowing you to focus on the application itself.<br />
Some of the key advantages of PaaS are as follows:<br />
✓ Immediate access to pre-configured and optimized runtime<br />
environment: You don’t need to tend to the setup<br />
of your environment. This eliminates many time consuming<br />
concerns for the deployment staff related to the operating<br />
system, hardware selection and compatibility.<br />
✓ Simplified application deployment process: Don’t wait<br />
for IT intervention for the initial deployment — deploy<br />
additional versions of the app for preview, testing, or<br />
evaluation without additional IT resources. IT is freed to<br />
focus on other more critical IT issues.<br />
✓ High availability, scalability, firewall, and networking:<br />
These areas are part of the PaaS environment. You don’t<br />
need to be concerned about setup and configuration of<br />
these capabilities.<br />
✓ System maintenance: The PaaS provider is responsible for<br />
system maintenance. You don’t have to maintain the hardware,<br />
operating system, or the complex software stacks<br />
needed to support the application runtime environment.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 4: Using PaaS as a Deployment Platform 37<br />
The ease of use that you get from PaaS can have a downside<br />
depending on your requirements. What is the tradeoff Your<br />
PaaS provider needs to make some assumptions in order to<br />
provide you with easy access to a pre-integrated runtime environment.<br />
For example, your environment may include JBoss,<br />
Tomcat, and Java. If you work for a time with the PaaS provider’s<br />
pre-integrated environment and then your requirements<br />
change, you may be locked-in.<br />
In the case of an Open PaaS (see Chapter 2 for more details<br />
on Open PaaS), your application is typically quite portable,<br />
but you develop a dependency on the operational characteristics<br />
of the particular PaaS provider — after all, operational<br />
efficiency is a key reason to use PaaS. There may be an operational<br />
cost to move away from a particular vendor’s PaaS environment.<br />
You may want to consider an Open PaaS to minimize<br />
vendor lock-in. Standards are evolving to further help in PaaS<br />
interoperability, and you should be aware of your PaaS vendor’s<br />
commitment to standards.<br />
The Role of Continuous Delivery<br />
Smart IT organizations understand that development and<br />
deployment must be based on a lifecycle process. An application<br />
isn’t developed once and then deployed. The applications<br />
that operate innovative businesses have to evolve. These<br />
changes may be both a consequence of changing business<br />
models as well as changing technology options.<br />
The goal of continuous delivery is to reduce the time to move<br />
from development to production by continually iterating on code<br />
while keeping the product in a high-quality, working state. Then,<br />
as soon as some meaningful piece of new code is written and<br />
tested, it’s released into the production environment. When the<br />
business provides feedback, including new functions or pointing<br />
out unanticipated issues, changes can be made immediately and<br />
rolled out. The underlying structure and abstractions that are<br />
foundational to PaaS help ensure that applications can be built,<br />
deployed, tested, and managed in a highly iterative manner. With<br />
PaaS you can make the choice to deliver incremental change in a<br />
continuous cycle or to deliver changes in a coordinated release.<br />
Either way you can use PaaS to deliver these changes easier and<br />
faster and for competitive advantage.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
38<br />
Platform as a Service For Dummies, Special Edition<br />
In order to deliver on these advantages and make sure you<br />
get the competitive advantage you expect by moving to PaaS,<br />
your provider should answer the following questions:<br />
✓ How do you integrate continuous integration and the overall<br />
application lifecycle management across the PaaS<br />
✓ How will you ensure that my web application can scale<br />
How will you guarantee that my web application can take<br />
on an unanticipated increased load and still perform<br />
✓ What’s your solution for auto scaling and high availability<br />
✓ If one of your machines goes down, how will you ensure<br />
that end-user experience is uninterrupted and remains<br />
consistent<br />
✓ What’s your plan for disaster recovery Do you support<br />
running in multiple regions so my application will automatically<br />
be supported in an alternative region if my base<br />
region is struck by a disaster<br />
✓ How easy is it to use my favorite development frameworks<br />
during development, testing, and in production<br />
using the PaaS The PaaS may provide “native” support<br />
for some frameworks, but in any case, if not, needs to<br />
make it possible for you to use and make updates to the<br />
frameworks yourself. How do I coordinate updates of<br />
frameworks across multiple applications as both frameworks<br />
and applications evolve<br />
Understanding PaaS Services<br />
for Deployment<br />
The PaaS provider becomes your first line of defense when it<br />
comes to deployment and operational issues. Most PaaS providers<br />
have a dashboard for visualizing overall systems performance.<br />
You can use this tool to monitor whether your PaaS<br />
provider is up or down and is meeting its service level agreements<br />
(SLAs). Ideally, in a hybrid environment, you should<br />
look for a dashboard that gives you uniform visibility across<br />
your own resources and those of your PaaS provider.<br />
Some of the most important deployment services are covered<br />
in this section.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 4: Using PaaS as a Deployment Platform 39<br />
Monitoring and notification services<br />
All aspects of the PaaS environment that may impact end-user<br />
performance need to be monitored. Security issues should be<br />
given the utmost attention by your PaaS environment.<br />
Your runtime environment needs as much security and<br />
protection as your development environment to support<br />
customer and suppliers. In order to monitor security, your<br />
PaaS provider (or the underlying IaaS provider) needs to scan<br />
networks, operating systems, and applications in order to<br />
prevent intrusion or denial of service attacks. In addition, you<br />
need to have sufficient insight into the monitoring capabilities<br />
to satisfy audit requirements.<br />
Load balancing and secure<br />
connection services<br />
Your PaaS provider needs to ensure that the load balancing<br />
service adequately supports your end-users regardless<br />
of how they access your application (desktop, mobile). You<br />
want assurance that your end-users are always routed over a<br />
secure channel to a live endpoint.<br />
Data management services<br />
Users of PaaS services need to trust that their provider maintains<br />
all service level agreements related to scalability and<br />
isolation of their data. Be confident that all requests for larger<br />
or additional instances, as well as any updates to your data,<br />
are isolated and visible only to you. The PaaS needs to provide<br />
you with the ability to share data among your own ecosystem<br />
(say, between your own applications) in addition to<br />
supporting isolation of the data from other tenants.<br />
Integrating with Existing<br />
Systems and Services<br />
The reality is that enterprises have substantial investments in<br />
existing services. Therefore, ensure that your PaaS provider
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
40<br />
Platform as a Service For Dummies, Special Edition<br />
makes it easy to integrate services deployed in the PaaS environment<br />
with services running in your data center. Before<br />
choosing a PaaS vendor, make sure it can support the applications<br />
and services you need to integrate together.<br />
With an application in the cloud, you have many points of<br />
integration:<br />
✓ The application may integrate with a CRM application in<br />
your organization.<br />
✓ The application may integrate with other services in<br />
the cloud.<br />
✓ Enterprises that have invested in designing infrastructure<br />
with a service-oriented approach will be in the best position<br />
to integrate internal services with cloud services.<br />
✓ Enterprises that have focused on taking existing infrastructure<br />
and wrapping key components so they can be<br />
exposed as services are ready to begin to integrate service<br />
in a hybrid environment.<br />
In order to make all this happen, the PaaS provider must have<br />
well-documented and well-defined interfaces for you to use.<br />
In other words, at the center of integration capabilities<br />
between applications in the cloud or on-premises are<br />
Application Programming Interfaces (APIs). These APIs,<br />
which are part of the PaaS platform, enable companies to<br />
quickly integrate their services into a wide variety of applications<br />
on a diverse set of platforms.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 5<br />
Ten Steps to Take<br />
toward PaaS<br />
In This Chapter<br />
▶ Assessing your current computing environment<br />
▶ Educating yourself and others on PaaS<br />
▶ Knowing the PaaS requirements<br />
▶ Having the proper team and organization<br />
Part of your journey to leveraging Platform as a Service<br />
(PaaS) requires taking a step back and planning. To think<br />
through your approach to PaaS, we share ten steps that help<br />
you get started.<br />
Step 1: Get a Handle on Your<br />
Current Computing Environment<br />
Before you can plan your future you have to understand your<br />
past and current situations. Ask yourself these questions:<br />
✓ What type of computing environment do you currently<br />
have<br />
✓ How well does it support your existing business needs,<br />
and how well will it support change<br />
✓ What business are you in<br />
✓ Are you in a position to sell services to your customers<br />
and partners<br />
✓ Do you have a structure that allows you to move quickly
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
42<br />
Platform as a Service For Dummies, Special Edition<br />
By understanding where you are and what’s working, you can<br />
understand what you need for the future.<br />
Step 2: Educate Yourself<br />
on the Value of PaaS<br />
If you’re thinking about PaaS, you probably have some experience<br />
with cloud computing. But now you’re ready to move to<br />
the next phase with your cloud journey. You want to create new<br />
innovations that help your organization be more competitive.<br />
It is tempting to simply jump in and start buying tools and<br />
technology to use with your Infrastructure as a Service (IaaS)<br />
environment. But before you jump, take a look at these tips:<br />
✓ Educate yourself on your options (check out Chapter 2<br />
for the different kinds of PaaS).<br />
✓ Get familiar with the different vendor offerings for PaaS.<br />
✓ Understand how each platform works and what skills<br />
you’ll have to learn.<br />
Step 3: Experiment<br />
with the Options<br />
Many companies don’t have direct experience with PaaS and<br />
may make decisions without the knowledge necessary to<br />
avoid pitfalls. One of the benefits of the cloud model is that<br />
you can experiment with commercial offerings on the market<br />
without spending cash. Many of the vendors allow developers<br />
to try before they buy. So, take the time to experiment.<br />
For example, some PaaS offerings are tied to a specific<br />
Software as a Service (SaaS) model. You may want to link your<br />
new development efforts to that SaaS offering if that SaaS environment<br />
is the foundation of the value you offer to customers.<br />
In some situations, you may want to keep PaaS separate from<br />
the SaaS environment. With some experimentation, you’ll get<br />
a good idea of what it means to use a PaaS environment.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
Chapter 5: Ten Steps to Take toward PaaS 43<br />
Step 4: Figure Out What<br />
Your Requirements Are<br />
Create a set of requirements with consideration for pop-up<br />
concerns:<br />
✓ What language do you prefer to work with<br />
✓ How much abstraction do you need<br />
✓ Do you want a platform that automates many of the routine<br />
tasks in both development and deployment<br />
✓ What type of middleware is already in use and what middleware<br />
services do you need<br />
✓ How much integration do you need to do with other<br />
public or private environments<br />
Getting the answers to these questions makes your selection<br />
process a lot easier.<br />
Step 5: Put Together<br />
an Evaluation Team<br />
A PaaS environment can have a dramatic change in how your<br />
organization develops software, so you don’t want to make<br />
a decision on your own. A PaaS environment touches many<br />
parts of the business, so put together a team that represents<br />
all the key constituents and stakeholders to include representatives<br />
from development, quality assurance, and operations.<br />
Step 6: Conduct a Pilot Project<br />
Identify a project that’s well-defined and can show the development<br />
and operations team how well PaaS supports the development<br />
of a business project. You may want to try several PaaS<br />
environments so you can experience different approaches.
These materials are the copyright of John Wiley & Sons, Inc. and any<br />
dissemination, distribution, or unauthorized use is strictly prohibited.<br />
44<br />
Platform as a Service For Dummies, Special Edition<br />
Step 7: Plan a Well-Designed<br />
Organizational Structure<br />
Technology is only as good as how well the organization is<br />
prepared to use it. Change is difficult and many developers<br />
and operational personnel may be resistant to trying a new<br />
approach. Educate your team on both cloud computing itself<br />
and the benefits of a PaaS environment.<br />
Many IT professionals are concerned that cloud environments<br />
may make their skills and knowledge obsolete. However, PaaS<br />
actually makes IT more effective in supporting the business.<br />
Step 8: Continuously Evaluate<br />
Emerging Standards<br />
Cloud computing as a commercial practice for companies is evolving,<br />
so you should continue to evaluate emerging standards and<br />
best practices. Embrace these approaches to remain competitive.<br />
Step 9: Embrace the Continuum<br />
of the Develop/Deploy Cycle<br />
Successful companies understand that after they develop<br />
and deploy an application through a PaaS environment that<br />
they aren’t finished. Applications are increasingly becoming<br />
dynamic. Cloud-based applications are continually being<br />
updated with the latest innovations.<br />
Step 10: Turn the Experience<br />
into a Strategy Roadmap<br />
Plot out a roadmap for what you’re going to put into practice<br />
over the next few years. If you took a peek at any of the steps<br />
before this section, use those steps as the beginning of your<br />
journey in planning. Don’t try to plan for ten years. A 3- to 5-year<br />
roadmap helps you construct a meaningful and realistic plan.