 Hello, everyone. My name is Matthew Cheney. I'm a developer with Pantheon, which is a hosting company. And as such, I know a great deal about CDN technology, which I will share to you today. And hopefully get a little bit of just conversation and information flowing about what I think every site on the internet should have as part of just being on the internet. And the reason for this is there's many reasons you might want to use a CDN, many things you can do with a CDN. But the probably place I would start as a place most of us would be inclined to sort of think, what does a CDN do? Well, a CDN helps us with performance. And how do we know that? Well, say you get an email like this, which I in fact did get no less than two weeks ago. I help out with this bicycle company in San Francisco. And they're trying to launch this new frame on Kickstarter. And they're like, it's totally real. And they're like, it's slow. What's going on? And they like, link me the link. And so I go to the page. And I'm like, that's freaking sweet. It's a new adventure bike with custom rims. It's got a lot of images on the page. But I also noticed that it's loading really, really slow. And so when you have slow loading sites, you're probably inclined to do a little Google Clones vector, see what the file sizes are. Big images can load really slowly. You might be inclined to go use some kind of application monitoring tool like New Relic. Folks here are familiar with New Relic as a technology or use it. So New Relic is super sweet. New Relic will basically look at not only your back end stack, but also your front end and can give you a lot of insights about what's going on. In this picture, what we have is basically a breakdown of the processing that's happening just to get pages out there. So this is the blue area's PHP. The yellow area is the database. And then this green layer is sort of external service call, things that like are referenced beyond just the core stuff. And if we notice that email came in on May 29, we'll start to see these like quite crazy spikes of traffic or of time that it takes to deliver a particular page. Green is not good. Green in this context is slow. And slow on the web is bad. And so New Relic lets us dive into the green to figure out what it is. And it lets us look very explicitly at like, well, what actually is being called that's causing external sort of stuff. And we see, again, these same spikes. But we can identify these spikes quite quickly to this specific image domain. And what I surmised that happened is that the folks at the bicycle store had taken a bunch of these images, which, by the way, are not behind a CDN. And they had put them on this bicycle page. And as a consequence, what happened is that these, A, the server got a little bit overwhelmed, was doing a lot of responses. But also that these are images that were slide show images. So they actually sort of changed. And that required dynamic creation of the images each time. But this is crazy, because they're the same image for everyone. But what was happening is it was going out to the server. It was generating these slide show images on the fly. And then it was returning the content back. And that actually took a great. It had a number of hops on the internet. And this is causing several seconds of delay on a page, which is obviously not a great experience that you're trying to promote and beyond the internet. And I mention this because when we put a CDN on this thing, making these images no longer auto-generated every single time, but instead just cached, things got a lot better. And I think this is sort of where I would sort of point to you as what is where to go. Because fast websites are best websites. I've got a lot of stuff about that. And well, this website is not that fast. Let me just revive that. That you can see. Yeah, so once we actually got rid of it, we can start to see that as soon as we moved it off this service, obviously we're not calling this service, but what also happened is that the page got much more responsive. And that's for basically two reasons. Reason one is that in the world of websites, often there's a lot of processing that goes on to create any individual page. Be it a view on your homepage, be it some kind of image slideshow thing, any kind of asset. And that in the world of Drupal, like as you bootstrap Drupal every single time you boot up Drupal, it does all the work to load all the code and pull the databases and generates the same markup or the same image file. If you can just cache that, then you can have a faster experience. Now, Drupal of course has internal caches. This is a problem solved on multiple layers. But one of the things that sort of the CDN it requires is the CDN lets us actually do, lets us deal with this problem of the speed of light. And this is a problem if you've done any kind of physics that's not something that we're gonna solve with a better cache back end. We're not gonna put Redis and make the speed of light faster. And then as fast as we think light goes, and it's quite fast of course, it still isn't so fast that when you start thinking about the internet and start thinking about what it means to like be in Australia and need to get like read the news article of a guardian up in the UK. But that's not obviously a straight shot. But there's these different like lines of internet under the ocean. There's different routers in different countries. And there's a lot of smart routing protocols that actually try to move things around congestion. But at the end of the day, like you can actually have very complicated pathways from one site to the other. And in the world of websites, if you've sort of looked at Chrome DevTools or Firefox DevTools, you'll see that there's actually a lot of requests that are going back and forth on any page. And those requests are amplified if you're doing encryption, which you should be, where you're doing multiple exchanges back and forth. And that this can create situations where you get somewhat slow kind of pages. What is this? Let me just refresh this. Sorry, I have a graphic that I made. Which is awesome. Perfect. Here's a graphic of the basically the ping times. And you can do this yourself if you have ping or trace route on your computer. You can start to see that like from in Montreal over here, if we want to get down to Auckland, down south, it's going to take a third of a second to actually get there. And then it'll take a third of a second to get back. And then it will take, if we want to do that again and again and again. And the problem is that when in the world of the internet, this time starts to add up. And it's not like crazy, but it's enough that it's going to have meaningful impacts on your performance of your site in terms of conversions, in terms of Google rank, things I'll talk about. But that overall like this, it's these kind of numbers that are very much about how fast the light moves through the fiber optic cable. And these are things that we simply can't solve for by having a server in one place. And what a CDN is, is a CDN is about having your website in multiple places. So if you're used to hosting, even in like a Amazon cloud, that you're going to have an Amazon server is going to live somewhere, East Zone, West Zone, Central Zone. But there's some place in the world where your PHP is actually running and generating your website. But the key is, is that like you don't want to have to pay the basically this tax of the speed of light where you end up having to like because of the geographic distances have to travel every time you want to see a page. Instead, what you do to create a global CDN is you create different versions of your website, cached copies of your websites in different locations around the world. And so what this can look like is a situation where you build your website once at your specific place. You add your CDN on top of this and then you have these different access points so that everywhere or at least many places around the world you're a lot closer to your website than you think. And I pause there and sort of say, show them, are people familiar with what a CDN in general is? Is that, is there people like this is totally new? I don't know. So like part of like what makes the CDN excellent is that it's basically where you point your DNS to and where every computer that wants to go to your website they go and talk to the CDN network first. And the CDN network is then able to do things, a lot of magical things, but specifically what it can do is return you the content that you want in the fastest way possible all around the world. But CDN, and I would say this is basically what, before I started going really deep with CDN this is basically what I understood a CDN to be which is it's a cash copy of your website all around the world so it's fast and available and that's great. And by the way, I think you should all do one of these things are pretty easy to get. You can just, you have to put your DNS at it and then you tell it where your server actually is and it all works together. But if all we're doing is flying around the world putting servers and closets and telling it to cash websites, well that's not a very good use of our flying around the world. So there's been, especially in the more modern era, there's a series of, the first big CDN company was company called Akamai. They charge, they still around, they charge a great deal of money and they provide sort of this almost like dumb pipe kind of cash in where previously you could just sort of have your site and not come out and cash it. But then there were these players like Cloudflare and Fastly and then Cloudfront came out of Amazon and suddenly you had all these products that were saying, look, we all have varnish. Varnish is like a caching technology. We can all do dumb pipe kind of thing. But what we really need to do is be smarter about what our CDNs are doing. We need to provide extra stuff so we can master our CDNs. We needed to understand the page content that we have. We needed to work with modern CMSs and we need, for my Star Trek revenues, we need smart pipes for the internet. We need pipes that can do smart things and do more than just move around content. And for most of what I want to talk about is that CDNs offer us, especially in the world of Drupal and especially in the world of Drupal 8, unique and powerful tools that I would recommend that you all take advantage of as part of your development network. So step one is you do need to get a CDN at some point, get it installed, more truth-beating wisdom to you for that. Once you get a CDN installed, what can you do? Well, the first thing you can do, and I think probably the most important thing, is that you can be really smart about when you do cache and validation. So if you've got your site and you cache it all around the world, that's super great, but then you change your site. And now what you have is a situation where if you make a change, especially in Drupal, right, you change one thing, you edit like a user profile, you edit a node, suddenly all of these different places that it shows up in view on the homepage or on like some taxonomy page, all of those pages suddenly are now out of date. And so previously what you might do is just clear all of the caches on your site and then say that's great, we updated contents, clear the caches, new site. The problem is that Drupal sites can be a little bit funny to work with and they can actually get overwhelmed pretty easy. Especially if you have a pretty high traffic site, if there's suddenly no caching at all on the page, you get this thing that's called a cache stampede where you have so many people that are now immediately requesting live content that the server basically gets overwhelmed and falls over and nobody wants that. So the way to be more selective about this is you need to be smart and you need to say, look, if I publish a new blog post, I need to be able to create a new page on my CDN, I need to update my recent blog post block on whatever pages that shows up on and I need to maybe put that blog post on the user profile if whoever actually made the page. And those are the only pages that I actually want to clear from Cache. Everything else, all the other like 10,000 blog posts I wrote previously, those should still be in Cache. I don't need to do any work to do this. In the world of Drupal 6, Drupal 7, this was a little bit difficult, but Drupal 8 has offered us this amazing, amazing thing in the Cache API. Cache API, for those aren't familiar, it's a core feature that's basically designed to be smart about when your content is fresh and when your content is stale. And what it does is it leverages this idea of like Drupal knows a lot about the page. It knows what views on the page, it knows what users are on the page. And so what you can do is, you can take these existing things that Drupal knows about. He knows about the entities, he knows about the configurations. And these are things that are automatically created in your Drupal site. You don't even know about this, or it might not know about this, but if you like curl your Drupal site, you actually get like this big block of information that's part of what I'm talking about. And these are what are known as hashtags. And so the idea is you can take a website, this is an example website, I built up once upon a time, and it's a Drupal 8 site. And what's going on here is that there's a couple of views that like list the locations I think some information. There's different nodes that are loaded in the views and I think there's like a little, and then there's the menu and some other stuff. And so to the cache backend, a page like this would look, has hashtags that look something like this, where you have different nodes that are referenced and it knows which nodes specifically are referenced. It has the different views that are referenced, it knows which ones are those, and it knows which files are referenced. And so the idea with this is that if I have every time a page is put into cache, it's able to basically say along with, hey please store my homepage, also store all of this information as well. And then you can operate this option where you can tell the CDN, Drupal makes this very easy to do, to say look if I edit node 16 on my site, or if I change the hero view view, then go out to every page that's stored in the CDN that happens to have this sort of tag associated with it and invalidate those pages and only those pages. And this is game changing. Because if you can do this, you can be extremely precise about only revalidating the cache pages that you really want to invalidate. And this is true, there's a lot of different hashtags. This is just a small subset of them, basically anything that's a configuration for the theme, anything that's like an entity of any sort is all referenced in these things. And you can basically curl and look at the headers of your individual pages and you can see what Drupal is doing. It's there by default in Drupal 8. You can get it for Drupal 7, if you're still in Drupal 7 land, you have to install a back ports module that's basically designed to get the Drupal 8 goodness in there. But once you have that, then it's simply a matter of there's connector modules to Fastly and to Cloudflare and Cloudfront and Akamai. They use that install on your page and it's smart enough to then go tell those people to invalidate. And I would say if you're using a CDN, getting those cache tags dialed in is a really good way to level up what you're doing because you now have these very smart cache policies. And Drupal does a lot for you out of the box. Like I was saying, it's all the entities it already knows about, all the configuration already knows about. But you can even add your own custom tags if you want. You've built a custom called menu callback that has some kind of business logic. You could actually use this relatively straight option to do a setting of the cache backend. And that'll actually store these tags as cache tags in Drupal. And then you can purge them as well with the cache invalidate tags. And these are things you typically don't have to do unless you've written a lot of custom code. If you're basically doing with the normal core Drupal 8 stuff you already have access to that. And I would say if you leave a talk with one sort of one idea about a master CDNs is to make sure that you're taking proper advantage of the cache tag system and you're properly invalidating and validating tags for that. But wait, there is obviously a lot more. You can go even deeper with this idea of a cache context where you can actually have situations where and it depends a lot how big of a site you're doing. But the Drupal cache context part of the API allows you to do something like say look if I have all these tags and all I'm doing is changing the user profile right here if I've set up an appropriate cache context for a user then I can actually tell the CDN to just invalidate that little piece of it. And it actually does some like on the fly substitution to like an array of values. And it's pretty cool. Definitely a kind of thing to read through the documentation for. But the cache API goes deep and you can very much make extremely precise decisions about which things are stored in cache, which things are not. Other stuff CDNs do that you can totally optimize for, image optimization. So this isn't just shrinking images on, this isn't just shrinking images so they're smaller and faster. Modern CDNs are very capable of serving device specific images depending on the use case. So it can tell the CDN, I basically store a big image on the CDN, big as I want. And it can tell, oh you got like the new like $15,000 MacBook or whatever or some fiber lines right off the potion into it. And it's like, sure I'll give you a 4K resolution video this thing. But then it can also say, oh I got a 4G phone in Montreal, give me a decent size image of it. Or I got my like, you know, Android and I'm like sketching around wherever and the internet's not so good. And it'll give you even a smaller version. And this isn't work you have to do by setting up some kind of image style preset thing. This is stuff the CDN is doing for you. And you have to do some configuration to tell which versions of things you want. But then you can get this extremely awesome experience where people get basically the best quality image that they should be getting. And it's no work to you as developers, you just, or content editors, you just add a good quality image and it does the rest. This is a very smart trick. And this is typically in the configuration of these different CDNs. You can offer these kind of things. CDNs do very smart load balancing. So in worlds where you have websites that are very important, the CDN is gonna only be as good as the sort of, it's called the origin of the site. So if I've got my website hosted on this computer, I can have this computer connected to the whole CDN infrastructure. But whenever it needs a fresh copy of the content, it will have to go back to this computer. And if this computer goes offline, now we have a real problem. One thing that you can do is you can have redundancy or you can have several different computers all serving the same kind of content. And then the load balancer can be very smart. CDNs build this in. We add more web servers into them where it can say, look, like we're having four different or two different servers that have two different processes each of PHP on them. And then we can realize that if this one goes away, the load balancer can automatically route around that. Or if we have two good ones and it's just getting a lot of traffic, it can send one here, one here, one here, and it can balance it. And this is a critical way to do highly scalable websites because you eventually are gonna overrun what one computer can do. And by using the CDN to do the actual failover, it's making a lot of business judgments. You don't have to do a lot of configuration of your servers to handle this. Just like the CDN doing can be a very good plan. The other thing that CDNs do, and this is increasingly newer, Cloudflare is probably the best example of doing this well, although all the other CDN players aren't getting involved with this. Which is, look, if the CDN is in front of all your content and it's serving cash stuff to people, why not stop bad things from happening as well as doing good things? And a lot of these CDNs offer these web application firewalls, which are basically a set of rules where a lot of the attacks on the internet, because internet is dangerous, obviously, but a lot of the attacks, especially the hacks, look to be the same kind of pattern. They have these big injection objects that they're trying to push into your site, or they're doing very weird scanning of different ULL patterns, or they're trying to log in in ways that you shouldn't really log into sites or whatever. But it can detect that those things are bad attacks, and it can stop them at the edge. So they never even touch your Drupal site. I always compare it to our spam filtering, but for web traffic. And these things can be great because as common attacks come up, like cross-site scripting, they just write specific stuff to prevent that, they add it to the CDN, and now everybody is protected. And this is very excellent, and it helps make the internet a safer place, and it specifically helps to make sites that have known vulnerabilities, like all versions of WordPress or Drupal that have clear exploits out there that because those are known exploits, people can write protections against them. And so even if sites haven't patched, they're like Drupal get-in, for example, you can't exploit Drupal get-in if someone's in front of Cloudflare, even if you haven't over a Drupal because Cloudflare knows how to block Drupal get-in. And this is getting even better for us because the Drupal Association and the larger Drupal security team has decided to release an add-on for all the different CDN and hosting providers called Drupal Steward, which they're still working on. But what that's gonna be, is that's gonna be all of these web application firewall rules, but these are gonna be written in advance of security releases coming out. I remember when Drupal get-in happened and other Drupal attacks, and working at a hosting company, you see very quickly, like within hours of these things getting out there, people start to exploit sites and they go sequentially down alphabetically in many cases. And that's a huge problem because if you've got a site that's sort of out of date or your site is fine, they release a security update at 9 a.m. on Wednesday, you've got like other stuff to do on Wednesday. You might not update till like that till the next day, but you're already hacked in a world where the hackers are faster at creating exploits than you are updating your site. Drupal Steward makes the security team before they announce something like Drupal get-in, they've already rolled out to trusted folks a web rule to prevent against these kind of attacks. And this is the kind of thing CDNs can help to do. It's not really caching content, but when you're in the middle of like the user and the actual sites, there's a lot of things that you can do on top of that. Another thing is probably my favorite feature that I learned about relatively recently. And it's this concept of the CDN called Grace Mode. It's in Varnished 4 I think and it's really cool. It's basically like if you're going to a page you've gone to before and it's like 404 can't be found or not accessible, certainly not. Well, that's not great. That's a pretty bad experience. But what if instead of returning a like air message when it can't connect to get fresh content, what if it just gave you the last known good version of a page, right? If I'm like trying to go to like a news website in the afternoon, maybe they messed it up and it's down in the afternoon. Well, okay, I'm not getting afternoon's news, but they can at least show me the version that was there in the morning. That's still better than like getting an air page, right? And so the idea of a Grace Mode is basically that you can really get like a much better experience for your customers by saying, look, don't ever return an air, just return the last known good page that was there. Now, this is going to work for everything. You can obviously log into this or add content to this, but it provides this ability where we already have a bunch of cash copies of stuff around the world. Let's just show the last known good cash copy we have if we can't get a fresh one and then we can find peace of mind with Grace. As a side, there's a lot of images about really cool images of Grace on Google Images. They're really needing a little bit of chill time, just pipe that word in to get a lot going on. The other thing, I'm from New Orleans, so here's a little Mardi Gras mask for domain masking. The other thing CDN can do is they can do this idea of domain masking. Because if you've got example.com and you're pointing that at the CDN, the CDN can then do things like, okay, if I go to www.example.com and then you can point that to some, to like a Drupal 8 site that you have and that's what Drupal 8 is. But maybe if you have like an older Drupal 7 site that has like a forum or something that you haven't migrated yet, you can actually have www.example.com slash forum and put that in there. Or if you wanna have, you know, slash blog and have that be WordPress for some reason, then you can have slash blog go to WordPress. And now you can of course do this on a web, on a server, if you like add a copy of Drupal 7 into directory and add a copy of WordPress in the directory. But now that can get a little confusing because you've got three CMSs, they're all in the same doc route, you know, three different kinds of them to some extent. And they all of course have security access to read each other, which is its own sort of issue. But in this way, you can use the CDN to basically not only make it look like it's one domain, but have it go to different back ends. And this is really important in the university context because a lot of universities love to do this kind of stuff and switching over to CDN really helps that out a lot. And it's just one of those cool features, you just turn it on and sort of add it and you're good to go. And dialing this in really helps, helps to make that work. And yeah, and then overall, and that guy just creates this experience where things can be faster, they can be more secure, they can be more configurable. And some of these are gonna help you with raw performance, some of these are gonna help with security, some of these are gonna help you with peace of mind. But I think like when we talk about the performance and the page speeds, like the CDNs are extremely valuable at making sites faster. So we added a CDN because of things like this. Here's the traditional breakdown in like the developer tools, you can sort of see this of how long it takes to get actually a page loaded. And there's sort of this idea of time to first byte, TTFB, that's very important because that's a metric that Google and other folks use to see how fast your site is. This is also like all of this stuff that's happening down here, like this is like how much these are resources and pages, how big the image is to download. This is basically like how fast can we simply respond to the site. And this is gonna depend again on speed of light and how fast your servers are. If you go from this, it's like three and a half seconds and you drop a standard CDN on it, you actually start to reduce this a lot because all of these things can start to be cached at the edge. You can reduce the amount of time that it takes to generate this kind of stuff and you can have a good time with it. Now we're down to like a second and a half. But here's the thing, the internet is improving. We are no longer in HTTP 1.1. There is this thing called HTTPS slash two, HTTP two. And that is super great because one of the real limitations that CDNs and websites in general have, and if you've been doing web for a while, you may be run into this, that if you try to like load a page that has a lot of files on it, like a ton of like different JavaScript for CSS includes, that it actually, under the old models of HTTP 1.1, you actually have to download each of these files separately. And if you've got like 30 assets on your page and you're trying to download 30 things, it has to do round trips, take trips off speed of light for every single thing on the page. That's one of the reasons that Drupal and his Drupal core implemented a CSS and JavaScript aggregation thing because it just tries to take all the CSS and push it all together, assuming you have to download it one time. In practice, you end up downloading several CSS files because the aggregation is sort of inconsistent and you still have a ton of third party stuff that's downloaded and images and stuff are up, you know, hard to sort of do in this way. HTTP two said, forget about that. We're not gonna do these single plaques situations. We're gonna do a multiplex situation. We're gonna open one socket that's like very wide between the server and the client and we can just throw whatever we want at that. And that allows us to be extremely fast because we don't have to do any additional TCP connections. We don't have to renegotiate our TLS. We make the connection once, we secure it and it goes for it. And this, by the way, only works if you're using HTTPS. You can't use HTTP two without this kind of technology. But we again started at three and a half seconds. This is under one second for a page load and that's freaking amazing. And that's something that I think is a key benefit because not having to wait two and a half seconds is like a big deal. And so adding CDN, so we collected some data at my company about just adding CDNs to a bunch of sites. You were seeing like 30% speed reductions first time to first paint, 60% for if you're overseas. Overseas folks tend to have the most bang for your buck because crossing the oceans takes a while at the speed of light. And you can deliver pages way faster than other people. And if you're an agency that's trying to sell and promote your services to other people, walking into a meeting or walking into a pitch and being like, look, we got the performance thing dialed. Like, we know how to keep your site up. We can give you functionally 100% uptime with brace mode. We can give you mobile users, smaller images. We can make your site faster for people. Like, these are like really important values that can differentiate you when you're selling or just help your university or nonprofit or company like just be better on the web. And being better on the web, it's not just like, oh, it's a little faster that feels good. We can actually get these meaningful numbers and those numbers translate to a lot of things. But PageRank is probably the most important to people. One of the things that Google implemented several years back is this idea that faster websites are better websites, much like websites with more rich content are better websites. Websites are updated more frequently are better websites. And suddenly the ranking that you have on Google is gonna be consistent, it will be improved as you get faster pages. Now, it's a factor among many factors, but in highly competitive spaces, getting up a few positions on the search index actually can be extremely important. And this is sort of a medium time to first bite as per a linear sort of graph of the pages. And that, you know, it's not uncommon if you actually can do a 2.6%, you know, 2.6 times speed increase that you might actually move up a few search rank positions even if you do nothing else to your page content because of the priority placed on fast websites. And that's even more true when you talk about mobile performance. There's even more of a boost on mobile results because when you're doing a phone and you're trying to access stuff, for the phone to do like 30 connections to download things, and that's just, it's a lot for the phone. And the slower the phone speeds, the even more important thing like image optimization is. And getting a faster page speed has like this business value on top of it. It also affects just like straight up user behavior. Like people, it seems very strange to me when I first started getting into this that the idea of a faster site, like people would leave after like a second or whatever. Like I'm like, you can't wait a second to like buy something or whatever. But it turns out that like most people, it's fine waiting a second, but there's, it starts to be statistically pretty important because the faster and faster you get, the more, the more turns and the more involvement you get. So you can sort of see that like, hey, we've got, you know, as the load times increases, the amount of conversions that people get will go down. And there's a lot of different case studies and data. This is from HubSpot doing it. But there's a very consistent pattern in what's going on, which is that like the, for every like basically half second of speed that you're slow, slowness that you have, you start to lose people. You know, like 1.9%, 1.5%. I mean, are those huge numbers? Well, maybe that's how big your site is. But like if you're trying to tell your client that like, oh, we have an e-commerce store and our site's sort of slow. So you're gonna lose 5% of your visitors. Like to them that's 5% of their revenue and that's entirely unacceptable. And so the faster you be, the faster you can get any kind of convergence done. And that is extremely important in my view. And CDNs are probably the best way to get you there because it solves a lot of problems. Like it can make up for a site being sort of jankily built. It can deal with images that were uploaded a long time ago that are really too big, but you don't wanna go back and redo them. Can handle overseas and mobile users in a much more clean and reasonable way. These are very powerful reasons. And people also won't quick out as easily. A lot of people will sort of load half, so the data a lot of people will load half the page and if it doesn't quickly load, they'll just close it and move on. People love, love their tabs and love to leave and go to something else, especially when they have a thousand different links to click on. And so the more instantaneous you can be, the better. And this is super real. I don't know if you've like been on the internet. I can tell in my mind, I Google a page that has a CDN on it because it's snappy. It's with HTTP2 CDN. Snappy, responsive, it's on it. The ones that aren't, it's like pretty obvious and I'm sad for them because it's not even that hard to do. And a lot of them are free. Like you can use cloud for free, like for small sites. And if you're big enough site that you need to pay for someone like that, like it's gonna be such a business benefit that I would think it's probably justifiable to do. Because at the end of the day, like we're trying to get stuff done on the web here. You know, anything that can help make our content more, get more people look at it. Anything to help get more signups, more, more buys, more likes are things that are very, very important. And so that is that. They're outside of the technical fund that I think CDNs offer everyone who plays with them. They offer this extreme user conversion. And I think that's something that you can, that should internally motivate you to deliver to your clients, but also something you can sell on and talk about or just like be happy that you're doing it. And that can be pretty excellent. All right. So hopefully it's like some good vibes. I got a couple things to close out on. Does that feel good to people? Are there some things maybe you hadn't learned before about CDNs? Stuff maybe you want to try? I think there's, and this is also a totally emerging field. Like there's a lot of things that are still going to be. So I think like, you know, some things just like anything, by the way, you're trying to do, unless you're doing an HTTPS, I would just forget about it. You don't really need to deal with that. You want to use HTTPS. You want to use HTTP to full stop. That's the way. And that should be a critical decision point of choosing a CDN and configuring it is how do I get my site HTTPS? How do I use HTTP too? And that means you also don't have to have weird, sometimes people had like CDN.company.com or something. You don't need those things. You don't need to just do the CDN just for like the big images or whatever. You just do it for everything. Their CDNs are not smart enough to be very, very good with that. In the present, I think definitely do performance testing with mobile devices. You install the CDN and you want to see how awesome it is. Pimp your phone and try it. You want to see even more how awesome it is. Google has a really good like test my mobile site item where you can pick if you're like 3G or 4G. You can pick if you're in India, China, North America, Europe, and you can start to see very explicitly like how fast things are and from where the world they are. You definitely should think about your cache timing. It's not enough just to turn on the CDN. You sort of got to think, well, can I use cache tags to evaluate stuff instantaneously? Or if I'm not there yet to implement those, I should then pick like how much time each individual page has. Drupal lets you configure this on a global basis. It is possible to configure this on a per asset or per page basis. And that's pretty good, pretty good behavior. And also, again, HTTP, HTTP too. But the future here is excellent because a lot of these things that actually were very important as web developers early on, things like turning on aggregation of CSS and JavaScript or doing image cache or image style presets are actually no longer that important. Like the CDN can do that work and is happy to do it. More importantly, the HTTP spec is even improving still that HTTP2 has like a couple round trends for the TLS connection. HTTP3 can do it in exactly one. And there's additional compression that could even go in this that when you're transmitting as much data as you're transmitting in the world of CDNs. There's a lot of places that just small optimizations can increase and make for a faster web. So hopefully they got some good energy. I think the future will be really fast. And there's even new cutting edge stuff coming out where you can actually do some of the processing you might have had to do in Drupal. You can actually do on the CDN edge layer. You can do like computing on the edge. This whole thing is just crazy. And so that's why I have this crazy picture. But in general, I'd say I love CDNs. I hope you love CDNs now, or at least we'll try them out more. And this future is gonna be excellent. So thank you.