Cloud Operating System Unit 11 Sever Technology II M. C. Chiang Department of Computer Science and Engineering National Sun Yat-sen University Kaohsiung,

Slides:



Advertisements
Similar presentations
Cloud Computing Development. Shallow Introduction.
Advertisements

1 G2 and ActiveSheets Paul Roe QUT Yes Australia!
Google App Engine Cloud B. Ramamurthy 7/11/2014CSE651, B. Ramamurthy1.
Management Framework for Amazon EC2 Speaker: Frank Bitzer
 Java  Python  Bigtable(Bt) is a distributed storage system for managing structured data that is designed to scale to a very large size.  Query Language.
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
Cloud Computing (101).
A T AXONOMY AND S URVEY OF C LOUD C OMPUTING S YSTEMS Reporter: Steven Chen Date: 2010/10/27 1.
AN INTRODUCTION TO CLOUD COMPUTING Web, as a Platform…
Cloud computing Tahani aljehani.
INTRODUCTION TO CLOUD COMPUTING Cs 595 Lecture 5 2/11/2015.
Introduction to Google AppEngine Development in Java Philippe Beaudoin (Track Sponsor)
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Google App Engine Google APIs OAuth Facebook Graph API
SENG 422 Lab 4 Cloud Computing Time: ELW B220 from (4:00 - 6:50) every Tuesday TA: Philip Baback Alipour Ph.D. Candidate in Electrical, Computer Engineering.
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
4.4 Public Cloud Platforms: GAE, AWS, and AZURE
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Prof. A.R. Rele. What Is Google App Engine? Google App Engine lets users run web applications on Google's infrastructure. App Engine applications are.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
By Mihir Joshi Nikhil Dixit Limaye Pallavi Bhide Payal Godse.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Google App Engine Chien-Chung Shen
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
1 NETE4631 Using Google Web Services and Using Microsoft Cloud Services Lecture Notes #7.
Google App Engine(GAE) Ma, Zhichao Cloud.
In the name of God :).
Meet with the AppEngine Márk Gergely eu.edge. What is AppEngine? It’s a tool, that lets you run your web applications on Google's infrastructure. –Google's.
Amazon Web Services BY, RAJESH KANDEPU. Introduction  Amazon Web Services is a collection of remote computing services that together make up a cloud.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
MCS 270 Spring 2014 Object-Oriented Software Development.
Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan.
User Log Analyzing Algorithm Simulator 491 May15-11.
Enterprise Cloud Computing
CLOUD WITH AMAZON. Amazon Web Services AWS is a collection of remote computing services Elastic Compute Cloud (EC2) provides scalable virtual private.
Paperless Timesheet Management Project Anant Pednekar.
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
1 Google App Engine APIs :Overview Feb – March, 2010 Patrick Chanezon Developer Advocate Google Developer Relations
Cloud services Amazon Web Service (AWS) Intro and usage.
Web Technologies Lecture 13 Introduction to cloud computing.
Information Systems in Organizations 5.2 Cloud Computing.
Cloud Computing Shannon McManus Michael Weihert. What is Cloud Computing?
1 NETE4631 Using Google Web Services Lecture Notes #6.
Function as a Service An Ad Hoc Approach to Cloud Computing By Keith Downie.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
© 2012 Eucalyptus Systems, Inc. Cloud Computing Introduction Eucalyptus Education Services 2.
Yue Zhou. Overall of cloud computing Definition of Could Computing Characteristics and Advantages Type of Services Current Leaders: Google, Amazon, Microsoft,
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Google App Engine. Contents Overview Getting Started Databases Inter-app Communications Modes.
Platform as a Service (PaaS)
Chapter 6: Securing the Cloud
Platform as a Service (PaaS)
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Platform as a Service (PaaS)
Google App Engine Mandeep Singh (37926)
Platform as a Service.
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Introduction to Cloud Computing
Google App Engine Danail Alexiev
Outline Virtualization Cloud Computing Microsoft Azure Platform
Google App Engine Ying Zou 01/24/2016.
AWS Cloud Computing Masaki.
Saranya Sriram Developer Evangelist | Microsoft
Agenda Need of Cloud Computing What is Cloud Computing
Presentation transcript:

Cloud Operating System Unit 11 Sever 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 9/12/2015 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 9/12/2015 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. 9/12/2015 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 9/12/2015 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.) 9/12/2015 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. 9/12/2015 Cloud Operating System - Uint 11: Server Technology 2 U11-7

GAE - Components  Runtime Environment  DataStore  Services 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 Cloud Operating System - Uint 11: Server Technology 2 U11-11

GAE – Services (1)  Services  Memcache  Task Queue  Image Manipulation  URL Fetch  Mail  XMPP 9/12/2015 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 9/12/2015 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 messages.  Uses Google infrastructure. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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? 9/12/2015 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) ’).put() PhoneNumber(contact=kevin, phone_type=‘work’, number=(06) ).put() 9/12/2015 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. 9/12/2015 Cloud Operating System - Uint 11: Server Technology 2 U11-21

GAE – Request Handling Architecture 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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. 9/12/2015 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 9/12/2015 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. 9/12/2015 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 9/12/2015 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. 9/12/2015 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. 9/12/2015 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 element for uploading file to S3 service PHP native file management function wrappers for S3 service 9/12/2015 Cloud Operating System - Uint 11: Server Technology 2 U11-36