Cloud Computing, Google App Engine, Microsoft Windows Azure

Comparing Microsoft’s Azure and Google’s App Engine Cloud Computing Platforms

CLASH OF THE TITANS – Comparing Microsoft’s Azure and Google’s App Engine Cloud Computing Platforms
— Written By Devesh Sharma at Illinois State University in May 2011

1. Abstract

One of the most enticing technology areas in today’s world is that of cloud computing. Cloud computing offers numerous advantages to its customers like low cost, ease of use and flexibility. According to a market research and consulting company MarketsandMarkets, the global cloud computing market is expected to grow from $37.8 billion in 2010 to $121.1 billion in 2015 [1]. This is staggering and that is why several cloud computing vendors including the established names in IT like Google, Microsoft and Amazon have already entered the world of cloud computing with their respective platforms. With so many cloud computing platforms already available and counting, it is getting extremely difficult for developers to choose the right cloud computing platform. This paper reviews the Google and Microsoft cloud computing platforms by developing a web application [School Supply System] on these platforms. This paper also includes the lessons learned in the endeavor. With this comparison, the developers can better understand the Google and Microsoft cloud computing platforms and can make a reasonable choice depending on the technology and the business needs.

2. Introduction

At its most basic level, cloud computing refers to providing the software and services over the internet to the client without giving any information about the hardware and systems software running in the datacenters that provides those services [3][4].
The beauty of the cloud computing is that it is easy to get started with. Anyone with an internet connection and a credit card could use the same resources to host and build web applications that power Google or Amazon applications [10] [5]. Moreover, the “pay as you go” feature of cloud computing makes it even more attractive to small businesses. The ability to pay only for the resources used enable companies to cut their expenditures significantly.

Some studies suggest that Small and Medium businesses (SMB) are fuelling the growth of Cloud Computing. According to Microsoft’s SMB Cloud Adoption Study 2011, which polled more than 3,000 SMBs with 250 or fewer employees in 16 countries, including the U.S., 39 percent will leverage at least one cloud service within three years [9]. It shouldn’t come as a big surprise to anyone that reduced costs is the main factor that is driving SMBs to the cloud. Also, the Software as a Service (SaaS) and Platform as a Service (PaaS) segments of cloud computing are well suited for small and medium businesses. SaaS enables small and mid-sized companies to access applications such as CRM and ERP via cloud. This is advantageous for SMBs as they don’t need to deploy these applications in-house and therefore reduced infrastructure costs. This could be well described in the words of Marcus L. Wilson, president and CEO of intelligIS in Atlanta; he says “Mailboxes are $13 a month per user, instead of thousands of dollars for a server, licenses and system backups. That’s a major cost reduction for a company.” One other factor that drives small businesses to the cloud is that the cloud computing vendor upgrades the applications with the latest functionality more frequently as compared to small businesses [11].

Seeing this huge opportunity in cloud computing field new cloud computing service providers are entering the cloud computing market every day. As more and more service providers join the race to tap the huge potential, it is getting extremely difficult for the developers to select the best platform. This paper will discuss and compare cloud computing platforms of two IT giants – Google and Microsoft. This should enable developers to select the best platform out of these two. The rest of the paper is organized as follows. In the next section, we will discuss about the advent of cloud computing and its key characteristics. The fourth section discusses about the web application [School Supply System] developed and deployed on Google and Microsoft cloud computing platforms. This section also describes the implementation of the School Supply System application on both the cloud computing platforms. The fifth section compares the two cloud computing platforms. The last section provides the summary of this cloud computing experiment.

3. Literature Review

a. Advent of Cloud Computing
It has been rightly said that “Necessity is the mother of invention”. This phrase holds true behind the advent of Cloud Computing as well. The active force behind the growth of Cloud Computing existed from past several years and it does exist today as well – Traditional Business Applications. Traditional business applications have always been expensive, complicated and difficult to manage. Traditional business applications not only require in house networks, servers, bandwidth, storage and space for datacenters but they also require adequate man power to install, configure and keep them running [7]. What if an organization has hundreds of applications? Apparently with the amount of resources required for traditional business applications, they do not seem to be the best solution. At this point the latest buzz in the field of Information Technology comes to our rescue – Cloud Computing.

b. Entering the world of Cloud Computing
The idea behind the Cloud Computing is very simple. It is just that instead of organizations running their business applications by themselves in-house, run them on shared data centers. This is advantageous to organizations in the sense that they don’t need to have all the facilities, resources and people to run the applications and therefore, less cost. Moreover, with Cloud Computing vendors taking care of business applications, organizations can use their existing resources to focus on other important things like new projects, research and innovation. It can be best put in words of SalesForce.com – “Cloud computing is a simple idea, but it can have a huge impact on your business” [7].

c. Advantages of Cloud Computing
a. Ease of use: Unlike traditional business applications that require lot of resources and time to get an application up and running, cloud based applications can be up and running in few days.

b. Lower costs: With applications operating on Cloud, organizations don’t need to have all the facilities, resources and people to run their business applications in-house and therefore, less cost.

c. Unlimited storage capacity: One of the biggest advantages of Cloud Computing is that it offers unlimited data storage. Storage space is available on demand and it ranges from few megabytes to hundreds of terabytes.

d. Highly automated: With Cloud Computing, organizations no longer need to worry about software updates, security and performance enhancements. It is the responsibility of the Cloud Computing vendors to install all the required updates and to perform system enhancements.

e. Allow businesses to shift focus: With cloud computing, vendors take care of your applications and therefore, an organization could use its existing resources to focus on other important things like new projects, research and innovation.

f. Scalability: With the advent of Cloud Computing, an enterprise has to no longer worry about the downtime due to enormous user load. Cloud computing offers dynamic addition or subtraction of resources/capacity as per the network load. Therefore, organizations neither have to face scenario where they have thousands of servers sitting idle nor the scenario where they are lacking resources. With cloud computing, organizations need to pay only for what they consume.

In the second section, we have already discussed how vast the cloud computing market has become and how new cloud computing service providers are leveraging the growth of cloud computing to increase revenues. There are lot of service providers in each segment of cloud computing. Whether it is platforms, software and apps, infrastructure, security or storage; there are several cloud computing vendors providing their services. Among these service providers, two of the most prominent service providers are Google and Microsoft with their respective cloud computing platforms. The next section describes the School Supply System application and its development on these platforms.

4. The School Supply System

a. Project Overview
The School Supply System is a web application designed to streamline the process of parents providing school supplies to their children. The beginning of academic year is very stressful for both parents and teachers. Teachers compile the list of required school supplies for each grade and parents goes out shopping these items for their children. The purpose of School Supply System application is to make this period less stressful for both parents and teachers by automating the process of listing and finding school supplies depending on grade. School Supply System acts as a mediator between parents and teachers by offering a user friendly web interface.

The School Supply System application has three user interfaces namely Admin interface, Teacher interface and Parents interface. The Admin interface of the application enables administrators of the application to add or remove grades and item categories. The application allows parents and teachers to create accounts and store their personal information. The Teacher interface of the application enables teachers to add grades to their curriculum and create supply list for each grade. The supply list is organized by item category, item title and required quantity. After creating the initial supply list, the system allows teacher to easily update the list.


Figure 1: Consolidated Cart View – Parents


Figure 2: View Supply List- Parents

Parents can sign in to the system and can store their address and children information. The Parents interface of the system enables parents to view the supplies list sorted by grade and teacher. Depending upon their children grade and its teacher, parents can easily view the respective supply list. The Parents interface of the School Supply System also enables parents to easily customize the item cart. Parents can easily modify the item cart by adding or deleting an item or by modifying the quantity of an existing item. The system is designed with the consideration that if the user has multiple children, the item cart may become long and difficult to manage. In order to avoid this situation, the system offers parents a consolidated view of their cart as well. In consolidated view, the parents can view the total quantities required for each item irrespective of teacher and grade. This interface allows parents to send the customized cart to their registered email id. This automated process makes shopping for school supplies fast, efficient and easy.


Figure 3: Create Supply List – Teacher

b. List of use cases
S.No Use Case Actor
1. Sign Up Parents, Teacher
2. Sign In Parents, Teacher, Admin
3. Forgot username/password Parents, Teacher
4. Sign Out Parents, Teacher, Admin
5. Create new grade Admin
6. Create new item Admin
7. Change password Teacher, Parents
8. Add grade to curriculum Teacher
9. Remove grade from curriculum Teacher
10. Create supply list Teacher
11. Edit supply list Teacher
12. Add address information Parents
13. Update address information Parents
14. Add children information Parents
15. Update children information Parents
16. View supply list Parents
17. Add items to cart Parents
18. Modify cart Parents
19. Email cart Parents
20. View consolidated cart Parents
21. Check out Parents

c. Google App Engine Implementation
Currently, the Google app engine supports Java and python run time environments. For Java runtime environment, Java Servlet standard is used to interact with the environment and developers can use common web application technologies such as Java Server Pages (JSP) to implement the presentation logic of the application. For Python runtime environment, developers can use Python programming language to develop the app and use various supported libraries and frameworks such as Django [5].

Developers can get started with app engine for free. App Engine allows developers to register up to 10 applications per developer account. Moreover, each application can use up to 500MB of storage and up to 5 million page views per month without paying anything [5].

Additionally, App Engine provides various services that applications can use for tasks such as storing persistent data (Google App Engine Datastore Service), sending emails (Mail Service) and integration with Google user accounts. The Datastore service supports two standard Java interfaces – Java Data Objects (JDO) and Java Persistence API (JPA) for reliable and scalable persistent storage of data. The JavaMail interface is used to send emails from app engine platform on behalf of application’s administrators or the signed in user. Java Data Objects (JDO) provides a query language to retrieve objects – Java Data Objects Query Language (JDOQL). JDOQL is similar to SQL, but it doesn’t support Join operations, grouping and aggregate functions [5].


Figure 4

The School Supply System on Google App Engine is implemented using Java programming language and used Java Servlet standard and Java Server Pages (JSP) for developing the front end. The application is using Java Data Objects (JDO) standard for storing objects containing data into the database. The School Supply System was developed on Eclipse IDE using the Google App Engine plugin for Eclipse and Google App Engine SDK. The plugin includes everything to build, test and deploy the application on App Engine and SDK provides a server to simulate the app engine platform on your local machine.

d. Windows Azure Implementation
The Windows Azure implementation of School Supply System is developed using Windows Azure and SQL Azure services. The Windows Azure is the cloud based operating system that provides the development, cloud hosting and the application management environment on the Windows Azure platform. The School Supply System application is developed using web role which is customized for web applications programming. Other roles supported on Windows Azure platform are worker role (for background processing) and VM role [8].

The back end of the application is developed on a cloud based relation database platform – SQL Azure. The SQL Azure is built on the top of SQL Server engine and therefore, working on SQL Azure is quite similar to working on your on-premise SQL Server. This is advantageous for developers as SQL Azure uses the same relational database concepts to store data. Developers have two choices as far as database creation on SQL Azure is concerned. Either they can create database directly on the SQL Azure platform or they can create database on SQL Server and later deployed it to SQL Azure platform. The later involves a two step process – Schema migration and data migration [8].

The Windows Azure Management Portal provides easy access to the service deployments. It provides staging and production environment. Developers can use staging environment to test the application before pushing the application to the production environment. After testing, the application can easily be switched to production from staging. The developers can access SQL Azure platform from the management portal as well. It provides user friendly view of database schema, data and stored procedures [8].


Figure 5

5. Comparison of Google App Engine and Windows Azure

The development of the School Supply System on Google and Microsoft cloud computing platforms enabled to understand these platforms in detail. Both the cloud computing platforms have their own set of characteristics and advantages. Based on the experience of this cloud computing experiment, the comparison of the Google and Microsoft cloud computing platforms is presented below:

a. Language support: Currently, Google App Engine supports only Java and Python programming languages. On the other hand, Windows Azure supports .NET languages (C#, VB, etc), Ruby, PHP and Java.

b. Ease of development: Both the Google App Engine and Windows Azure SDK’s provides a local development server which emulates the production environment on the local machine. During the course of development of the School Supply System application for Google App Engine, there were many instances when the application worked fine locally but it didn’t work at all once deployed to the Google App Engine platform. However, Google App Engine administrative console enables developers to view real time error logs which proved to be very useful in determining the exact cause of failure and eventually fixing it. On the other hand, no such difference between the local environment and the actual production environment was noticed while developing the School Supply System application for Windows Azure platform. Once the application worked fine locally, it always runs the same on Windows Azure platform.

The other important factor noticed while developing the application on these platforms was the development speed or in other words, the ease to change the code. As far as Google App Engine is concerned, it is very easy to change the code even with the local server running. That is, for most of the code changes in Google App Engine, simply refreshing the browser works and there is no need to re-start the server to view the changes. On the other hand, local development in Windows Azure environment gets considerably slow because every time a change is made, the server needs to get re-started in order to see the changes. This significantly reduces the development speed.

c. Deployment: The Google App Engine provides extremely fast deployment time. Developers can directly deploy their app from Eclipse by providing their Google account information. During the course of development of School Supply System application, it usually takes only 5-10 minutes to get application deployed to the App Engine platform. On the other hand, deployment on Windows Azure is comparatively very slow. It always took at least 15-20 minutes to get the School Supply System application deployed on Windows Azure platform.

d. Administrative console: Google App Engine dashboard or administrative console enables developers to view error logs, analyze traffic, add other people as developers, administer data store and switch the versions of applications. Google App Engine let developers have multiple versions of their application running and developers can easily switch between multiple versions to set the current live version of the application.

The Windows Azure management portal doesn’t allow developers to analyze traffic and view error logs. However, the Windows Azure management portal enable developers to test their applications on staging environment before being deployed to actual production environment. There is no such staging environment provided on the Google App Engine platform.

e. Data storage: Developers proficient in relational data modeling concepts will find working with Windows Azure data storage service (SQL Azure) extremely easy. This is because of the fact that SQL Azure is built on the top of the SQL Server and therefore, it takes no time to get started with SQL Azure. On the other hand, developers may have to investment considerable amount of time to get themselves familiar with Object Oriented Database (Google App Engine data store).

f. Cost: One of the biggest advantages of using Google App Engine over Windows Azure is that it is free to get started with Google App Engine. Developers can create up to 10 applications on one developer account. The application on Google App Engine will incur charges only when it grows considerably in size and exceeds the free quota. On the other hand, Windows Azure is not free; in fact it is expensive to play with. Application deployed on Windows Azure will incur charge based on the CPU usage and irrespective of the number of visits to your application.

g. Mail Service: The Google App Engine supports Mail Service to send emails on behalf of application’s administrators or on behalf of signed-in users. On the other hand, Windows Azure platform doesn’t support SMTP relay service and therefore, the developers have no option other than to use third party servers. The ability to send emails was one of the key characteristics of the School Supply System application. As SMTP relay service is not available on Windows Azure, the Exchange Web Services (EWS) were used to implement the functionalities that required sending emails from the platform.

6. Summary and Conclusions

The main purpose of developing the School Supply System application on the clouds was to bridge the gap between the theoretical and practical knowledge of cloud computing. Although, cloud computing is still in its earlier age of development; it has the potential to change the way organizations handles their business applications. The motive behind choosing Google and Microsoft platforms for this cloud computing experiment was just that both the companies are IT giants and they have the potential and resources to lead the cloud computing market in future.

The choice of the platform depends on several factors such as the type of application, the desired data store, cost, etc. For example, in applications where relational data store is must, Windows Azure is the better choice because of the scalable and robust SQL Azure service. The Google App Engine platform is better suited for new and innovative applications as it is cheaper to get started with App Engine. During the course of development of the School Supply System on Google App Engine, some of the key positive features of the platform identified are its easy integration with various services, highly scalable and efficient app engine data store, ability to switch application versions, faster development and free trial. Some factors that didn’t support the fast and easy development are the difference in behavior of the app on local and production environment and time required to understand and learn app engine data store. As far as Windows Azure is concerned, some key positive features identified are the familiar relational data model in SQL Azure and support of much wider language set. Some features on the slightly negative side are high cost, slow development time and slow deployment time. In the last, it could be concluded that both the cloud computing platforms have their own set of characteristics and advantages and time will determine which platform will rule the future of cloud computing.

7. References
1. Etengoff, Aharon. (2010, October 11). Cloud computing market to hit $121.1 billion by 2015. Retrieved from http://www.tgdaily.com/software-features/51969-cloud-computing-market-to-hit-1211-billion-by-2015

2. Peng, Junjie, & Zhang, Xuejun. (2009). Comparison of several cloud computing platforms. Second International Symposium on Information Science and Engineering, IEEE, 23-27.

3. Cloud computing. (n.d.). Retrieved from http://en.wikipedia.org/wiki/Cloud_computing

4. Armbrust, Michael, & Fox, Armando. (2009). Above the clouds: a berkeley view of cloud computing

5. Google app engine. (n.d.). Retrieved from http://code.google.com/appengine/

6. Panati, Manikanta. (2009). Commerce on the cloud: a case study of cloud computing.

7. What is cloud computing?. (n.d.). Retrieved from 7. http://www.salesforce.com/cloudcomputing/

8. Windows azure. (n.d.). Retrieved from http://www.microsoft.com/windowsazure/

9. Hickey, Andrew R. (2011, March 25). Microsoft survey says smb cloud services adoption slow, steady. Retrieved from http://www.crn.com/news/cloud/229400300/microsoft-survey-says-smb-cloud-services-adoption-slow-steady.htm

10. Kelly, Sue. (n.d.). Ibm: cloud computing to contribute $7 billion in revenue by 2015. Retrieved from http://www.ciozone.com/index.php/Cloud-Computing/IBM-Cloud-Computing-to-Contribute-$7-Billion-in-Revenue-By-2015.html

11. O’Neill, Leslie T. (2010, October 11). Cloud computing lets small businesses focus on their business, not it. Retrieved from http://newsroom.cisco.com/dlls/2010/ts_101110.html