Studio-DevOps

Google App Engine: Understanding Caching

Reading Time: 3 minutes If you have been following the Google App Engine downtime notify group then you would realize that the datastore has been behaving erratically over the last 2 weeks. Though we had been thinking about exploiting Memcache for caching for a while now, but the last 2 weeks proved to be the perfect alibi. Another reason was the comment that we got on our blog by Continue Reading

Google App Engine More JPA Gotchas

Reading Time: 2 minutes We were in process of porting an application to GAE. The application used JPA for persistence and we decided to use the same for GAE as well. After deploying, the application worked fine on Google App Engine. Over a period of time we started getting errors, which seemed strange. All our tests were running fine and application worked without any issues with our seed data. Continue Reading

Google App Engine Some JPA Gotchas

Reading Time: 2 minutes While porting an application to Google App Engine we encountered several issues. Most of them where related to persistence. We were using JPA for persistence in the application. One of the most common mistake we did was in issuing a JPA Query where one or more parameters are of type com.google.appengine.datastore.api.Key class. Key class has two String representations which lead to some confusion. Let’s look Continue Reading

GAE Problems: Slim3 To The Rescue?

Reading Time: 3 minutes For the past few months we have been working on porting a time-sheet application on Google App Engine. The application we were trying to port had Spring for Dependency Injection, Hibernate for persistence and Wicket as the web framework. Looking at the will it play in app engine Hibernate was an easy call, it is not compatible on Google App Engine, wicket works with some Continue Reading

Downloading Datastore Data from a Java Application on Google App Engine

Reading Time: 3 minutes One of the most frequently talked barriers for getting onto the cloud is the data lock-in. In this post we would try to look at how we can download data as a CSV from the app engine datastore. This would help us get the data back from the app engine, just in case you want to move away from the datastore. So there exists a Continue Reading

Multitenancy in Google App Engine: Scope of NamespaceManager

Reading Time: 2 minutes As you would have read in our previous post, we used the Namespace API to make the SaaS application that we were working on multi-tenant in a matter of four hours. You would have noticed that we set the tenant name in the NamespaceManager [sourcecode language=”java”] NamespaceManager.set(request.getServerName()); [/sourcecode] Our initial assumption was that the NamespaceManager would continue to exist for the lifetime of the session Continue Reading

Implementing Multi-tenancy On Google App Engine

Reading Time: 3 minutes Google recently added support for multi-tenancy for applications via the Namespaces API. We are in process of porting an application to Google App engine. We were thinking of making our application multi-tenant. With the new Namespaces API in our arsenal we decided to give it a try. To our surprise implementing multi-tenancy is easy, we were done with it in couple of hours! With multi-tenancy, Continue Reading

Improve Performance By Using Keys Only Query on Google App Engine

Reading Time: 2 minutes It has been around two months since we started to port an existing application on Google App engine. It used Hibernate for persistence, Wicket framework for web layer and Spring as an Ioc container. Looking at the will it play on appengine we had to change Hibernate to use either JPA or JDO. We decided on JPA purely on the basis of experience we had Continue Reading

Lock-in, the Overrated Barrier to Cloud Adoption

Reading Time: 4 minutes By definition, lock-in makes a customer dependent on a vendor for products and services, unable to use another vendor without substantial switching costs. That sounds scary. Now let us take a step back and look at all the standards which were available in the traditional world to prevent lock-in. JEE specs sure have a lot of them and that ensures that you would be able Continue Reading

Generating Excel Files On Google App Engine For A Wicket Application

Reading Time: 3 minutes We are porting an existing Wicket application on Google App Engine. This application uses Wicket, Spring and Hibernate. If you read will it play in app engine, you will notice that Wicket is semi compatible and it does work with workarounds. Hibernate on the other hand is incompatible and Spring is fully supported. We began porting this application after changing persistence to use JPA instead Continue Reading

Don’t Set Up That Power Plant Just Yet, Think SaaS

Reading Time: 5 minutes A few months ago a dear friend of mine bought a house in New Delhi. It was a house with 3 bedrooms, a decent sized living room and a huge backyard. The backyard was almost thrice the size of the house. Well, it would be a good place to play soccer. Except that he had a different plan. He wanted to set up a power Continue Reading

Problems When Deploying Working Application on Google App Engine

Reading Time: 3 minutes Google Dev and production environment has differences. You may run into problems if you expect that application will also run fine on app engine if there are no errors on app engine development server. We are in process of porting an existing application on Google App engine. The application we are building uses Wicket, Spring and JPA. If you read the will it play in Continue Reading

Performance Tuning Java Applications on Google App Engine

Reading Time: 5 minutes Performance Tuning is one of the stages of taking your application to production which you can seldom avoid. Irrespective of the fact whether you have taken all good performance practices into account, there is something or the other which needs to be tuned before the application is production ready. Performance Tuning takes a different turn when your application is supposed to run on the cloud. Continue Reading