cloud operating system unit 11 sever technology ii m. c. chiang department of computer science and...

Post on 27-Dec-2015

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Cloud Operating System

Unit 11Sever Technology II

M. C. Chiang

Department of Computer Science and Engineering National Sun Yat-sen University

Kaohsiung, Taiwan, ROC

Cloud Operating System

Outline

Platform as a Service Case Study

Google App Engine (GAE) Amazon Web Service (AWS)

Google App Engine Overview Features of Amazon Web Service

Highly Customization

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-2

Platform as a Service

The middle layer between IaaS and SaaS Provides an ‘platform’ developing softwares. The platform interacts with cloud infrastructure. Providers

GoogleAppEngine Amazon Beanstalk Windows Azure

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-3

Platform as a Service

What should a PaaS do? Should aware the loading and capacity, and expand

or shrink when necessary. Self-service. Rapid elasticity.

Should be easy to control, prevent outgrowing in rush hours. Measured service.

Should be reliable, of course.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-4

Case Study: GAE and AWS

Google App Engine Initial release: Apri 7, 2008 Newest stable release: February 28, 2012 Support Python, Java, Go, and other JVM language

Amazon Web Service - Beanstalk Initial release: December 1, 2010

AWS release in July 2002

Newest release: March 20, 2012 Support Java, PHP

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-5

Google App Engine

Provides an easy way to build and maintain applications.

Based on the global distributed infrastructure. Be scalable. Low cost. Coupled with numerous Google existing

applications. (Gmail, Google Docs, etc.)

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-6

GAE - Features

Dynamic web serving. Persistent storage with queries, sorting and

transactions. Scaling and load balancing automatically. Local development environment. Task queue. Scheduled task.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-7

GAE - Components

Runtime Environment DataStore Services

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-8

GAE – Runtime Environments

Runtime Environment Python

Rapid responses to web requests. Supports popular web application frameworks. Works with any application that supports CGI or WSGI.

Java Based on common Java web technology standards. Plugin for Eclipse. Supports other language. (JRuby, JavaScript, Scala)

Go A statically typed, compiled language. Great for CPU-intensive tasks. Huge external libraries support.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-9

GAE – DataStore (1)

BigTable Characteristics

Object-oriented Database Information is represented in the form of objects.

No JOIN Not a traditional relationship database.

Fault Tolerance Many duplications on different servers.

Load Balance Server farm.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-10

GAE – DataStore (2)

BigTable Based on

Google File System (GFS) Optimization on data add and read.

MapReduce A model for data processing on parallel system. “Map” divides the data. “Reduce” integrates the results.

Chubby Providing an interface for loosely-coupled distributed system. Data synchronization.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-11

GAE – Services (1)

Services Memcache Task Queue Image Manipulation URL Fetch Mail XMPP

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-12

GAE – Services (2)

Memcache Provides a high performance in-memory key-value

cache for the applications.

Task Queue Initiated by the user. Can also be created by the application to break

down the task.

Image Manipulation Can resize, crop, rotate and flip images

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-13

GAE – Services (3)

URL Fetch For applications to access resources on the internet. Available for port 80 (http) and port 443 (https). HTTP redirect limit: 5. (2008)

Mail For applications to send email messages. Uses Google infrastructure.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-14

GAE – Services (4)

XMPP XMPP is an instant-messaging protocol, used by

Google Talk, Jabber, and other IM networks. App Engine does not act as an XMPP service itself. Supported by Python and Java so far.

These (URL Fetch, Mail, XMPP) are the ways for applications to communicate with the outside world.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-15

GAE – Sandbox (1)

What is a Sandbox? Computer Security

A mechanism for separating running programs.

Software Development A testing environment for isolating untested code.

How does a Sandbox work? Cuts a specified block of memory. Simulates the true environment in the memory. Records the behaviors of applications.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-16

GAE – Sandbox (2)

Some limitations of GAE sandbox. Applications can only access the internet through the

provided services, such as URL Fetch. Applications can only be connected from outside by

making HTTP or HTTPS requests on the standard ports. Applications can not write to the file system. Applications can only read files uploaded with the

application code. Applications code only runs in response to a web

request, and must respond in 60 seconds.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-17

GAE – GQL

A text-based query language which is similar to SQL.

No JOIN. It’s inefficient when queries span more than one

machine.

Instead, GQL has ReferenceProperty() key-lists

to help to create relationships between entities.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-18

GQL – ReferenceProperty() (1)

One-to-many. Allows disks to fail without the system failing. Associates an arbitrary number of repeated

types of information with a single entity. For example, how to design a database for

users to assign as many phone numbers to each of their contacts as they like?

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-19

GQL – ReferenceProperty() (2) class Contact(db.Model):

class PhoneNumber(db.Model):

contact = db.ReferenceProperty(Contact, collection_name=‘phone_numbers’)

phone_type = db.StringProperty(choices=(‘home’, ‘work’, ‘mobile’, ‘other’))

number = db.PhoneNumberProperty()

If we have a contact named “Kevin” who has a home phone and a work phone, we can populate his contact information like this:

kevin = Contact(name=‘Kevin’)

kevin.put()

PhoneNumber(contact=kevin, phone_type=‘home’, number=‘(07)551-3146’).put()

PhoneNumber(contact=kevin, phone_type=‘work’, number=(06)331-2545).put()

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-20

GQL – key-lists

Many-to-many. Allows lots of different objects to share other

instances between each other. For example, we can design a database with

the ability for users to organize their contacts into groups.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-21

GAE – Request Handling Architecture

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-22

GAE – Request Handling Procedure (1) Load balancer routes the request to one of the

frontends. Frontend determines the applications supplied

from the domain name. According to the configuration, applications tell

frontends how to treat the requests based on the URL paths. Path may map to a static file which should be served

to the client directly. Path may map to a request handler.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-23

GAE – Request Handling Procedure (2) URL path match conditions

No Match HTTP 404

Match the path of one of the applications static files Frontend routes the request to the static file servers.

Match a pattern mapped to one of the application’s request handlers Frontend sends the request to the application server.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-24

GAE – APIs Overview (1)

Backends Allow application author to retrieve information about

backend servers.

Storing Data Provides persistent storage for App Engine

applications. Can be used directly or via the provided JDO or JPA

interfaces. Does operations like get, put, delete, query to the

entities.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-25

GAE – APIs Overview (2) Data Processing (Python)

MapReduce In experimental. Developed by Google. A computing model to do efficient distributed computing over

large data sets.

Services APIs for the existing services.

App Identity, Blobstore, Capabilities, Channel Conversion, Images, LogService, Mail, Memcache, Multitenancy, Oauth, Prospective Search, Task Queues, URL Fetch, Users, XMPP.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-26

GAE – APIs Overview (3)

Tools Remote API (Java)

Helps to access App Engine services from any Java application.

ProtoRPC (Python) In experimental. A simple way to send and receive HTTP-based RPC

services.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-27

Amazon Web Service

Amazon is the pioneer of Cloud Computing Fully customization from bottom-up. Amazon Web Service (AWS) including IaaS

and PaaS. Users should build up the IaaS first, then

develop in the PaaS envrironment, Amazon Beanstalk.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-28

Amazon Web Service - Components Amazon Elastic Compute Cloud (EC2)

Provides virtual machine instances. Can customize instance images.

Amazon Simple Storage Service (S3) Provides storage.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-29

Amazon Web Service - Components Amazon Relational Database Service (RDS)

Provides database instances. Can select between MySQL and Oracle in many versions and configurations.

Amazon Elastic Beanstalk The PaaS solution of AWS. Still in beta.

Other services Load balancer, monitors, notification, etc. About 20 services in total.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-30

Amazon Web Service AWS controls

Operating system Language (Java, PHP) Middleware stack

(tomcat, RDS…) Can be easily extended

Architecture (Web) Storage Data center

User controls Application Code Selecting the middleware

stack (anything except tomcat)

HW configuration Performance Limited control over the

OS using Linux tools JVM tuning/configuration

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-31

AWS Beanstalk

Main Design goals Easy to use Scalable

Development tools AWS Toolkit for Eclipse

For Java development.

AWS DevTools For PHP development.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-32

AWS Beanstalk – Components

Application Not only the codes Including

Versions Environments Environment configurations

Conceptually similar to a folder

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-33

AWS Beanstalk – Components

Version The real deployable code Labeled with development iteration (so it called version)

Part of application. Applications can have many versions.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-34

AWS Beanstalk – Components

Environment The instance runs deployed version. Each environment runs only a single version.

Environment Configuration Record the collection of parameters of an

environment. Such as instance type, auto scaling limits, scaling

trigger, database type, system parameters, etc.

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-35

AWS Beanstalk – API Overview Can categorize into 3 types

The Core Utilities API Query, authentication, request/response

The API Interact with other Amazon services AutoScaling, EC2, S3, RDS, etc.

Extensions (2 extensions currently) API that helps create HTML <from> element for uploading

file to S3 service PHP native file management function wrappers for S3

service

04/19/23 Cloud Operating System - Uint 11: Server Technology 2 U11-36

top related