Perfect summary. I totally agree to everything. (Be careful about statements of Drake; he is trolling around)
On Mon, Aug 6, 2012 at 10:46 AM, Jeff Schnitzer <j...@infohazard.org> wrote: ... > There is plenty to complain about, but GAE is still a good choice. > There are definitely some downsides to GAE: > > * It's expensive to operate. An "instance" is significantly more > expensive and capable of doing significantly less work than what other > platforms offer. Your bill starts at $100/mo just to use SSL (and > with all that private data you certainly are, right?). In the early > days you're going to spend more than you would elsewhere... and if you > have a lot of traffic, you're going to spend a *lot* more. This is of > course balanced against not paying for dbas and sysadmins. > > * The concern about lock-in is totally warranted. If you build a > complex app on GAE, it's pretty much a total rewrite to go elsewhere. > The flip side is that you're "locked in" because there are all these > nice high-level services with great APIs that you would otherwise have > to invent and manage yourself. > > * Historically, reliability has been spotty. It pains me to say this > but things break a lot and you will likely see downtime a lot more > than if you maintained more of the infrastructure yourself. GAE is a > complicated system that is being upgraded on a schedule that is opaque > to you, plus you're running on shared infrastructure with thousands of > neighbors who might not be very nice. And often there's not much you > can do but scream on this mailing list. On the plus side, when > something breaks, someone at Google fixes it - not you. > > * The datastore, while amazing for most web apps, is very challenging > for some classes of problems. Two that come to mind are: > * Heavily transactional systems. XG transactions help but you > still have to go through major contortions to build banking-type > applications. RDBMSes are clear winners here. > * Rapidly mutating datasets. It can be very tricky to work around > the one-transaction-per-second-per-entity-group throughput limit, > which gets even slower in XG transactions. There are usually > solutions (eg sharding, queueing) but they are all huge PITAs that > complicate your business logic. GAE doesn't offer any kind of service > that fills the niche that Redis fills. > > * There are some downright broken parts of GAE, but they aren't well > documented as such. The email service is useless; go with a > third-party provider instead. Backends are a disaster; don't use > them. This isn't a big deal as long as you know what to expect; keep > following this mailing list. > > Unless you have a "hard problem" for GAE, I'd say go for it and make a > home here. The problem is that it's hard to know what a hard problem > is without already being very familiar with the platform. Truth be > told, after three years I still bump into surprises now and then... > but there's always some solution, even if it involves pushing a > service fragment out to another cloud provider. The OP's app sounds > like a good fit. > > Jeff > > > On Sat, Aug 4, 2012 at 1:48 AM, Rerngvit Yanggratoke <rerng...@gmail.com> > wrote: >> As many people have stated about advantages of GAE for startup already, let >> me provide some disadvantages. The purpose of this is not to discourage >> people to use GAE but inform them about both sides of the story. >> >> The first and most important issue is a vendor lock-in. GAE normally >> requires you to spend significant efforts to develop and optimize >> specifically for the platform to run your applications nicely and cost >> effectively. For example, it is recommended to use a platform-specific >> database layer like Objectify than the portable but heavy-weight one like >> JPA or JDO. Another example is that it is recommended to minimize the size >> of your applications to reduce the cold-start time. This also means that >> very useful but heavy-weight frameworks like Spring are not going to be >> comfortable with GAE unless you are willing to pay a steep price of >> "reserved instances". As a result, if one day you have to move your >> applications away from GAE to somewhere else, porting your applications is >> not going to be an easy task. You might have to spend significant resources >> for that. The possible reason for the movement might be that Google >> increases the price significantly such that your business model is not >> sustainable anymore. This happened before to many people. Have a look in the >> highly popular forum topic >> (https://groups.google.com/forum/?fromgroups#!topic/google-appengine/obfGjbIkOTI). >> Now, some people might argue by bringing up Opensource alternative of GAE >> like Typhoonae (http://code.google.com/p/typhoonae/) or >> AppScale(http://code.google.com/p/appscale/). Despite the fact those are >> great and honorable attempts, neither of them are fully compatible with GAE. >> In other words, if your applications run smoothly on GAE, they might simply >> break apart on their platforms. >> >> The second issue is the development efforts and learning curve required. GAE >> is designed for highly scalable applications and require you as a programmer >> to think the same. It certainly requires a new mindset compared to a >> traditional web applications development. Generally speaking, everything you >> do should be able to implement in a fully distributed way. For instance, you >> should not use a relational database like Mysql because it is a major >> bottleneck in traditional web applications. (You actually can use it now >> with Google Cloud SQL. However, it deteriorates the purpose of running an >> application for GAE). >> >> The third issue is a sharing of fate. This is actually not just for GAE but >> for any other cloud solutions. You are going to run your applications on a >> shared infrastructure. You do not know what applications are run besides you >> in the same IP. They might be spam or malicious software developed by >> hackers. Then, the IP might be blocked for a security reason. An example of >> this is the recent CloudFlare blocking issue >> (https://groups.google.com/forum/#!msg/google-appengine/Q6yQ4d9ov-o/hAyrgn0xZQwJ). >> >> All in all, the major thing to concern is picking the right tool for the >> right job. GAE is suitable if your applications require a very high >> scalability and you don't have or want to operate an operation team (System >> administrators). Other than that, I would recommend you to find other >> options. >> >> On Sat, Aug 4, 2012 at 1:03 AM, hyperflame <hyperfl...@gmail.com> wrote: >>> >>> It would be a good fit for most of those subjects, but keep in mind >>> that GAE cannot access email through IMAP or POP3 because it doesn't >>> support sockets, only standard url fetch. If you want to include email >>> in your service, you'll have to base a proxy somewhere else, such as >>> Rackspace, Heroku/AWS, etc. >>> >>> On Aug 3, 4:37 am, Levi Campbell <levicc00...@gmail.com> wrote: >>> > I'm building a startup, and I'm considering GAE as the platform, however >>> > I've been having a hard time finding information on why a startup might >>> > consider GAE instead of the many cloud providers out there. Let me >>> > explain >>> > what I'm working on. >>> > >>> > I'm a big fan of David Allen's Getting Things Done: The Art of >>> > Stress-Free >>> > >>> > Productivity<http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp...>, >>> > and after trying several tools and online services that (claim to) >>> > implement the GTD methodology, I couldn't find anything that I loved, so >>> > I >>> > decided to build my own and make it available as a SaaS offering. This >>> > app >>> > will allow users to pull in their info_crap from email, facebook, >>> > twitter >>> > (and yes, I do have plans to add support for more social networks.), and >>> > RSS feeds and organize it by relationship to the sender (i.e. family, >>> > work colleague, vendor, and the like), project (i.e. planning a family >>> > vacation.), and context (Either the when or where something should >>> > happen.).\ >>> > >>> > Would GAE be a good fit for the application I'm developing? Why? >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Google App Engine" group. >>> To post to this group, send email to google-appengine@googlegroups.com. >>> To unsubscribe from this group, send email to >>> google-appengine+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/google-appengine?hl=en. >>> >> >> >> >> -- >> Best Regards, >> Rerngvit Yanggratoke >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine" group. >> To post to this group, send email to google-appengine@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/google-appengine?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.