Hi

(I apologize, it's a long one).

I'm calling out the app engine team on how they've handled issue 
792<http://code.google.com/p/googleappengine/issues/detail?id=792&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log>
 - 
ssl/https support on google apps domains, and would like a straightforward 
answer to the current status of this issue.

Before I get into how the team has dealt with the issue and my problem with 
it, I'd like to make a few observations:
1. The engineers on the GAE team have known about the lack of SNI on IE in 
XP for quite some time (see comment 
#48<http://code.google.com/p/googleappengine/issues/detail?id=792#c48> - 
quoting an IRC session).  We can safely regard August 2009 as a point of 
time at which GAE engineers knew about this problem.
2. The issue was market as Started in October 2010.  The GAE team and/or 
it's decision makers have clearly chosen to work on this issue.  This is 
non-trivial given the success of GAE which, as usual, has lead to a queue of 
dev tasks far larger than the capacity of the team.  In other words, this 
issue is decidedly important enough to work on that dev resources are 
prioritized to work on it.
3. In the last two Google I/O events, the issue of SSL on google apps / 
custom domains has been prominently displayed as a feature which will be 
available 'soon', whether as part of GAE for Business (available by EOY 
2010) or as a feature that's on deck for general availability.
4. Despite the issue of SNI and IE/XP, there appear to be a handful of 
possible solutions to overcome the limitations it presents.  More on this 
later.
5. Other features which have been taken on by the team and were expected to 
take a relatively long time to bring to fruition have been declared as such. 
 For example, if we look at the Full-Text Search issue, it was marked as 
Started back in October 2009, but with the following text:
"I'm marking this issue as "Started" but I want to set expectations 
appropriately: 
This is a major undertaking and this will not happen soon, even by the most 
generous definition of soon."

Given these observations - it is understandable and acceptable that there 
are factors beyond the control of the team; namely that the lack of support 
for SNI in IE on Windows XP presents a technical obstacle.  On the other 
hand, the recurring assurances that this issue is being worked on, and in 
some cases promised to land about a year ago, leads one to believe that 
regardless of the SNI problem the feature will be generally available in the 
near term future.

Case in point: "SSL access on custom domains" has been on the 
roadmap<http://code.google.com/appengine/docs/roadmap.html> since 
May 2010, updated around the time of I/O 2010.  Given the heading "..Most of 
these features here are intended to be launched within the following six 
months. .." it should come as no surprise that a sizable number of 
developers are quite irate over the fact that we are now well into September 
2011 and yet no sign of SSL for custom domains, for better or for worse.
At no less than a keynote speech of I/O 
2010<http://www.youtube.com/watch?v=a46hJYtsP-8&feature=player_embedded>, 
given in front of thousands of developers, Kevin Gibbs says in regards to 
App Engine for Business (@113:12): "..That means we're putting our money 
where our mouth is when it comes to the reliability of your business.  And 
finally, it also comes with two additional key features that we had heard 
almost every enterprise needs: SSL for your company's domain and SQL 
databases.  That's right.  You heard me right."
On the other hand, a full year later, at a fireside chat from I/O 
2011<http://www.youtube.com/watch?v=_nN-G4018b0> the 
SSL issue comes up a few times and at some point Peter Mckenzie, who claims 
responsibility for SSL, says (@26:35):
"We are actively working on it and making good progress.  We can't give a 
date, but it's certainly high priority.  To be honest, we would have liked 
to have launched it by now, but it's certainly foremost in my thoughts, and 
in the thoughts of several others of my team."
.. immediately followed by a moment of candor by Brett Slatkin, who jokingly 
suggests we get everyone to install a browser with SNI and/or move to IPv6.

I'm calling out the app engine over what has happened over the course of 2-3 
years on this issue.  First, the issue is accepted in 2009 and marked as 
'started', despite the known SNI problem.  Next, in 2010 it's added to the 
roadmap, announced in a keynote and given an approximate ETA of EOY 2010. 
 Yet a year later, all of a sudden they don't have a date and are throwing 
around remarks about how they would have liked to launch it by now.

The duplicitous and shady behavior on the issue of SSL on custom domains is, 
in googley terms, a form of evil.

On a personal note: You'll have to take my word for it that I had attended 
I/O 2011 and brought up the issue at App Engine office hours before the 
fireside chat.  One of the engineers (may have been Brett, I can't recall) 
started explaining the whole SNI issue.  There were a couple of GAE 
developers there who heard our discussion and chimed in that they just send 
their users to the *.appspot.com for registration and no one complained, and 
that maybe I should do that too.  I was a bit shocked that the App Engine 
team didn't think that was a bad idea (if my cryptography professor heard 
about this he would go into quite a rant over it).  When I brought up the 
fact that I had a startup project that was waiting for SSL on a custom 
domain, I got reply along the following lines: "Your business shouldn't be 
waiting on a future feature." (again, not exact words but along those 
lines).

I'm calling out the team on their hypocrisy.  On the one hand, the whole 
point of Google I/O is to get developers involved with features that haven't 
come out yet so that when they do come out they can be immediately used in 
applications consumed by the public/enterprise.  Android SDKs with features 
that aren't rolled out yet, HTML5/Chrome features that aren't out yet (hello 
Native Client) and App Engine features as well are introduced and described 
at length, no doubt with the goal of being used by developers.  App Engine's 
FTS feature works in the SDK but not in production yet - so does that mean I 
shouldn't build an application that relies on FTS until it is available in 
production?  Native Client arrived in the Stable Channel this past month - 
so should developers not develop games or apps with NaCl until it is stable? 
 On the other hand, the GAE team says a developer shouldn't be waiting on a 
future feature?  Even if it was announced at a keynote speech over a year 
ago?  At the very least there are conflicting messages.

So, where are we now?  As the team has said numerous times in their own 
words, the SSL on custom domains issue is clearly a top priority.  While 
they would certainly be grateful if IE on XP would disappear overnight, this 
is clearly not the case.  At the current rate it would take at least a few 
years until the market share of IE/XP would be negligible (say less than one 
percent).  Worldwide IPv6 deployment doesn't seem to be doing any better.
It seems that the GAE team and/or the googlers who are in charge have made a 
choice to either do nothing and wait for IPv6 / no more IE on XP or find a 
workaround.

There is at least one trivial and costly but effective way to solve the 
problem.  Google can buy enough static IPv4 IPs so that each app engine app 
paying for SSL on a custom domain has a number of static IPs corresponding 
to front end servers / load balancers in numerous data centers all over the 
world.  Google can set up a dns service which services only app engine apps 
with SSL so that a non-SNI enabled request will get a static IP mapped to a 
custom domain with SSL which will answer with the succeeding SSL request to 
that static IP with the correct certificate for the SSL handshake.  Yes, its 
expensive.  The engineers have no doubt thought about this option given how 
trivial it is.  Earlier this year MS bought 660,000 IPv4 addresses from 
Nortel for about 
$7m<http://allthingsd.com/20110325/got-any-old-ip-addresses-need-to-raise-cash-you-may-be-in-luck/>.
 
 Given that market price and that there are probably less than 500,000 app 
engine apps (I suspect we would have heard from the GAE team if there were 1 
million apps), the rough order of magnitude of money needed to acquire 10 IP 
addresses for each app engine app is around $70m (10 IPs for multiple end 
points in different data centers).  Considering that only a fraction of apps 
need / will pay for SSL on a custom domain, it is entirely reasonable for 
Google to use a custom DNS with static IPs to serve GAE apps with SSL on 
custom domains.  Given a cost of ~$100 per app engine app (say $7 per IP, 10 
IPs per app and some profit) there's even an outlook for ROI.

Therefore there exists at least one possible and viable solution to get 
around the unfortunate SNI issue.  There are probably a handful of other 
solutions.

So, Google App Engine Team, which is it:
1. Are we all going to wait for IPv6 or IE on XP to go away, which is why 
you don't have a date?
2. Are you developing a workaround and are planning to release some form of 
SSL on custom domains in the near future (say, before GAE leaves preview)?

A straightforward answer would be appreciated by your users.

Thanks

Amir

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/GFb6thDYs6IJ.
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