Amazon Silk

Ok, so I am breaking with tradition here and talking about a cloud service that really doesn’t fit within the definition of SaaS but that life sometimes. A quick disclaimer: I am proud to be an Amazon shareholder, AWS user and I think this will be my first Kindle.

Amazon has announced their latest Kindle Fire with a new browser called Silk. Silk’s claim to fame is that the work it performs of downloading and rendering web page is performed partially on the device and partially in the Amazon Web Services cloud infrastructure. The use of remote cloud grunt allows them to deliver a heavily optimised, cached and lower bandwidth rendering of the web pages you view using the massive and virtually limitless machine power they own and run. Only a few companies who are vertically integrated like Amazon, Google, Apple and Microsoft can offer services like this affordably, because they own or control much of the browser, device, network and servers.

From the Amazon Kindle Fire website, here is a quick summary of the advantages and technologies in use. I look forward to getting my hands on an early Fire and try Silk out for myself.

Revolutionary Cloud-Accelerated “Split Browser”

Modern websites are complex. A typical web page requires 80 files served from 13 different domains. This takes a regular browser hundreds of round trips, and adds seconds to page load times.Amazon Silk is different in a radical new way. When you use Silk, without thinking about it or doing anything explicit, you’re calling on the computing speed and power of the Amazon Web Services cloud (AWS). We’ve refactored and rebuilt the browser software stack to push pieces of the computation into the AWS cloud. This lets Silk do more work, more quickly, and all at once. We call this “split browser” architecture.Silk browser software resides both on Kindle Fire and on the massive server fleet that comprises the Amazon Elastic Compute Cloud (Amazon EC2). With each page request, Silk dynamically determines a division of labor between the mobile hardware and Amazon EC2 (i.e. which browser sub-components run where) that takes into consideration factors like network conditions, page complexity and the location of any cached content.

Shorter Transit Times

Amazon EC2 is always connected to the backbone of the Internet where round-trip latency is 5 milliseconds or less to most web sites rather than the 100 milliseconds that’s typical over wireless connections. AWS also has peering relationships with major internet service providers, and many top sites are hosted on EC2. This means that many web requests will never leave the extended infrastructure of AWS, reducing transit times to only a few milliseconds.

Computing Power in the Cloud

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.

Persistent Connections

A typical web request begins with resolving the domain names associated with the server and establishing a TCP connection to issue the http request. Establishing TCP connections for each request consumes time and resources that slow down traditional browsers. Silk keeps a persistent connection open to the backend server on the AWS cloud so that there is always a connection at the ready to start loading the next page. In addition, the Silk backend server keeps persistent connections open to the top sites on the web. This approach further reduces latency that would otherwise result from constantly establishing connections. Further, the connection between Silk and the backend infrastructure uses a pipelined, multiplexing protocol that can send all the content over a single connection.

Page Indexes

Traditional browsers must wait to receive the HTML file in order to begin downloading the other page assets. Silk is different because it learns these page characteristics automatically by aggregating the results of millions of page loads and maintaining this knowledge on EC2. While another browser might still be setting up a connection with the host server, Silk has already pushed content that it knows is associated with the page to Kindle Fire before the site has even instructed the browser where to find it.

Machine Learning

Finally, Silk leverages the collaborative filtering techniques and machine learning algorithms Amazon has built over the last 15 years to power features such as “customers who bought this also bought…” As Silk serves up millions of page views every day, it learns more about the individual sites it renders and where users go next. By observing the aggregate traffic patterns on various web sites, it refines its heuristics, allowing for accurate predictions of the next page request. For example, Silk might observe that 85 percent of visitors to a leading news site next click on that site’s top headline. With that knowledge, EC2 and Silk together make intelligent decisions about pre-pushing content to the Kindle Fire. As a result, the next page a Kindle Fire customer is likely to visit will already be available locally in the device cache, enabling instant rendering to the screen.



‘Sorry about the break dear readers. I got knocked about by the flu this week and spent all of my blogging time curled up in bed with some lovely drugs and my misery. But I am back with a great service. CloudFlare was a bit of a surprise for me. My initial gut reaction was “another service leveraging the term ‘cloud’ to capture headlines” but something caught my eye and I decided I had little to lose.

CloudFlare is a website acceleration service. Essentially it is an automated reverse caching proxy and content delivery network (CDN). It takes over control of your DNS and serves up everything it can directly and passes through to your website what it cannot. Images, videos, CSS and Javascript files and any static HTML files will be served up from the “closest” web server CloudFlare operates and only what must be served from your server will be. This takes load of your server and network and even allows you to serve some content while you are offline.

For the moment, I choose to host my websites on a cheap and nasty shared hosting service. I host the most critical parts of my technology (such as DNS and email) on better quality service providers and generally speaking I am satisfied with the cost-value trade-off. Having said that I am quite aware that the website is a little laggy and could use some performance tweaking but I hadn’t got around to doing it.

So I was asked by a friend (Martin) to take a look at CloudFlare, which I did and in about 15 minutes time my site was setup and I just had to wait for the DNS change to propagate (about 24 hours or so). The result was not life changing but it was definitely noticeable. In particular the time from clicking a link to the finished result is “much faster” and thats all I wanted. As a bonus CloudFlare is now serving 50% of the data and 50% of the files instead of them coming off my server. I would imagine results will vary depending on what you are serving up, where you serve it from and where your audience is but thats the fun part.

You can pay for enhanced functionality and reporting but for a free service its a sweet offering.

I can’t find anything identical but there are a number of similar alternatives: