What is a cloud? Monday, January 25, :13 PM

Similar documents
Lessons learned so far... Wednesday, January 26, :16 PM

Lab 10. Google App Engine. Tomas Lampo. November 11, 2010

Last time, we studied how to build a service using SOAP:

Cloud Computing Technologies and Types

Cloud Computing. Technologies and Types

Introduction To Cloud Computing

Introduction to Cloud Computing. [thoughtsoncloud.com] 1

The Platform as a Service of Google. Vincenzo Gianferrari Pini

Cloud Computing. What is cloud computing. CS 537 Fall 2017

objects, not on the server or client! datastore to insure that application instances see the same view of data.

CS 6393 Lecture 10. Cloud Computing. Prof. Ravi Sandhu Executive Director and Endowed Chair. April 12,

UVA HPC & BIG DATA COURSE. Cloud Computing. Adam Belloum

Lecture 09: VMs and VCS head in the clouds

CHEM-E Process Automation and Information Systems: Applications

FIVE REASONS YOU SHOULD RUN CONTAINERS ON BARE METAL, NOT VMS

Community Clouds And why you should care about them

Can "scale" cloud applications "on the edge" by adding server instances. (So far, haven't considered scaling the interior of the cloud).

Cloud Computing Introduction & Offerings from IBM

Cloud Computing. Grace A. Lewis Research, Technology and Systems Solutions (RTSS) Program System of Systems Practice (SoSP) Initiative

Introduction to data centers

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Object-relational mapping. Source

Pieces of the puzzle. Wednesday, March 09, :29 PM

Everything you need to know about cloud. For companies with people in them

6/17/2017. Cloud Computing. Presented By: Mark Jordan. Agenda. Definition Structures Examples Which is Better? Future

COMPTIA CLO-001 EXAM QUESTIONS & ANSWERS

Cloud Computing Lecture 4

Cloud Computing: Making the Right Choice for Your Organization

Programowanie w chmurze na platformie Java EE Wykład 1 - dr inż. Piotr Zając

CPSC 426/526. Cloud Computing. Ennan Zhai. Computer Science Department Yale University

In this unit we are going to look at cloud computing. Cloud computing, also known as 'on-demand computing', is a kind of Internet-based computing,

Cloud Computing: The Next Wave. Matt Jonson Connected Architectures Lead Cisco Systems US and Canada Partner Organization

What is Cloud Computing? What are the Private and Public Clouds? What are IaaS, PaaS, and SaaS? What is the Amazon Web Services (AWS)?

Moving to the Cloud. Developing Apps in. the New World of Cloud Computing. Dinkar Sitaram. Geetha Manjunath. David R. Deily ELSEVIER.

Front End Programming

Hybrid IT Managed Services

Market Trends in Public Cloud Storage

CLOUD COMPUTING. Lecture 4: Introductory lecture for cloud computing. By: Latifa ALrashed. Networks and Communication Department

What is Cloud Computing? Cloud computing is the dynamic delivery of IT resources and capabilities as a Service over the Internet.

Cloud Computing. DB Special Topics Lecture (10/5/2012) Kyle Hale Maciej Swiech

Episerver Digital Experience Cloud Norge Thechforum 2017

Cloud Computing An IT Paradigm Changer

Cloud Computing and Service-Oriented Architectures

Cloud Computing 4/17/2016. Outline. Cloud Computing. Centralized versus Distributed Computing Some people argue that Cloud Computing. Cloud Computing.

Architectural Implications of Cloud Computing

Distributed Systems. 31. The Cloud: Infrastructure as a Service Paul Krzyzanowski. Rutgers University. Fall 2013

Chapter 4. Fundamental Concepts and Models

Java EE Architecture, Part Three. Java EE architecture, part three 1(69)

Large Scale Computing Infrastructures

Why the cloud matters?

Module Day Topic. 1 Definition of Cloud Computing and its Basics

Introduction to Cloud Computing

January Cloud & Xaas. When computers flies in the sky. Jérôme Blanchard Research Engineer ATILF, CNRS

Cloud & AWS Essentials Agenda. Introduction What is the cloud? DevOps approach Basic AWS overview. VPC EC2 and EBS S3 RDS.

Mobile Cloud Computing

Lesson 14: Cloud Computing

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Analysis of Cloud Computing Delivery Architecture Models

CLOUD COMPUTING-ISSUES AND CHALLENGES

Cloud platforms T Mobile Systems Programming

Multitiered Architectures & Cloud Services. Benoît Garbinato

Cloud Computing and Service-Oriented Architectures

Cloud Computing Overview. The Business and Technology Impact. October 2013

PUBLIC AND HYBRID CLOUD: BREAKING DOWN BARRIERS

Designing for the Cloud

CLOUD COMPUTING. A public cloud sells services to anyone on the Internet. The cloud infrastructure is made available to

Course Overview. ECE 1779 Introduction to Cloud Computing. Marking. Class Mechanics. Eyal de Lara

From EC2 to Alex Tolley

Securing Amazon Web Services (AWS) EC2 Instances with Dome9. A Whitepaper by Dome9 Security, Ltd.

MANAGED CLOUD SERVICES

Ellie Bushhousen, Health Science Center Libraries, University of Florida, Gainesville, Florida

Cloud Computing Briefing Presentation. DANU

ISACA Phoenix Chapter Meeting

CLOUD COMPUTING PRIMER FOR EXECUTIVES

Cluster-Based Computing

Software as a Service (SaaS), Service-Oriented Architecture (SOA), and Cloud Computing

Angela McKay Director, Government Security Policy and Strategy Microsoft

Cloud Computing. Vania Marangozova-Martin. ibd.forge.imag.fr

Building scalable, complex apps on App Engine. Brett Slatkin May 27th, 2009

The Next Generation Security Platform. Domenico Stranieri Pre- Sales Engineer Palo Alto Networks EMEA Italy

What is. Thomas and Lori Duncan

So far, Wednesday, February 03, :47 PM. So far,

Protecting your Data in the Cloud. Cyber Security Awareness Month Seminar Series

Middle East Technical University. Jeren AKHOUNDI ( ) Ipek Deniz Demirtel ( ) Derya Nur Ulus ( ) CENG553 Database Management Systems

Cloud & Virtualization Technologies

Leveraging the Cloud for Law Enforcement. Richard A. Falkenrath, PhD Principal, The Chertoff Group

PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved

APCO s Vision for NG Jay English, Chief Technology Officer Jeff Cohen, Chief Counsel & Director of Government Relations

Top 40 Cloud Computing Interview Questions

SEEM3450 Engineering Innovation and Entrepreneurship

Chapter 6 Object Persistence, Relationships and Queries

Cloud Infrastructure and Operations Chapter 2B/8 Page Main concept from which Cloud Computing developed

Cloud Computing introduction

CLOUD COMPUTING ARTICLE. Submitted by: M. Rehan Asghar BSSE Faizan Ali Khan BSSE Ahmed Sharafat BSSE

Reviewing Nist Cloud Computing Definition

ECE Enterprise Storage Architecture. Fall ~* CLOUD *~. Tyler Bletsch Duke University

Data Centers and Cloud Computing

STAFF SYMPOSIUM SERIES INFORMATION TECHNOLOGY TRACK FACILITATORS

Data Centers and Cloud Computing. Slides courtesy of Tim Wood

Choosing the Right Cloud Computing Model for Data Center Management

Transcription:

Introduction Page 1 What is a cloud? 12:13 PM What is "Cloud Computing"? A programming paradigm for distributed applications A business paradigm for reassigning business risk An infrastructure paradigm for greening the data center

Introduction Page 2 A new programming paradigm 12:16 PM Clouds as a programming paradigm No useful concept of a file or a database. Throw data instances into (or perhaps "at") the cloud. Query the cloud whenever you need something back. Cloud is an opaque data container that does all of the work of persistence and integrity for you.

Introduction Page 3 Clouds and risk 12:18 PM Clouds and business risk Clouds provide a way to reassign (or outsource) business risks. Running an Information Technology infrastructure is very expensive in human labor. Main expenses: assuring availability and data integrity. One can "pay someone else" to insure these.

Introduction Page 4 Clouds and green computing 12:21 PM Clouds and green computing Fact: power needs for computing are growing without bound. One way to reduce power consumption is to exploit economy of scale. Running one large datacenter and sharing resources takes much less power than several small datacenters for specific purposes.

Introduction Page 5 Kinds of clouds 12:27 PM Kinds of clouds: Software-as-a-service (SaaS): a high-availability application is provided for ubiquitous access by the consumer. (gmail) Platform-as-a-service(PaaS): cloud provider makes a programming platform available to a client, for running the client's programs in serving the client's customers. (Google Apps) Infrastructure-as-a-service(IaaS): bare-metal or virtual machines are provided to a company for their own use, in a remote datacenter. (Amazon)

Introduction Page 6 SaaS: Google Apps 12:29 PM Example of SaaS: Google Apps Calendar, mail, tasks. Google writes the apps. Simpler example: "Remember the milk" Customer pays small access fee Ubiquitous access to task lists from all kinds of devices.

Introduction Page 7 PaaS: Google AppEngine 12:35 PM Example of PaaS: Google AppEngine Customer provides a "cloud-aware application". Program runs on Google's servers. Other examples: Microsoft Azure Yahoo Hadoop

Introduction Page 8 IaaS: Amazon Web Services 12:30 PM Example of IaaS: Amazon Web Services Customer pays Amazon to host an application. Customer provides images of linux servers. Amazon charges customer only when servers are needed and running. Another example: eucalyptus "Build your own" infrastructure management. You're responsible for "maintaining the cloud".

Introduction Page 9 What clouds are not Monday, January 24, 2011 11:36 AM Cloud computing is about serial processing Not a parallel computing paradigm. Instead, about enabling reliable serial processes. Reliability is attained through scale and parallelism!

Introduction Page 10 Public versus private 12:58 PM Public versus private clouds In a public cloud, you potentially share resources with competitors. (Amazon EC2) In a private cloud, your machines and infrastructure are dedicated to your use. (Eucalyptus)

Introduction Page 11 Cloud challenges 1:00 PM Cloud challenges Writing cloud-enabled applications Cloudsourcing: adapting non-cloud and legacy applications to a cloud. Security and privacy: understanding risks and guarantees in public and private settings. Availability and elasticity: making a cloud respond to changes in demand. Power awareness: making the cloud "green".

Introduction Page 12 Rough sequence of the course 12:41 PM Rough sequence of this course PaaS IaaS Power awareness

Introduction Page 13 Evolution of PaaS 12:22 PM PaaS has rapidly evolved through several distinct steps: First stage: web applications. Second stage: applet/servlet architecture. Third stage: service-oriented architectures (SOAs). Fourth stage: cloud applications -- what we will study. Good news: no SOAP or REST Bad news: other difficulties arise instead!

Introduction Page 14 Web applications 12:26 PM First stage: web applications Web "pages" communicate with "web servers" via the Common Gateway Interface (CGI) CGI request: what is wanted. CGI response: response to the request. Requests are generated by user, responses are returned directly to the user.

Introduction Page 15 Applet/Servlet 12:44 PM Second stage: Applet/Servlet architecture Pages contain "Applets" that are little Java programs that implement, e.g., innovative interfaces. Applets communicate with servlets via some protocol. "Servlets" are little Java Programs that answer one kind of request. Applets display results of servlet calls.

Introduction Page 16 Service-oriented architecture (SOA) 12:46 PM Third stage: service-oriented architecture (SOA) Outsource certain functions to third parties. Example: let google Maps draw a map. Web page uses JavaScript to invoke services, and communicates with services via SOAP: Simple Object Access Protocol REST: Representative State Transfer protocols. This is the basic pattern of Web 2.0.

Introduction Page 17 Cloud applications 12:50 PM Fourth stage: cloud applications No more browser or html or javascript involved! An application on the client host communicates "directly with the cloud" via some protocol. Usually two parts to each application: A client part that mediates between the user and a server part. A server part that mediates between the client part and the cloud, via some request/response protocol. A mysterious ritual: You (as a programmer) write one thing. It is translated (automagically) into two sides. You don't need to understand SOAP. You don't need to understand storage. It just happens.

Introduction Page 18 The ritual of cloud programming Monday, January 24, 2011 12:21 PM The ritual of cloud programming You (as a programmer) write a serial program. It is translated (automagically) into two sides. A client side. A cloud side. Some boxes are closed. You don't need to understand SOAP. You don't need to understand storage. It just happens.

Introduction Page 19 Example: android 12:53 PM Example: android "applications" Client: a program "on the phone" that displays data. Server: a program "in the google cloud" that interacts with Google and makes data available. Target cloud: google AppEngine.

Introduction Page 20 Thinking in the cloud 1:03 PM One challenge: thinking appropriately for a cloud Data storage occurs at a very high level of abstraction. Access data mostly via object interfaces. Must conceive of data storage without structure. Cloud handles all structural optimizations. A lot of programming the cloud lies in trusting the optimizations of the cloud, and not interfering with them!

Introduction Page 21 Datastore services 1:06 PM Datastore service Makes crucial data persistent. Later, query storage for stored things.

Introduction Page 22 Storage versus persistence Monday, January 24, 2011 12:06 PM Storage versus persistence Usually, we might think of storing data in a file. In a cloud, we think instead of making an object persistent, which means that its value stays the same between program invocations. How persistence is accomplished doesn't matter; we can presume that it will be made persistent, and not worry about how.

Introduction Page 23 Example: The AppEngine Datastore 1:10 PM Source: http://code.google.com/appengine/docs/java/datastore/ overview.html The AppEngine Datastore Annotate objects with Java DataStore Object annotations (JDO). Make persistent object store with a factory. Control persistence with Java Persistence API (JPA).

Introduction Page 24 AppEngine Datastore example 1:11 PM import com.google.appengine.api.datastore.key; import java.util.date; import javax.jdo.annotations.idgeneratorstrategy; import javax.jdo.annotations.identitytype; import javax.jdo.annotations.persistencecapable; import javax.jdo.annotations.persistent; import javax.jdo.annotations.primarykey; @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Employee { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; @Persistent private String firstname; @Persistent private String lastname; @Persistent private Date hiredate; { public Employee(String firstname, String lastname, Date hiredate) } this.firstname = firstname; this.lastname = lastname; this.hiredate = hiredate; // Accessors for the fields. JDO doesn't use these, but your application does. public Key getkey() { return key; }

Introduction Page 25 public String getfirstname() { return firstname; } } //... other accessors... Pasted from <http://code.google.com/appengine/docs/java/datastore/overview.ht ml>

Introduction Page 26 Taking the example apart 1:15 PM Taking the example apart @PersistenceCapable(identityType = IdentityType.APPLICATION) Declares an object as possibly persistent. IdentityType.APPLICATION describes scope of persistence (until application is decommissioned, i.e., permanently!). @PrimaryKey Declares an object as unique, indexed, and searchable. @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) Declares an object as being stored between calls to the server. valuestrategy: how to determine the value of the thing. IdGeneratorStrategy.IDENTITY: automatically make the value unique. @Persistent Just declares an object as being stored between calls to the server.

Introduction Page 27 The Java Persistence Factory 1:23 PM One makes persistent objects via a factory import javax.jdo.jdohelper; import javax.jdo.persistencemanagerfactory; public final class PMF { private static final PersistenceManagerFactory pmfinstance = JDOHelper.getPersistenceManagerFactory("transactionsoptional"); private PMF() {} } public static PersistenceManagerFactory get() { return pmfinstance; } Pasted from <http://code.google.com/appengine/docs/java/datastore/overview.htm l>

Introduction Page 28 Taking the example apart 1:22 PM Taking the example apart private static final PersistenceManagerFactory pmfinstance = JDOHelper.getPersistenceManagerFactory( "transactions-optional" ); Generates a factory that deals with persistence for the Employee class. "transactions-optional" means that we don't "need" a transaction store but that it's ok to create one! public static PersistenceManagerFactory get() { return pmfinstance; } Just an accessor for the factory, that makes sure that it is only created once!

Introduction Page 29 Assuring persistence 1:25 PM Assuring persistence: import java.util.date; import javax.jdo.jdohelper; import javax.jdo.persistencemanager; import javax.jdo.persistencemanagerfactory; import Employee; // your persistent class import PMF; // your persistence manager factory //... Employee employee = new Employee("Alfred", "Smith", new Date()); PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makepersistent(employee); } finally { pm.close(); } Pasted from <http://code.google.com/appengine/docs/java/datastore/overview.html>

Introduction Page 30 Taking the example apart 1:36 PM Taking the example apart PersistenceManager pm = PMF.get().getPersistenceManager(); Just gets a reference to the (unique) instance created by the factory. try { pm.makepersistent(employee); } finally { pm.close(); } Store one employee in the datastore, ignoring errors, and closes the persistence mechanism.

Introduction Page 31 Querying persistent data 1:30 PM import java.util.list; import Employee; //... String query = "select from " + Employee.class.getName() + " where lastname == 'Smith'"; List<Employee> employees = (List<Employee>) pm.newquery(query).execute(); Pasted from <http://code.google.com/appengine/docs/java/datastore/overview.ht ml>

Introduction Page 32 Taking the query apart 1:39 PM Taking the query apart "select from " + Employee.class.getName() + " where lastname == 'Smith'"; A query specification in PDO query language (PDOQL). This is not Structured Query Language (SQL)! (List<Employee>) pm.newquery(query).execute(); Get employee records matching the query. Note that the query is to the persistence manager (pm), not the object.