lecture 8 – platform as a service. introduction we have discussed the spi model of cloud computing...

22
Lecture 8 – Platform as a Service

Upload: roxanne-davis

Post on 26-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Lecture 8 – Platform as a Service

Introduction

• We have discussed the SPI model of Cloud Computing– IaaS– PaaS– SaaS

• To better take advantage of Cloud, some vendors have crafted cloud platform that enables faster time-to-market, a common user experience, and an easier development environment over distributed systems.

• IaaS can be viewed as machine-centric approach for cloud computing

• PaaS can be viewed as application-centric approach for cloud computing

Cloud Platform

• Cloud platform act as run-time enviroments that supports a set of programming languages.

• Cloud platform may offer additional services such as reusable components and libraries.

• Typically, cloud platform will offer plug-ins into common development environments, such as Eclipse, to facilitate development, testing, and deployment

• PaaS examples: - Google App Engine - Microsoft Windows Azure - Force.com

Google App Engine - Functions

• Google App Engine enables developers to build web applications on the same scalable systems that power google’s own applications

• It means that, by using Google App Engine, you can easily design scalable applications that grow from one user to millions of users without infrastructure headaches

This page is cited from https://appengine.google.com

• Building an environment to support the whole life cycle of a web application is actually pretty complex:

- runtime environment to run the code - environment to serve static content - database access - request and application logs - methods to push new release of the code - security of the application - backup - load balancing - scalability

• Google App Engine provides an environment that supports the whole life cycle of web application

• With Google App Engine, you can serve your web applications from your own domain name, or use a free name on the appspot.com domain

• You can share your application with the world, or limit access to certain users.

Directly cited from http://code.google.com/appengine/docs/whatisgoogleappengine.html

Google App Engine - Components

• Google App Engine provides the following run time environments:

- Java runtime environment (Java or langauge using JVM-based interpreter or compiler, such as JavaScript or Ruby)

- Python runtime envrionment (including Python interpreter and Python standard library)

- Go runtime environment (running natively compiled go code).

Information from http://code.google.com/appengine/docs/whatisgoogleappengine.html

• Google App Engine also provides APIs for your application to access a series of Services:

- URL Fetch Service: Your application can use the same high-speed Google infrastructure to retrieve web resources.

- Mail Service: Your application can send and receive email message

Information from http://code.google.com/appengine/docs/whatisgoogleappengine.html

- Memcache Service: Your application can access a high performance in-memory key-value cache.

- Image Manipulation Service: Your application can process images (resize, crop, rotate, and flip)

- Google Account: Your application can allow user to sign in with a Google account.

Information from http://code.google.com/appengine/docs/whatisgoogleappengine.html

• Sandbox: Application run in a secure and isolated environment with limited access to the underlying operating system.

- An application can only access other computers via URL fetch service and email services

- Other applications can only access your application via http (https) request

- Application can not write to the file system of the runtime environment.

- Application can only read files uploaded with the application code.

- Application can only runs in response to a web request, a queued task, or a scheduled task.

Information from http://code.google.com/appengine/docs/whatisgoogleappengine.html

• Data Storing - App Engine DataStore: provides a

schemaless object datastore - Google Cloud SQL: provides a relational SQL

database service for your application - Google Cloud Storage: provides a storage

service for objects and files.

Windows Azure

• Windows Azure is a cloud platform running on Microsoft’s data centers. It supports the life cycle of a hosted service.

• Developers can build and deploy applications as a hosted service for Windows Azure by using the .NET framework

Information from MSDN.microsoft.com/en-sus/library/windowsazure

• A windows Azure hosted service can contain the following roles

- web role - worker role - vm role

• A web role instance can accept incoming http(https) requests and support web application hosted in IIS

• A worker role instance supports applications that are not hosted in IIS

• A VM role allows you to run a preconfigured OS image in Azure.

• An application can contains an individual role or combination of them.

• You can request more instances of any role to scale your application up.

• For example, your application needs more computing power to handle increasing requests, you can spin up a new VM role instance.

• Developer can use Visual Studio with the following toolkit installed:

- The Windows Azure Software Development Kit - Windows Azure Tools for Microsoft Studio.• You can test your code locally and publish to

Azure.

Force.com

• Force.com is a cloud platform for creating and deploying applications for the social enterpise.

• On this platform, you can build apps that include build-in social and mobile functionality, business process, reporting, and search.

• Your apps run on a secure platform that can be easily scale up/down with automatically backup.

Information from Force.com

• Google Apps Engine and Windows Azure can be viewed as code-centric PaaS

• Force.come can be viewed as data-centric PaaS

• It exposes all cuomer specific configurations (forms, reports, workflows, user privileges, cusomizations, business logics) as metadata which is programmatically accessible.

• The force.com Integrated Development Environment (IDE) is simply a plug-in to the Eclipse platform.

• The plug-in directely connects to the Force.com services in the cloud and acts on the test environment.

• The tested application can be deployed into production by one click.

• Force.com also provides two tools for building GUI of your service.

- UI builder - Visualforce