Google App Engine, Windows Azure CA485 Ray Walshe 2015
by user
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