You are on page 1of 21

VIRTUALIZATION & CLOUD

COMPUTING
Lecture # 23

CSE 423

Exploring PaaS

Deepak Kumar,
Asst. Professor, LPU, Pun
The Platform as a Service model provides the tools within an environment
needed to create applications that can run in a Software as a Service model.

For this reason, some overlap between vendors has created Software as a
Service products, and those vendors have broadened their services to make
their Web applications more customizable. E.g. Salesforce.com and
Force.com

Applications developed in PaaS systems can be composite business


applications, data portals, or mashups with data derived from multiple
sources.
PaaS environments can offer integrated lifecycle management or anchored
lifecycle applications

An integrated system provides a broad range of tools for customization,


whereas an anchored system is based on already established software
Defining Services
PaaS models span a broad range of services, including these, among others:
Application development: A PaaS platform either provides the means to use
programs you create in a supported language or offers a visual development
environment that writes the code for you.

Collaboration: Many PaaS systems are set up to allow multiple individuals to


work on the same projects.
Data management: Tools are provided for accessing and using data in a data
store.

Instrumentation, performance, and testing: Tools are available for


measuring your applications and optimizing their performance.
Storage: Data can be stored in either the PaaS vendor's service or accessed
from a third-party storage service.

Transaction management: Many PaaS systems provide services such as


transaction managers or brokerage service for maintaining transaction integrity.
A good PaaS system has certain desirable
characteristics that are important in developing robust,
scalable, and hopefully portable applications. On this list
would be the following attributes:

Separate of data management from the user interface


Reliance on cloud computing standards
An integrated development environment (IDE)
Lifecycle management tools
Multi-tenant architecture support, security, and scalability
Performance monitoring, testing, and optimization tools
Salesforce.com versus Force.com: SaaS versus PaaS

Salesforce.com was formed by several Oracle employees in


1999 to create hosted Customer Relationship Management
(CRM) Software based on cloud computing model i.e pay as
you use.

The Salesforce.com platform looks like a typical website


such as Amazon.com with a multi tabbed interface each tab
being an individual application.
Salesforce.com versus Force.com: SaaS versus PaaS

As Salesforce.com developed its SaaS production, it


became obvious that many customers wanted to extend
their Salesforce.com applications beyond what an SaaS
offering would allow.

Salesforce.com developed a PaaS platform known as


Force.com, which allows developers to create applications
that could be added to Salesforce.com's offerings and
hosted on Salesforce.com's infrastructure.
Application Development
A PaaS provides the tools needed to construct different types of
applications that can work together in the same environment.
These are among the common application types:

Composite business applications


Data portals
Mashups of multiple data sources

A mashup is a Web page that displays data from two or more


data sources. The various landmarks and overlays you find in
Google Earth, or annotated maps, are examples of mashups.

These applications must be able to share data and to run in multi


tenant environment.
All PaaS application development must take into account
lifecycle management. As an application ages, it must be
upgraded, migrated, grown, and eventually phased out or
ported.

Many PaaS vendors offer systems that are integrated lifecycle


development platforms i.e. the vendor provides a full software
stack development stack for the programmer to use and isnt
expected that the developer will need to go outside of the
service to create his appliacation.
An integrated lifecycle platform includes the following:
The virtual machine and operating system (often offered by an
IaaS)
Data design and storage
A development environment with defined Application
Programming Interfaces
Middleware
Testing and optimization tools
Additional tools and services

Example of integrated life cycle : Google AppEngine, Microsoft


Windows Azure Platform, Eccentex AppBase, LongJump, and Wolf
Some PaaS services allow developers to modify existing software.
These services are referred to as anchored lifecycle platforms.

Examples of an anchored lifecycle platform are QuickBooks.com


and Salesforce.com

The applications in these two services aare fixed but developers


can customize which applications the users see , how those
application are branded, and a number of features associated with
the different applications.

An anchored service offers less customization but has a faster


development cycle and may be less prone to software errors.
Using PaaS Application
Frameworks
Application frameworks provide a means for creating SaaS hosted
applications using a an integrated development environment (IDE).

Web sites and application building PaaS systems

Many Web sites are based on the notion of information


management and organization; they are referred to as content
management systems (CMS).

Whereas Drupal is used in major Web sites and organizes vast


amounts of information, the site Squarespace.com provides CMS
system aimed at supporting individuals, small businesses, and
other small organizations
https://www.drupal.org/
https://www.squarespace.com/
What is Drupal?

Open Source software written in php.

A CMS or content-management
system.

A sophisticated web application


building tool.
Why use a CMS?
It helps manage complexity.

It provides a user interface (UI) for


adding, editing and publishing content.

It provides a means for collaboration


among many to perform the above
tasks.
Why use Drupal over
Wordpress?
Wordpress ( https://wordpress.com/ ) was designed only to be a
blog with some easy add-ons.

Drupal was designed to be more of a generalist: its for making


anything and is far more robust.

Wordpress could be the better choice for blogs since it is better at


being a blog than Drupal. This is something of debate.

Wordpress is still a sound choice of CMS for SEO and security; so if


wordpress satisfies a simpler projects requirements then by all
means use it- it is easier and faster to set up than Drupal.

Wordpress is not designed to be highly scalable to many


simultaneous users, nor does it have flexible roles, permissions,
extensible content types, nor does it have plentiful well-tested,
quality add-ons. It has a few and a lot of really poor plugins.
Why use Drupal over Joomla? (or other
CMS)
https://www.joomla.org/
https://www.joomla.com/
It has superior session handling for a CMS.
It has superior security.
It is a more consistent, reliable and flexible framework for
development.
It is considered better for SEO from our research.
It uses a separation of concerns architecture to cleanly and
consistently separate structure, function, form, and
presentation in layers (ie: php from data as db/xml, layout and
presentation as html and css).
It heavily uses defaults overrides in code in the form of hooks
and in themes in the form of templates. This makes it
extremely flexible.
Other CMSes do a very very bad job of at least one of the
above.
Drupal Structure
Drupal is a database-driven (dynamic)
application. It requires a database.

Drupal has a core filesystem whose


functionality can be extended using the
UI itself, modules and themes.

The UI settings are stored in the


database.
Modules
The Drupal core by itself contains a number of modules
that provide for the following:

Auto-updates
Blogs, forums, polls, and RSS feeds
Multiple site management
OpenID authentication
Performance optimization through caching and
throttling
Search
User interface creation tools
User-level access controls and profiles
Themes
Traffic management
Workflow control with events and triggers
Eccentex AppBase, LongJump, and Wolf were chosen as examples of
developer-oriented services aimed at users and developers who want to create
Web-based applications based on Service Oriented Architecture protocols and
services.
http://www.eccentex.com/products/appbase/
https://wolf.aidaluu.com/

These services vary in some details, but they have these common characteristics:

They separate data-handling from presentation (user interface).


They offer tools for establishing business objects or entities and the
relationships between them.
They support the incorporation of business rules, logic, and actions.
They provide tools for creating data entry controls (forms), views, and reports.
They provide instrumentation, tools for measuring application performance.
They support packaging and deployment of applications.