Today there's an outage, what would happen if tomorrow they decided to terminate all services?
Use an open-source PAAS like OpenShift or CloudFoundry to avoid vendor lock-in and give yourself the ability to run your application on your own servers if necessary.
It's worth worrying about outages, because these "cloud hosting" providers are a single point of failure for their hosted sites.
Worrying about a complete shutdown is less reasonable. Sure, it's possible that a company might suddenly decide to shutter a profitable and massively popular service, but what are the chances? It's like worrying that Amazon will stop selling physical books.
Have not tried it yet - AppEngine works well enough at present. However, AppScale is just an API shim over memcache and a number of different databases such as Redis or mysql. I don't see any reason why it should not work just as well as building directly onto those, and the strict limits placed on the AppEngine DS should make it easy to shard mysql instances.
That's why Google increased the price of GAE [0], so it would be profitable [1], which allows them to provide an SLA[2] that I can live with. Even deprecated GAE features work for at least a year before they're terminated [3].
Google will announce if we intend to discontinue or make backwards incompatible changes to this API or Service. We will use commercially reasonable efforts to continue to operate that Service without these changes until the later of: (i) one year after the announcement or (ii) April 20, 2015, unless (as Google determines in its reasonable good faith judgment):
- required by law or third party relationship (including if there is a change in applicable law or relationship), or
- doing so could create a security risk or substantial economic or material technical burden.
This Deprecation Policy doesn't apply to versions, features, and functionality labeled as "experimental."
"Interpretation against the party that supplied the term
Where, after the interpretation of a contract term that has been supplied by one party, doubts remain as to the meaning of that term, an interpretation against that party is to be preferred ("contra proferentem")."
Lock-in I do worry about, but not because they might terminate the service. I'm pretty sure that they'd give us a year, and that year would be filled with all manner of startup looking to help the GAE orphans. At the very least, the open source GAE replacements would start getting a lot more attention.
I'm not saying "no risk", but I am saying "less risk than you think".
After this trolling headline, I'll have to regard non-technical users who declare that something is "down!" after encountering the slightest error, slowness, or incorrect behavior with an iota less irritation.
Yes, my app was having longer response times (sometimes quite a bit longer) but it wasn't "down". A couple of people noticed the delays but as far as I can see no major effects.
Hi all, I'm Zafir from the App Engine team. We're trying to resolve these issues as quickly as possible. For updates, you can follow @app_engine on Twitter or the thread we are updating on Google Groups: http://goo.gl/wur3v
It is entirely possible for Google to have an outage that takes down GAE and G+. Given that reality, it makes sense that their "emergency public communication" should be as separated as possible from their own infrastructure.
Bazinga! But below the belt, given the circumstances. I'd like to encourage engineers like Zafir to make themselves available to us (outside of google groups) more often.
Note that the static web serving is working normal, it's the back-end functions that seem to be affected.
It's good practise generally to make your web app statically served and be fault tolerant to the back-end not being available, this is certainly required if you want to implement an offline mode.
What do you mean having your web app statically served? Either it's a website, which can be static, or it's a web app, which cannot really. You can't get far with just JS. Did I misunderstand your comment?
Our web app - https://www.draw.io/. Entire thing is served statically. If you don't think you can do much with just JS, you're a few years out of date...
I suppose it depends what you want to do. I wouldn't dream of allowing a JS app, in general, to run without the server working. This may not be the case in your particular JS app. Local storage or no local storage. I don't think it's too much of a stretch to say that most web apps depend on sessions.
So I can load up your web app on my phone, do some work, then switch over to my laptop and pick up where I left off without noticing that your app server is down? I'd like to know how that works.
Looks like Google's reporting the issue resolved as of 12:06 PM PST. Our backends are working again, so I believe them :).
If you run things on App Engine, I highly recommend subscribing to the downtime notify list -- it's much more responsive and accurate than the App Engine status page in my experience.
35 comments
[ 3.1 ms ] story [ 79.1 ms ] threadUse an open-source PAAS like OpenShift or CloudFoundry to avoid vendor lock-in and give yourself the ability to run your application on your own servers if necessary.
Same thing applies to Heroku et al.
Worrying about a complete shutdown is less reasonable. Sure, it's possible that a company might suddenly decide to shutter a profitable and massively popular service, but what are the chances? It's like worrying that Amazon will stop selling physical books.
http://techcrunch.com/2013/01/13/marc-benioff-has-swagger-bu...
Google is insanely profitable and uses GAE internally for a large number of products. It would take years to re-write and shut down GAE.
[0] https://encrypted.google.com/search?q=gae+price+increase
[1] http://gigaom.com/2011/09/07/whats-better-pricier-google-app...
[2] https://developers.google.com/appengine/sla
[3] http://googleappengine.blogspot.com/2012/04/app-engine-and-g...
--8<---------------cut here---------------start------------->8---
7.2 Deprecation Policy.
Google will announce if we intend to discontinue or make backwards incompatible changes to this API or Service. We will use commercially reasonable efforts to continue to operate that Service without these changes until the later of: (i) one year after the announcement or (ii) April 20, 2015, unless (as Google determines in its reasonable good faith judgment):
- required by law or third party relationship (including if there is a change in applicable law or relationship), or
- doing so could create a security risk or substantial economic or material technical burden.
This Deprecation Policy doesn't apply to versions, features, and functionality labeled as "experimental."
--8<---------------cut here---------------end--------------->8---
So you have until 2015, or a year from the current date if that's less than a year away. I'd say that's a very reasonable amount of warning.
That sounds pretty damn ominous to me.
Where, after the interpretation of a contract term that has been supplied by one party, doubts remain as to the meaning of that term, an interpretation against that party is to be preferred ("contra proferentem")."
[0] http://www.trans-lex.org/926000
Unicode's got you covered ✂ ✄
--✃--
I'm not saying "no risk", but I am saying "less risk than you think".
[0] https://code.google.com/p/googleappengine/source/browse/#svn...
[1] https://code.google.com/p/appengine-go/source/browse/
http://2.gloopsh.appspot.com/Admin.html#com.rc.gloopsh.admin...
Still got a long way to go, but you can scroll around a bit by holding down the left mouse and dragging. Mousewheel to zoom in and out...
From status page: Elevated error rates and increased latency for some applications – Python, Python: Dynamic Get, Python: Dynamic Get: Latency, Python: Dynamic Get: Error Rate, Java, Java: Dynamic Get, Java: Dynamic Get: Latency, Java: Dynamic Get: Error Rate Jan 15 2013, 07:50 AM - Jan 15 2013, 08:10 AM
This makes twitter a very natural choice.
It's good practise generally to make your web app statically served and be fault tolerant to the back-end not being available, this is certainly required if you want to implement an offline mode.
If you run things on App Engine, I highly recommend subscribing to the downtime notify list -- it's much more responsive and accurate than the App Engine status page in my experience.
https://groups.google.com/forum/?fromgroups=#!forum/google-a...