Introducing Amazon Silk
amazonsilk.wordpress.com
amazonsilk.wordpress.com
This sounds conceptually similar to how Opera delivers pages with one of its mobile browsers, which is to say that Javascript and rich web apps will be severely crippled. Is it indeed possible for the server and client to collaboratively decide what parts of my code to run client-side and which ones proxy-side and still have anything approximating good performance/identical functionality?
Perhaps Opera Mini runs on Amazon EC2, which would mean they use the same infrastructure ;)
I would assume that to mean that if there's Javascript that can't be run on the server side, it will be run on the client.
Even if it was just a proxy for resources it would be way faster, but they gain the benefit of knowing what resources are needed based on past events and likely already having them cached. Not to mention all the sites that will be local to AWS.
Now, the picture could be incorrect or stretching the truth, but there was some indication.
Computation (in the context of webpages) indicates JS to me, though they concievably could mean DOM construction. I'm fairly skeptical that transmitting a serialized DOM and unpacking it could be more efficient over mobile network connections that is using our time-honored DOM serialization, HTML.
I do hope I'm wrong, as I can't see how this sort of proxy can be healthy for the web, but I don't think my speculations are out if the realm of reasonable given the information.
I don't know how Amazon is doing it with Silk, but I'm guessing they're seeing enough of a speed up to make it worthwhile.
Just the CPU thing makes a big difference. There's a noticeable timing lag between loading a page on my iPad vs on my computer. Same wireless network so it's not the connection slowing things down.
Similarly, even if JS bytecode was the same size as the JS itself, eliminating the cost of parsing, constructing an AST, (possibly) transforming the AST, creating bytecode, and (possibly) doing an optimization pass on the bytecode would be significant.
[1] - http://arstechnica.com/web/news/2009/11/spdy-google-wants-to...
They offload some of the compositing and some of the fetching and asset flattening server side, and then serve up to the device with custom protocol the pre-rendered flattened data anything that can be done server side. That is exactly the same way those other accelerator products already work for mobile.
While it's a nice design, it's been done. The limitations and issues are well know as well, like having trouble with private intranet sites and VPNs or that because all the requests come from a few centralized IPs, geoip doesn't offer any benefit (GEOIP is a hack anyways but sites use it and users get confused when their pages think they are where ever some colo is). It also creates a single point of failure which, pedantically, is counter to the design of the internet.
I was a little inflamed by the video's first statement that browsers have been built pretty much the same as they were since the beginning without many innovations. Sounds like marketing spin. I can name several notable amazing advancements in browser design since the days of WordWideWeb at CERN and Mosaic. A good number of amazing achievements around security for sure.
Also, on top of that, you know what happens when Silk touches Fire? It's not pretty.
The old Blackberry Java browser was split and had tons of logic in the cloud to compensate for the fact that networks were beyond slow and devices had no extra cpu and very little ram and it did make a huge difference. It feels like RIM bet big that networks were always going to be slow and cpu's wouldn't be that fast and then came along the iphone. These days networks are much faster and there are cell phone with dual core cpu's and GB's of ram. Just imagine what we will have next year! So it is all a trade off. Is putting resources into developing this hybrid browser worth more than developing something else and just waiting 12 months for faster network/devices?
Also while they don't say it on that page for the curious Amazon silk is using WebKit (from the jobs page).
But you could also do things like pre-compile the javascript and only send the bytecode down to the browser (starting to get in the relm of cool).
And we still haven't touched the dom. Of course the more you touch the harder it is to keep up to date with webkit.org. The real meat of this entire discussion has to be what gives the best bang for the buck? For WiFi devices all of this (guessing) is a waste of resource as my guess is that it doesn't improve the speed by much. I would expect the performance jumps on a cell network to be much better. So when is that device coming out?
If all they're doing is network stuff then there's nothing new here, and I doubt their gains will be very noticeable. I was hoping for something more involved.
Amazon is betting that slow hardware will stay cheaper than fast hardware. It's a good bet. If they could ship a $30 Kindle, they absolutely would. And eventually, they might.
Expensive (high margin) fast hardware that can do more things
Cheap (low margin) slow hardware that can do some things
The one thing we do know is that WebKit is winning. Now the big question is which JavaScript engine did they use? My gut says V8 due to the optimizations I know they could do with the cloud setup they have.(disclaimer work for the webkit team at rim and this is all my own personal opinion)
So what? It sounds like it will greatly improve the browsing experience on a under-powered small-screen tablet. And it sounds like they have improved upon the Opera and RIMs implementations.
like having trouble with private intranet sites and VPNs
That's an edge case that could be ignored ("Kindle Fire is only intended for personal home use") or worked around (separate browser/browsing mode in those scenarios). EDIT: Reading below it sounds like they have an "off-cloud" mode.
because all the requests come from a few centralized IPs
Amazon's network is massively distributed...
Also Amazon's cloud isn't so massively distributed that it's in every single location that some how makes GEOIP work which was the point.
There are also some serious privacy implications here. I don't really know if I want Amazon to cache & potentially record all my browsing, especially since that device is something they can directly connect to all my personal info (purchasing history, CC number, home address, etc..).
Also, Amazon's privacy statement says you can make Silk a normal browser by selecting the "off-cloud" mode [1]. Off-cloud mode allows web pages to go directly to the device rather than pass through their servers. I'm sure most users won't know of this option but at least it is an option.
[1] http://www.amazon.com/gp/help/customer/display.html/?nodeId=...
With each product iteration or rollout, it seems like we are increasingly giving up more than our dollars at the point of sale, like privacy - allowing companies to have complete access to our browsing/spending preferences.
"You can also choose to operate Amazon Silk in basic or 'off-cloud' mode. Off-cloud mode allows web pages generally to go directly to your computer rather than pass through our servers. As such, it does not take advantage of Amazon’s cloud computing services to speed-up web content delivery." [1]
[1] http://www.amazon.com/gp/help/customer/display.html/?nodeId=...
I wonder why "generally?" Is there some part that will always have to go through EC2?
Mobile devices are nearly on par with where that plateau began, and there are plenty of reasons to increase the CPU/GPU performance for the purpose of games. In this context, it certainly appears to me that Amazon is wasting their resources on what amounts to a massively complex privacy snafu.
It's true this problem is also being solved by LTE rollouts but those aren't today for most people.
Some day, sure, they'll ship with 3G connections. But client hardware on future devices will only be faster and more capable.
A SPDY-link to Amazon's private caching/compression network is a great win and differentiator. But why even open the can of worms that is two-tier _processing_?
If they're leaving flash enabled on Silk, surely that dual-core chip is capable of keeping up with the bulk of browser rendering and js tasks.
http://www.fcc.gov/measuring-broadband-america
I forget the exact numbers off the top of my head, but I just remember it being really difficult to actually find the statistic. But the takeaway is that although we are theoretically #27 in terms of broadband speed, our actual broadband speeds aren't that much lower than in other countries.
edit: http://www.akamai.com/stateoftheinternet/
The Akamai report here is probably the most credible source. I remember there being one other report that covered this info, but I can't find it right now.
Danger, Opera, and Blackberry have all done this with lackluster results. Mobile Chrome has the chops to handle the modern web. This kind of pre-rendered solution might have been a good idea 4 or 5 years ago, but now its questionable and brings up issues of privacy, vendor lock in, EC2 issues (hi, my website was down for 48 hours a couple of months ago), EC2 load issues, etc.
You must have a lot of Turbo/Mini proxy servers to handle all the clients. I guess it's against your TOS but I wonder how easy it would be to proxy another browser's traffic through Opera Turbo.
Is Opera Mini's format closed or is there a spec somewhere we can see?
Thanks for creating an account to reply.
http://dev.opera.com/articles/view/opera-mini-web-content-au... does contain some good info on Mini, even if it may not be what you were wondering about.
Amazon could pull something like that off, it would be useful to have a wordpress template that included the e-ink stylesheet.
http://www.w3.org/TR/css3-mediaqueries/#monochrome
(although I wouldn't expect them to actually support this properly)
For a company as large and successful as Amazon to launch a product on a default blog template under their domain? That's like launching a product on Blogspot, with that 'circles and dots' theme or whatever: it looks unprofessional.
Edit: this is a more branded description: [Amazon Help](http://www.amazon.com/gp/help/customer/display.html//ref=amb...). No video though.
I mean they aren't even using an amazon subdomain or their own domain - it all looks like an afterthought someone had this week "oh yeah we should have a blog, where can I set one up in a few minutes".
Rendering engine:browser::Car:engine
Until it outranks IE6 in my stats, I won't even be giving it a look in.
Say you logged into your Amazon account and set the rating level for content available in Fire and then Amazon's servers would block your kid from accessing freepr0n4all.com. You could add exceptions, specific sites to block, etc. and there would be a known, ever-evolving database of "unsafe" sites by rating.
The ability to filter content in a mobile browser isn't something that exists as of yet, I don't believe.
If I could do this, I'd buy one for my 9yr old today.
Of course, this could then be combined with other tools to "lock down" the fire, e.g. disabling the ability to exit "cloud mode" and thus bypass the filters, password protection for app/movie purchases, like iOS parental controls do, and so on.
It makes sense to try to help a young child keep from accidentally stumbling across that kind of crap, but I'm highly skeptical of the idea that you can prevent your child from looking at porn full stop-- or would really want to.
I'm not so much even worried about protecting her from the "questionable content" because I think that's something she needs to learn to deal with (though we do of course have rules about what is and isn't allowed). I just don't want her stumbling across it on a tablet in her bedroom, where we won't notice and can't offer guidance or discussion.
We have a computer in the living room that she uses for internet access and we don't have any filtering software, etc. on it. It's just out in the open, so generally supervised.
But compositing dozens of network fetches from the same cloud, centrally caching the rest, and predictive pre-fetch are big wins. The endless traipsing back-and-forth is frustrating even on the desktop. These aren't new ideas, but if Amazon implements them to deliver a better experience, users won't care - and neither will you. A sad truth for pioneers.
Also gives Amazon a competitive advantage: host all your stuff with us, users will love you (google's experiments showed that even fraction-of-a-second latency loses users.)
EDIT but... amazon.com is one of the slowest websites on the internet for me, and I'd expect them to be doing all of the above on their own site...
What about handling secure (https) connections?
We will establish a secure connection from the cloud to the site owner on your behalf for page requests of sites using SSL (e.g. https://siteaddress.com).
Amazon Silk will facilitate a direct connection between your device and that site. Any security provided by these particular sites to their users would still exist.
[1]: http://www.amazon.com/gp/help/customer/display.html//ref=amb...Is the connection from the device right through EC2 out to the site secure, even from Amazon?
Or, is the connection from the device to Amazon secure, and the connection from Amazon to the site secure, but Amazon is acting as a man-in-the-middle?
Or, is the connection from the device to Amazon insecure, Amazon is acting as a man-in-the-middle, but the connection from Amazon to the site is secure?
I may be having a slow neuron day, but the wording of the FAQ doesn’t seem to definitively state which of these three cases holds?
Hopefully the device-to-Amazon connection is secured by Amazon, but I can not find any details.
The privacy implications of all SSL traffic being decrypted on AWS are a bit scary.
I am guessing the end user will never see broken SSL certificate warnings (as you would expect in a regular browser), since Amazon can add a "Amazon MITM" root CA certificate to the browser.
Edit: The more I think about it, the more I think it is likely that they are just passing along the connection. SSL is designed to prevent MITM attacks. They would have to provide their own certificate which would cause browser warnings. They could write their browser to ignore certificate problems for Amazon certificates, but that strikes me as a pretty gaping hole.
If their browser has code operating on the device and in the cloud, then their browser won't generate certificate warnings because there isn’t a man-in-the-middle between their browser and the site, there’s a man-in-the-middle between the device in your hands and the site.
It would be insecure against Amazon snooping or modifying the communication, but still generate the appropriate warnings about bad certificates.
I think the answer is, run “off-cloud” when you want privacy from Amazon.
So I guess the issue of privacy still remains up in the air. I was hoping to be an early adopter of this, but I think I'll wait to see how the SSL via Silk situation pans out before putting down cash.
It could easily work by having the connection between EC2 and the remote site be managed over SSL normally. EC2 then rejiggers the traffic, encrypts it over SSL with Amazon's certificate to send it to the device, and includes a little blob of data saying, "we got this from site X, whose certificate is Y". Amazon's browser could verify that but trust EC2 not to screw with the data. End result: no warnings, and your data is safe from everyone except Amazon. Which is not great, but neither is it hugely insecure.
So they are MITM'ing HTTPS connections.
"Amazon Silk will facilitate a direct connection between your device and that site. Any security provided by these particular sites to their users would still exist."
So they aren't MITM'ing HTTPS connections.
What the hell? Which is it?
Also, that would require standardization which has a pretty high cost.
-cheap devices (the fire?) get to see complex websites
-server side webgl?
-server side java applets?
Disadvantages:
-you partially browse the web on Amazon's cloud so Amazon can track your behaviour (and your data)
-your site is part of an internal network that can only be accessed using a vpn from the outside world? bad luck.
-you have to buy a cheap device to see a real pageload speed,considered that you should get your data from amazon anyway
-if the world uses ec2 for browsing its performance will probably suffer
if you have the ipad you can test a lot of similar apps anyway,like puffin or skyfire,and see if you would like it,I prefer the native browser myself,yet I know that the infrastructure would be better in theory.
http://devblog.seomoz.org/2011/09/amazon-ec2-spot-request-vo...
(The idea that the spot price is allowed to exceed the regular price is also curious.)
EC2 servers have massive computational power. On EC2, available CPU, storage, and available memory can be orders of magnitudes larger than on mobile devices. Silk uses the power and speed of the EC2 server fleet to retrieve all of the components of a website simultaneously, and delivers them to Kindle Fire in a single, fast stream. Transferring computing-intensive tasks to EC2 helps to conserve your Kindle Fire battery life."
http://www.amazon.com/gp/product/B0051VVOB2#silk
What does this mean? "Transferring computing-intensive tasks to EC2 helps to conserve your Kindle Fire battery life". Are we offloading javascripting processing to the cloud and returning the results?
If so it will be different than Opera Mini.
"Amazon has also added a few unique twists of its own that will further improve the user experience. An Amazon engineer at the New York launch event told us that the split browsing infrastructure can even compile JavaScript to ARM machine code on the server side in situations where it will provide a speed boost. He also told us that Amazon will track whether users prefer the full or mobile versions of various websites so that they can predict which one is better to send to users."
When it comes to web browsing most of us have very good speed for browsing, then why do we need to speed up the browsing?
Here's an independent description of Silk behind the scenes:
http://www.webmonkey.com/2011/09/amazons-silk-web-browser-ad...
I am hoping that Amazon gets a developers guide up soon that fills in more of the gaps. Already on EC2 and I want to start experimenting.
(If this is any indicator of the actual product), it says that the whole JavaScript processing will be done on the server.
The article explains it like this:
All of the browser subsystems are present on your Kindle Fire as well
as on the AWS cloud computing platform. Each time you load a web page,
Silk makes a dynamic decision about which of these subsystems will
run locally and which will execute remotely.They could of put some effort into the logo and blog template into the new blog. It looks very blog spammy at first.
It's amazing how quick Google picks up changes to Wordpress.com blogs.
So, it's just an SEM thing. They'll probably have a post to the official channel soon.
Via PubSubHubBub, right? http://mashable.com/2010/03/03/wordpress-pubsubhubbub/