I stumbled across Google App Engine recently and I was intrigued by their claim that it could be a hassle free execution environment.
I knows these days ‘Cloud-computing’ is the buzz around. It’s nice to see that Java is also a front runner in that area.
So I created by App Engine account, downloaded Google Web Toolkit plugin for Eclipse and started reading about what Google App Engine can do.
As I read through the topics and the implementation principles adopted by Google, I felt like this is what I was trying to do years ago. What
I didn’t know at that time was IT field took 10 years to make it sort of popular or standard. Better late than never.
My first try went successfully. I was able to configure my domain (sub domain) to my app and I could access it from the outside world.
I am pleased that ‘Hello World’ went through with out any hassle. Then I started thinking, actually why do I need Google App?
Google’s selling point is that the data storage and other Admin services are no more a hassle for application developers. It’s a fail-safe execution environment is a bonus. That’s right. Google App is sort of an EJB container which provides not only traditional Persistence, Transaction services, it also provides integration of globally accepted and popular services such as Mail, User Management, File Storage with my Applications readily. All I have to do is use their library and call the service. Rest is done by Google.
Any new language, platform, framework or libraries makes first ‘Hello World’ super fast and successful. But the devil always lies in the details. When one dives into the pool then only they would know, how cold the water feels. Being in a Enterprise scale package implementation field for past 10 years, my obvious evaluation criteria would be
“Is Google App really enterprise ready?”
“Will it make enough sense for an IT Manager to even look at Google App Engine as an alternative Development, Staging or Production environment?”
Here is what I found:
1. Porting your existing Web App to Google App environment seeks quite a significant time and effort if the Web App is constructed with a mix of traditional J2EE standards and proprietary libraries. Almost all Enterprise Applications fall in this category. Ex: Enovia MatrixOne, Peoplesoft, SAP etc.
2. The data storage has to be looked from different perspective. Almost it sounds alien for few DBAs. Hardwired Google persistence libraries into the code will make it harder to port Applications to different environment.
3. Google will start charging money to host, store and execute data beyond certain limit.
4. Enterprise IT policies will prevent organisations to assign Google as their owner of data warehouses. Google Terms of use may not be pleasing to all IT managers.
5. User services and Mail Services are either tied to Google or Google Apps.
6. UPDATED: Google doesn’t provide Role based security model for data. Almost all the enterprise applications need role based, group based data access model.
Although it’s a good move from Google to foray into managed cloud computing business, it has to go long way in making it as preferred platform for Enterprise Applications.
Google App Engine may be well suited for general web user applications such as Social Networking, Forums, Entertainment, News etc.
I welcome all comments…