30.01.2015 Views

u3Zgz

u3Zgz

u3Zgz

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!