getButterfly Logo getButterfly code wrangling since 2005

Yesterday in New York, Amazon introduced Silk, an all-new web browser powered by Amazon Web Services (AWS) and available exclusively on the just announced Kindle Fire. Amazon Silk deploys a split-architecture. 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. In short, Amazon Silk extends the boundaries of the browser, coupling the capabilities and interactivity of your local device with the massive computing power, memory, and network connectivity of Amazon’s cloud.

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.

Here’s a short description of the Silk browser:

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.

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.

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.

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.


Subscribe to getButterfly Blog

Once a week or so we send an email with our best content. We never bug you, we just send you our latest piece of content.

If you found any value in this post, agree, disagree, or have anything to add - please do. I use comments as my #1 signal for what to write about. Read our comment policy before commenting! Comments such as "Thank you!", "Awesome!", "You're the man!" are either marked as spam or stripped from URL.

Leave a reply

Love programming?

Learn about the most amazing things. Get smarter everyday!