The need of the hour for Google App Engine : Better adoption and more paying customers

September 15, 2011

As a developer who is betting on GAE (Google App Engine), the increase in hosting costs due to the recent price changes in GAE came as a surprise to me, as it was to many others too.

Developers who had optimized for the earlier pricing model which focused on CPU based pricing had to now deal with the new pricing model based on instance based pricing. Google realized (a little very late, in my opinion) that its old pricing model was flawed and instances which were alive but not consuming CPU (typically waiting on I/O) were costing more.

So Google had to change the model to match their actual costs, by moving to an instance-based pricing model, which by the way, is also how most other PAAS/IAAS service-providers charge.

As one of the Google developers details in the Google Groups..

..the price changes are a reflection of certain key facts:

a. Google as a company backing the entire platform as a product… instead of being cancelled, we’re coming out of preview mode and become an official product! Google is not a non-profit company and cannot continue to operate services at a loss. our products, and my paycheck’s gotta come from *some*where! coming out of preview means Google is committed to App Engine, and in turn, we’re committed to our users.

b. this service costs the company significant resources… premium services like App Engine and YouTube require a lot of hardware and networking bandwidth. We serve more than 1.5 *billion* pages views a day across all applications!

But Google did listen to the feedback from the GAE developers and addressed their concerns by increasing the free quota from 24 instance-hours/day to 28 instance-hours/day, while extending the 50% discount for instance hours up to Dec 01, 2011, when multi-threading support for Python is likely to be rolled in. This is because, thread-safe applications can serve more requests per instance, which currently is not possible for Python developers, while Java developers already have multi-threading support.

So, coming to the main issue, to remain a sustainable service, Google App Engine needs to have better adoption and more paying customers. Or in simple terms, Google App Engine needs to make money. For this, the developers betting on Google App Engine need to build apps which can solve business needs and be able to sell those apps easily.

There are 2 options available for developers to sell apps built on Google App Engine.

First option is to build the app as a multi-tenant application — segmenting data and restricting access to that segment of data based on the user who accesses the app, a little hard for those not used to multi-tenant apps, but doable — and to charge customers based on tiered-plans, the easiest approach being user-based plans. But this model of charging based on users is so very out-dated and in my personal opinion, a bit unfair too, because resource usage (and hence the costs incurred) need not directly be based on number of users accessing the app.

And the current pricing model changes in Google App Engine further complicates pricing for multi-tenant apps, as there is no way to allocate more computing instances to say, a premium customer or to restrict instances for customers in a basic plan. Even when apps start to meter requests, it is hard to allocate resources in a fair way,  especially when having to deal with instances and latency.

That brings us to the second option, which is for the apps to be installed directly into the customer’s Google App Engine account, for which the customer can purchase hosting resources directly from Google. This option is possible even now, but involves a lot of manual steps — which involves the customers to sign up for Google App Engine, create an application instance, invite the developer who then has to disable code downloads and then upload the code to that application instance — and hence is not very scale-able.

The second option needs to be automated so that any customer can visit a Marketplace for Google App Engine applications, read reviews about the apps and when they like an app, can just click on an “Install Now” button, to have the app automatically installed within their Google App Engine account. This marketplace can also be seamlessly integrated with Google Apps Marketplace, making it easy to install the app as a service directly into the Google App Engine account associated to Google Apps for their domain.

There can be a trial period for such an installed app, after which customers can make a payment ($9/month minimum + additional usage charges) so as to continue using the app, of which Google pays the developer a percentage.

This has now been filed as a feature request :
http://code.google.com/p/googleappengine/issues/detail?id=5821

Below is a quick list of past threads in the developer forums, which have been requesting for a Marketplace for Google App Engine apps, in one form or other..

Clarification of Term 4.4

How to distribute my app?

Questions about the preferred way to handle multiple apps/accounts

‘Add It Now’ Functionality for my own Google App Engine Application

Distributing the same app to multiple domains

Per-domain data stores and selling our apps to people who use google domains…

Is it possible to sell a CMS hosted on Google App Engine without the code being visible ?

Deployment API

Multiple Instances of the Same App

Selling App Engine Apps

Isolated Application Deployment Instances

Creating a Windows desktop deployment utility ie. port of appcfg.py to C# client library

Automating deployment

source code encryption

deploying applicaiton to multiple customers 

1 application, multiple datastores

usage & billing and multiple deployment
 
 
This is just a quick list. There should be more such requests. But it is obvious that this is an important feature which can enable better adoption rates of the Google App Engine, helping both the Google folks building this wonderful platform and the developers who love working on it.
 
If you have not already done so, you can star this feature request: Marketplace for Google App Engine apps, to let Google know that you are interested too.
 
While you can be sure that the custom online database application builder that I am working on will be available on such a marketplace, you can start using it today at http://creator.ifreetools.com.
Advertisements

Why freemium pricing model for CRM / Online databases needs to change

October 13, 2010

The typical approach to pricing in the hosted web-apps space, particularly in the domain I am working on – which is CRM and Online-databases – is to have freemium plans with per-user pricing.

It is interesting to note that the average conversion rate in freemium apps is just 3%. That is, 3% of the users fund 97% of the other users who use the free versions.[1]

While there are a few service providers with seemingly generous “unlimited records”[2], I have seen web-apps offering generous free quotas to close shop/move away from this space, leaving their existing customers looking for alternatives and have also seen others reduce their quotas from something like 100,000 free records to just 1000 free records[3].

I believe such actions (leaving the market, or reducing quotas drastically) by service-providers, which can trigger strong reactions from users, are not something they would like doing. No one would like to piss-off their customers intentionally. The problem for these web-app service-providers is in trying to map the costs incurred – typically in terms of computing resources like CPU, bandwidth and storage, with the pricing model which is in terms of users and records. But to do this mapping is not an easy task, because it is not a simple function of the number of records and the number of users. Assuming a fixed set of users (pick any number between 2 to 5)..

Less records, less requests from users // least cost
Less records, more requests from users // moderate cost
More records, less requests from users // moderate cost
More records, more requests from users // highest cost

This is the simplest level. Next comes the number of write operations. This could be to add new records or to just keep updating existing records. So, for a given set of record limits and request limits…

Less read, less write operations // least cost
More read, less write operations // slightly higher cost
Less read, more write operations // considerably higher cost
More read, more write operations // highest cost

Trying to map it to a simple per-user, max-records based pricing is thus not an easy task. Just to be on the safer side, web-apps usually end up over-charging the least-cost users.

With iFreeTools CRM and Creator, we prefer to take a different approach, based on what really costs us money – the computing power, storage and bandwidth[4]. This means our free-version may not seem very much generous, but our paid-versions have substantially better value for money and also allow more user-accounts per application.

Also, our pricing plans are such that we don’t over-charge our paying customers to fund our free users. In a way, our free users pay for themselves – or so we believe – since our free plans our ad-supported. This enables us to provide generous quotas for our paid-users.

CPU based quotas are also planned to be incorporated, after which we plan to remove away the user-limits altogether and increase the record limits substantially. After all, it costs us just $0.15/GB/month (thank you Google App Engine).

Our pricing page is at http://crm.ifreetools.com/pricing

Do let us know what you think. You can also mail your thoughts to raj@sahasvat.com

Notes

[1] Freemium model – I am of the belief that freemium model works more favorably for vendors of installed-apps, where the only cost incurred for each freemium use was the download bandwidth. With hosted apps though, the computing resources for the free app users are to be provided by the service-provider, in the hope that they would turn into paid customers one day.

[2] “unlimited” quotas – I am really not sure how they can offer such a deal.. I guess they should have some limit which they do not say explicitly or their apps become unusable after some limit, that they know for sure it will not be a problem.

[3] reducing quotas from 100,000 to 1000 – of course, there was some backlash from existing user base, so they had to allow existing users remain with the old quotas, while restricting new ones.

[4] pricing based on costs incurred – Some may frown on the idea of pricing software based on the cost incurred, rather than on the value it brings to the business. Whether we like it or not, pricing of software tends to get lower and is most likely to reach a point where the software becomes just an add-on for the commodity platform services.


PageSpeed is good for your website

May 3, 2010

I was procrastinating on an important feature in Chennai Bus Routes and Suburban Trains Information website, contemplating numerous options on how to implement it, since I feared it can make me go over the free quota in my Google App Engine deployment.

The feature was to enable users to identify hopping/switching points to travel between localities which are not directly connected by MTC buses / suburban trains. This planned feature was going to be a bit resource intensive – either with CPU, if done dynamically or with storage-and-CPU if it is to be indexed and synced periodically for all possible travel combination. I decided to take the CPU route and go the indexing route later, if required.

But, Google Webmaster informed me that even without the planned feature I was already very slow compared to a majority of the websites out on the internet.

So, using PageSpeed, I looked for the culprits.

The issues, apart from loading of a CSS file with lot of unused styles and the loading of separate JS file – both served from my Google App Engine instance, was the loading of numerous third party javascript files and their dependents. These included files from StatCounter Analytics, Google Analytics, Google Adsense (for 3 ads), Google Maps and AddThis sharing widget.

So, I set about fixing the issues..

  • I first removed unused CSS and JS, reduced their size and embedded them within the web page – 2 lesser requests to the server and reduced bandwidth.
  • Enabled memcache of full web-pages – this was useful, because for each page being loaded, Mediapartners-Google,gzip(gfe),gzip(gfe) (Adsense) was making a request for the same page again within a few milliseconds.
  • Next, I removed AddThis and replaced it my own sharing code and icon with just Twitter, Facebook and Delicious links. This would mean limited sharing options and no sharing stats, but I felt it was OK.
  • Removed StatCounter code from the main pages (routes for locality and route details pages) – now on, it will not be possible to easily see the sequence of pages visited, for recent visitors.
  • Reduced the number of Google AdSense ads from a maximum of 3 per page to just 1 – possibly lesser revenue from ads.
  • Increased the expiration time for static resources to 40 days – when those resources are to be changed, I will have to rename them to serve the latest files.
  • Delayed initializing and loading Google Map images, until the route details are requested – much better experience on slower connections and less cluttered look initially.

As a result, the page loading time came down a lot. Google Webmaster was quick to identify the changes in Page loading time (which was now approximately 30% of the original value) and the Kilobytes downloaded per day came down to 25% of original values, though the Pages crawled per day had actually increased a little during this time, as shown in the image below..
MetroCommute.in Crawl Stats

While I also added a new “find hopping/switching-point” feature, which did increase the usefulness of the website, I believe the page speed alone was responsible for better traffic (approximately 50% higher now) after these changes..

MetroCommute.in Google Analytics Dashboard

The reduced number of Adsense ads per page, down from 3 to just 1 per page, currently has a negative effect on the ad revenue, but not on the same magnitude. I believe it will grow better again with increased traffic. Apart from coming up higher for popular keywords, now more people are searching for variations of “metrocommute”. Which means they remember and recall the name of the useful website, which they had visited sometime earlier. Better brand recall, can mean letting go of Adsense and possibly direct CPM ads related to local travel services.

Some other options I did not look into, for improving the page speed are : Asynchronous tracking in Google Analytics, which I may take up later and reducing the actual page size (stripping out spaces, etc.,) – because the typical web page size is already very small, not even big enough to trigger gzip on Google App Engine.

Hope this post encourages you to look into making your website faster. Feel free to share your tips as comments.

Maintaining MetroCommute.in is more of a fun-project for me, while I work on iFreeTools, offering a free CRM app and an Online Database Application Builder over Google App Engine. You can reach me at raj@sahasvat.com.


The New Indian Express calls DLF Garden City Google Group members “Internet Hobos”

March 7, 2009

The New Indian Express calls the members of the DLF Google Group as “Internet Hobos”, creating a lot of responses from the group members, ranging from explaining their side of the story to thrashing the article for such one-sided view..

Internet hobos stalk DLF
First Published : 06 Mar 2009 03:28:00 AM IST
Last Updated : 06 Mar 2009 07:31:13 AM IST

CHENNAI: These days of slowdown stories abound and though no Grapes of Wrath would be written there’s wrath enough on display to spin a web of it. One that has caught the imagination has an amorphous group of individuals waging an Internet war against the country’s biggest real estate player – DLF Ltd., their allegations difficult to check because there are no names to call though there is enough of name-calling in the write-ups some of these unidentified worthies have posted on the net.
……
…..
“There were three groups of buyers – a block of 75-80 per cent who were decidedly end-users, another smaller block of those who intend to rent out the units they bought and a third block who grabbed the flats for speculative gains,” says Sanjey Roy, senior general manager, Corporate Communications, DLF Ltd. “These are the people who are behind the calumny directed against DLF. I call them speculationactivists.

They claim they are 600 plus but we know they don’t number more than 150.” Among other demands, the group has been asking for a cut in prices given the current economic crisis. The group also managed to carry their grievances to the media.
…..
……
But these have failed to rein in the group of individuals waging the Internet war against DLF. “Instead, they have upped the ante,” says Roy. “They are instigating existing satisfied customers, asking them to join hands with them and fight for their unreasonable demands. Isn’t it strange they haven’t gone to court?” Roy insists the company has done everything according to law. He says the application forms that the customers signed clearly states all the terms and conditions and that DLF had nothing to hide; and that the project would be completed on time; the units ready for occupation by March-April 2011, as promised.

There the story stands; the wrath refusing to get off the anonymity of the Internet and show its face.

The way in which the article writes of DLF’s K.P.Singh meeting with the PM Manmohan Singh, also creates an impression about the author being in a more favorable position towards DLF…

In the meantime, the DLF’s K P Singh was the only real estate representative among a group of Industry bigwigs invited to meet Prime Minister Manmohan Singh to discuss the financial crisis and its impact on India. “This was the first time in 62 years somebody from the realty sector was given the honour, putting the stamp of ‘Industry’ on the sector,” says K K Raman, head-homes, DLF, Chennai.

Selected comments, posted as responses to the articles..

… I quickly searched on Google and found the following definition: “tramp: a disreputable vagrant; “a homeless tramp”; “he tried to help the really down-and-out bums” “. I really feel that this is not acceptable and this reporter owes an apology to the members of our group for branding us as such. We are all well educated, decent people trying protect our interests in a fair manner….

By Sundar, 3/6/2009 6:51:00 PM

…. We recently held a meeting at Taj Coramandal hotel at Nungambakkam which was attended by our members (200+) to discuss the pending issues and next steps. This was covered by some of the media houses as well. Pls note that most of the group members (around 700 members) want to exit the project due to issues highlighted below…

By Senthil, 3/6/2009 10:34:00 PM

…I strongly condemn this biased article. The usage of terms like hobos, faceless, unidentified worthies and etc., are totally uncalled for. …

By Prabu, 3/6/2009 9:21:00 PM

…. It is also an irony that author who does not give his/her own name to the article calls intrepid bloggers ‘faceless hobos’. …

By Prasad, 3/6/2009 7:00:00 PM

The following comment consolidates the issues the buyers have with DLF

Being active part of the group, lemme give you the true picture: Speculators us? We are negotiating with DLF to work our amicable terms, which is why no criminal suit has been filed yet. DLF has been stalling us saying they are working out an amicable way, a fair option which we want to pursue so you should understand why no case has been field yet. You should have come and taken names, addresses, phone numbers of people who participated in a meeting organized at Taj hotel last Sunday and then u can decide on calling us FACELESS. Why would DLF hold talk with faceless people? Well this fight just got bigger.

1. We have not signed any buyers agreement yet. which has worked to our advantage. An application for allotment has been given. That’s it. Please verify this with DLF.

2. DLF took the money from us almost a year back (31-mar-2008) and only recently ‘CLAIM’ to have got the approvals. Ask them for stamped drawings and approval details.

3. Club which was lifetime free at time of booking turned out to be 2 year annual payments . Ask them why?

4. A 5 acre forest land inside the complex was shown in initial brochures by DLF to be their own. Now we’ve discovered that it belongs to a freedom fighter whom they are trying to buy it off from. Is this legal? It is clear .. I don’t want to call the number.

5. A short 2KM, 60 ft approach road to the project was promised. Now it seems people will have to travel another 16 km additionally each day. Clear breach of misleading and amounts to breach of contract if any.

6. When booking a 1400 sq ft flat suddenly shot up to 1520 sq ft with 10% increase in carpet area.

7. 850 of us have submitted exit letters. On saying unless money is retuned we will file a criminal case DLF agreed to return the money, which has not happened yet. DLF claims only 200 people have submitted exit letters?

8. DLF claims we are speculators/investors. We are infact end users.

9. DLF unless they pay back the money with interest by mid-march, we will be staging dharna, hunger strikes, protests soon. So u can expect a lot of action soon.

10. YES A SINGLE TWIG CAN BE BROKEN. NOT A BUNCH!

By Vijay
3/6/2009 5:48:00 PM 

The full article and the other comments can be read at expressbuzz.com

Builders and the sections of conventional media need to come to terms with the new trend of online collaboration.

About ten years ago, one might not know their neighbors well until they move into their new apartment. But now the penetration of internet has enabled people to collaborate even before they buy apartments in the project. This is part of a growing trend and cannot be stopped by builders, even if they want to. The best approach will be accept it as a reality and work with a open mindset.

That is the reason we, at PlaceToLive.in, have online collaboration details listed as part of the project details.The  information includes Portal of Owners Association (ResidentialCommunity.in), Mailing Lists (Google Groups, Yahoo! Groups) and Social Networking Groups (Orkut Communities and Facebook Groups).

For DLF we have listed
Google Groups : http://groups.google.com/group/dlf-gardencity 
Orkut Community : http://www.orkut.co.in/Main#Community.aspx?cmm=62668533 

You may also want to read the discussion page detailing the recent developments on DLF Garden City

If you want your project details as part of PlaceToLive.in, along with information on the online collaboration details, kindly send a mail to admin@placetolive.in or use our Feedback Form.

Related Blog Posts :

Feb 24, 2009 : DLF reduces apartment prices in Garden City, OMR !!

Feb 25, 2009 : Buyers : “DLF Garden City Rate Cuts Not Enough, Considering Exit Offer”


Online HOA now supports Documents, Office Bearer Posts and Office Bearers directory

November 28, 2008

Our Online Software for Home Owners’ Associations, http://www.ResidentialCommunity.in, has now added support for Documents, Office Bearer Posts and Office Bearers. More details..

HOA Documents :

Now any moderator user, usually an Office Bearer, can add or edit documents of the HOA. This may include By-Laws, Covenants, Architectural Guidelines, Fire safety guidelines, Budget and Financial details, FAQ or any other document with information that might be useful for the community.

The By-Law documents can then be associated to either the whole Community or to the Blocks functioning as Branch Units. And these documents can be interlinked too. The document editor uses BBCode to avoid Javascript based vulnerabilities.

Demo : Documents of HOA

For more details on using BBCode, kindly refer to this sample document generated using BBCode and the BBCode source for that document.

HOA Office Bearers :

Now, one can specify the HOA Office Bearer Posts, like President, Vice-President, Secretary, Treasurer, etc.,. at the Community level (All Blocks) and at each Block level. For each of these posts, one can define Office Bearers, usually existing Community users. Past records of the Office Bearers can also be maintained for the posts.

Demo : Office Bearer Posts of HOA
Demo : Current Office Bearers of HOA
Demo : All Office Bearers of HOA

For making someone a moderator of the community, one can use the edit option for that user from the “All Users” list view.

Do check out the Online Demo of the ResidentialCommunity.in, the Home Owners’ Association Software offered as a hosted, ondemand service (SaaS), which has now been updated with these new features. and feel free to send us your feedback either as comments here or using the feedback form in the site or as email to r.rajkumar [at] gmail [dot] com.

FYI : We are happy that our sister site dealing with Hostels and Paying Guest accommodation (currently focussed on Chennai, India), http://www.PlaceToStay.in, has earned one more Best Answer (after Best Answer for Hostels in Mylapore) in Yahoo Answers. This time, we are glad to have helped out Pramod on his Query for Hostels in Sholinganallur.

Note : We/Our/Us etc., in the blog post denotes *all* the employees at Sahasvat 😉


First cut of the Home Owners Association (HOA) Software

November 11, 2008

It has been a month since I had posted, so just an update..

Was working on a few enhancements in PlaceToStay.in (including support for a secure code based authorization for editing individual entries) and also in populating more data. Now the number of entries has increased from just 10 entries (all in Velachery) to reach the 50 entries mark.

The Map of Hostels, PG, Serviced Apartments in Chennai looks better now. Probably, I will make the map view as default, so as to avoid the need for sorting and the resultant indexing problems.

By increasing the entries, I was able to answer a few questions, like..

Hi can you please suggest some descent boys hostel for it employee in mylapore ,chennai?

(Chosen as Best Answer)

Can anyone suggest some good hostels in chennai for working women?
areas near to adyar, thiruvanmiyoor preferred
(In Voting)

Where can i find the best ladies hostels in chennai?
(In Voting)

http://www.PlaceToStay.in does get a decent number of hits every day. Need to put in some effort to add even more entries into PlaceToStay.in, so as to improve it even better.

Data-collection and data-entry is a monotonous and boring work, atleast for me. My wife feels she is more suited for such work and has better eye for details. She has about 7 years experience in trade-document checking (banking sector ; same type of work and in high volumes) and is now a manager – so I will have to accept that as a fact. Need someone like her to take over such stuff.

All that was until about 2 to 3 weeks ago.

After that, it was www.ResidentialCommunity.in. [Edit : Try out the “Online Demo” link in the site]

Learnt a lot of new stuff in Python/GoogleAppEngine in the last 2 weeks.

The initial implementation is for a directory of Blocks in the Association, Residential Units (Independent Houses / Condominiums / Apartments) in those Blocks, Owners and Residents of those residential units – both previous and current.

Have a look at the early Beta version and if you have any feedback, feel free to mail me at r.rajkumar [at] gmail [dot] com

[Edit : Added note to try out the “Online Demo” in www.ResidentialCommunity.in – seems it is not very obvious that it is enabled]


“So, how are things going ?”

October 9, 2008

So, how are things going ?

Fine. Started working on a simple, single-entity application over Google App Engine; single entity = “PlaceToStay”.

For this app, Create, Retrieve and Update operations have been completed. Delete is pending and for now is possible from admin console of App Engine.

In parallel, did some hostel-to-hostel data collection in Velachery, so as to seed the application with some data. Almost all hostels I had visited provided the requested details on the facilities they provide and the rates they charge, with just a couple of them not wanting to share details – one for seemingly genuine reason (“no vacancy”) and the other, because they felt it was a “business secret” (really funny to hear that reason; their classified ads give nothing more than telephone numbers). But, I am sure I will win them over too at a later date.

Latest work was integrating with Google Maps for hostel location – worked out well.

Check it out : http://www.placetostay.in/

Wait, are you not getting distracted from your main goal – association software ?

When I started work, I realized that were too many unknowns to conquer in Google App Engine, if I were to start coding for the association software. It will involve multiple related entities and views and with customized user management (instead of the default one provided by Google) and I will need more utilities to develop it.

So this app was to just train myself in developing and deploying on App Engine and I am just giving it a life of its own, instead of throwing it away.

I plan to enable rating and review comments, in a couple of days and also do some marketing within Chennai and later outside Chennai.

Later, I also plan to add some management functions, so that owners/admins can then maintain a database of the tenants (along with history) and employees, track rental receipts and expenses, send out notifications (email initially, SMS later) and more such stuff for a small monthly subscription fee. OK, maybe I am getting distracted from association software – but I enjoy the process – and I am still within Yardi domain !!.

Glad that I am free to choose my own path. And I believe that a little revenue (advertising and subscription) from this project, would surely help.

Other updates :

On Oct 2, in the Annual General Body Meeting of our apartment block’s association, the long standing secretary of our apartment block, who did an excellent job for 6 years, wanted to get relieved and suggested me to take over.

Under normal circumstances, I might have resisted such a responsibility (citing reasons like work pressure – they did not know I had quit my job until the end of the meeting). But, may be, this is chance coming into my hands at the right time – to have better domain expertise for the association software. So I agreed. Will be assuming responsibilities from today (Oct 9) evening. A new president and treasurer were also elected on Oct 2.

This block contains 17 apartments and collects a monthly maintenance fee of Rs.500. There are totally 10 such blocks in our complex (each having a secretary to manage that block) and these blocks are governed by a registered federated association. And I am sure I will make things easy for such secretaries of associations, because I get benefited doubly – as a secretary and as a software vendor.

So that is news for now. Will keep you updated.

Do not forget to post your feedback on PlaceToStay.in