Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

June 30 2011

How Netflix handles all those devices

Netflix's shift to streaming delivery has made quite an impression on Internet traffic. According to Sandvine's latest report, Netflix now claims almost 30% of peak downstream traffic in North America.

That traffic occurs, in no small part, because Netflix can run on so many devices — PCs, tablets, gaming consoles, phones, and so on. In the following interview, Netflix's Matt McCarthy (@dnl2ba) shares a few lessons from building across those varied platforms. McCarthy and co-presenter Kimberly Trott will expand on many of these same topics during their session at next month's OSCON.

What are some of the user interface (UI) challenges that Netflix faces when working across devices?

Matt McCarthyMatt McCarthy: Scaling UI performance to run well on a low-cost Blu-ray player and still take advantage of a PlayStation 3's muscle has required consulting WebKit and hardware experts, rewriting components that looked perfectly good a week before, and patiently tuning cache sizes and animations. There's no silver bullet.

Since we've standardized on WebKit, we don't have to support multiple disparate rendering engines, DOM API variants, or script engines. However, there are lots of complex rendering scenarios that are difficult to anticipate and test, especially now that we're starting to take advantage of WebKit accelerated compositing. There are WebKit test suites, but none that are both comprehensive and well documented, so we're working on our own test suite that we can use to validate partners' ports of our platform.

OSCON JavaScript and HTML5 Track — Discover the new power offered by HTML5, and understand JavaScript's imminent colonization of server-side technology.

Save 20% on registration with the code OS11RAD

How do the platform lessons Netflix has learned apply to other developers?

Matt McCarthy: The challenges we face may be familiar to many large-scale AJAX application developers. In addition, mobile developers need to make similar trade-offs between memory usage and performance, other sophisticated user interfaces need to handle UI state, and most large code bases can benefit from good abstraction, encapsulation, and reuse.

The urgency and difficulty of solving those challenges may differ for different applications, of course. If your application is very simple, it would be silly for you to use the level of abstraction we've implemented to support A/B testing in Netflix device UIs. But if you're innovating heavily on user experience, your performance isn't always what you'd like, and your UI is an endless font of race conditions and application state bugs, then maybe you'd like to learn about our successes and mistakes.

There were reports last year that some Netflix PS3 users were seeing several different UIs. What are the benefits and challenges with this kind of A/B testing?

Matt McCarthy: Netflix is a subscriber service, so ultimately what we care about is customer retention. But retention, by definition, takes a long time to measure. We use proxy metrics that correlate well with retention. Some of our most closely watched metrics have to do with how many hours of content customers stream per month. Personally, I find it gratifying to have business interests that are aligned closely with our customers' interests.

The challenges grow as the A/B test matrix grows, since the number of test cell combinations scales geometrically with the number of tests. Our quality assurance team has been working on automated tests to detect regressions so a fancy new feature doesn't inadvertently break another feature that launched last month. Our engineers adhere to a number of best practices, e.g. defining, documenting, and adhering to interfaces so we don't find nasty surprises when we replace a UI component in a test cell.

A/B testing user interfaces obviously takes a lot more effort than developing our "best bet" UI and calling it a day, but it's been well worth the cost. We've already been surprised a few times by TV UI test results, and it's changed the direction we've taken in new UI tests for both TV devices and our website. Every surprise validates our approach, and it shows us a new way to delight and retain more customers.

This interview was edited and condensed.



Related:


July 29 2010

Four short links: 29 July 2010

  1. How to Raise Funds for Non-Profits (Joi Ichi) -- One organization sent a message to all of their donors during the Haiti crisis asking them to give to an NGO that they had vetted. They didn't ask for any money for themselves. This had a hugely positive effect and the donors trust in the group increased. Wallets aren't zero sum.
  2. legislation.gov.uk -- very elegant legislation system for the UK. Check out the annual analysis, for example. (via rchards on Twitter)
  3. The Great WebKit Comparison Table -- So far I’ve tested 14 different mobile WebKits, and they are all slightly different. You can find the details below. (via Andrew Savikas)
  4. Node and Scaling in the Small vs Scaling in the Large (al3x) -- In a system of no significant scale, basically anything works. The power of today’s hardware is such that, for example, you can build a web application that supports thousands of users using one of the slowest available programming languages, brutally inefficient datastore access and storage patterns, zero caching, no sensible distribution of work, no attention to locality, etc. etc. Basically, you can apply every available anti-pattern and still come out the other end with a workable system, simply because the hardware can move faster than your bad decision-making.

May 17 2010

Mobile operating systems and browsers are headed in opposite directions

During a panel at Web 2.0 Expo, someone asked if the panelists saw any signs that suggest mobile operating system fragmentation might decrease.

One of the panelists had a blunt answer: "No. There will be more fragmentation."

It is striking to see the different trajectories mobile operating systems are on when compared to the mobile web.

In 2006, two smartphone operating systems accounted for 81 percent of the market. There were really only four platforms to worry about: Symbian, Windows Mobile, RIM, and Palm OS. These represented 93 percent of the market.


Smartphone Operating System Market Share Percentage 2006 2007 2008 2009 2010
Sources: Canalys, 2006. Gartner: 2007, 2008, 2009.
Symbian 67 63.5 52.4 46.9 ? RIM 7 9.6 16.6 19.9 ? Windows Mobile 14 12.0 11.8 8.7 ? iPhone 0 2.7 8.2 14.4 ? Linux 6 9.6 7.6 4.7 ? Palm OS 5 1.4 1.8 Android 0.5 3.9 ? WebOS 0.7 ? Windows Phone 7 ? Bada OS ? MeeGo ? Other OSs 1 1.1 2.9 0.6 ?


Fast-forward to the present and the picture is different. No single operating system has more than 50 percent marketshare. There are seven operating systems being tracked and even within operating systems there are fragmentation concerns.

The future promises more operating system fragmentation, not less:

This list doesn't include differences within each particular operating system. Much has been made of Android fragmentation due to different user experiences like MotoBlur and HTC's Sense UI. And some argue that even the homogenous iPhone platform is starting to fragment.

There are more mobile operating systems coming and no signs of the mobile OS market narrowing any time soon.

The mobile web is converging

By contrast, the mobile web is converging on HTML5 and WebKit.

Unlike mobile operating systems, mobile browsers were fragmented a few years ago. The list of early mobile browsers include a series of proprietary browser engines:

  • jB5 Browser
  • Polaris Browser
  • Blazer
  • Internet Explorer Mobile
  • Openwave
  • NetFront
  • Obigo
  • Blackberry Browser

That's a fraction of the browser options that were available to mobile phone users. And while there is still work to be done to make mobile browsers more consistent, it is nothing compared to the inconsistencies between early mobile browsers.

Today, every mobile browser is moving toward HTML5 support, if it isn't there already:


Modern Mobile Browsers Engine HTML5 Mobile Safari Webkit Yes Android Webkit Yes Blackberry 6 Browser Webkit Yes Symbian^3 Webkit Yes MeeGo Webkit (Chromium) Yes Internet Explorer Internet Explorer 7 No WebOS Browser Webkit Yes Bada OS Browser Webkit Yes? Opera Mobile Opera Presto 2.2 Yes Opera Mini Opera Presto 2.2 Yes Fennec Firefox Yes Myriad (former Openwave) Webkit No BOLT browser Webkit ?

There are a couple of things to keep in mind about this list:

  1. The only major browser that definitely will not support HTML5 is Internet Explorer, but Internet Explorer 9 for desktop is going to support HTML5. Eventually the mobile browser will as well.
  2. Saying a browser supports HTML5 does not mean it supports the full HTML5 spec right now. It simply means that it supports a portion of the spec and is on track to support it fully.

The support isn't perfect, but it is clear that all of the mobile browsers are moving toward supporting full HTML, Javascript and CSS in a way that is already decreasing the difference between browsers.

WebKit: The dominant mobile platform

The WebKit browser engine now has a dominant position in mobile browsers. When BlackBerry ships its new browser based on WebKit, 85 percent of smartphones will ship with a WebKit-based browser.

Just because a device uses WebKit does not mean it has the latest version of WebKit and can use HTML5 fully. PPK has documented the many inconsistencies between WebKit implementations. Alex Russell makes a compelling counterpoint that the inconsistencies aren't that bad if you factor in when the browsers shipped.

WebKit is also used by numerous feature phones. Vision Mobile estimates that at the end of 2009, WebKit had been embedded in more than 250 million devices.

Advancing the mobile browser

In many ways, HTML5 is just the baseline of where mobile browsers are headed. Many companies, from carriers to handset manufacturers, are looking to mobile browser innovation as a key to their mobile strategies.

  • WebOS extends Javascript to provide access to device characteristics like the address book, camera, and accelerometer.
  • Sony Ericsson worked with the PhoneGap community to create its WebSDK.
  • Symbian is wooing developers with access to the dialer, calendar, camera, contacts and other tools using web technology.
  • Forty carriers and handset manufacturers have formed the Wholesale Application Community to build an open platform that will work on all devices. They seek to combine JIL and BONDI. JIL and BONDI provide access to device APIs via web technology.

There are two common threads in each of these stories.

First, companies throughout the ecosystem are extending mobile browsers to provide more functionality and attract developers to their platforms. Second, they are all approaching it in similar ways built on HTML widget technology.

Much like WebKit, there will be inconsistencies between these efforts in the near term, but all of these efforts are headed in the same direction.

Mobile Competitive Landscape

In December, Morgan Stanley released its Mobile Internet Report. Buried among the more than 1,000 pages in that report was a slide showing probability-weighted scenarios for mobile operating systems:

Mobile internet operating system competitive landscape

In the most probable scenario, "products with the best HTML5 browsers gain share." It is no wonder then that so many mobile companies are lining up behind HTML5 and pushing mobile browser technology.

Two to many, many to one

In 2006, two mobile operating systems controlled 81 percent of the market. This year there are 10 different smartphone operating systems.

Over that same period of time, mobile browsers have gone from many different proprietary rendering engines to the point where WebKit alone will power browsers in more than 85 percent of the smartphones sold.

From two operating systems to many. From many browsers to one. We have two core mobile technologies headed in opposite directions.

Related:

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!

Schweinderl