Cloud Zone is brought to you in partnership with:

I am a software engineer, database developer, web developer, social media user, programming geek, avid reader, sports fan, data geek, and statistics geek. I do not care if something is new and shiny. I want to know if it works, if it is better than what I use now, and whether it makes my job or my life easier. I am also the author of RegularGeek.com and Founder of YackTrack.com, a social media monitoring and tracking tool. Robert is a DZone MVB and is not an employee of DZone and has posted 107 posts at DZone. You can read more from them at their website. View Full User Profile

Is Google App Engine An Enterprise Solution?

06.24.2011
| 10377 views |
  • submit to reddit

There has been a lot of discussion lately about “cloud” offerings and what is the cloud. I am going to avoid a definition of the cloud, but I am going to talk about the various infrastructure offerings that are available, specifically the differences between two types of offerings. There are some offerings that are purely a server (infrastructure-as-a-service), like Amazon EC2 or Rackspace. Others provide a full programming stack (platform-as-a-service) like Google App Engine or Heroku. Disappointingly, these two types of offerings are both termed “cloud” which definitely leads to some confusion. The differences become even hazier when there are products built on top of Amazon EC2 to provide the same type of environment as App Engine and Heroku.

Given that there are options that provide a full programming stack, why would anyone choose a basic server like EC2? Well, there could be a host of reasons. First, let’s look at what is happening with Google App Engine. Just about a week ago, GigaOm wrote about App Engine in the enterprise:

Google might have announced App Engine for Business too early — more than a year ago— before it had a chance to gauge reaction to some of its more-limiting features. The company’s “trusted testers,” it turns out, liked many of the features, but they didn’t like the idea of a separate offering or the fact that App Engine for Business locked down API access from outside the owner’s domain.

I am not sure who the “trusted testers” are, but I do find the comments interesting. Not liking a separate offering for businesses has a distinctly non-business feel. That means that some of the testers were testing both the regular version and the business version. In addition, the comments regarding the  limitation of the business version locking down API access outside of the owner’s domain point to non-enterprise users as well. So, does this mean that App Engine is not really used in a business environment? Yes and no, but it really depends on the size of the business, and this relates to whether App Engine or Amazon EC2 get selected in the first place.

First, some background on the differences. Amazon EC2 gives you the ability to quickly create and start a server. By itself, the server is fairly bare. In order to compensate for this, Amazon gives you the ability to create machine images. An image is basically a snapshot of a configured server. So, if you are a java development shop, you can install MySQL, Tomcat and Apache HTTP and configure them in specific ways. You can save that setup and configuration as an image. This allows the administrator to start a server with minimal effort and the server will already be configured to the standard specifications. Another benefit of this type of setup is that you have access to the bare metal. You can have your system administrators login to the machine and do their normal tasks, and it does not really seem like anything other than a typical server.

Google App Engine is a completely different beast. What App Engine really does is provides “runtime environments” for your applications. At first glance it looks like server applications for dummies, but it is much bigger than that. Google provides various APIs, like the Datastore API, so that you really do not need to do anything outside of the runtime environment. For some people, this is a fantastic idea because the developers only need to worry about developing applications and not about how to properly configure Tomcat.

This finally brings me to my point. For individual developers, Google App Engine provides a solid solution assuming you can live within the technologies provided. This type of solution would work for small businesses as well. However, the benefits of Google App Engine probably stop with small businesses, including some startups. Larger corporations and big enterprises will have little use for a “runtime environment” that they cannot configure to their own desires. This size of business likely has a dedicated IT department, and has rules about where their code and data can live. Having a small prototype running on App Engine might be OK, but once an application is ready to move to a production environment, it is probably planned to be hosted on their internal servers. Interestingly enough, these are the same reasons that more corporations are moving some of their application infrastructure to services like Amazon EC2.

So, what does this all mean? Can Google App Engine compete in the enterprise? Not really, but that should not be their target. Small businesses and startups can be huge revenue generators, it just does not sound as sexy as having many Fortune 500 customers. There is not a lot of competition in that space, so it is ripe for domination. The enterprise is prime for companies like Amazon and Rackspace, and there is not a lot of similar competition there either. One thing that could cause App Engine to fail is targeting enterprise customers and forgetting about the smaller businesses. Another problem they could have is not watching the infrastructure companies like Amazon who could provide a simpler interface and create a solution similar to App Engine.

In any case, the cloud infrastructure game is heating up and there are some very interesting solutions. Customer focus for these companies will be critical if they want to remain a strong player.

From http://regulargeek.com/2011/06/23/is-google-app-engine-an-enterprise-solution

Published at DZone with permission of Robert Diana, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Shai Almog replied on Fri, 2011/06/24 - 2:02am

I strongly disagree with your assertions here. Yes there are disadvantages to lack of "on the metal" configuration in the enterprise but since most IT departments get it wrong this isn't a big disadvantage. The main point I have a problem though is the large IT department at our disposal, I worked with quite a few enterprises and in a nutshell what we want is to avoid the IT department as much as possible. Every time we want to setup a server its an endless bureaucratic nightmare between departments and countless meetings after which you get something that is sub par to what you asked for. Updating is a pain since it all needs to go via the guys at that department. If an individual manager within a corporation can just get around this nonsense by spending a ridiculously low amount of money to host an application and without the need of admin skills then he will often take it. In fact we used Google App Engine for a few of our demo servers which we would have never been able to get authorization for within the org. Will whole organizations move to GAE? Not as it is right now but Google is building the infrastructure to do just that. Today enterprises whose business isn't in software outsource allot of their infrastructure maintenance, Google already has some small partners who help do just that for Google cloud services (move office users to docs, move intranets to sites etc.) and here app engine can be a huge revolution especially due to its integration with single signon and the whole Apps echo system. This is frankly way better than any corporate intranet I have ever used.

Robert Diana replied on Fri, 2011/06/24 - 4:18am in response to: Shai Almog

Shai
My thoughts were actually just like yours. It is not that App Engine cannot be used for interesting work, it is just that corporations want more control. I am also not saying that the control is good or whether the corporate IT departments can consistently configure the servers. I would agree that for demo purposes, App Engine gives you a solid, quick solution especially when compared to the corporate environments. I also agreed with your small business comments, where App Engine could be a major player. In other posts on my blog, I have written about the small business opportunity with Apps, Apps Script and Google Sites. Overall, Google is well positioned to dominate some of this small business development.

Olivier GERARDIN replied on Fri, 2011/06/24 - 4:33am

This is a IaaS vs. PaaS discussion, and I think that assuming IaaS is for big companies and PaaS is for small business is totally missing the point.

Jonathan Fullam replied on Fri, 2011/06/24 - 7:31pm

Embracing PaaS offerings does not need to be an all or nothing decision for any size company. Large enterprises that are reluctant to embrace PaaS (or IaaS for that matter) because of lack of control, compliance, or security reasons will need to adapt to cloud computing in order to stay competitive. A good approach is to start off building a private cloud. There will be cases where public cloud offering like GAE will be appropriate and very cost effective. There are other offering out there as well such as CloudFoundry by SpringSource that are very promising. CloudFoundry is a very open PaaS that can be used in a private or public cloud scenario, further enabling the private to public cloud transition (or harmonious existence) by way of portability.

Henk De Boer replied on Sat, 2011/06/25 - 2:36pm

GAE seems to be a rather nice solution for those people that would otherwise go to PHP shared hosting.

Like PHP shared hosting, GAE is rather limited. The advantage is that it's absolutely free to have something running. This is great for all those 16 year old kids who either can't afford the costs of traditional hosting or still live in the bubble that everything related to computers except the hardware should be free. Who knows if PHP had still been able to snatch that 7% of developers away from Java if there had been free Java hosting in 2004.

I evaluated GAE a couple of times for clients and for some simple web sites for a 3 person business, I did found it to be interesting. In this case we were talking about a 5 pages web site with the public part mostly HTML and only a simple login to remember a person's details.

For medium size clients, it was harder to recommend GAE. The problem is that although JSF, CDI and JAX-RS runs, their JPA implementation has some very specific behavior that strongly ties it to GAE. EJB3 is unfortunately absent. If you want to do anything interesting, you're probably going to use Google's own APIs and the app quickly becomes a GAE app. The problem with that is your app now ONLY runs on GAE and ONLY Google offers GAE. You can't ever move your app to Amazon, or run it on JBoss AS, Tomcat, Jetty or whatever on your own servers without doing a massive amount of re-engineering. This is a little risky for non-trivial applications.

Andy Leung replied on Tue, 2012/10/09 - 12:28pm

I totally disagreed with your article here.  I am not sure what you are trying to say in one of your points below:

 

Having a small prototype running on App Engine might be OK, but once an application is ready to move to a production environment, it is probably planned to be hosted on their internal servers. Interestingly enough, these are the same reasons that more corporations are moving some of their application infrastructure to services like Amazon EC2.

 

So you said people would rather deploy apps onto internal servers when moving to production, but isn't it the same with Amazon EC2?  Amazon EC2 is NOT internal servers...so what are you talking about?  Besides, when dealing with enterprise apps, why do we need so many different platforms when one is working?  The only time where you need choices for enterprise is when the choices are all not working good enough.  Think about this, in enterprise, all you care is about long term operational cost.  So why you must use EJB but not other framework?  it should make no difference to enterprise management.  So if that is the case, GAE can do all business apps without difficulties, and you don't worry about infrastructure, I don't see why GAE is not ready for enterprise?  Isn't that minimizing the development and maintenance cost in long run is the dream of every single enterprise regardless of company size?

So I really don't understand your rationale in your article. 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.