DevOps

bookMyHours.com Public Beta Released

Reading Time: 2 minutes bookMyHours.com is a simple and clean enterprise timesheet application offered as SaaS on a subscription basis. The service is ‘rightweight‘ and consists of the most frequently used features so that the organizations do not have to pay for features that they would never use. It is a multi-tenant application which allows and organization to define their custom look and feel. bookMyHours is based on eHour, Continue Reading

Managing Cold Start On Google App Engine

Reading Time: 2 minutes One of the major problem working on Google App engine is managing cold start. Well what is it? Google App engine spins down the application when it is idle. On Google App engine, application does not get a permanent instance of java virtual machine. If there are no activities for a while then the JVM goes cold and application will have to start again to Continue Reading

Google App Engine: Understanding Non-Invasive Caching

Reading Time: 3 minutes In the last post on understanding caching we talked about the general support of GAE for caching and how we could easily incorporate caching in our application. You would also recollect that we talked about the invasive form of caching in which the business layer was aware about the caching framework. In this post let us talk about the non-invasive way to cache. Since caching Continue Reading

Improve Performance By Using Batch Gets on Google App Engine

Reading Time: 2 minutes We are porting a JPA application to Google App Engine. One of the challenges we faced during this exercise was performance. There are simple and effective ways by which we can increase the performance of our application. Datastore batch get is one such optimization we used during porting the application. If you are used to low level datastore api you must have used batch get. Continue Reading

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