Unit 3
Unit 3
(PECO8013T)
Unit-III
Platform as a Service (PaaS)
By:- Dr. D.R.Patil
1
2
Syllabus
3
Syllabus
4
Books
5
Scheme
6
7
• Introduction to PaaS
• Platform as a service (PaaS) is a cloud computing model that provides
customers a complete cloud platform—hardware, software and
infrastructure—for developing, running and managing applications
without the cost, complexity and inflexibility that often comes with
building and maintaining that platform on premises.
• Platform as a service (PaaS) is a complete development and
deployment environment in the cloud, with resources that enable you
to deliver everything from simple cloud-based apps to sophisticated,
cloud-enabled enterprise applications.
• You purchase the resources you need from a cloud service provider
on a pay-as-you-go basis and access them over a secure Internet
connection.
• Introduction to PaaS
• Like IaaS, PaaS includes infrastructure—servers, storage, and
networking—but also middleware, development tools, business
intelligence (BI) services, database management systems, and more.
• PaaS is designed to support the complete web application lifecycle:
building, testing, deploying, managing, and updating.
• PaaS allows you to avoid the expense and complexity of buying and
managing software licenses, the underlying application infrastructure
and middleware, container orchestrators such as Kubernetes, or the
development tools and other resources.
• You manage the applications and services you develop, and the cloud
service provider typically manages everything else.
• Introduction to PaaS
• The PaaS provider hosts everything—servers, networks, storage,
operating system software, databases, development tools—at
their data center.
• Typically customers can pay a fixed fee to provide a specified
amount of resources for a specified number of users, or they can
choose 'pay-as-you-go' pricing to pay only for the resources
they use.
• Either option enables PaaS customers to build, test, deploy run,
update and scale applications more quickly and inexpensively
than if they had had to build out and manage their own on-
premises platform.
• Introduction to PaaS
• Every leading cloud service provider—including Amazon Web
Services (AWS), Google Cloud, IBM Cloud and Microsoft Azure—
has its own PaaS offering.
• Popular PaaS solutions are also available as open source
projects (for example, Apache Stratos, Cloud Foundry) or from
software vendors (for example, Red Hat OpenShift and
Salesforce Heroku).
• Benefits of PaaS
• The most commonly cited benefits of PaaS, compared to an on-
premises platform, include:
• Faster time to market. With PaaS, there’s no need to
purchase and install the hardware and software you use to
build and maintain your application development
platform—and no need for development teams to wait while
you do it. You simply tap into the cloud service provider’s
PaaS to begin provisioning resources and developing
immediately.
• Benefits of PaaS
• The most commonly cited benefits of PaaS, compared to an on-
premises platform, include:
• Affordable access to a wider variety of resources. PaaS
platforms typically offer access to a wider range of choices
up and down the application stack—including operating
systems, middleware, databases and development tools—
than most organizations can practically or affordably
maintain themselves.
• Benefits of PaaS
• More freedom to experiment, with less risk. PaaS also lets you try
or test new operating systems, languages and other tools without
having to make substantial investments in them or in the
infrastructure required to run them.
• Easy, cost-effective scalability. With an on-premises platform,
scaling is always expensive, often wasteful and sometimes inadequate:
• You must purchase more compute, storage and networking
capacity in anticipation of traffic spikes.
• Much of that capacity sits idle during low-traffic periods, and
none of it can be increased in time to accommodate unanticipated
surges.
• With PaaS, you can purchase more capacity and use it
immediately, whenever you need it.
• Benefits of PaaS
• Greater flexibility for development teams. PaaS services provide a
shared software development environment that allows development
and operations teams access to all the tools they need, from any
location with an internet connection.
• Lower costs overall.
• Clearly PaaS reduces costs by enabling an organization to avoid
capital equipment expense associated with building and scaling
an application platform.
• But PaaS can also reduce or eliminate software licensing costs.
• And by handling patches, updates and other administrative tasks,
PaaS can reduce your overall application management costs.
• How PaaS works
• In general, PaaS solutions have three main parts:
• Cloud infrastructure including virtual machines (VMs),
operating system software, storage, networking and
firewalls.
• Software for building, deploying and managing applications.
• A graphic user interface or GUI where development or
DevOps teams can do all their work throughout the entire
application lifecycle.
• How PaaS works
• Because PaaS delivers all standard development tools through the GUI
online interface, developers can log in from anywhere to collaborate
on projects, test new applications or roll out completed products.
• Applications are designed and developed right in the PaaS using
middleware.
• With streamlined workflows, multiple development and operations
teams can work on the same project simultaneously.
• PaaS providers manage the bulk of your cloud computing services,
such as servers, runtime and virtualization.
• As a PaaS customer, your company maintains management of
applications and data.
• PaaS, IaaS and SaaS
• IaaS: is internet access to 'raw' IT infrastructure—physical
servers, virtual machines, storage, networking and firewalls—
hosted by a cloud provider.
• IaaS eliminates cost and the work of owning, managing and
maintaining on-premises infrastructure.
• With IaaS, the organization provides its own application
platform and applications.
• Any PaaS offering necessarily includes the IaaS resources
required to host it, even if those resources aren't discretely
broken out or referred to as IaaS.
• PaaS, IaaS and SaaS
• SaaS: is application software that you use via the cloud, as if it
were installed on your computer (sometimes, parts of it are
installed on your computer).
• SaaS enables your organization to use an application without
the expense of setting up the infrastructure to run it and the
effort and personnel to maintain it (apply bug fixes and
updates, address outages, and more.)
• Salesforce and Slack are examples of popular SaaS offerings.
• Most web applications are considered SaaS.
• Use cases for PaaS
• By providing an integrated and ready-to-use platform and by
enabling organizations to offload infrastructure management to
the cloud provider and focus on building, deploying and
managing applications, PaaS can ease or advance several IT
initiatives, including:
• API development and management: Because of its built-in
frameworks, PaaS makes it much simpler for teams to
develop, run, manage and secure APIs (application
programming interfaces) for sharing data and functionality
between applications.
• Use cases for PaaS
• Internet of Things (IoT): Out of the box, PaaS can support a
range of programming languages (Java, Python, Swift and
more), tools and application environments used for IoT
application development and real-time processing of data
generated by IoT devices.
• Agile development and DevOps: PaaS can provide fully-
configured environments for automating the software
application lifecycle including integration, delivery, security,
testing and deployment.
• Use cases for PaaS
• Cloud migration and cloud-native development:
• With its ready-to-use tools and integration capabilities, PaaS
can simplify migration of existing applications to the cloud—
particularly via replatforming (moving an application to the
cloud with modifications that take better advantage of cloud
scalability, load balancing and other capabilities) or refactoring
(rearchitecting some or all of an application by using
microservices, containers and other cloud-native technologies).
• Use cases for PaaS
• Hybrid cloud strategy:
• Hybrid cloud integrates public cloud services, private cloud
services and on-premises infrastructure and provides
orchestration, management and application portability across all
three.
• The result is a unified and flexible distributed computing
environment, where an organization can run and scale its
traditional (legacy) or cloud-native workloads on the most
appropriate computing model.
• The right PaaS solution allows developers to build once, then
deploy and manage anywhere in a hybrid cloud environment.
• Common PaaS scenarios
• Organizations typically use PaaS for these scenarios:
• Development framework.
• PaaS provides a framework that developers can build upon to
develop or customize cloud-based applications.
• Similar to the way you create an Excel macro, PaaS lets developers
create applications using built-in software components.
• Cloud features such as scalability, high-availability, and multi-
tenant capability are included, reducing the amount of coding
that developers must do.
• Common PaaS scenarios
• Organizations typically use PaaS for these scenarios:
• Analytics or business intelligence.
• Tools provided as a service with PaaS allow organizations to
analyze and mine their data, finding insights and patterns and
predicting outcomes to improve forecasting, product design
decisions, investment returns, and other business decisions.
• Additional services.
• PaaS providers may offer other services that enhance
applications, such as workflow, directory, security, and
scheduling.
• Advantages of PaaS
• By delivering infrastructure as a service, PaaS offers the same advantages as
IaaS. But its additional features—middleware, development tools, and other
business tools—give you more advantages:
• Cut coding time.
• PaaS development tools can cut the time it takes to code new apps with
pre-coded application components built into the platform, such as
workflow, directory services, security features, search, and so on.
• Add development capabilities without adding staff.
• Platform as a Service components can give your development team new
capabilities without your needing to add staff having the required skills.
• Advantages of PaaS
• Develop for multiple platforms—including mobile—more easily. Some service
providers give you development options for multiple platforms, such as
computers, mobile devices, and browsers making cross-platform apps quicker
and easier to develop.
• Use sophisticated tools affordably. A pay-as-you-go model makes it possible for
individuals or organizations to use sophisticated development software and
business intelligence and analytics tools that they could not afford to purchase
outright.
• Support geographically distributed development teams. Because the
development environment is accessed over the Internet, development teams can
work together on projects even when team members are in remote locations.
• Efficiently manage the application lifecycle. PaaS provides all of the
capabilities that you need to support the complete web application lifecycle:
building, testing, deploying, managing, and updating within the same integrated
environment.
PaaS
• Public solution stacks for web applications
▫ OS, web server, language interpreters,
provisions for automatic scaling, all shielded
from the user
• Each system only has a few supported languages
▫ Automatic deployment and scaling not trivial
• Offers development tools
▫ Libraries for specific services
▫ IDE plugins, deployment tools
• Two types – Instance PaaS, Framework PaaS
SaaS
• A new form of application delivery
• Global availability – web application, user data
• Multitenancy – users use the same installation
• Licensing – ideally pay per use
▫ When monthly payment, it should be elastic
• Third layer of cloud doesn’t imply use of
underlying layers, but elastic infrastructure is
advisable
▫ <- No control over the number of users
PaaS properties
• Gives the programmer a solution stack
▫ Web server, database engine, scripting language
• Simple deployment, no worries about servers,
storage, network, scaling, updates, …
• Guarantees multitenancy for better security
• Users isolated by virtualization or OS means
• Accounting and billing of used resources
▫ Different at every vendor
• Development tools
Comparison with IaaS
• IaaS better for migrating existing applications
▫ More flexible, you install your environment
• PaaS has lower demands on administration
• PaaS will take care of scaling if applications use
correct frameworks, also redundancy and CDN
• -> PaaS better for new applications
• BUT has dangers of vendor lock in if platform
specific functions are used
▫ IaaS instance can be copied to your server.
Comparison with Webhosting
• Webhosting essentially does the same – offers a
platform for web sites / applications
• Minus scalability, multitenancy, accounting
• Plus personal contact – negotiation, support
• Different languages, cloud focuses on scalability
▫ Hosting: PHP, ASP, some Perl and Python
▫ Cloud: Java, Ruby, PHP (due to demand), Node.js
• Added value – e-mail and domain hosting
▫ vs. development tools and web services in PaaS
PaaS types
• Instance PaaS
▫ Depends on IaaS layer for multitenancy
Better security and performance guarantees
▫ Deploys applications to IaaS instances
• Framework PaaS
▫ Uses OS capabilities for multitenancy
Better resource utilization and accounting granularity
▫ Requires specific frameworks to be used
▫ Can benefit from cloud infrastructure, but is not dependent on
it
• Metadata PaaS
▫ Client configures his service through metadata
Available systems (selected)
• Instance PaaS
▫ Amazon Elastic Beanstalk
▫ Microsoft Azure
• Framework PaaS
▫ Google App Engine
▫ VMware Cloud Foundry
Google App Engine
• Since Apr. 2008, commercial in Sep. 2011
• Languages (in order) – Python, Java, Go
• Typical Framework PaaS
▫ Multitenancy by limiting system library functions
No filesystem writes and network sockets
Must use specific database and network services
High vendor lock-in potential (ex. emulation projects)
▫ Quotas needed to support massive multitenancy
Daily quotas – billing, fair use
Per minute quotas – spike prevention
GAE - Quotas
• Basic quota enough for development
▫ 28 h CPU time per day (granularity 15 min)
▫ 1 GB datastore, 5 GB blobstore, 1 GB network traf.
• If billing enabled, minor service quotas raised
▫ $0.08 CPU hour 600 MHz (of what?), larger inst.
▫ $0.12 1 GB net traffic
▫ $0.24 datastore, $0.13 blobstore, $0.1 100k writes
• If exceeded
▫ Main quotas: user gets HTTP 403
▫ Service quotas: OverQuotaError exception
GAE – Services
• Data storage based on Google File System
▫ Over it BigTable noSQL database engine
Providing Datastore and Blobstore APIs (GQL lang.)
For Java JDO and JPA compatibility layers
▫ Problem – not SQL: no indexes, no joins –> very limited
• Developers worry that the applications will not be portable from App Engine and fear
• In response, there are a number of projects to create open-source back-ends for the
• Although these projects are at various levels of maturity, none of them is at the point
service. AppScale and TyphoonAE are two of the open source efforts.
• AppScale can run Python, Java, and Go GAE applications on EC2 and other cloud
vendors.
• TyphoonAE can run python App Engine applications on any cloud that support linux
machines.
• Web2py web framework offers migration between SQL Databases and Google App
beyond.
frameworks.