Hi Andy,

On Thu, May 6, 2010 at 8:19 PM, Andy Burke <[email protected]> wrote:

> Hi,
>
> My name is Andy Burke.  I have a background in the video game
> industry, but I also dabble in GAE.  About a year ago I got excited
> about developing a GAE-based issue tracker.  GAE seems like the
> perfect platform for such an application.  I began working, got my
> issues into the datastore, got some rudimentary milestone support,
> email integration, all that jazz.  Then I started thinking about how I
> was going to roll this application out.  I realized that I'd need to
> add a lot of complexity to my data model to keep different 'domains'
> separate (a domain being something like a company who can have any
> number of projects in the system).


This doesn't have to involve a great deal of extra complexity in your code.
The keyword here is "multitenancy", and there are several possible
solutions. One option is detailed in my blog post here:
http://blog.notdot.net/2009/11/API-call-hooks-for-fun-and-profit and another
here:
http://blog.notdot.net/2009/11/Enforcing-data-isolation-with-CurrentUserProperty

A third option is to use a model that several of our customers are already
using: Have your users create an app engine app and add you as an
administrator, whereupon you deploy your app to their instance.


>  Additionally, I'd end up, as the
> developer of the application, with access to all these different
> domains' data.  Why would a company want to use my issue tracking
> software if they knew I could gain access to all their internal
> issues?  I'm just some guy off the street, I'm not Google, why should
> they trust me?
>

Users seem generally tolerant of this if you are professional. FogBugz, for
example, have an excellent bug tracking (and more) platform, which is
optionally hosted on their hardware. The same goes for a plethora of other
companies.

One important thing to note is that there are few (if any) plausible
scenarios that _don't_ require trust from your users. Since you wrote the
code, you could easily be doing nearly anything with their data; if you
provide for updates, you could modify the app to disclose information to
you, even if you don't have direct access to their datastore. Essentially
the only way around this would be to provide your users with the source, and
make updates entirely manual and up to them to apply.


>
> After thinking about all this, I opened an issue w/ GAE:
>
> http://code.google.com/p/googleappengine/issues/detail?id=1206
>
> The features I'm effectively asking for in the issue are:
>
> - Each google apps domain should have its own datastore
> - Each google apps domain should be able to install an app created
> with GAE into its own domain
>

You can certainly do this already by having your users create their own app
instances as I outlined above, of course.


>
> Now, this seems like it would be great for developers and great for
> Google:
>
> - It would make it a lot easier to develop apps that might be used by
> lots of different organizations, simplifying GAE developers' datastore
> models
> - It would mean that billing for application usage could be per-domain
> in addition to per-app
>  - Eg: if I make a really popular app, I don't have to pay google for
> the bandwidth and storage, the domains that install and use it do
> - Google could build out a way that GAE-developed apps could be
> installed into domains with various pricing models:
>  - One-time cost
>  - Subscription based
>  - Per-transaction
> - Google could skim money off the top, the rest would be passed on to
> the app developer, ala the iPhone App Store or Facebook credits
>
> Let me give you a little imaginary scenario that demonstrates what I'd
> like to see happen with GAE:
>
> I develop my issue tracking software and it's really nice.  I set my
> app up to use per-domain datastores.  I also set my app to be
> available for a monthly subscription of $10, with the first month
> free.  So now people who use Google apps for their domains can install
> my app into their domain and try it out for the first month.  If they
> want to keep using it, they'll start paying $10/month through Google
> checkout (or whatever service Google provides).  All their issues are
> stored in their own domain.  Even as the developer, I don't have
> access to them and they don't have to worry about privacy issues from
> me.  If they generate a ton of datastore queries because they're a
> huge company, they get billed for that, not me.  Google takes their
> cut from the subscription payment, say 30%.  Google's happily getting
> $3/month for each domain using my app.  I'm happily getting $7 a month
> and not worrying about the datastore for all these different
> companies.  The company that's using my app is happy because their
> data is all private.  They're also really happy they hosted with
> Google apps because they realize they have access to tons of software
> as a service that's easy to install in their domain, maintains their
> privacy and adds value to using Google apps.
>
> This seems like such a huge win for Google, GAE developers and Google
> Apps customers: why has this issue been languishing for over a year?
>
> I'd really love to hear if these features have any chance of being
> implemented.  I haven't done much on GAE with regard to apps that
> could be used as SaaS in the last year because it seems so daunting to
> handle the datastore/bandwidth usage costs of GAE, the separation of
> data by domain, the amount of work I'd need to do to be able to bill a
> domain for their usage, etc.  It seems like all that would be much
> better handled in the GAE and Google Apps themselves.
>
> If these features are implemented, I'll be developing SaaS on GAE in a
> heartbeat and I'm sure lots of other developers would be, too.  It
> just seems like such a win for GAE, Google Apps and GAE developers.
> If you're a GAE developer and you agree, please make sure to star the
> issue:
>
> http://code.google.com/p/googleappengine/issues/detail?id=1206
>
> Thanks,
> andy
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. ::
Registered in Dublin, Ireland, Registration Number: 368047
Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
368047

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to