Cloud Formation

Choosing and implementing suitable enterprise PaaS

RajeshRamchandani
paas-clouds

Cumulogic founder Rajesh Ramchandani deciphers some of the mysteries behind cloud and gives suggestions for how to pick the best for your enterprise

The ultimate goal for enterprises, web companies and
startups is to deploy highly robust, scalable applications. With
the extreme growth of mobile applications and the nature of
unpredictable workloads, it’s important to deploy an agile
application infrastructure to be able to handle the peak workloads
of applications. Rajesh Ramchandani shows why PaaS matters and is
the core in enterprises’ cloud adoption strategy.

Public clouds such as Amazon EC2, Rackspace and several others
have made it possible to deploy highly distributed cloud
applications which can scale up and down resources as needed.
However, cloud deployments still require developers to install,
configure and manage the entire application infrastructure.
Developers are typically required to use monitoring and autoscaling
services to keep applications running after they have successfully
configured the entire application infrastructure stack, including
web tier servers, proxy servers, load balancers, application
servers or other frameworks, and database tiers.

To manage the complexity of distributed and agile
infrastructure, developers have used third-party cloud management
solutions such as Rightscale to manage their deployments. Several
services, such as application logging, autoscaling, monitoring and
application performance management are consumed from third-party
cloud-based services. This point-solution approach with cloud-based
tools and services makes the entire application management quite
complex, requiring developers to manage several third-party
services and tools. Long term, the cost for such services can
become exorbitant.

While this model of integrating services is suitable for web
applications and mobile applications which typically require lower
operating expenses, such architectures may not be suitable for
enterprises – especially in regulated industries such as financial
services, healthcare, etc. Additionally, enterprises have large
amounts of existing investments in technology, infrastructure,
tools, people and processes which may not be leveraged in
cloud-based deployment models. Enterprises can, however, use hybrid
cloud computing models and deploy internal or private clouds for
their primary applications and sensitive data while using public
clouds for development, QA/Testing and deploying non-mission
critical applications. Such a model allows enterprises to leverage
their existing IT investments while using the economies of scale
and agility of clouds.

While transitioning to private, public or hybrid clouds,
enterprises should consider Platform-as-a-Service (PaaS) as the
“core layer” for cloud computing. PaaS provides a standardized
application infrastructure on demand for development teams and IT
Ops, eliminating the need for manually provisioning and managing
the infrastructure stacks, and therefore accelerating
time-to-market.

Benefits
of PaaS

PaaS provides many benefits across the enterprise for
application developers, IT Ops, DevOps, business units and CIOs.
Unlike Infrastructure-as-a-Service (IaaS), which provides an
orchestration layer over the virtualized environment, and
self-service for dynamic resource allocation, the PaaS layer allows
developers to write applications independently of the application
infrastructure, providing complete, pre-provisioned infrastructure
services on-demand to quickly deploy applications, hence speeding
time-to-market.

Figure 1: PaaS
Benefits

Because of the application manageability of PaaS, business units
and CIOs can also lower the cost of managing the applications.

PaaS Use
Cases for Enterprises

Cloud-based
applications
: The majority of
applications developed today are targeted for cloud deployment, and
most of these applications deal with tremendous amounts of data
(big data structured or unstructured). They tend to use SOA,
RESTful interfaces or Web Services with a combination of SQL and
NoSQL database, and messaging services. Developers can benefit from
developing applications on PaaS as they can take advantage of new
frameworks and infrastructure components to quickly develop, test
and deploy applications.

PaaS is ideal to start developing new applications as they
eliminate the need to manually install, configure and manage the
application infrastructure. Architects and developers can design
and architect distributed and horizontally scalable applications to
take advantage of cloud platforms along with economies and
flexibility of clouds. PaaS also eliminates the need for buying
expensive high-end servers, and virtually eliminates the need for
high capital expenditures.

Application
consolidation
:
It’s very common to see several hundreds of
applications running on siloed servers and different versions of
infrastructure stacks, which make application management expensive
and inefficient utilization of resources. Such siloed applications,
when not updated or patched, may have security holes and
vulnerabilities that can be exploited to cause threats to
business-critical applications.

Some Platform-as-a-Service offerings, such as CumuLogic PaaS,
provide support for traditional middleware stacks on the cloud
along with next-generation open source infrastructure services,
making it possible to migrate and consolidate existing siloed
applications to a single enterprise-wide application platform to
manage, eliminating variations and multiple versions of
infrastructure components.

Development, QA/Testing
environments
: Developers and QA/Testing teams can benefit tremendously
from PaaS. Traditionally, developers code and test their
applications on smaller environments, which may be laptops and
desktops. Then QA teams are tasked with setting up a variety of
test environments and implementing test scenarios. The staging and
production teams typically set up applications by setting up their
own environments, creating variations in the
environments.

Platform-as-a-Service eliminates the need for different teams to
set up different environments so development, QA/Testing teams,
etc. can focus on testing, staging and deploying the applications.
DevOps can also easily collaborate on the same environment, reduce
the overall time-to-market, and simplify debugging, testing, and
deployment of applications.

Strategy
For PaaS Adoption

Choosing the right platform, planning and implementation are key
to the successful transformation of the IT infrastructure and
evolution of new application architectures. PaaS can have an impact
on your developers, administrators, and processes beyond the
technology investment. Some of the most common criteria to consider
and their impact are listed below.

Key PaaS
Selection Criteria

Application portability
and vendor lock-in
:
Almost all PaaS environments require proprietary
SDKs, which may provide a permanent application lock-in to the
platform. Applications must be written to the vendor-specific PaaS
and hence must be deployed to the underlying infrastructure that
they provision applications on. PaaS providers, such as Google App
Engine, Salesforce.com’s Force.com and Microsoft Azure allow to
write applications to their PaaS and will manage them on their own
infrastructure, hindering application portability, including
portability of applications from public clouds to internal clouds
or internal virtualized infrastructures. Several other PaaS
providers, such as EngineYard, will provision workloads to a single
cloud provider, such as Amazon EC2. Such PaaS services provide not
only lock-in to their SDK or APIs, but also to the underlying
cloud.

Multi-cloud
support
: While application portability is a major consideration, the
ability to choose the underlying infrastructure cloud,
virtualization technology and datacenter locations are also
important criteria in platform selection. To avoid vendor lock-in
and to have multiple choices of platforms and clouds, it is
important to choose a platform-agnostic, infrastructure-agnostic,
hypervisor-agnostic platform which allows to move workloads when
needed.

Proprietary PaaS vendors such as Force.com, Google App Engine
and Microsoft Azure run their own infrastructure in their
datacenters. They provide high level of redundancy and failover
capabilities to ensure application availability. Other PaaS
providers, such as Heroku (Now Salesforce.com) and EngineYard,
leverage large public clouds such as Amazon Web Services to provide
high availability of application infrastructure, and are mostly
tied to one IaaS cloud. Such PaaS offerings also rely heavily on
third-party IaaS clouds to provide redundancy and failover.
Therefore, they have the same limitations of Google App Engine and
Microsoft Azure and do not allow end users to choose their own IaaS
cloud provider.

Programming languages
and development frameworks
: The
second most important criterion for choosing a suitable platform is
the programming language support.

Most of the PaaS providers provide SDKs which limit the
capability to use any other language than what they already
support. It’s important to consider what programming languages you
have already invested in, and what you will be investing in in the
future.

For the past 15 years, the most predominant programming language
within enterprises has been Java. JVMs have evolved over the last
decade and now support programming languages such Scala, PHP,
Python and Ruby (or JRuby), hence Java PaaS will allow to run
multi-language applications within the virtual machine. Having
support for native languages in the PaaS may or may not be as
critical if the Java PaaS can provide the same level of scalability
and reliability of the JVMs.

Compliance and security
requirements
: If compliance and security are main concerns (for example,
in regulated industries such as Health Care and Financial
Services), using private clouds and private PaaS in your own
datacenter is likely a more suitable solution.

In addition, if you wish to leverage existing investments in
hardware and datacenters, people, tools, processes, etc., you may
want to consider migrating infrastructure resources to a PaaS
environment using PaaS offerings which support private, public, and
hybrid cloud deployments, and provide the flexibility to use
multiple clouds with the same level of ease-of-use, security and
reliability.

Application migration
and investment protection
: If you have large investments
in applications and application infrastructure, you may want to
consider migrating existing applications to PaaS to streamline and
lower the cost of management. Once you decide to migrate the
applications, you’ll need to identify and prioritize such
applications to migrate to a PaaS on private or public
clouds.

A number of PaaS offerings however are black-box solutions which
do not offer infrastructure component choice. This means that the
migration of existing applications will likely require major code
changes or re-writes of applications.

In order to migrate existing applications, you’ll need to
evaluate PaaS options which support the deployment of existing
applications, enabling smooth migration as well as the deployment
of next-generation, modern cloud applications.

Architecture
flexibility
: Some first-generation application management offerings –
sometimes referred to as workload management solutions, were
designed to provision virtual machines of applications and
infrastructure services on virtualized environments, such as VMware
vSphere. Such solutions are inflexible and require a large service
catalogue to provision applications. These first-generation
solutions are also tightly integrated and do not provide choice of
virtualization layer and orchestration technology. They require
rebuilding of virtual appliances when applications are upgraded or
infrastructure is patched. In addition, first-generation solutions
present huge management and high costs for IT Ops.

You may want to choose a PaaS solution which is built to
decouple hardware from virtualization, allowing enterprises to pick
the virtualization technology of choice, plus a VM orchestration
solution which decouples infrastructure services and applications
entirely from the underlying orchestration layer. This type of PaaS
architecture allows enterprises to choose the appropriate layer of
IaaS, hypervisor and PaaS to control the cost of the overall cloud
solution.

Functionality and
customization
:
PaaS is for enterprises looking to evolve their
IT infrastructure to build agility and leverage the economies of
scale of clouds. As infrastructure continues to evolve and
enterprises develop new application architectures, the cloud
platform must evolve and be able to provide additional
functionality to support changing development and deployment needs.
A PaaS solution must be customizable to meet specific enterprise
needs and requirements, and to extend to accommodate user’s
changing requirements.

In a
Nutshell

PaaS is the most important layer of cloud computing, and
enterprises must build their cloud adoption or transformation
strategy around PaaS. Infrastructure-as-a-Service (IaaS) provides
flexibility and agility to IT infrastructure, but has limited value
and ROI for enterprises that are already deploying virtualized
environments. PaaS can help enterprises standardize on an
integrated application infrastructure stack, deploy an
enterprise-wide homogeneous platform, improve developer
productivity, lower the cost of management, and improve
time-to-market.

Author Bio: 

Rajesh Ramchandani is founder and vice president of
products at CumuLogic. He has more than 18 years of experience in
the software industry, with over 10 years of hands-on experience in
Java and middleware. He has extensive knowledge in Utility
Computing technologies and Cloud Computing. Rajesh was responsible
for market development and for building the partner ecosystems to
drive cloud computing revenue for Sun Microsystems.

This article originally appeared in Java Tech
Journal – PaaS Above The Cloud Hype.

Image courtesy of japokskee

Author
RajeshRamchandani

RajeshRamchandani

All Posts by RajeshRamchandani

Rajesh Ramchandani is founder and vice president of products at CumuLogic. He has more than 18 years of experience in the software industry, with over 10 years of hands-on experience in Java and middleware. He has extensive knowledge in Utility Computing technologies and Cloud Computing. Rajesh was responsible for market development and for building the partner ecosystems to drive cloud computing revenue for Sun Microsystems.
Comments
comments powered by Disqus