...

Google App Engine, Windows Azure CA485 Ray Walshe 2015

by user

on
Category: Documents
8

views

Report

Comments

Transcript

Google App Engine, Windows Azure CA485 Ray Walshe 2015
Google App Engine,
Windows Azure
CA485 Ray Walshe 2015
Review: IaaS vs PaaS vs SaaS
IaaS
• Services such as Amazon EC2 are primarily positioned as
IaaS (Infrastructure as a Service). In this model, the user is given
low-level resource management mechanisms (VM
provisioning, distributed storage, etc.) and it is up to them to
develop their application stack (operating system, HTTP
server, MVC framework, database, etc.). While this provides
extreme flexibility for the user, it also means that they must
manage scaling and fault tolerance on their own.
CA485 Ray Walshe 2015
2
Review: IaaS vs PaaS vs SaaS
SaaS
• At the other end of the spectrum is SaaS (Software as
a Service). Here, the users simply consume software
that is hosted on third-party services. Both the
application and the data is stored on a provider's
server. This convenient for most users, but also
possibly unnacceptable to others who desire more
control over their applications and data.
CA485 Ray Walshe 2015
3
Review: IaaS vs PaaS vs SaaS
PaaS
• In between these two layers is PaaS (Platform as a Service).
This model provides users a framework for developing
applications without dealing with low-level systems
management. Most of the infrastructure manage is done
automatically for you, allowing you to focus on your
application.
Questions
According to Google, what is the primary reason for the movement to the cloud?
What are the advantages and disadvantages of using an PaaS over a IaaS.
CA485 Ray Walshe 2015
4
Google App Engine
• The idea behind Googe App Engine (GAE) is that users would
develop applications using a provided platform which was managed
entirely by the cloud service.
– An app running on App Engine should be easy to build, manage, and scale.
• GAE provides:
• High-level services
• A development server
• Simplified deployment
– All on top of Google's world renown infrastructure. Because everything is
managed for you, GAE auto-scales up to allocate more instances of your app as
needed, then similarly releases resources when no longer needed.
– With App Engine, you only need to worry about your application and let Google
take care of hosting and running it for you.
CA485 Ray Walshe 2015
5
Language / Services
Google App Engine supports Java (including Scala, Clojure, Rhino, Groovy, etc.),
Python, and Go.
Sandbox
Applications are isolated from each other and cannot perform certain actions:
1. Write to local file.
2. Open a socket connection
3. Make operating system calls.
• Insteading of using these traditional operations, users of GAE are encouraged to use
their many services:
1.
2.
3.
4.
5.
6.
7.
Email/XMPP
URLfetch
Memcache
Cloud SQL (MySQL)
Datastore (NoSQL)
Cloud Storage
etc.
CA485 Ray Walshe 2015
6
Administration
/ Compatability
Since you no longer have access to server logs and runtime information, you must rely
on the monitoring and adminstrative tools provided by Google App Engine.
1.
2.
3.
Administration Console
General System Status Page
AppStats (profiler)
• Java: Mostly conforms to Java servlet standards and services mimic standard Java
libraries.
• Python: Provides on web framework (webapp), but can also use standard ones like
Django or Bottle.
The SDKs are open source, so it is possible to create API-compatible alternatives to
Google App Engine (AppScale, TyphoonAE). With these systems, you can move your
GAE application to a platform such as Amazon EC2.
If Google is a cloud vendor and App Engine is its product, does vendor lock-in apply? Well, yes and no. Think of
it this way: you use Google's infrastructure to avoid having to build it yourself. Arguably this is one of the most
difficult and time-consuming things to do. So you can’t get something for nothing. The price you pay is that you
need to integrate your app so that it connects to all of App Engine's components
CA485 Ray Walshe 2015
7
Windows Azure
Although Windows Azure start off as a PaaS, it has slowly augmented itself with more
IaaS features
Execution Models
• Virtual Machines: pay for virtual machines by the hour (IaaS).
• Web Sites: managed web environment on IIS. Supports .NET, PHP, Node.js along
with SQL Database and MySQL. Also has support for applications such as
WordPress, Joomla, and Drupal.
• Cloud Services: create an application using preferred technology (C#, Java, PHP,
Python, Node.js, etc.) and the applications are managed for you. In this model, you
usually have two types of instances: a web role to accept requests from users and a
worker role for the processing. (PaaS)
CA485 Ray Walshe 2015
8
Windows Azure
Data Management
• SQL Database (RDBMS)
• Table (Key/Value Store)
• Blobs (unstructured binary)
Networking
• Virtual Network: Extend your local system with instances in Windows Azure.
• Connect: Connect single Azure application to internal network.
• Traffic Manager: Load balancing
Business Analytics
• SQL Reporting
• Hadoop
CA485 Ray Walshe 2015
9
Windows Azure
Messaging
• Queues: One application places a message in a queue, and that message is eventually
read by another application.
• Service Bus: Service Bus provides a publish-and-subscribe mechanism. An
application can send messages to a topic, while other applications can create
subscriptions to this topic. This allows one-to-many communication among a set of
applications, letting the same message be read by multiple recipients.
Caching
• Data is stored in memory to improve access times.
• Data can be stored in multiple data centers (CDN).
More...
• Identity, HPC, Commerce, etc.
CA485 Ray Walshe 2015
10
Windows Azure
SDKS
Back in 2008, the very first pre-release version of Windows Azure
supported only .NET development. Today, however, you can create
Windows Azure applications in pretty much any language. Microsoft
currently provides language-specific SDKs for .NET, Java, PHP,
Node.js, and Python. There's also a general Windows Azure SDK that
provides basic support for any language, such as C++.
These SDKs help you build, deploy, and manage Windows Azure
applications. They're available either from www.windowsazure.com or
GitHub, and they can be used with Visual Studio and Eclipse. Windows
Azure also offers command line tools that developers can use with any
editor or development environment, including tools for deploying
applications to Windows Azure from Linux and Macintosh systems.
CA485 Ray Walshe 2015
11
Windows Azure
Questions
• Compare and contrast the offerings of Google App Engine and
Windows Azure. Which is more appealing? Is there anything you can
do in one but not the other?
• Why does Windows Azure support non-Microsoft run-times?
• Sometimes Microsoft is called the Borg. Given the description of
Windows Azure, does this nickname fit?.
CA485 Ray Walshe 2015
12
Fly UP