Demystifying web performance automation

Demystifying web performance automation

Strangeloop president Joshua Bixby explains how to automate web performance at New York Web Performance Meetup.


Video Transcript

Joshua Bixby: [indiscernible] [0:00:00]. What’s the history of it? And then follow that up with some of the challenges and opportunities. And end with questions. Usually the end part of the question experience is, my hope is you’ve asked your questions during the time so don’t store your questions. Let’s jump into it.

I want to give you an introduction to myself. So I’m the President and Co-founder of Strangeloop. We are a company based in Vancouver. We have about 45 people. I started this business and actually got into technology in 1999. So my background is actually all in economics and development. I’m not technical. I might master [indiscernible] [0:01:42] technical in a few conversations but I also pulled that part out when you asked me really technical questions. I’ll say, “I’m not technical. I’m just a business guy.” So my experience is all along the business side. I went to school to learn to be a development expert. I did microfinance, a specialization in microfinance. I spent time working in refugee camps in Yugoslavia and also working on World Bank projects in Benin in West Africa. So my experience actually has nothing to do with technology. I was out in the field running banking institutions for rural women in West Africa. That’s where I come from.

Male Speaker 1: Were they fast?

Joshua Bixby: Pardon me?

Male Speaker 1: Were they fast?

Joshua Bixby: They were really, really slow.


Joshua Bixby: The only fast thing was about, was how quickly people would take the money that came from the banks and that was fast. But other than that, it was pretty slow. My experience there brought me to the conclusion that microfinance was the future from the west perspective of how to solve the development challenge. And not one person that I worked with or worked in the World Bank to my knowledge had ever started a business. And for me, it looked like the same train wreck as we’ve had in agricultural development. And actually, frankly, every development project ever which is, we go tell people things that we never really learned to do ourselves. So I said, “I’m not going to be a part of that. I’m going to come back and I’m going to start some businesses. See if I can be successful myself. Learn what it takes to entrepreneur and then maybe if I get too greedy, spend some time and look back again and use some of those skills.”

So I’m now 11 years into that quest. I do spend a lot of time on the personal side doing microfinance stuff and trying to give back. First business was in the content management space building sites for optometrists, doctors, lawyers. It wasn’t really a real business but we had an exit in 1999 right at the heyday of the market so that was fun.

When I say we, I refer to myself and my brother. I have an identical twin brother. We’d work together. He is the CEO of Strangeloop and we’ve always interplayed between titles. So last business, I was the CEO. This business, he’s the CEO. I’ll never be the CEO again. I hate that title.


Joshua Bixby: You’re the guy where all the crap rolls downhill or they’re uphill, or whatever’s the terminology. You don’t want to be there. The next business we started in 2002, a content management company called IronPoint Technology. That business was building websites, really, really big websites for government educational customers. We were the biggest plain in that space. We built huge websites. And from that experience, started to get the grains of why I’m here on the Web performance side. And the sort of the grains of truth around that was where Web performance, how important Web performance is.

We had some leading companies that we worked with where I would sit and talk to CTOs and CEOs and they said, “You know, when my site is faster, it’s better for me. I sort of hear that and I’m like, “Okay, there’s something here.” All of our customers own CDNs. They’re all [indiscernible] [0:04:36] my customers. They all own big F5 or [indiscernible] [0:04:38] devices, whatever the case may be. And I started to see this little trickle of insight that if we can make things faster, it’s better for the business. We didn’t have all the quantifications that we have today, certainly it spoke to some of that. But we did have this sort of penetrating insight.

And so we decided, when the company was acquired in 2006, we decided in 2007, we’d start our next business and it would be in the Web performance space. And the vision for us was to make websites faster without changing code. And this is an important element and actually the basis for my entire discussion today. This for me is the topic. How do you make websites faster without changing code?

Now, I believe I have many coders who I employ. I have many coders who I have employed in the past. I love coders and I love beautiful code. So now our certain organizations that can march an army of great coders, keep up with all the innovations in performance, keep up with all of the changes that happened, and build beautiful sites. Google is an example for that. And this whole market isn’t there to replace that. This market has evolved because organizations have a difficult time changing code. They have limited resources. They have to make decisions about what to do. And today, you know, I really want to go through that market and talk about that.

Let’s talk about the you know, Steve Souders, - sort of a call up to Steve. For those of you who don’t Steve, he’s one the great, great people in the business. Not only is he, obviously have incredible insight to performance and Sergei spoke to some books. But he’s probably the nicest person you’ll ever meet. And he is one of the leaders in forethought in this market. If you don’t know who he is, I really suggest that you click to his blog and see what he Twitters about. He wrote a post in May that talked about the Web performance industry. That you know, search engine optimization gets somebody to your site and Web performance optimization takes them from there to check out, and how important speed is about. He wrote a number of elements of this.

One of the areas that we’re going to talk about today is fast by default. How do we make things fast? And only a specific area of that. Because he uses that term, it’s not just website automation without changing code. It’s changing code and it’s automation. It’s a number of things. Today, we’re just going to talk about how do we make sites faster without changing code.

So let’s talk about some terminology. Sergei already introduced to the first term that I want to sort of outline. We’ve got front end performance and back end performance. I’m going to use those terms a lot. Sergei already explained them so I don’t have to which is fantastic. [indiscernible] [0:06:58]

For us, and Sergei walked through this. The front end performance problem is the problem we’re addressing today. Now, there’s a hitch. There are actually some techniques that we can employ within our traditionally front end techniques that will hide or mask back end performance problems, and we will take some time if we can to get into those as well.

The other question that we have is first, repeat views, flows, so every time you look at a Web page, depending on the lens that you’re looking at it through, you’re going to see something different. This is a chameleon. So if I go to for example, the home page of a site or something you build, I’m going to see you know a nice beautiful green tree. It’s a first load. It’s an empty cache. I’m going to see something. If I browse around to a few pages and come back, I’m going to see something different. I might see what we call a repeat view and we’re going to talk a lot about first repeat views. Or I might see something that’s completely different given how I flown, taking a flow through the site.

So one of the things that’s really important in performance is to recognize are we talking about first views? Are we talking about repeat views? Are we talking about a flow through a site? All of those things, your page will look different. I’m going to refer to those ideas today.

We’re going to spend a lot of time in Waterfalls. I’m honored to have Eric here. We spend a lot of time with Patrick, Eric, and Webpage Test. And you’re going to see a lot of stuff on Webpage Test today. I’m a big fan of the tool.

This is a Waterfall chart. I’m going to take you through some of the key elements in two minutes. I’m assuming some of you know this. We have the HTML. This is the back end stuff. This is the instruction being generated by the server and sent to your browser for processing. I also have resources. Obviously resources are comprised of images, javascripts, CSS, swift files, server-like like files. You name it. Whatever else doesn’t count as HTML I’m counting in the resource part.

I have three lines that I want to talk about and actually two that I want to focus on. In a lot of the diagrams, you’re going to see a green line. That’s when something starts to render. That’s when you start seeing sort of a flash or something rendering on the page. I’ve got document completed. I’ve got fully loaded. And the entire mandate of this industry is to move this to that direction.

Now, there are some really interesting questions that this raises that we’re not going to get a chance to look at today but we’re spending a lot of time researching which is, what line matters more? Where in between those lines? Are there other lines that I’m not aware of today that are actually really important? If somebody came to me and said, “Josh, if you can only move one line. The green line or the blue line, which would you move?” I actually today have a hard time telling you which one I want to move to the [indiscernible] [0:09:32]. It’s not clear to me yet. There’s a lot of research going on in this area but it’s not clear. Yes?

Male Speaker 2: There’s a line on when it’s sent and usable.

Joshua Bixby: There’s a whole yeah, there’s a line- When is the site usable? When does it drop off the fold? There are a number of other elements here that we’re spending in our business an incredible amount of time and money researching. What happens between here and here and what are the points?

My opinion today is that we are focusing on the wrong thing. That’s my opinion. In fact, this whole presentation might be focused on the wrong thing which is a lot of the time, we’ve spent focusing on here. I don’t have enough to validate that guess. Yeah?

Male Speaker 3: Do you, for the document complete, are you saying specifically for or referring to a browser or are you speaking more to the perception of that?

Joshua Bixby: A browser and what’s that keyed off here?

Male Speaker 3: It’s the um, what is that change? [indiscernible] [0:10:22]

Joshua Bixby: Say I can just pass all of my technical [overlap]


Joshua Bixby: This is beautiful. I’m going to keep going. Yes?

Male Speaker 4: So there’s not a thing here to break out? I mean it’s not just you know, which of those two lines but for different kinds of sites, it might be different. Right? For a website that is a blog and has just content to read, maybe it’s that you know [indiscernible] [0:10:45] or whatever. But for some sites that is a Web application, maybe there is somewhere way near by the document we [indiscernible] [0:10:53]

Joshua Bixby: Absolutely. Yeah. So I agree. It’s stratified by industries. It’s stratified by used cases. It’s stratified by all factors. My personal hunch and I’m not doing a lot of research to this, I think it’s stratified by age and sex too. I think that your sex and your age have an influence on what line is important. That’s a little pet theory that I have but I actually think I’m going to be proven to be correct or at least I’ll fudge the data to prove it.


Joshua Bixby: There are a number of key elements within those Waterfalls that I’m going to call out because in the automation business and in our company and other companies, you’ll constantly hear, “Man, we got to make the orange smaller. We got to make the teal smaller. How do we get the teal smaller?”

So there are a number of different elements here. I’ve got the DNS Lookup. I’m going to refer that as teal. I don’t know why I refer it as that. I actually, I think that color is hard to see here but I call it teal. I have the TCP connection setup time that is the orange. I’ve got Time to First Byte which is when the servers taking time to process. That’s my green. And I also have my blue which is Content Download. There are other colors. There’s SSL handshake. There’s wait times. There are other things. I [indiscernible] [0:11:54] for the purposes of our discussion be focused on these four elements. So very much HTTP as opposed to HTPS sites and those four elements.

I’ve got obviously those elements. Some show up on some connection. Some don’t show up on others. Like sometimes you’ll see, you obviously won’t see a DNS connection, you hopefully don’t see a TCP connection [indiscernible] [0:12:14] but we’re going to see some sites where you do.

I also have this concept from a Waterfall perspective of First to Repeat. So here I got a first view. Again my Waterfall, the HTML, and the resources, and this is the repeat view meaning going back to that same page in a browser essentially right away without any pages in between. You’ll see these nice yellow lines. Those are 304s. They’re validators. We’re going to talk about the Repeat View and we’re going to talk about First Views as well.

Again, I alluded to flows. We’re not going to spend a lot of time on flows here today. Which is what if I went to this page then a different page then back to that page. How would the Waterfall change and they certainly do. This is the sort of chameleon effect of Web performance.

We’re going to talk a bit about concurrency today where we have elements that block. So notice underneath here, there’s nothing else going on. That is an example of blocking javascript file. I also have examples of where I can do many things at once. And this is obviously IE7 because I have those two connections. You’re going to see examples- A lot of testing we’re going to do on IE7 because I think it illustrates better some of the things I’m pointing to. If you’re looking at this in another browser, you can see 6, 8, 12, whatever the case may be.

Let’s take automation and put them into action. So what I want to do here is I want to take sort of a cooking show approach where I’m not going to do things in front of you for a number of reasons. One is because I don’t have Internet connection and two is because it actually takes time to do all this. So what I’ve done is I set up a site, I’ve taken a site and I sort of stepped it through acceleration. We’re going to take a look at each of these elements today.

The site that I’ve picked is a site that some of you are familiar with and I pick the Velocity site on purpose. I picked it for two reasons. One is because I want to draw attention to Velocity. Eric already did this but Velocity is a really important conference. It’s happening in June again this year. This is last year’s page. And so what I’m going to do is I’m going to take the Velocity site and I’m going to make it better. Now, I’m also going to make it worse. And I picked the Velocity site for two reasons. One is O’Reilly is a customer of ours. I didn’t want to embarrass anyone. O’Reilly doesn’t actually have our product working on their site but I do want to pick a customer that would come back and say, “You’re talking about me negatively. You said how bad my site was.” We know Tim. We know the team over there. They’re very accepting of us using them as a guinea pig.

I’m not going to just take their site where it is today. It’s just probably somewhere else. Actually, I’m going to back it out to be as slow as some of the egregiously slow sites that I see every day. And then what we’re going to do is step through and automate it all the way through till we get really, really, really fast.

So let’s go through that process. If I run a Webpage Test today on that site, here’s what I get. Obviously changed. Here’s as bad as it gets. First View, almost 18 seconds to load. Start Render, kilobytes in, we’re going to take a look at all of these different elements in detail. You’ll also see different links at the book. You’re welcome to go take a look at those Waterfalls and that are produced from all of these as well.

So what does the Waterfall look like? First in Repeat View. Well just at first glance, that’s like [indiscernible] [0:15:18]. That’s a pretty deep one. I also have for example on the Repeat View a lot of validation. These are some ugly Waterfalls. This is, I salivated at this Waterfall. This is beautiful for me. Not for you. Beautiful for me.

We also get a per object breakdown. All these reports are taken out of Webpage Test. So here I can see how long, what are the objects? What are they? JPEGs, GIFs, CSS, javascript. How long did it take each of the little colors that we talked about? So my DNS setup, my initial connection. We’ll go through all of these elements in each step of the process. Also what kind of content am I looking at. These are the things I’m going to analyze. I got a lot of images. 40 GIFs, 24 JPEGs, 14 javascript files. This is a pretty typical site frankly. And some of you will be in a much more advanced position where you look at sites that are all beautiful, and some of will actually have sites that look more like this which is the norm. So don’t feel like you’re not in norm. The other question is how big is it? Well there’s a lot bytes. Right? I got about half a meg of JPEGs [indiscernible] [0:16:30].

Another thing that I’m going to look at on this site is Analysis by Domain. This is really important. How many domains do I have? How many resources are coming off each domain? So in this case I’ve got you know,, 44 elements are coming from there. Twenty five elements are coming from the Fourteen are coming from Nine are coming from So again, those are the elements I’m looking at to set this groundwork for what we’re going to do, the things that we’re going to help in automation, the elements I want to draw your attention to.

So let’s take a look at the problems. The first problem on this is there’s way too much orange. And there’s way too much orange if you look at it because we are creating 97 connections to Sergei’s point earlier. Sergei and I are talking about the fact that a lot of people don’t keep alive their connections or more than any of us would expect.

So here’s an example of where you would easily diagnose, while there are 97 connections for 130 round trips. That’s just way too much orange. Way, way, way too much orange. Each of these connections, they’re taking 140, 120 to 150 milliseconds each. That I do not have to do and I can tell you that I came across a site today. I was talking to the customer on the phone. This is exactly what I saw. And I see this way more often than I ever should. This is an abomination, but it happens all the time.

The other problem is that there’s way too many bytes. There’s way too much blue in our Waterfall. Look at in terms of First View, almost a meg of data. That’s a lot of data. It’s not being compressed. We also see a Repeat View of almost 330 kilobytes. Again, way too much data. I’d like to bring this down if I can. So I’ve got too much orange, way too many connections, way too much blue. I mean as we talked about earlier, just a lot of assets.

I also have concurrency problems. Because I’ve got so many assets, for example on one of the domains,, 44 requests on that domain. In IE7, I can only create two connections. In this example, I’ve got a concurrency problem. We actually are starting to see reverse concurrency problems on a lot of sites. So I’ve got a customer who’s slowing their site down because they have domain charted, they’ve gone, And they’re starting to use domains that on modern browsers create too many connections. So you actually going to have the reverse of the concurrency problem as well where browsers open too many connections and that’s just as bad as not opening up. You have to be careful when you’re picking how many connections you want to open having one [indiscernible] [0:19:06]… just as I described to you.

We also have terrible caching on Repeat Views. We take a look at that but I mean you know, I’m doing a number of full fetches in them, doing all of these validations. And I just can’t tell you how many times even with incredibly sophisticated sites, I see repeat views that are yellow from top to bottom. This is so common that you know, the reason this is a problem is one, I’m doing connections setups on all of them. That sucks. I’m also sending bytes across the wire for all of them. And I’ve got all of the latency, round trip time for each of these requests. Again, aggravated because I’m in IE7 but certainly would be the case in a number of other browsers.

I also have, I write here CDN, but what I really mean is I’ve got really long greens. What that means is my Time to First Byte for some of these assets is really long. In this case, a typical JPEG or PNG is taking 155 milliseconds, that’s a long time in North America for a resource to come down to you. I’ve got big greens. So one of the green problems is I don’t have the CDN. I’m going all the way across the country. This is a test done in Dulles. The server is in San Jose. I’m going all the way across the country to get that asset and back. If I had a CDN, it might actually be located in the same city, five, ten, twenty more seconds away.

I also have too many roundtrips so that’s really another green problem, effectively. I’m doing 80 roundtrips to make the document complete on First View, 78 on the Repeat View. That’s a problem. That’s a real problem. That’s a lot of roundtrips. So I’m just pointing out the opportunity from an automation perspective of where we think the opportunities might exist. You know every round trip creates a fetch. It creates, it has a latency involved. If I can reduce roundtrips, that’s good for my performance.

There are a couple other performance problems as well. One is I’ve got blocking javascript. So I’ve got some javascript files here that just sit and block everything. We talked about that earlier. That’s something I’ve seen on this site. I also have a lot of third party calls. Another shoutout to Steve and his efforts around 3rd party initiatives and we’ll talk about it a little bit later. But I’ve got That’s actually not on the server. That’s not on the main server. That’s another server. I’ve got conferences. That’s another server. I’ve got assets. That’s another server. I’ve got ajax, youtube, Twitter, etc, etc, etc. And we all know what 3rd party calls can do depending on where they’re located and how they work.

So what does it look like? What does the site actually look like? In this permutation, let’s take a look. So obviously not fast enough. Clearly. I was talking to one of the Internet retailer in the top 200 today. Their sites loads at 18 seconds on IE7, 17 ½ on IE8, and they are in the top 10. And they have big orange signs when you buy stuff from the house.


Joshua Bixby: So let’s talk about the two problems I really want to focus on. Again, when I talked about moving those bars, I want to move the Start Render that way. I want to move the Document Complete that way. That’s the mission log. So let’s do this together.

So the first thing we’re going to do is, that’s why I talked to you about the set-up. I have the servers here in the O’Reilly data center in San Jose. I’ve got a service that’s automating this to the Cloud. That’s how I’m going to do these automations actually in the Cloud, not in their data center. And then I’ve got my Webpage Test scoring which is in Dulles, Virginia. So that’s the sort of infrastructure. So anytime I’m doing something, so I say, “voila” and I take something out of the oven, that cooking is being done in the Cloud. Basically a request flows from the O’Reilly data center through the Cloud service. In this case, that’s do the optimization and over to the test client.

The methodology is we’re going to go one acceleration at a time. We’re going to start with the easy stuff, the stuff we should all do. It should be done everywhere. And we’re going to move to some of the harder stuff. And the point here is to just tell me, show me the benefit of automation at each step in the process.

So there are two elements which are just such low-hanging fruit that I should see As for perfect scores on all of them. First is Keep-Alives. I should just not have TCP connection setup time for each of these requests. The fact that I’m closing connections is a big deal. And I want to caution you that there are actually some of the major CDNs that as their default configuration close connections off every request. So it’s not just a matter of maybe you solve this in your own environment. You need to be looking at your CDNs as well because I continue to be in awe that that’s how those work.

I also got in doing compression. Like this is available as a checkbox. This is available to all of you either on your server, in your load balancer. This is something we should all be doing more. If I do those two things… Sir.

Male Speaker 5: I have a [indiscernible] [0:24:09]… lock content from Amazon S3 and I did what you have to do to have compression on. But Amazon S3 of course is not smart. It’s either on or off. I then ran into, I start getting some reports of people, just a couple of people, there are only one or two where it didn’t make it through presumably their proxies. I know how to get around that but it’s going to be complicated.

Joshua Bixby: Absolutely.

Male Speaker 5: So my question is how much are you seeing this kind of thing?

Joshua Bixby: We see it unquestionably. There’s a lot of really interesting research that Google’s come out with on how they sort of worked around these problems and how they address some of the compression issues. For the most part, we don’t see a lot of compression issues. We see them very rarely. And we usually are able to mitigate easily. So I’d be interested later. I love to talk about what you’re seeing, where you’re seeing, and what the mitigation capabilities are.

I see this as sort of universally accepted. There are some very extreme cases. But for the most part…

Male Speaker 5: But then they complain for [indiscernible] [0:25:17]

Joshua Bixby: Absolutely. No, and those are the edge cases that complain. Absolutely. And most devices and most networks will support when somebody says they don’t support [indiscernible] [0:25:30]… compression. They acknowledge and recognize that. It’s interesting that I didn’t know that Amazon doesn’t.

Male Speaker 5: You have to start twice. One’s zip, the other is not.

Joshua Bixby: Yeah. Well that’s the same on CDN. It’s the same network devices [indiscernible] [0:25:43] with some network devices. That’s common. Or shouldn’t be but certainly it is.

So let’s, a good question. Let’s take a look. I turn on- So here’s my before and after. I turn on TCP Keep-Alives and I turn on compression. And what do I get? I go from on Document Complete, almost 18 seconds down to 10. This is a big leap. So what I keep preaching, turn on compression. Turn on Keep-Alives.

Here’s an example of exactly why. It’s just a no-brainer. You just improved your performance by half and you didn’t pay me any money. You didn’t pay the developer any money. You just did it. If I look at the Keep Alive side, I went down from the 97 connections down into the 20’s, 19. So simple, I enable Keep Alive. My connections aren’t there.

On the compression side, I dramatically reduced my [indiscernible] [0:26:41]. So if we look at the results on First View and I really want to focus on this one. My bytes are down. I don’t like the arrow. It’s just to confuse me and keep me on my feet. The bytes are down by 34% on First View. On Repeat View, they’re down even more, way, way, way down. If you look at the time, I’d say 40% on First View and 62% on Repeat View. So this is one of those things where this is just a no-brainer. You should do this. If you aren’t, you should notwithstanding challenges that you might see. So this is a no-brainer.

I also and again, not knowing which line is important, I want to really focus on Start Render, dramatically improve Start Render. 50 odd percent on First View, 70% on Repeat View. This is a really, really big difference, two features that are a part of every one of your Web servers and you can do it today. So let’s take a look.

But that’s a marked difference. And for most of your infrastructure, most of you- You know I continue to be surprised by people who don’t do these things. I continue to ask questions. That’s sort of part of my life. And I just say, “Please do it. Do it. Do it. Do it.” So there are some really important pros and almost no cons. The pros are it’s easy. The pros are it’s just so darn simple especially for those of you with low balancers. The cons are there is some overhead. There is a con which I haven’t illustrated here but certainly if you’re using an infrastructure that has to store something twice, compressed and non-compressed, it could be a cost to you. And on their own, they’re just not enough. The numbers we have for this O’Reilly site are good. We know it. I’m not going to go through all of the performance metrics math but that’s just not good enough.

So now let’s talk about the next thing I wanted to do. Now we’re going to step 2. I now want to improve the Repeat View. I’m going to carve out the Repeat View because I actually do things quite differently to make a Repeat View better than I do in some cases to make a first better. So Repeat View really improved. Right? We talked about those improvement areas, really improved. But I want to make it even better.

So how can I make it even better? Well today, it’s 6.2 seconds. I got all this validation. All of these validators, all these 304s. I need to remove those. So, you can go through and read you know, Section 13 of the RFC, 2616. I mostly put this up in homage to one of, to our VP of products who actually knows this stuff and reads them. So if you’re watching [indiscernible] [0:29:33] Caching headers can be used to tell a browser not to make a request. This is just basic stuff. It’s not always easy to implement, but basic. I wouldn’t suggest reading the RFC unless you want to go to bed.

So let’s say we now added, we added the right headers. So let’s bake again. Now we’re in the, look at this [indiscernible] [0:29:56]. Now we’re in the time, the sort of as seen on TV new wave oven. And what happened? Well, I made a big difference. All I did was add Expires headers to the resources and I go from 6.2 to 2.0 seconds on the Repeat View.

So again to get from the 18, I did compression, Keep-Alives. I then added in some Expires headers. And I am now at 2 seconds. That’s pretty darn good. So my Document Complete time went up by just under 70%. [indiscernible] [0:30:29] or went down. And my Start Render by 70%. Yes.

Male Speaker 6: Did you eliminate conditional get requests?

Joshua Bixby: We did. Yeah. So there’s this look has a few more pros and cons. Yes.

Male Speaker 7: What you suggest we should set the Expires headers to?

Female Speaker 1: Exactly.

Joshua Bixby: Oh that’s such a good question. We’re doing some research to that effect. The research that has been done suggests that on- So let’s step back. Modern browsers have not kept up with modern hardware. So the memory in a modern browser that’s allocated to this is a fraction of what it should be. Chrome is trying to address this but a standard IE implementation, I don’t know, someone might know this, but it’s like 70 megs or 80 megs or something. It’s tiny. I don’t know what the actual numbers is that’s actually allocated to this. So what happens? You know this number?

Male Speaker 8: Yeah. I actually asked that question at the panel at Velocity.

Joshua Bixby: What’s IE-

Male Speaker 8: What do they do with the amount of drive they take for cash and no one actually answered it.

Joshua Bixby: I think it’s 80 for IE. But I could be wrong.

Male Speaker 8: No, no, no. I mean they said what the current number but why it’s not Internet they did-

Joshua Bixby: At Velocity this year actually, there was a get-together of all the browsers to try to address this problem. It’s a huge problem. [indiscernible] [0:31:39] It never happened. They all agreed they’ve never met. I’m not sure they will and that goes back to some of the browser [indiscernible] [0:31:46] that we’ll talk about later. The challenge is we don’t know the answer because I don’t know. It depends on every individual. The test that we’ve done suggest that 36 hours out, you start losing incredible amount of the cache content from people’s browsers.

Eric, I mentioned that you guys have done research on this. I think that you could share.

Eric: No the uh, in terms of the [indiscernible] [0:32:09] the concepts start to roll out or prior [indiscernible] [0:32:11] on the [overlap]

Joshua Bixby: So we have research right now. Hit some of our client sites and you’ll participate in this research where we’re actually capturing that data. So we do one year expiries on everything. And we do one year because we decided to do one year two and a half years go and no one ever revisited it. So this year, I said, “Why don’t we do one year expiries?” And no one could answer that question. So I think the answer is we don’t know. There are some great tests done by Facebook which I can help point you to, and by Steve Souders when he was with YSlow where they asked the specific question and things expire a lot faster than you would expect.

So right now, my- when I think about the problem, I think within three or four days, that user probably has lost almost everything in the cache. However, there’s no downside to you to adding a longer one. You don’t pay. It’s kind of a tragedy of the commons right? And because the browser caches have no logic in them which is stupid, they shouldn’t. You know, they don’t say big things, small things. They don’t say most frequently requested. They don’t have any logic. This is just kind of a LRU like get it out, get it out, first thing in, first you know, you get that. So I don’t have a good answer. I don’t know if anyone else has a better answer to that.

Male Speaker 9: Is it due to some size of current sites? You know you’re downloading megs and megs of [overlap]

Joshua Bixby: Absolutely. I’m putting in on like, some of them are really big sites. I’m putting enough to clear out your entire browser cache. From everything it’s ever seen before.

Male Speaker 10: Given that HTML 5 and some browsers are light on specific cache.

Joshua Bixby: Yeah.

Male Speaker 10: You got as much cache as you [overlap]

Joshua Bixby: Absolutely. Cookies and content.

Male Speaker 10: What are the um, return rates for putting in promise for customers to change your browser.

Joshua Bixby: [laughs]

Male Speaker 10: That’s the big problem [overlap]

Joshua Bixby: That’s a really good question. Our experience has been, we’ve seen one customer try to do this and absolutely abysmally failed. Where we have seen something like that be successful is on internal audiences. So we have a customer that convinced everyone to move, their internal audience, they realized Chrome was better and they did a huge shift. Externally, we haven’t seen it. And in some countries like in China where all of the banks are mandated to use IE6 and IE7 and can’t use anything else, you can do whatever you want. You’re not changing those, a lot of those Chinese users. So it’s a big problem.

Male Speaker 11: Do you usually couple like some of the work that you did to reduce things and requests with some strategy so that you can change the names of components [overlap]

Joshua Bixby: Absolutely. So actually that highlights the biggest con here which is the question around invalidation of stale content. So the biggest challenge, we’re seeing, “Hey, park my logo in for a year.” Is when your logo changes, you’re in big trouble. So, we actually first started experimenting with this with my last business where we started to add expires. We happened to have the Ministry of Finance of one of the largest ministries in Canada, in the Province of Ontario. They put up their budget. They put up the wrong one and we put a one-year expiry on them. And then they updated it but didn’t change the name. So I got called into the Minister’s office at some point where it’s like, “I have the old budget. Your system sucks.” And I’m thinking, so I learned this lesson. And then they actually mandated across the government for a while. You can’t use expires. You can cache anything on the browser. Like it was a massive deal. So the biggest issue here is if you don’t have a burgeoning system for your assets, this actually can be very difficult. Now obviously there’s automation technology, ours and others to help you with this problem. If you just do it yourself, that’s something to look out for. And also speaks to how long you want to give an expire to something.

But this is actually quite easy to do technically. Just adding Expires headers and validators and things of that nature. But you know, there’s a hitch.

Male Speaker 12: I think that was, the point today about [indiscernible] [0:35:49] 11 browsers. Also that we maybe consider mobile browsers [overlap]

Joshua Bixby: Have completely different rules. Right? So you look at how the iPhone does it for example and if it’s the object is too big, they have a whole set of rules. I would agree that the mobile world is a world we can play in, spend a lot of time thinking about and that’s a really good point. Totally different logic.

So now let’s move to the next step here which is I want to add a CDN. Right? I just want to think of the nat- when I put this presentation together, I’m trying to think of the natural evolution which is you start to get your house in order a bit. You then probably buy a load balancer maybe. If you’re a large enough site, you turn compression on. Maybe you turn SSL Offload on. Maybe you turn Keep Alives on. You then you go through and say, “Hey, let’s improve my Repeat View.” And you say, “Hey, I got my sales reps at the door. I got to add a CDN.” So let’s talk about that.

I’m not going to describe what a CDN is. I’m going to expect that most people know what it is. It’s essentially you know, locations closer to you that store your objects. What it does is it reduces Time to First Byte. They’re the green guys. Now, I’m going to spend a bit of time later talking about some of the whole site delivery technologies. Half of my DSA CD networks has one with [indiscernible] [0:37:04] because that’s part of the automation world. But for this purpose, let’s just think about small object delivery, images, CSFs, javascripts, sitting at [indiscernible] [0:37:13]. So the goal here is to reduce Time to First Byte.

So let’s turn on the CDN. Voila, we’re actually cooking over a camp fire I guess. It’s getting hotter. What happens? Well the Waterfall doesn’t look that different from a visual perspective. What you are going to see is a difference in performance. So when I turn on a nationally recognized CDN. I’m not going to name who they are although, you’re going to know if you can discover by going through Webpage Test probably. You’ll see that I made about a two second performance difference. And this is right in line of what we normally see. So if you’re trying to do cost benefit analysis around any of these things, again these are helpful tools. This is just one example but there are helpful ways to sort of think about what performance I’m gaining from, and some of you are probably spending 15, 20, 25 thousand dollars a month on CDNs so it’s not unusual.

What happened? Well I got a per object Time to First Byte improvement of about 50 milliseconds. I’m validating objects at about 60, 70 milliseconds which basically means they’re right next to the server because I’m using DSL simulation which can have 50 milliseconds of [indiscernible] [0:38:20]. So, basically these are right next to the server.

So what do I do? Well, I improved my Document Complete time. Fully loaded time by 17%. I improved my Document Complete time by 22%. And I improved my Start Render time by 21%, all really good things. Very, very positive.

Male Speaker 13: Can CDNs, do the Keep Alive you’re talking about? [overlap]

Joshua Bixby: They can. Yeah. So they can do Keep Alives for their objects. Some of them don’t as a default. So that’s again something to watch. Most of the ones are getting better but there are a few culprits. I’m not going to do it because I’m being videotaped. So there are a few culprits which just are terrible at this and don’t even think about it. But most of them are relatively good.

Male Speaker 14: Do you specifically use the components or do you use the CDN just for your component [indiscernible] [0:39:10]

Joshua Bixby: In this case, it’s just the objects. So every object except the HTML that I can serve from a CDN is being served from a CDN.

Male Speaker 14: Do you have an experience with doing HTML [overlap]

Joshua Bixby: Absolutely, lots of it. And we’ll spend some time on this but I don’t have this example. I do have examples of customers where we’ve actually seen this. This is very rare where we’ve seen examples of going straight to the server using an IP for example and over what I call whole site or dynamic site delivery options. We’ve seen both of those examples. I have strong opinions about the incredible marketing effort that’s been undertaken to convince organizations that whole site delivery is valid. Yes?

Male Speaker 15: Quick question. So right now you’ve looked on it, the Time to First Byte or wait-

Joshua Bixby: That’s right.

Male Speaker 15: What were the gains on the received?

Joshua Bixby: Minimal to nothing. On the download time. Yeah. [overlap]

Male Speaker 15: Right.

Joshua Bixby: Fair enough. And we don’t usually see a lot of download gain. For some of the larger objects, we might because they have some TCP optimizations, slow start optimizations that you might not do yourself. But for the most part, we see mostly green optimization [indiscernible] [0:40:20], that green, the Time to First Byte getting better.

So to come back to your question, you asked me if when we talked about the market because I’m going to address some of the dynamic stuff and my opinion is strong.

Male Speaker 15: [indiscernible] [0:40:33]

Joshua Bixby: [laughs] Let’s take a look at this. I got my CDN. I got my [indiscernible] [0:40:39] load balancer. And I got [indiscernible] [0:40:42]. And I just can’t tell you how important it is that we have this video capability. I use this daily. I find the video such compelling visuals. When I show this, I just have these two together and I say that’s a 25,000 dollar investment for you per month. It really puts these things into context.

Male Speaker 16: What is your video? Is this…

Joshua Bixby: [indiscernible] [0:41:08] Webpage Test. So in itself, you can take videos. And we use it, unfortunately for the Ben, Bill, Patrick quite, quite often. Although we sponsor three of the notes so we try to our videos on own notes for the most part.

So really good pros with the CDN. It’s good practice. I’m a proponent of small object CDN technology. I put that caveat in there. It is an established industry. There are a lot of strong players. We’ll talk about the players in the market when we get to the market overview. There are some cons. It can be incredibly costly especially if you’re up sold to the new dynamic technology. You can be paying four to a hundred times more per byte than you are for the static objects.

Any Akamai representatives in the room?

Male Speaker 17: [indiscernible] [0:41:54]…

Joshua Bixby: You work at the company?

Male Speaker 17: I’m the engagement manager.

Joshua Bixby: Got you. So we have got to be careful here.


Joshua Bixby: And one of the cons and this is interesting to me. I haven’t really wrapped my mind around it. And I’m interested in your perspective on this. I have always thought that moving to a CDN is really easy. That akamaizing your property is very easy. I continue to come across organizations where the automation of that is really valuable. So actually, what’s been done here is you get no code changing. The system itself that service the Cloud has rewritten on the objects with CDN. Do you find companies find it difficult to go to a CDN like change their asset names?

Male Speaker 17: No. Because it’s all in the DNS level. I mean there’s no…

Joshua Bixby: But if you haven’t separated it out,, and I want to serve those, do you find that that’s a big move for people?

Male Speaker 17: It definitely depends on the Web application architecture.

Joshua Bixby: Yeah.

Male Speaker 17: You know there are ways you can optimize just like what you’re talking about or there are benefits that you can get just by the basic, but absolutely. We talk about you know, optimizing your [indiscernible] [0:43:03]…

Joshua Bixby: Yeah.

Male Speaker 17: And that’s one reason why I’m here too is you know…

Joshua Bixby: Intel.

Male Speaker 17: Intel

Joshua Bixby: Good work.


Joshua Bixby: Yes.

Male Speaker 18: One thing I would add to have a comment is that if you are not careful because there’s a lot of settings and a lot of things that you can do, you could finish having a longer wait time especially if you do something as stupid as you have Akamai eating origins server but if you put an expiration of like every minute on that object, and then what’s happening is they’re, maybe Akamai not do but some of the other CDNs. What they’re doing is it expires out of their cache and they’re calling it up out of your server and so now you have [overlap]

Joshua Bixby: Absolutely. And there’s another element of this. So absolutely. You have to treat your CDN like any other element in your infrastructure. Does it actually configure properly? Is it offering you value? It’s not as much plug and play as we like to believe it is. There are still configurations to all of these tools. Everything we’re talking about here takes some configuration.

There’s also another element when it comes to CDNs which is, and this is more an issue with some of the larger ones especially the more distributed ones which is they only have so much memory at the edge. They only have so much capacity at the edge that they market brilliantly the idea that if we have an edge miss, we’re going to market a technology. What’s the one that Akamai does? We’re going to go through our network, and going to be really smart at getting it. What is that one called?

Male Speaker 17: GIF distribution.

Joshua Bixby: Yes. Brilliant. And what’s the only share route? I just think share routes are the greatest marketing in the world. Basically, I don’t have it at my edge. So I’m going to get it for you.

Male Speaker 17: No. Sure Route doesn’t do that. Sure Route is TCP optimization.

Joshua Bixby: Oh what’s the one that says, “If I don’t have it in my edge, I’ll find the closest [indiscernible] [0:44:33]…

Male Speaker 17: [indiscernible] [0:44:34]

Joshua Bixby: Oh okay. That’s right. So you have to be careful in some of these CDNs. If you’re content isn’t used a lot, it’s only going to be at the edge for your customers. We have examples of customers whose content you know, on the Gomez test that they get back when they sign up for their CDNs, it says it’s five milliseconds, two milliseconds away and they love it. When they actually look at real world results, because they’re long-tailed content or they don’t have a lot of pull through and they’re smaller, that content isn’t five seconds or three seconds or 20 seconds. It could be much more. So again, cache hit rates is also something that’s important to look at. We go into almost every single deal that I work in with a CDN so I am a supporter of CDNs but not all of them, not all of technology, not all of them.

So now let’s talk about the hard stuff. So we talked about how we got through compression and caching for repeat requests. We talked about how we’re adding CDN. Now, let’s talk about how we want to get better. We want to get a lot better here. I don’t like the number of round trips. I don’t like the payload still. I don’t like the time.

So now I want to move to the next level. So what are we going to do? Well, the first thing that I want to do is I want to reduce roundtrips. There are a lot of roundtrips. A, before the document is complete, I’d like to reduce that. I want to reduce the number of image calls, javascript calls, and CSS calls. I want to reduce the payload as well. You know we’ve done some compression but we haven’t touched our images. We haven’t touched our javascript or CSS for the most part. I want to increase concurrency if I can. Again, this is important in IE7 and not as important in other browsers. I wouldn’t mind adding some TCP optimizations to this. I wouldn’t mind changing the order. I want to do some of the more complicated things.

So that’s when you start looking at [indiscernible] [0:46:11] specific segment to the market that I call transformation which is really in this space. When we’re talking about the market, the players and the market. Let me get into that.

So what does my Waterfall look like? Well I go with from that to just something like this. And what’s really important is to notice where the blue line is. The blue line is in here where it’s ending way down here. If we look at the performance difference, when I go to techniques like that, I’m going from about 8.3 seconds to about 3.8 seconds.

We’re going talk, we’re now going to get better than 3.8. But 3.8 over a DSL line from Dulles, Virginia on IE7 is pretty much as fast you’re going to get. You can get faster and we’ll talk about where those opportunities are.

So what happened? How do we do this? Or what happened? Well, I went from 81 roundtrips down to 11. So roundtrip reduction really helped me here. That was a benefit. I also went from you know, 792 kilobytes down to 434. There’s a lot more room for modification. If I look at my Bytes In, again I reduced that almost by 50%. If I look at my time here, I went down by over 50%. If I look at my Start Render here, 20%. This represents sort of that next leap. When I talk about the automation market, I talk about the players in it. A lot of us are trying to do whatever we can from that point to wherever we can get to here.

Let’s do a quick time check. What time are we done here? Eight?

Female Speaker 2: 9:30?

Joshua Bixby: 9:30, sorry. So what time should we be done with this part? Because we have some time for networking, right?

Female Speaker 2: For network, oh like 8:30.

Joshua Bixby: 8:30, okay.

Female Speaker 2: Yeah.

Joshua Bixby: Okay. Let’s keep going. We’re doing well. Obviously I need a lot of time. So let’s take a look at what looks like. Awesomeness. I know, I love [overlap]


Joshua Bixby: If I am going to do it again, I was so quick I didn’t even see it. [indiscernible] [0:48:01]…


Joshua Bixby: So that’s where automation from a roundtrip reduction perspective, from an order perspective, from a, still [indiscernible] [0:48:19]. I love it. I see a natural progression here and I have a vested interest in seeing a natural progression.

Female Speaker 2: Where you have awesomeness, is it where Strangeloop comes in?

Joshua Bixby: In that case, it’s where Strangeloop, yes.

Female Speaker 2: Right.

Joshua Bixby: Again, part of this is to not be [overlap]

Female Speaker 2: So it goes back to my…

Joshua Bixby: I can turn on the sales at any point [overlap]


Female Speaker 2: I know, I know. But that goes back to my question like…

Joshua Bixby: That’s right.

Female Speaker 2: If Akamai is supporting DSA right? Some similar acceleration service then it’s different…

Joshua Bixby: Very different.

Female Speaker 2: Very different.

Joshua Bixby: We’ll talk about DSA in terms of the technology of what DSA will do and where it will help or where it won’t but I’ll get to that. However, unfortunately what I’d like to have here is a DSA example. So you could see, because actually it raised a natural progression. This is just edge caching right? What I’d like to have here and I didn’t do it because I got to talk to my friends at Akamai to get a test setup but my experience has been they don’t like testing this for a few reasons we’re getting into later. But I like to have DSA under. And in fact, I have some examples that are very rare to find in the field where you can DSA against just edge caching.

Female Speaker 2: Right.

Joshua Bixby: And we have some examples like that. I don’t have it here in the presentation but we can actually share some of those results you know.

Male Speaker 18: Are you combining all these techniques in the last slide or as far as [overlap]

Joshua Bixby: We are so yeah. This is all building on each other so I should have made that point. So this is caching and compression. This is CDN plus caching and compression. That is performance automation plus CDN plus caching and compression.

Male Speaker 18: What difference do the performance automation make without the CDN in the last [overlap]

Joshua Bixby: I didn’t do that test primarily because well one, our product will do the compression, Keep-Alives for you so if I could turn those off, I could get that number. I don’t know. I could do that run. That wouldn’t be hard. On the CDN side, I’m saving, what do we save here. I mean we can go look at the Waterfall to get a sort of picture for that. Actually it comes down this way. If we look at the Waterfall, you can see this is the time to download. You can see that these greens are smaller. Right? Than without a CDN so expand the greens by double and so you can get a picture for it.

Male Speaker 18: Is there like [indiscernible] [0:50:36] and compressed [indiscernible] [0:50:38] getting served from the [overlap]

Joshua Bixby: That’s correct. Yeah. So all of those objects are being served from the CDN. So you’re not going to get, you know, you’re going to gain. That’s leveraging the CDN. If you took it out, you have long [indiscernible] [0:50:50] effectively. So question. [indiscernible] [0:50:55]

Pros and cons. Well the pros is that it helps. Pros are that you know, it addresses a number of performance pains and pros are that sometimes it’s installed properly. One of the other pros is uh- One of the cons is that it’s hard to do and it’s really, really challenging from [indiscernible] [0:51:13] perspective. So what I found is organizations have started to do things like spriting themselves or spriting is a great example where they build a sprite and then the code changes, and then they build the sprite again and the code changes and then they realized, well the spriting is breaking my IE users. I need to go to MHTML and they build an MHTML file and then the code changes.

One of the challenges with going to the next level is not just doing it once. It’s that you have to do it every time the code changes. And that’s where this becomes a really big problem where you know I and others are an advocate for the automation of some of these processes.

There are other performance opportunities left. Let’s just take a look through some of them. So one of them is is that there are still 3rd party content in javascript. I’ve got some javascript here, the [indiscernible] [0:52:00] javascript. I’ve got this javascript here. Maybe I could move them. I don’t know. I didn’t experiment with them but that would help me with performance. Maybe I could defer- There’s a whole world of improving 3rd party where code components that see you as champion in others. It’s the P3PC initiative. So maybe I could do that.

There might be additional TCP optimization benefits. We’ve done some basic TCP optimization where in the example that we’ve shown you, we’re doing some better slow start algorithms. But we’re not doing some of the overlay algorithms that would help me in the case of some packet loss and other elements. Now, in North America, that’s not a serious issue. In Europe, it’s not a serious issue. If I was taking this in rural China, I might see some real challenges from packet loss, from network congestion, from other things. I’ve not seen that here. I don’t see any evidence of it but it might help.

I also don’t have DNS-based optimizations. So there are DNS services where you know, I made my DNS call. If I’m in San Jose, I might be making it to Atlanta and I could actually make a DNS call that was faster. You can outsource your DNS to Newstar or [indiscernible] [0:53:11] or other outsource DNS place. Actually Akamai, if you do whole site acceleration and some of the CDNs also have DNS placed. [indiscernible] [0:53:18] for example. So I could actually make my DNS faster which wouldn’t give me much benefit but you know, a benefit’s a benefit. Every second counts. Yes.

Male Speaker 19: In your examples, how much overhead is there in the actual automation part of this. [overlap]

Joshua Bixby: Got you. And so with that HTML flowing through our product for example, I can only speak to ours although I can speak to others but not on record. Our target is one millisecond. So our goal internally is to get every transaction in and out of our pipeline in milliseconds.

Male Speaker 19: So in short, if somebody’s best practices were implemented by one of your customers directly versus going to the automation service [overlap]

Joshua Bixby: Our hope is that yeah, the difference, if I did exactly the same thing on that page, our hope is the difference of a millisecond. We have seen because we actually check this on all of our devices. We have seen in some in some instances it got to two milliseconds but that’s the top. So I’d like it always to be one. But frankly I’m in a business where I continue to preach to my company not to think about one millisecond of optimization but to think about one second optimization so I’m sometimes preaching and then getting preached back by words to myself.

One of the things we didn’t look at, we only looked at IE7. So we know that our First View is around four seconds and we know our Repeat View is around two but coming back to the question about browsers and everything else, I have no idea what it’s going to look in those other browsers. We can all speculate. We are conducting some research today that I just find fascinating. Well we’re taking the same sites and writing them through IE6, IE7, IE8, and IE9, and looking at what the performance difference is and the characteristics of those sites. That’s ongoing. They are published at the end of the month so I don’t want to give away our secrets. But it’s really interesting as we’ve all been convinced that these new browsers are coming out to supercharge us. I continue to be amazed at how little impact that has in this world which is surprising given that I suck down and believe the same propaganda as you do.

So that’s one thing we didn’t do. The other thing we didn’t do is we just talked about First and Repeat Views but frankly that’s not how the Web works. Right? What happens is I’ve got down to 3.8 seconds and 11 roundtrips. It’s very like that I didn’t come in on the Velocity homepage. But then what I’m probably doing is “hey I want to go look at the schedule. I want to put myself on the waiting list or getting there. I get a thank you page. Maybe I come back to the homepage, what’s it going to look like then?” Because that’s a very different tree. That’s a very different element than what I see if I went homepage, back to the homepage. Right? It’s a very different experience. So we didn’t talk about different browsers. We didn’t talk about flows in terms of this test, all really important elements for you and us as a community to think about.

I want to talk about the market but I just want to take a 20 second break and see if there are any questions about the test or what we did. The point of it was just to illustrate to you what automation can do. The points of it, ie, making sites fasters without code changes. And now I want to talk about the market side. Any…yes.

Male Speaker 20: What are some of the factors that make up the different between just as you said refreshing a homepage or going through…

Joshua Bixby: Got you. So one of the main differences is you can have different assets in your cache. So one of the challenges in all front end optimization but performance optimization in automatic sense for us is actually a bigger issue, is, what do I consolidate? So actually here what I showed you was not necessarily the ideal page rendering. And I know this is always difficult but I have to explain this to customers. Right? You might want just the page to take 4.3 seconds because I might pull things out of the consolidations there that I can then reference on this page and have cachable. So our goal, if you’re thinking about the goal is first in repeat, you actually might make choices that hurt other pages in your flow. And I see this all the time in the automation space where I see companies who are driving people to- for example a Webpage Test score first and repeat where they’re actually trying to make as few roundtrips as possible because it makes a nice Webpage Test. But that can hurt you.

Male Speaker 20: So like one example of this would be in combination of the components right?

Joshua Bixby: That’s right.

Male Speaker 20: Any contrasting combinations of components.

Joshua Bixby: So maybe for example because I know that that same banner or the same Chrome is used and those same images are used, maybe I’ll put that into a global package and reference it on every page.

Male Speaker 20: Right.

Joshua Bixby: And that might mean I have an extra round trip for the stuff that’s unique. So the other thing is, if from a flow perspective right? I need to know what, like take an example. This banner is actually different on this page than it is on those pages. I’ve got that stuff at the bottom, it’s a little wider. I’ve got pictures of the people. Today on this page, that’s all part of these consolidations. That is nice as an example but I have to actually compensate for that for the fact that that’s not on these other pictures. So if I want to make a call for the banner, I can’t call that banner if I consolidate that banner with let’s say some of the images on the top there, I can’t call it here. So from a flow perspective, you actually have to look at the problem differently.

Now one of the challenges in our discussions and in the industry is we don’t have good test tools that show me this. The only thing we’re good at testing is Yslow scores or page detours which are one view. Webpage Test which is essentially one view. So one of the things we’re missing in the industry is the ability to script five pages and have some way to really see what that looks like.

Male Speaker 21: I mean Webpage has the ability to run scripts. Transactional scripts like say [overlap]

Joshua Bixby: It does. It’s not easily accessible. We do it but it’s not, if you look at I mean, Eric, you’d speak to this. But if you look at most tests on Webpage Test. We’re like 98% aren’t we?

Eric: Oh yeah.

Joshua Bixby: 99% are looking at it, so it’s not that this capacity isn’t there. Sorry that’s not correct. It’s that it’s just not leverage. It’s not used.

Male Speaker 22: And I think, you go [indiscernible] [0:59:19]… Webpage Test [indiscernible] [0:59:21] you know gives you the results for IE7 which is what you are using.

Joshua Bixby: That’s right. IE8, IE6, and IE9.

Male Speaker 22: What about for the other browsers? Is there a tool that we could use that would give us some sort of accurate metrics?

Joshua Bixby: Well for me so I look for two things when I look at tools. And one of the reasons I like Webpage Test, I look for real browsers which is absolutely critical and I look for re-simulation of bandwidth. In this case the, you know DSL or [indiscernible] [0:59:45]. There is very little that gives me both of those things. I can get real browsers. You guys do real browsers right?

Male Speaker 23: Yeah. The new Firefox up from [indiscernible] [0:59:55]

Joshua Bixby: [indiscernible] [0:59:55]. Web Metrics tests Firefox. Other people [indiscernible] [0:59:59]. So you get some Firefox but you’re never behind bandwidth signature. So for me, I always ask like if you’re on a fiber connection in a Tier 1 data center, I don’t really care what that score is. It doesn’t mean anything to me. So I have yet to find an example of a tool that has the two criteria I need which are real browsers and some form of latency simulation to give me an idea for what are really users. I don’t know if anyone else, or if you have tools. I need see them. Does anyone have any there?

So you go to Gomez. You go to Keynote. You go to Web Metrics. You go to the big guys in the field. They all have some answer to this question and my experience is this. And I shall apologize to Lenny. Lenny, I’m sorry of Web Metrics.

My experience has been that none of them work well. You’ve got the last mile stuff from Gomez which is just not worth spending money you’re using unless anyone else has a different experience but my experience is it’s useless. Shit, see now I’m getting in trouble.


Joshua Bixby: This is we turn out and I turn off. When I start getting into the honest stuff, Keynote has some Kite stuff. Interesting but very difficult to get the bandwidth simulation. I haven’t found it. So a lot of my tests have gone to Webpage Test for the reason that I get [indiscernible] [01:01:08].

I happen to be really into testing. So at home, I’ve got a DSL line and another line with computers hooked up with all versions of browsers. So I can do it with through something like HTTP Watch myself and get some simulation but nothing that’s public about that. There’s a certain question for-

Male Speaker 24: You might want to defer this, up to you. My question is to go back to one of the original points about First Render as the goal perhaps.

Joshua Bixby: Yeah.

Male Speaker 24: Do you want-

Joshua Bixby: No, no. Go ahead. Go.

Male Speaker 24: So when you brought that up here. First Render as opposed to Document Complete.

Joshua Bixby: Yeah.

Male Speaker 24: What that immediately reminded me of was a talk I heard Bruce Tognazzini give quite a long time ago and his point was or his war story was when his colleagues at Apple, they had a big problem which is that the finder took forever to open and to display a directory. And they worked at it. They simply couldn’t solve the performance problem. And so what Bruce suggested to them…

Joshua Bixby: We fake it?

Male Speaker 24: They did which was to start waving your hand and fake people’s brains out. And he’s written a paper about this and comes from magic acts and things like that.

Joshua Bixby: Got you. So if I can show you some, so we are very familiar with that world.

Male Speaker 24: So Bruce where, where did that go? Right.

Joshua Bixby: We have in our own lab a technique that we’re going to deploy in the world very soon which provides waving capabilities. I can’t say too much about it because the PR team would kill me.

We have seen categorically that showing signs of life is very, very important. So when we first looked at this, and you look at that first video. Right? Ten seconds before the action happens, if you could flash even a little loading bar instantly, we see a dramatic change in [indiscernible] [01:02:58].

There’s a great piece that I’ve blogged about earlier last month about Jacob Nielsen and their test around where things load and where people’s eyes go. And that again, it’s not just what loads. Although it’s nice to show some signs of life. It’s also what loads. It’s not when it loads. It’s also what loads the best. So there are two- So unquestionably, signs of life and there are some YSlow rules about this like clear buffer, gets stuff out quick to readers. But it’s really hard to do. So this is an area that we’re spending a lot of time researching and we should have something very soon.

Male Speaker 25: This question actually, [indiscernible] [01:03:34]… impact going back you know, constantly showing the users life earlier. And your combination of components, efforts, do you move components? Do you like-

Joshua Bixby: Yes. Now one of the areas I’m going to talk in terms of one of the challenges in the overall market is moving things. Moving things, when you move things as a developer, you move things. You have your test environment. You make sure nothing is screwed up. And screwed up means two things. Screwed up means you haven’t adversely affected the page rendering. And you haven’t screwed up all the marketing guys that sit behind you that use that tool to determine when somebody’s eyeballs hit this thing or when they click on that thing. One of the challenges in the automation market is I can get the perspective of trying to expect a rendering. I have a very difficult time getting the perspective of what happens in the backend.

So what we have to do as a company and an industry is we have to have, we do this. We have to have a set list of things that we know are safe to do things to- More of a sort of white list than and also a black list. But we can’t just randomly start moving stuff around because what if I screw up marketing? What if that thing was exactly there because it helps track where somebody’s eyeballs or mouse goes? I don’t care about it because the page still renders. And I’ve just blown up somebody’s 5,000 dollar-a-month subscription. So we do a lot of work around knowing, “Hey Google [indiscernible] [01:04:50], I can move. Hey this script I can move.” So we have to be really careful about that. So that’s one of the challenges in automation.

You are very patient with your question. Yes.

Male Speaker 26: My question is if I want to view two pages in a website, is it better to create a new window or is it better to create a tab? Have you done any study on it?

Joshua Bixby: [laughs] What do you mean better? From a performance perspective?

Male Speaker 26: Yeah. If you want to see which is faster and in terms of a-

Joshua Bixby: I never thought about that.

Male Speaker 26: I mean is it important for any-

Joshua Bixby: I can’t see why it wouldn’t be important but we all share the same cache. I think the time to create a new tab probably would be slower. I don’t know. Does anyone else have any insights about that?

Male Speaker 27: [indiscernible] [01:05:31] from a performance perspective. If it was possible to delegate between tabs, you know, switching tab is faster than loading.

Joshua Bixby: Is it? [indiscernible] [01:05:41]… you line, type in the URL. I don’t know.

Male Speaker 28: Well it’s also the question of how much more memory does it use, the browser to open a tab versus a window. And then I believe that Chrome has always has a different [indiscernible] [01:05:53]

Joshua Bixby : They do different [indiscernible] [01:05:55]

Male Speaker 28: And they have, and I think IE is doing that too.

Joshua Bixby: They’re looking at it. I don’t know the answer to that question.

Male Speaker 26: No, when I said switching tabs, I meant switching back.

Joshua Bixby: Oh.

Male Speaker 29: [indiscernible] [01:06:03] browsers, plug-ins had an impact on the Internet [indiscernible] [01:06:07]

Joshua Bixby: Yeah. I just don’t know. I’ve never thought about it. Frankly, that’s an interesting question. I don’t know.

Male Speaker 30: Well actually loading, loading the other tab and background while you’re browsing this one.

Joshua Bixby: There you go. You can just automate your own experience.


Joshua Bixby: I want to talk about the automation part. So any other question on that stuff? Again feel free to ask them. And I come at a timeline at I think the pivotal moments in the automation space. Sergei will be proud to know that I give you a shout out. Well deserved.

So I put this together for a few reasons. One is because I always forget the pivotal moments. So it’s nice to remind myself. And two, I think because it speaks to the evolution of marketing. So let’s start in the early days. Sites started coming out, the first browsers were coming out in ’93. You know IE1.0, in ’95, Netscape in ’98. So as the Internet evolved here, I started to get browsers. I started to get the foundations for some of the technology that actually is important in the automation space. One element that’s really important is I started to get compression to some of the server site stuff. As soon as the sites came out, I got compression. As soon as sites came out and started to become important, I started to get load balances. F5, Radware, some of the really original load balancing companies started to get out in that timeline. So I’ve got in the early ‘90s and mid-90s browsers. I started getting this sort of motion towards bigger sites so I need load balancing infrastructure. I start getting some RFCs out there like 2616. I started to really think about performance. Imagine how old that is. I still can’t imagine.

I start getting some really cool start-ups. Netli which is in Akamai. Akamai bought Netli. Akamai in ’98. Netli in 2000. Pivia, which is probably a tech company that most of you haven’t heard. They were bought by Swan Labs and subsequently bought by F5. But they were one of the real precursors to the automation market. It’s amazing to me as a company that founded in 2006 to look back and that was seven years before I founded my company where they were trying to solve this problem. People have been trying to solve this problem for a long time.

I then moved into the post-dotcom explosion. And I start laying the groundwork for that next generation of technology. So imagine, I had heavy [indiscernible] [01:08:32] investment. Some guy. I had another line of the guys that had got investment. They already had the money in the bank. They weren’t willing to give it back. And those are companies like Fine Ground which was ultimately acquired by Cisco. They did some really interesting stuff in the network. We moved into a Cisco device and got killed which is Cisco’s practice. I have Riverbed which is sort of an auxiliary market to what we do in the sense that they do branch office acceleration. Very different but still in the acceleration business nonetheless.

I then go through the dark days, very, very dark days. And the dark days are 2003 all the way through the 2006. The VCs, money had dried up. Huge consolidation of markets. So everyone, interesting back there has been bought. Netli, Pivia, Riverbed, Fine Ground. Riverbed started to go public. You either survive or you got killed. Almost, very little innovation. This is a time when budgets were slashed. Very little innovation.

I then started innovating again in 2006. We founded Strangeloop. FastSoft was founded which is a TCP optimization technology. Again, all in this line. And I started getting this focus soon after in 2007 with tools like Yslope, Steve’s first book. I start getting this focus where we’re transitioning from a backend performance focus into a frontend performance focus.

And 2008 is really where this all started to take off. The beginning of 2008 we had Webpage Test. We had the first Velocity Conference. Chrome came out. In the last couple of years, we’ve had some interesting innovations. We’ve got more tools from [indiscernible] [01:10:12], Browser Scope, third party controls all targeting this market. We have the Google announcement that performance is part of search. And we have things like totally new innovations like the SPDY Protocol where they’re trying to basically change the way the Web works. This is a Google protocol but if you’re not familiar with it, it’s really exciting. Incredibly exciting things in this area. We’re working very closely with them on that protocol as well.

So from an evolutionary perspective, I just wanted to give you the moments in my brain that are important when we talk about this market. Talk about the different elements of the market and the players in the market.

I like to divide the market into two totally different- And this is my own world so bear with me. I like to think of the players that really work in the delivery space. These are people who say, “I’m not going to change from a server sense [indiscernible] [01:11:03]. I’m going to take it. I might move it closer. I might try to optimize the highways that it travels down. But I’m just going to be delivery focused.

And then there’s the people that are in the transformation market where they say actually, what the server gives me isn’t right. I’m going to change it. I’m going to totally change it. And ideally, I’m going to do transformation based on browser. So I look at the world this way. I’m sorry, you have to look and have a peek into my brain but this is the way I look at it. If you look at this from the perspective and this mirrors very much what we saw in the tests right? I’ve got my original. When I look at delivery, delivery is all about squishing it this way. That’s delivery’s mandate. I want to squish each of those bars. Delivery would be DNS. Delivery would be a CDN. Delivery would be load balancers, compression, and to sell off them. And transformation has a very different approach. Because we already gone through that exercise, you can sort of see that this mirrors what we saw in the other example.

So the delivery market for me breaks out into two really big, strong elements and one other category. The big, strong elements, the first one by far in a way are the load balancers. So the load balancers are important in this. We’re going to talk about the players in the load balancing market. I’m happy to answer questions. We’ve worked with all of them. They are a key element in this. Earliest to the market, they were focusing on load balancing but they then started to absorb all of the network infrastructure from SSL off load, to compression tools, to some caching technology. They just bought everybody and integrated it to the balancer.

The next big category of this are CDNs. You know we talked about Akamai. You can’t have this conversation without spending a lot of time on Akamai. There are a lot of others. There are some that are doing some innovative things, going back to the question of dynamic. We’ll talk about that. But that is a huge pillar of the delivery infrastructure.

Then there’s this category of other and these are things that aren’t really that important to our world of front end Web development but are important to call out. I’ve got some TCP optimization technologies like FastSoft. Stand-alone, still strange with their stand-alone I think from not large- I have some customers do some work with some of the CDNs. They basically are all about TCP. How can I make Windows better? How can I deal with some congestion related issues?

We have this entire market of LAN optimization which as I say, doesn’t really impact us but I constantly have to educate customers as to what it is. Why it’s different than what we do. Basically this is where you have two sides to a connection. I own the data center and I own the branch office and I can have boxes talk to each other and do fancy things: Differential compression, local caching. I also, this type of technology, Riverbed, Blue Code has evolved to start doing mobile applications. So I have a mobile client here, all network layer stuff. Really, we have not seen any movement from this area into our area but the incredible amounts of confusion. And it’s confusing because you get apps like Share [indiscernible] [01:14:01] which kind of live in both worlds. Right? Where the Lan optimizers have really, their bread and butter is [indiscernible] [01:14:09]… related. So basically the protocols that run Exchange and the protocols that run Office are terribly chatty between branch offices. So that’s where this technology really adds value.

We have yet to see them on Web apps really bringing any value or any significant value at all. We have had DNS clicks and we talked about how that DNS thing is an element of the transaction. We have outsourced DNS. Newstar, [indiscernible] [01:14:35] DNS where you would outsource your DNS. I still feel like it’s a real reach to claim they’re performance tools. It’s a very small element to performance that DNS actually can [indiscernible] [01:14:46] in some countries so maybe it is.

If you look at what happens, what these do and we talked about a lot of this stuff already. What do load balancers do? Well they do compression for you. We already talked about where that helps. You know smaller blues on the HTML resources.

We’ve talked about TCP optimization and multiplexing. Basically, they’re doing TCP optimization between you themselves and the browsers. And they’re multiplexing on the back end so they can get more connections to the server.

This is going to help me as well. We’ve got, these things all have cache engines built into them and they all do as is so often. So from an optimization perspective, you’re going to see performance improvements from all of those four elements mostly in the greens and the blues for the most part on your objects.

I then look at CDNs and there are two CDN categories that are just totally different. I’ve got the static object delivery guys and they’re going to make me better greens. They’re going to argue for better blues but it’s most about greens.

I then have this whole category of things that happens when I go to a dynamic site delivery tool. I’ve got [indiscernible] [01:15:53] which is an archaic technology that’s only used by [indiscernible] [01:15:57]… Sorry. And it’s not really sold anymore or shouldn’t be. A really interesting idea where you basically would have objects, you basically would have code it the edge and your content in the edge and it calls back for the dynamic pieces and then bundle it all up because they have it and they serve it out. Companies still use this. I don’t know, from Best Buy. They’re a huge ESI customer. So this is still a technology but very rarely do you see it implemented in the modern world. Very, very rare. Am I correct in that?

Male Speaker 31: [laughs]

Joshua Bixby: You’re not on record.

Male Speaker 31: Well I think I am.


Joshua Bixby: So am I.


Male Speaker 31: But you’re brother to the CEO. I’m not.


Joshua Bixby: That’s true. That’s true. It’s different. Question.

Male Speaker 32: What are the disadvantages of using ESIs?

Joshua Bixby: It’s incredibly expensive to keep up. The development cycles are extremely long. The benefit is not as much a performance benefit. It’s more of a scale and off load benefit so most organizations are ready to deal with the cost-benefit of all the development that has to take place. Imagine your servers are never serving full pages. So testing cycles, developing cycles, like it wrecks havoc. And most organizations that I talked to would love to move off it. And it’s not just at Akamai or DSI. You can do ESI yourself. Most organizations would want to move off it but they can’t because they’re so imbedded. It is a bad, bad, bad idea


Male Speaker 33: So this has a concept that just like still maintaining dynamic [indiscernible] [01:17:22] on the page that don’t get stale.

Joshua Bixby: Yeah. It’s kind of like pre-Ajax.

Male Speaker 33: Yeah.

Joshua Bixby: It’s like pre-Ajax technology. If you’re going to do something like this, use Ajax. They also have DNS solutions. So if you’re making a request to you know, and it happens to take 18 seconds and you’re using Akamai DSA for example, you’re going to have a really small teal. You’re going to get good teals. They also provide some compression. There’s compression built into those systems. There is TCP optimization built into Akamai solution. In acquiring Netli, they can do some interesting TCP optimizations: often one of the strongest selling points of DSA. Our experience has been in North America and the European context, there’s absolutely no performance. I shouldn’t say none because [indiscernible] [01:18:13]. There is such marginal performance value from the TCP optimizations that unless you’re serving data into rural networks in China or oil platforms in the Gulf of Mexico, you’re not going to see a lot of performance. That’s been our experience. Others would refute that. And routing optimization where we get better routes for content so usually [indiscernible] [01:18:38] routes, get smaller, smarter about it.

What’s interesting to me and I’ll come back to the question is how similar these two are. I keep thinking, you know when I look at these markets, it’s like they’re load balanced. There’s also load balancing. There’s also SSL offloading. It’s like it’s load balancing, take a load balancer, every feature in it and put it up in the Cloud. That’s really where some of this have evolved from. You can also do, make things in the Cloud that you can’t actually do in a data center like some of the TCP optimizations which you can’t do, don’t seem to have that much value. Question.

Male Speaker 34: On the low end of the CDN market, there are some new players. Could you speak about them in particular?

Joshua Bixby: Absolutely. Let’s talk about the players across the market. So I wanted to break this out. I didn’t address all of the players but we’re certainly are familiar with all of those. So on the load balancer side, I divided this market in my mind into two places. I’ve got the advanced load balancers and I’ve got the basic ones. In the basic category of Camp Barracuda, Coyote point, these guys do some basic stuff. Basically it’s F5 in 2001 which frankly for most organizations is good enough.

I then have the advanced load balancers. F5 by far leads the pack followed by Citrix, Radware, Zeus, which is a software-based load balancer. You can’t have a load balancing category without Cisco although this is a market that they’ve essentially failed in for the most part. Sorry.


Joshua Bixby: There are others in this market. There are a lot- This is a market that has not evolved very much in the last four years. This is a very static market. There’s no investment in this market. From a capital perspective, this is a mature market. These are mature products. There is very little innovation happening in these products for the most part. Now, I’m going to get in trouble for that. Most of the innovation is going into meeting the large needs of the large customers. So you know, you get Buffalo jump from F5 which triples it’s capacity. And then it becomes a pissing contest and Net Stealer comes up and says we can do 36 gigs. And then F5 comes up and says, “We can do 50 gigs.” And then Zeus says, “If you put us on 8,000 servers or 500 servers, we can do a thousand gigs.” So it’s really a pissing contest very much in this market. You cannot do more through-put. It is not a featured risk anymore. This is a mature market. Very little innovation.

Any question about the load balancers? Is there a question up there?

We then go into the CDN market and there are the small object category and then there’s the dynamic object category. Oh I’m going to get in trouble for missing that one up there. In the small object category, the leader in this market in both categories is Akamai far and away number one. With the leader, you pay a priced premium although there’s a lot of price compression because there are so many other players in this market. There’s actually a third market which I don’t really care about. There’s a video [indiscernible] [01:21:27]. It doesn’t really impact my world. It’s kind of performance related and there will be a whole another group of [indiscernible] [01:21:33], Akamai [indiscernible] [01:21:34].

There are a number of other players that are large in this market as well. A large-ish. There are a couple sort of telco you know AT&T is in this market. Level 3 is in this market. Limelight is sort of the biggest standalone in play in this market and a very strong player in the video space. You can with some of the small ones but I sort of written one of the one here. I’ve got Edgecast. There’s a lot of small players coming up. I’ve got Max CDN that we know and work with. You know obviously I’ve got Amazon CDN. There are a number of players at the bottom [indiscernible] [01:22:11].

This technology, if you could survive a lawsuit from Akamai is a commodity. So Akamai has a tendency to sue everyone that talks about them, which scares me.


And they sued Limelight. Level 3 sued Limelight. They sued companies that they bought, just to buy them. This is a very litigious, ugly market. Patents are everything and I would never start business or anything to do with CDN from starting a business perspective. This is an ugly space.

Small object delivery is a commodity. Pure and simple. Now, if you have more sophisticated needs. It’s not a commodity. There actually are players who serve more sophisticated- You know you got High Load. You have Throughput. If you have needs in certain regions of the world, this becomes less commoditized. So if you have to serve data to Indonesia, there are only a few players that you can pick. Max CDN, [indiscernible] [01:23:07]. Well Max CDN probably isn’t your best option. Amazon probably isn’t the best option. So you have to look at your requite missing CDN space and say, “What am I delivering? How big am I? Where am I delivering it to?” And you can make a small object choice.

The big new push in this market is the dynamic market. The dynamic market means, from my perspective, you seeing your DNS to them and they serve everything. They serve your HTML. Now they might route it back to you but they serve your HTML. They do all their fancy TCP optimizations across that network. They do all of this. And there are four players in this market today. Many more coming. The dominant player is Akamai because of the acquisition of Netlink. They are the main player.

Nipping at their heels in a market where they charge hundreds [indiscernible] [01:23:52] multiples on byte [indiscernible] [01:23:53] are companies like Contendo, which is an Israeli-based startup that’s now Mountain View, just did a deal with AT&T so they’ll be serving through AT&T.

And CD Networks just announce whole site delivery option. Limelight has a whole site delivery option so this market is getting more crowded. This market is all about serving your HTML. If your HTML has to go back to your origin server then essentially what this market about is routing your HTML back to your origin server charging you significantly more than you would for small object delivery and telling you that we do great optimizations on that HTML. That’s the market.

Male Speaker 35: Would it just basically proxy on the head?

Joshua Bixby: Essentially. They’re proxying they’re traffic. They have you know, Limelight will tell you we own the network. We have huge pipes. We don’t have to worry about it. Akamai will say, “We got this overlay network with Netli. We’re going to make it way faster. And again, I’m only thinking from a performance perspective here, because there are additional benefits for moving to a dynamic CDN. There some security benefits. Right? Denial of service, attacks, things like that. There are some offload benefits if you can cache some of your HTML on the edge. There are some availability benefits. You know, there’s a number of cool pieces around load balancing. Akamai, for example, has just come out with something that will help you move to mobile site, so they’re constantly trying to add value to this market because that’s where the profits are, that’s where the value is. The other markets have been driven to a commodity.

So if I had video up here, video is a small object commodity. This still has premium pricing. When I talk about premium pricing, I’m saying I’ve seen prices. When they’re charging you a hundred times more per byte travelling on this solution than solution. So we’re talking about significant improvements. Now there’s price compression so that’s coming down. But there’s a lot of improvements.

Again, back to my bias. I don’t believe it that if you did a head-to-head test in North America or Europe for most of these dynamic technologies, you would see a significant performance change. I’ve seen with my own eyes three or four. I recommend to you if you’re going to make an investment here or if you already have, try gauge the value of this investment from a performance perspective. There are other advantages from a performance perspective.

Male Speaker 36: Yeah I think scalability perspective [overlap]

Joshua Bixby: There’s a scale advantage but if you’re coming back to the origin for all of your HTML, a lot of your scale advantage is coming from this side, not this side. Right?

Male Speaker 36: No, no. Obviously it’s about cachability on the edge. If you come for every request then no point.

Joshua Bixby: If you can cache everything on the edge or some stuff on the edge, you get a scale benefit as well. And caching HTML is a brilliant scale benefit. It’s exactly the same scale benefit that you get from small objects. You just get it from the HTML which is a big win. So there can be wins here as well. Absolutely. Most of our world is dynamic content, stuff that needs to be changed.

Male Speaker 36: In the publishing world, it’s different.

Joshua Bixby: In the publishing world, it’s different.

Male Speaker 36: In the media world.

Joshua Bixby: There are definitely-

Male Speaker 37: Oh but not necessarily.

Male Speaker 36: I mean unless you go and do your media business in the same way as some E-Commerce business which is stupid.

Joshua Bixby: I want you to pretend for ten minutes that you’re a HTML. You’re a high traffic site. You’re gaining these performance [indiscernible] [01:27:03]…question.

Male Speaker 38: High performance benefits, they relate to the Waterfall that you showed us before.

Joshua Bixby: Yeah.

Male Speaker 38: You’re talking about decreasing that first HTML request [overlap]

Joshua Bixby: That’s right. So if you look at the actual performance benefit is, if I can cache it, I’m going to take almost all the think time out which is great because it hides a backend problem if I have to. And on the dynamic content, I’m going to promise you a network which is faster, an overlay which is faster, better TCP optimization, and I’m going to promise you better performance. And that’s true in some cases.

Male Speaker 39: I worked for a publisher that had the solution in place and one paying point was we had scenarios where we wanted dynamic content that was different for different users and not [overlap]

Joshua Bixby: Got you. So you start doing geographical tuning and all of these guys are working, Tendo and Akamai about how I do geographical-based optimization. And then you just start coding in this Cloud and it can be time-consuming and really expensive.

Male Speaker 39: And one thing that was sort of practiced very frequently was to put some of these concerns off to the front end so that the front end would actually be responsible for doing things like making examples [overlap]

Joshua Bixby: That’s right. Which then you can’t cache the HTML right? And you lose. So I see very often situations like that where companies go in to it thinking they can cache a lot of HTML which is sort of the real benefit of [indiscernible] [01:28:28]. If it can’t always do it, you don’ t gain the same thing from that.

Male Speaker 39: But I was going to say, I mean one of the key things that you mentioned earlier on that is a great benefit about CDNs is that they’re bringing new [indiscernible] [01:28:39] to the user, to the [indiscernible] [01:28:40]. I mean…

Joshua Bixby: Absolutely.

Male Speaker 39: That’s the key thing with [overlap]

Joshua Bixby: And very, very important. Right?

Male Speaker 39: Because if you have Dulles Center here in New York and you’re getting people from west coast, well you know the trip for all of those images, for all that HTML, that’s the biggest benefit that you’re getting. The size of availability and [overlap]

Male Speaker 40: We think international business, that’s even worse.

Joshua Bixby: Absolutely. If you’ve got sites internationally, as soon as you start crossing the pond, Australia, especially rural area. You start getting slightly more benefit to some of the TCP optimizations. Obviously the benefit increases for any edge caching. But I guess for me the point is not that I don’t believe in CDNs. So don’t hear what I’m not saying. I believe in CDNs. I recommend CDNs to my customers. I am just very careful about when I go from this column to this column. That’s my only point. Not that I don’t recognize CDNs are great and you should buy one if you don’t already have one.

I want to talk about the transformation markets. So the transformation market is such a new market and what I love about these types of mediums, what I love about taking about the subject is that like we’re at ground zero of this. Anyone who’s in performance today, what you will see in the next five years is the same evolution that we’ve seen in any of these other industries. We’re at the beginning of a really cool industry.

So when I look at the transformation market, I break it into three delivery mechanisms. You can break it to any type of permutation you want. I break it into three delivery mechanisms where I’ve got server code, stuff that I stick on my servers that will do some of the transformation in the server. I’ve got network based optimization where I buy a network device and the transformation happens there. And I’ve got Cloud transformation where instead of doing inside my network, either on my servers or in my network, I’m doing it in the Cloud. I break it up like that because that for me is the most intuitive way to think about the different players. And again, this is a very early market. There are not a lot of players.

If we look at what transformation’s goal is, it’s essentially I want to automate YSlow, Page Speed, Google, Souder’s book. I want to do whatever it takes like we talked about after that pont that we had earlier. Whatever it takes to put these rules in practice so people don’t have to cope.

If we look at that, let’s break this out. So I got on the server side, we have two type of technologies. We’ve got those that are platform specific so Aptimize, a New Zealand-based company that builds products for IS servers and Apache servers. In the server, the optimization is happening on the server at the same time as it’s processing content. The pro to that is that you don’t have to buy network devices or subscribe to Cloud. The con is you have your servers doing all of this heavy lifting and we see organizations having to buy more servers. [indiscernible] [01:31:36] is in the place. We also see organizations whereby you dramatically reduce some of the throughput and scale opportunities.

We also have a server plugin. We also have a server product that’s platform agnostic. It doesn’t have to sit in any server but it’s a virtual product. So you would get software from us that you would have to use the Mware or Zen or some type of virtualization. You can put it on your infrastructure but it’s not embedded within the server. Same problem with that is that you’re competing for resources.

So one of the challenges with this, although we talked about getting this down to 1 or 2 milliseconds, the challenge is you’re using a hell of a lot of compute and memory to do that effectively on large sites. So I believe that the server market is and we’ve seen this actually with almost all the technologies in this industry for compression through the SSL offload where it all started on the server and has migrated up. And I believe very strongly that if I stand in front of you guys in two or three years, there will be very little server-based implementation of this type of technology. It’s too compute-intensive. It’s too memory-intensive. It’s not the right place to do it.

[phone ringing]

Joshua Bixby: I do it there. I started there. I still work virtually there but it’s the wrong place. So I’m going to say it boat as all of us.

If you look at the network-based optimization, I really break it down into two categories. The basic ones, those that inherited technology from that 1999 era so that would be Cisco’s Ace device, F5 Web Accelerator. These are technologies that are about 10 or 11 years old. They solve I would say Internet problems from 10 or 11 years ago. One of the biggest features in the F5 Web Accelerator for example is domain sharding. Well that really hurts you in modern browsers but it does it everywhere. And this fine [indiscernible] [01:33:26] device Cisco has essentially killed. But they’re out there. I get questions about them all the time. They’re legitimate contenders to transform. They’re the first generation of technology that actually decided to look at the HTML, parse it and do something with it. So they still exist although they’re both really on their deathbed for the most part.

In terms of the advanced so the stuff that happens right now. Obviously we’re in that market. There’s an Israeli startup called AcceloWeb that is also in that market. We don’t know yet what AcceloWeb is going to do. They were just funded a little while ago. They are in an alpha-type program. We haven’t seen any customers. I’m excited about what they’re going to bring to the table. I’ve met the CTO and the VP Sales, really smart guys. They’re tackling very much a transformation problem. They’re looking at it from an interesting angle. They basically said, “We throw YSlope. We throw Page Speed. We throw Souder’s books and we just looked at websites.” So that’s interesting if you found it you know, if there is a different approach. Again, it’s really difficult to assess this because we don’t know where they are.

There’s another category in here. Actually another Israeli company called Aragon Networks which has made a funding announcement but we don’t actually, they’re on a website and we don’t know what they’re doing.


Joshua Bixby: So they’re in that space there. I keep my tabs obviously and fingers in as many of these pies as I can. I don’t know what they’re doing either. So all of my contacts, I have no idea what they’re-

If you get into the Cloud optimization stuff, I put Akamai here and I debated whether Akamai should be in this category of mine. Akamai doesn’t really, Akamai doesn’t parse your HTML but they don’t effectively change it. They parse it because they have a preloading feature with preload stuff to the edge. So that’s kind of the precursor to transformation. You have to be able to read HTML to understand it. I put them there because it’s Akamai and they have some of the infrastructure to do interesting things. They’re not really doing anything interesting in the transformation market but they have infrastructure to do that. And obviously we’re in the optimization space in the Cloud service as well, and we serve customers through the Cloud.

Now, as I showed this slide at an internal session, they said, “Wow. It’s great that you got the Strangeloop name up three times.”


Joshua Bixby: That wasn’t actually the intent. I just don’t know how to divide this market yet. And every time I attempt something, I get feedback and it gets better or worse. It’s a division nonetheless.

Male Speaker 41: Sir. You got the server connected to the Cloud.

Joshua Bixby: Yeah.

Male Speaker 41: Do you see anything coming at the development so before I put it on the server?

Joshua Bixby: Oh absolutely. There’s a huge market there. There are tools. There’s tools that you can use to find out what the best sprites are. There are tools you can use to figure out what the best image compression algorithm is. Absolutely. There’s a whole bunch of stuff.

Male Speaker 41: Are you seeing anything from like the Microsofts, some of the [overlap]

Joshua Bixby: Oh yeah. Absolutely. The Microsofts, the Googles, they’re always trying to innovate it and make things better. IES has a number of innovations in it. For example, and so does the new Virtual Visual Studio release. So yes, we’re seeing it from all sides. For me again, the market mentality I have is you’re not going to change your code. I can give it a whole session that is identical to this in length and probably more format around- Hey if you’re going to try to optimize your code, how would you do it? And what tools would you use? Yeah, I’m going to go and you smush it and I’m going to do this, and I’m going to build my sprite using this tool. That’s a whole another conversation. There’s a huge universe there.

Male Speaker 41: Yeah.

Joshua Bixby: And one of the challenges in our business is that we never stop running right?

Male Speaker 42: Yeah. The closer [indiscernible] [01:37:09]… is Google’s…

Joshua Bixby: His example is that…topic.

Male Speaker 42: …solution on the development end.

Joshua Bixby: Yeah. There are a number of topics where IS for example and Visual Studio’s new release, if you’re building an app in, it will combine your javascripts for you that are [indiscernible] [01:37:23]. So, absolutely. There is tons of innovation on that side. Yes.

Male Speaker 43: It sounds like the transformation market is better read responsive, better responsive but for loader bandwidth, how does it- Does it have real improvements especially like this [overlap]

Joshua Bixby: So it should make an improvement. So yes, yes. Transformation by for example doing proper cache headers and expiring everything in a year will offload your server. By doing then with reduction, you can offload your pipes. Right? We see a natural offload when we move and I guess this is kind of in-between delivering transformation when you do some stuff like compression in a network or in the Cloud. So I would say if you just think of transformation in the lens that I have said which change HTML and change resources, the main value you’re going to see from a scale and offload perspective is that you’re going to have less request to your data center for less [indiscernible] [01:38:19].

If you also use a technology to automatically go to a CDN, it’s going to help you bridge to get to a CDN because it can automatically rewrite dynamically and send all that stuff. So I’ll also provide that. Some of the other technologies that actually are imbedded in some or all of these platforms are some of the delivery technologies. So for example, at our device we do load balancing. That’s the selloff with compression so do other companies. So it’s kind of a mishmash of the two. But no, the main focus here is on end-user performance. The by-product of it is scale and offload.

It’s interesting. I have this when we first created the business…Can we do a time check here. When I first created the business, we went around- And I’ll be done in about five minutes. We went around and asked all the smart people we knew. Rant what was more important to you, acceleration, scale, or offload. Because we were trying to think, what problem should we really be addressing? I have the document, fascinating to read about it. CTOs, Microsoft’s opinion. And we just went through and asked all these opinions. And we have our own. And we decided which wasn’t the flavor of the day in 2006. You can see the evolution of the market that it was the performance side that we wanted to focus on.

Let me talk about some of the challenges and I want to talk about some of these areas and when I talk about challenges, I say if you’re going to change code, where do you screw up? Where is this hard? Where would we take advantage of all the things the developer can do? Let me talk about this.

One of them is javascript. Javascript is a pain in our automation ass for the most part. We can do just so much with javascript. The things that you can do with developers in javascript is so creative now, so complicated, so difficult that javascript keeps us up at night. We have so much error handling in our own product to make sure we don’t screw up. Javascript is probably as much as the code that actually is in there to make javascript faster like it’s- Javascript is very hard.

If you look around at the [indiscernible] [01:40:18] from most of the companies on this list that actually touch HTML, change resource names, you’ll see the vast majority of your javascript. So this is a real area of challenge.

Male Speaker 44: Is this stemming from mostly from combining and moving?

Joshua Bixby: Combining and moving. Changing names. You have a javascript that references its own name. You change the name. So yeah, we have to always be, like we have check, after check, after check in our software for example to make sure that [overlap]

Male Speaker 45: You were mentioning before you, changing HTML.

Joshua Bixby: That’s right.

Male Speaker 45: What exactly do you mean by changing HTML? [overlap]

Joshua Bixby: [indiscernible] [01:40:49] The browser requests a page, As that page is coming through the transformation engine, in our case ours. We’re reading the HTML and we’re rerouting. Instead of asking for image 1, ask for package 1. Instead of putting that javascript file there, delete it, move it down here. Essentially find and replace algorithms for HTML.

Male Speaker 46: You’re pretty much changing where requests are happening right?

Joshua Bixby: You’re changing your request route and you’re changing I mean- There’s a cute thing that I learned the other day. We haven’t actually had a problem but if you order image attributes alphabetically, you get better compression because there’s more repeatable patterns. This is the Google innovation. So Google for example has an algorithm that makes sure that all of their image attributes and all their pages has the same thing to get better compression. Like go figure. Yeah, so that’s an example where we might not just be moving something up. Maybe we’re changing the order of something. We don’t that [indiscernible] [01:41:46]


Joshua Bixby: Sorry [indiscernible] [01:41:48].

Male Speaker 47: Did you look at Google’s dictionary-based compression?

Joshua Bixby: Yes.

Male Speaker 47: What’s the impression?

Joshua Bixby: I’m not the best person to speak to that. Sorry. I don’t know enough about it to speak about it. I can hook you up with people who do.

Male Speaker 47: No. I met Brian so…

Joshua Bixby: Oh okay. Yeah so you probably know as much as I do. Other challenges, Ajax. Ajax is a good challenge. Ajax apps are different, coded differently. This is a challenge. All of us in the optimization space.

Mobile flash. Flash is another big challenge. Today we don’t touch flash other than add expiries to the flash files themselves. There are a number of projects that we’re undertaking to decompile flash, optimize within flash and recompile them. I’m getting Josh nodding his head. This is a cute-

Josh: [indiscernible] [01:42:41] shaking his head.

Joshua Bixby: Shaking his head. Sorry.


Joshua Bixby: [overlap] negative. That’s why it’s not a good product today. But we’re doing a lot of- Flash is a problem. The flow is not optimized. That’s anything that fits that category has engineers from my company working on that. But today, optimization, if you have a fully flash-based app, none of these technologies are going to help with that.

The mobile space. This is isn’t a problem. It’s as much of an opportunity as a problem but man alive! The mobile space presents challenges that are very different from a proliferation of different browsers to sizing up objects to- This is a challenge for our industry and how do we deal with the mobile web? Do we just focus on the Android and the iPhone and screw everything else? Do we focus on a bunch of different browsers? How far do we go in terms of scaling objects, images for example? How far do we go into creating quality? All questions that say, we don’t have good answers too but it’s certainly a challenge and an issue.

Third party content. Well we talked about it before. What can you move? What can’t you move? How can you move it? Browsers are also in this category for me. The challenge of browsers is that they come up with new stuff all the time. Stuff that they claim they support but they don’t always so we’ll have an IE8 on Vista that will work differently than XP that will- So we’d like to work with whatever technique we’re employing. So this is a challenge in a sense that our testing breadth is significant in the automation space. If I’m going to change browsers, I got to make sure that I know how these products, these techniques are going to work across browsers.

Bad code. Bad, bad code. We see awful code. We see stuff that’s so non-standardized and terrible. We have to live with it. Imagine our world is, we’re like a Web server. Whatever code is behind us, whatever browsers that connect, in our world we got to serve the right stuff, not break it, be as resilient as browsers. That’s a challenge.

And I would say actually the greatest challenge comes back to the question I started with which is what line should we focus on? How do you measure? What do you measure? I’d say the biggest problem in this industry, the biggest challenge today is what do you measure? How do you measure it?

As I talked about earlier, everything we talked about for an hour and a half, two hours is all about First and Repeat View. What if what’s actually important in this industry is the flow? Page 8 on everyone’s flow. Page 6 that you can get to through 800 different [indiscernible] [01:45:09] routes.

We’ve got a very large customer that we’re up with right now where we’ve been analyzing the different flows and what’s happening and how do I get optimization based on the flows. That is a tough, tough world out there. We have a lot of algorithms in our product that do that that take those flows and understand what the problem is. But this is a big problem and a big challenge I would say. Huge opportunity for some of the measurement companies that have been in this industry for a long time. But it’s definitely a challenge.

Now I don’t want to end on that note because that will be just too sad. So what I want to end on is the fact that with all those challenges, all of that being said, in my opinion and in Steve’s opinion, and I echo his: speed is the next competitive edge. We are finding time and time again at every company that we go into that the optimization benefit that we bring and the corollary business benefit be it revenue gain, conversion gain, which ultimately turns into revenue gain, is a bigger gain for that company than anything they’ve done in development or IT in the last year. I’ve heard that from CTO after CTO. I was in an organization where they cheer .1% conversion gain. We brought them six. Other companies, Aptimize, AcceloWeb have similar stories. The fact is, when I can start moving revenue to us in the way that we move it, page users, search engine rankings, this is in fact possibly for your business a bigger competitive advantage than anything else. It’s the single thing that you can do in your organization. I see that as a huge opportunity. I’m excited about the market and I spend a lot of time talking about the market. I have a blog that I attempt to maintain. I have a mandate that’s sort of a New Year’s Resolution to do at least one blog post per week. I’m averaging almost two. So I’m feeling good about it so far since I started it.

And that’s Web Performance Today. Obviously, we’re in the performance automation space so I’m excited about answering some of the questions that I didn’t have a chance to answer in detail. I mostly was brought here on the enthusiasm of Alan and Sergei so most you know, I think putting the event together, ordering the food, doing all of this work, all of the credit goes to them. I just am sort of the talking monkey. But they got you all here, ensured that you were here, and I’m really honored to be here. So for the two of you…