All Things Membership Hosting, Caching, And Performance With Hosting Expert Denny Cave

Description

In this episode of the Membership Site Success Show, Micah Mitchell sits down with Denny Cave of Member Host and Cave Interactive Media to demystify hosting, caching, and performance for membership sites — covering edge caching, OP cache, Redis object caching, CPU speed vs. concurrency, and when it’s time to upgrade from shared hosting.

In This Video

  • 00:00 Welcome — Denny Cave of Member Host
  • 00:46 From WordPress early days to hosting specialist
  • 02:55 Why hosting matters more for membership sites
  • 05:32 What is caching? (layman’s version)
  • 09:27 What caching works for logged-in members?
  • 12:00 OP cache: caching compiled PHP
  • 14:15 What happens when a server builds a page
  • 19:16 Object caching with Redis for database queries
  • 24:03 Why membership sites get slower as they grow
  • 26:22 The grocery store checkout analogy
  • 29:18 Why upgrading your server doesn’t always help
  • 31:50 Fast processors and concurrency at Member Host
  • 34:14 Concurrency for live events — 1,000+ simultaneous users
  • 37:01 Two causes of slow sites: CPU speed vs. checkout lanes
  • 42:01 Transparency — ask your host what CPU they run
  • 43:00 When should you move to better hosting?
  • 45:18 Don’t over-engineer your hosting or software stack
  • 47:39 Wrap-up & how to connect

Transcript

[00:00] Micah: Hey everybody, Micah Mitchell here with the Membership Site Success Show. Today we have Denny Cave of Member Host. We're going to get into a bunch of hosting stuff. And Denny also has an agency that is Cave Interactive Media. Denny, welcome to the show. Thanks for having me. Excited to be here. Yeah, I'm excited as well because we don't often get too nerdy on here, but I want to get nerdy today because we're talking about hosting and I feel like you have a wealth of information and experience on hosting, specifically for membership sites. Let's know, you're obviously an expert in this area. Tell us a little bit about yourself though, if you don't mind, in terms of business, where did you get started and how did you get to where you are today? And then we'll jump into some specifics.

[00:46] Denny: Yeah, so as I imagine a lot of people have, I've taken a long winding path to get where I am today. I started out with WordPress way back in the day, like 2000, I think it came out 2003, maybe 2002, something. It was early days, 2004 maybe, when I got involved. We didn't have plugins. We didn't have pages even. Everything was hijacking posts to do what you needed to do. And it was a fun time, but not nearly the level of sophistication that we have today. Then as things got further along, we got into, started getting into the hosting game. But again, the ecosystem was not nearly what it is today for security, backups, things like that. And so it became a, almost a liability, you know, in my opinion, where we're losing sleep at night. Maybe it may be a personal liability more than a business one over sites going down or getting hacked and things like that. So I actually transitioned out of WordPress myself for a while and moved to some other hosted CMS products that are no longer around today. And then we came back to WordPress about 2015 or so. And this time got even heavier into hosting and into the performance side of things. And that journey has just continued to grow day by day to forming this partnership with a couple other folks in the hosting space and launching Memberhost.

[02:07] Micah: Nice. So I was going to ask, when you first mentioned like WordPress back in the day, I was going to ask, you know, was that the good old days or is this the good old days? But it sounds like it was not the good old days back then. It wasn't a very secure or mature platform.

[02:20] Denny: Yeah, it was a lot of fun, but yeah, it was a lot of hacking around and you just, there was no standard way for doing a lot of the different things that you wanted to do in a website. But there was an appeal to that for sure. And now things are more sophisticated and better and things are a lot better in a lot of different ways, like with hosting and like I said, security and things like that. Some of the fun hacking stuff is gone, but I don't know that I would have time for that anymore now. And I'm in a different phase of life myself. So yeah, it's, I think time, everything you look back on a lot of times ends up being the good old days. So that certainly was for me, but this may be too in another 10 years.

[02:55] Micah: Well, let's kind of jump into it. In terms of membership sites, why is hosting important? Like why not go with a cheap host? Or why maybe go with a crazy expensive host? You know, and I'm not suggesting either. I think you're somewhere in the middle, but like, why does hosting even matter to a membership site?

[03:15] Denny: Sure. It's a great question. Something not many people think too deeply about whenever they're getting started, setting up a site like this for the first time. A lot of times the thought is just on the stack of software. What do we need to connect the dots to make this happen, to get integrated with our external CRM and to make everything kind of run. But you don't think about the firepower that you need underneath the hood to operate all of that. You know, when you're doing a static marketing site and just kind of sending the same content to every person, there's so many efficiencies with that today with edge caching through Cloudflare or through any other CDN provider where your visits don't even hit the server a lot or maybe even most of the time. So the server behind the scenes doesn't matter too much. And the host can get away with overstuffing the servers with customers. Or running slower speed CPU, running inefficient setups with regard to database or running commodity hardware for the RAM or the disks. And a lot of it then doesn't matter because it's all being cached at the edge. And when somebody requests your site,

[04:16] Micah: they're not even getting it from your server.

[04:19] Denny: They're getting it from whatever the closest Cloudflare node is. That's on the static kind of marketing side of things. But once you get into a dynamic site

[04:25] Micah: where you are letting people log in,

[04:28] Denny: they're seeing content that's unique to them, they're having conversations with people, they're adding items to their cart, and just kind of all these types of functionalities where it's like now my interaction with the site went from being the site is sending the same thing to everybody to now I have a one-to-one relationship with exactly what I'm seeing on the page. That all has to process through the server on the back end somewhere. We can't cache all of that on the edge anymore. And so we have to make sure that we've got not just some extra well-tuned hardware behind the scenes, but just making sure that we're doing everything on the software layer efficiently as well with regard to the types of caching that we use and things like that. So on a marketing site, you can probably run the same site on 10 different hosts and not notice much of a difference. Half of those will probably be sending the data through the exact same Cloudflare node that's closest to you. But once you get into this type of thing where you have to send all the requests through to the back end to generate the content that you need to see, you'll certainly see a speed difference across the different kind of tiers of hosting that you see out there.

[05:32] Micah: Gotcha. And I definitely want to dive into all of the good, juicy details, but I also want to kind of bring it down for anybody who doesn't, for example, know what caching is. I feel like we experience in our support for Membarium, people will use it, not quite understanding what it is. They just hear, oh, caching is good, or caching helps my website be faster. Can you kind of give a layman's version of what caching is so that as we describe layers of caching, they understand kind of the basics?

[06:03] Denny: Yeah. So just in general, again, like you mentioned, there's a lot of different layers, and they all work in different ways to deliver the site as quickly as possible. Caching in general is just a method of taking some type of data that you've already retrieved or generated or rendered in some way. There was some kind of an expense to getting that data the first time. And so now, instead of incurring that expense again to get the data the second time, we just pull that data from the cache. We can kind of store it locally or in a place that's closer to us than that original data was whenever we pulled it up. And now we can serve that a lot faster and a lot more efficiently the next time we need it, and the third and the fourth and the fifth time that we need it. The most popular example is even just your browser cache. Once you load a page and maybe load an image, if you load the page again in 10 seconds, that image probably hasn't changed. It's just going to pull that image right from the cache and not go ask the server for it again.

[06:58] Micah: Gotcha. So I'm going to go with a little bit of an old school example. And again, just for as we get deeper into this, but let's say somebody was hosting a website on a server in their own state, whichever of the states it is in the US here. And then someone from Australia visited their page. They're going to send, they're going to, the server is going to build the page and then send that page to the user in Australia, meaning hit some server in Australia, which will then go down to the user, right? And so kind of in simple terms, it means the next time someone from Australia requests that same page, instead of going all the way to the US server and rebuilding the page and then sending it across, not the distance matters too much,

[07:35] Denny: but instead it's just going to say,

[07:38] Micah: hey, we already have a copy of that page. We just gave it to this guy. Let's give that same copy to the next guy, right? And that's where you're saying for a marketing site where like it's the same homepage, no matter where you look at it from, great, right? Saving time, saving money, saving expense. But for a membership site where, let's say person A in Australia accesses the site, they get totally different access than person B in Australia. Then that caching, you know, obviously you're going to have to go back to the server and say, hey, this isn't person A, this is person B. What should they see? Do I kind of have that right?

[08:11] Denny: Yeah, your first example is pretty close. I would say with the caveat that you have to be running through some kind of DNS caching at that, like Cloudflare, for example, for that first example to work. So if you just point your domain straight to the server and you're in Australia and the server's in the US, like that round trip is going to have to happen for every single visitor that requests, even if the exact same page and the exact same content they're getting, if it's all static, they still would incur that latency to getting the site, you know, getting the site delivered to them. But if they're set up through, again, something like, I'm not promoting Cloudflare, but something like Cloudflare Bunny or something like that, now there's going to be a node probably in Australia, probably multiple nodes in Australia that are going to be closer to that person and they will keep a copy of it and then send it to everybody that asks for it. Yeah.

[08:56] Micah: Gotcha. So without caching, it's going to the server every time. With caching, you get these nodes spread out wherever the page went. There's a node there with the page that can deliver it again locally, right? Yeah. With the edge caching is the term for that.

[09:11] Denny: That's one of the layers.

[09:12] Micah: Cool. So let's get a little bit deeper then because like we're saying, you have no caching and then you have caching. For a membership site though, what type of caching should they be doing and should they not be doing?

[09:25] Denny: So for a membership site or for any dynamic site, so if you're running, maybe you don't have a membership per se, but you're running some type of LMS or you've got e-commerce or something like this, the page cache, this edge cache, page caching, I guess, is technically what we should probably call it. There's also page caching on the server where if you don't have the DNS set up, you can still cache the rendered page and not have to send it back through WordPress to ask it what it needs to show there. That largely goes out the window except for maybe a few marketing pages that you have on your site. So there's still some caching that you need to employ,

[10:00] Micah: but once somebody logs in,

[10:02] Denny: WordPress is going to say, we need to generate this page for somebody, probably mostly from scratch. And so you can have page cache turned on all day long. You can have all the Cloudflare edge cache caching turned on and you're not really going to see an impact whenever that page still has to be rendered and sent through to the server. Those really aren't going to touch the performance of the site at all at that point. Your assets, your JavaScript, your images, things like that, of course, would still be improved by having a CDN layer in there.

[10:32] Micah: So yeah, we want to kind of disregard that.

[10:36] Denny: I mean, that's almost not part of the equation in most of the sites that we've built. Again, for a few key pages. So for the homepage, that's probably fairly static until somebody logs in. Yes, we would probably have some. It's not that we would ignore it and not have it at all. I'm not saying turn it off, but you're going to get limited. But you can't say, oh, I'll just turn the caching on and now performance is going to get better because it's probably not for once somebody's logged in. And I think you asked the question, what kind do we want to see?

[11:01] Micah: Yeah, what caching is appropriate? Like you said, maybe the JavaScript, the images, but yeah, elaborate if you would.

[11:08] Denny: Yeah, so we lose a lot of benefits of page caching whenever we get into a scenario like this. Once somebody logs in and needs to see the unique content to them. But once they log in,

[11:18] Micah: they're still from request to request.

[11:21] Denny: And meaning like when I visit page A and then I turn around and visit page B and keep like kind of moving through the site and doing different things within the site, I'm still logged in as the same user. I still have the same first name that I did five minutes ago. I still have the same email that I did five minutes ago. And a lot of these pieces, even though we're generating the page from scratch and rendering that to the user on an individual basis, a lot of the pieces that go into that are not unique. Those are going to stay the same. The name of the site and most of the settings of the site and the plugins that are installed and all these different things are going to mostly stay the same from request to request. So what we can do is optimize. There's two main layers that I like to tweak and make sure are configured. One is called the OP cache. And this is actually a file cache built into PHP where like if I'm loading the files from Embarium and it's requiring this PHP file to do whatever it's doing. And then I click to go to the next page and it needs to load that file again. It needs to check all the same hooks that it was checking before. We don't need to pull that into PHP and interpret it all over again. What we can do is actually interpret that the first time. Then we can say,

[12:32] Micah: okay, let's store essentially the code

[12:35] Denny: that the computer uses to actually run the zeros and ones, what it uses to do its job. Let's store that interpreted version of what we found in the PHP file. Let's store that for, not for a long time, 30 seconds, 60 seconds, something like that. But it's enough time that if you're getting hammered with visitors, they don't all have to incur

[12:54] Micah: that processing cost

[12:55] Denny: of pulling up the PHP file, converting it into code that the computer understands and then running it. They can just go, okay, hey, we just got that file 30 seconds ago and we're going to assume it's the same and we'll go ahead and get that same code and run that instead of compiling it again. So that's one layer of caching that's really good. OP cache. Not a lot of, I shouldn't say not a lot of, but it tends to be something

[13:16] Micah: that hosts ignore

[13:18] Denny: because if, again, especially at the lower level, the shared hosting, it has a, it stores the compiled files in RAM, in your memory.

[13:25] Micah: And so when you're running

[13:27] Denny: in a more commodity type hosting situation, that's an expense that they can kind of do away with if they don't turn on the OP cache or if they give it too low of a value, you can have it turned on and not have it configured properly and you're not taking full advantage of its capabilities then. And we can talk more about that if you want to get more in the weeds.

[13:44] Micah: Yeah. Let me ask before you go to the second type. So with the OP cache, because I still think, you know, you've been in technology for so long, you get this, but there's going to be people listening who are kind of like, well, what do you mean get the file? You know, and I guess, can you explain some of the steps that the server is doing and you kind of alluded to them, but kind of slow down and explain like, hey, every one of these steps is milliseconds, right? Is energy and so on. Can you kind of explain some of those steps so they see your stack?

[14:15] Denny: Yeah, that's a fair point. Thanks for slowing me down on that. You told me you wanted to nerd out and I love it. Here we go. So, yeah, so let's, let's start with you're sitting in front of your web browser and you type in micascommunity.com. We go to visit that site. So that request goes from your web browser out to, here's a layer of caching that we're not really going to talk about because we don't have control over it, but it goes out to the, to the DNS and it says, it asks the domain name vendor, like, hey, what, where is this server located? What IP address does this server resolve to? So that value, whatever we determine that those ones and zeros that we give them there gets cached in your browser. It gets cached at local DNS nodes around the world. But at any rate, it converts that into the request that it sends through to the server. Now it has the address of the server, sends it to the correct computer in the data center somewhere. And now we get that filtered down to, to your web hosting account. When that request comes into your account, it's going to, depends on the type of file it's asking for and the server configuration. If it's a static file, like an image or a JavaScript file, a lot of times that'll just bypass PHP altogether. It'll just go straight to, if it's configured properly, it'll go straight to the file asset and just serve that up. And it's, it's lightning quick. Your server, if you were watching your server stats, you would never even know

[15:32] Micah: if there were a couple hundred people

[15:34] Denny: hitting those at the exact same time, you wouldn't see anything. But for all those requests that aren't static image files or that come up as a, maybe it's an image file, but it comes up as a 404 or something like that. All those requests in a WordPress site are going to get sent to WordPress and onto PHP. That's where we do the magic that is everything that's happening under the hood with WordPress. So we, it loads up everything, loads up all of your plugins, looks at all of the hooks and filters and everything that the plugins use to do their job and executes all of that. Well, it's like a big list of instructions of steps that it needs to take to get through to do everything that needs to happen to render, you know, to build the HTML of the page that we're going to send back to the user. So we will,

[16:16] Micah: you know,

[16:17] Denny: if we were like on the, on the back end of WordPress, for example, we would load up and we would execute everything to get who the user is and what their, what their username is, what their email is. And as we'd say, howdy Denny, their first name up in the, in the top right corner. And, um, look at all the plugins and open up all the files that are required in this case to execute and, um, churn through all that code. I mean, there's a, there's a lot that goes on on scenes that happens in a few milliseconds. It's kind of amazing whenever you,

[16:45] Micah: um,

[16:46] Denny: sit down and think about it and then it sends that HTML out to the user.

[16:51] Micah: Yeah. If I could pause you for one second, this is perfect. I'll, I'll just give kind of a simple example.

[16:56] Denny: So it's almost like,

[16:58] Micah: you know, your older computer computers these days are a little bit quicker, but I think what he's kind of saying is, let's say somebody asks you for a document and you have to turn on your computer and you have to load up Word or whatever and then you have to load up Excel and you have to mail merge into the document and you have to copy and paste some images. Meaning like, if you as a person did this, you're opening multiple things to construct a page that you then send. And that's what he's saying the server is doing in just milliseconds. It's saying, do we need to run WordPress? If so, great. Open up all the plugins. What all is here? What settings are needed? Do we need, you know, this, do we need that? And it just, it actually has to activate all of these things just to build a page and you just think, oh, I asked for a page and it's like, well, if that page is dynamic, in other words, generated by WordPress, it has to load up all these systems to build the page to deliver it, right?

[17:50] Denny: Yeah,

[17:50] Micah: exactly. Appreciate you going into that. So, so then, let's say it loads up all these systems and it makes the page and then continue on if you don't mind.

[17:58] Denny: So once we've rendered whatever that HTML, because the, you know, we're doing all this back-end coding, but the browser at the end of the day only understands JavaScript, HTML, and whatever static assets you send it. And so, we then are sending that compiled HTML back to the browser and then it's got its own interpreter to read the CSS files and read the HTML file and the JavaScript and then figure out how does this all need to render on the page. So, what we send is just a bundle of code back to the server, I'm sorry, back to the web browser and then the web browser does the interpretation of all that. And that's why you see differences

[18:31] Micah: between different web browsers

[18:33] Denny: and how they might render your site or handle different things because they're doing all this interpretation of the code once you send it back to them.

[18:39] Micah: And so that was OP caching. What was the second type?

[18:43] Denny: Yeah, so the, and just real quick to make sure it's connected through so that when we're doing all that processing, all those files that we opened up, that's where the OP cache comes in. As we open up all that, well, we don't need to open up those files in the same way we get that compiled version of it. And so we're kind of cutting down on one piece of the, of the pie. You know, we, again, we got the DNS caching that I mentioned right at the top of that example. You might cut a few milliseconds off by not having to ask the DNS server where, where this website is located. And then this next layer here, the OP caching, we're cutting a few milliseconds off by not having to reprocess all the PHP. The next level, and this one can have a major impact. And also it is something where, depends on the host, it's becoming, if you're in a managed WordPress host, you should expect to have this. If you're doing like a cPanel hosting, you maybe, might not, but object caching is, is what we're looking at next. And WordPress has some built in that it, that it tries to do by default, but really you're looking for something like a Redis object caching or memcache is kind of the, the types of caching that we're usually looking at. And then object caching is related to the database. So when you reach out, let's, we're just going to reach out and find out what's the user's first name when we ask the database for this information. So again, the request comes into the server, the PHP starts processing everything it needs to with WordPress and it runs into a database value that it needs. And so it will say, hey, database, what's this user's first name? And the database says, hold on, let me look. Okay, this looks like this user ID is Denny. It sends that back to PHP and now PHP does whatever it needs to to generate and put that name into the page. And then you go load the next page and it would ask that again, hey, server, what user is this? Oh, it's Denny. Okay. And so normally without any kind of object caching, you would just be asking for these values over and over again for every page request, maybe even if it's not coded efficiently or properly, you might ask for these same values multiple times in the same page request.

[20:41] Micah: If,

[20:42] Denny: for example,

[20:42] Micah: we were asking

[20:43] Denny: for the value in one place and then later on we needed the value but the first time we asked for it we didn't put it in a variable or something like that so it could be reused, we might be asking for that from the database multiple times. so it can be extremely inefficient especially in a system like WordPress

[20:58] Micah: where we're not

[21:00] Denny: just running WordPress. WordPress core is fairly fast if you're just running it without anything else

[21:05] Micah: but we're not.

[21:07] Denny: We're all, that's why we're here.

[21:10] Micah: We're

[21:10] Denny: Membarium and we're running Buddy Boss and Game & Press and all these different things that are layering in and they all have their own database calls that they're asking for and so the way we get efficiency here at this level is with the object caching and again the most common you'll probably see is Redis object caching that's kind of taken over as being the main way that we handle this in WordPress and so it just stores a copy of it. When I ask for what's that first name and it's Denny and then it sends that back to PHP well we store that now in memory you know in our RAM so the next time we need to get it we ask for that first from the RAM hey what was what was the user's name and if it has that value and it's not too stale it doesn't have any indication that it needs to retrieve it from the database fresh it'll just spit it right back out to you without having to go make that trip to the database run the query on the database and then return the data back.

[22:03] Micah: So this is great and I love the level of detail I'll give a little bit of an analogy here for people watching if this is kind of

[22:11] Denny: you know

[22:11] Micah: Greek to you what he's basically saying is like if you imagine you were in a library and it's like okay what is this person's name and some librarian has to like run back somewhere and find it and come back and then two seconds later oh what was their name and they have to run back and get it and come back and five seconds right not efficient at all versus once you get that name just write it down right here leave it on the desk and that's that's like an object that's now cached like okay we have a we have their name if we need it again in the next whatever period of time my curiosity here is are you talking about it's pulled and put in a session or is this some layer under a session

[22:44] Denny: this is this is pulled and put into you know in the examples that I was giving into a separate piece of software that's running on the server that's called redis it you have php interpreting the different things that are happening with the files and asking for information from the database you have the database which is storing all of the information at the end of the day you know if you were to stop visiting the site restart the server shut it down whatever like the information is stored in the database we're gonna load it into all these layers of caching but the first time we get it we have to get it out of the database and then redis is just another utility that it's a it's another type of database actually but it runs instead of running from the hard disk which is slow compared to the memory that is in a computer or the ram the redis runs runs in that ram it stores all of its information there so that it's it's extremely fast to retrieve out of that so it's just again pulling that data from where it's at bringing it a little bit closer and bringing it into a fashion you know into a place where we can access it more quickly

[23:38] Micah: and all of this you're saying is server side so this is all happening on the web server

[23:44] Denny: right you have just like you would have to have a host that would support php to begin with and not like .net or something like that you have to have a php host to support wordpress well to have this layer of caching you would have to have somebody that supports redis object caching in this place or some other alternative like that

[24:01] Micah: okay and let me jump up to kind of like a high level view for a minute here so we're talking about we kind of went really deep down right into the server of like okay there's all these layers from a high level you have a like let's let's put it into a business case let's say you have a membership site owner and they're successful and they have a lot of members and their site is slow and the members are complaining hey when I log in

[24:25] Denny: it takes five seconds

[24:26] Micah: and when I go to the forum or when I click on a video like everything is slow because I'm sure this is the case with the people you guys host on member host is you know they're moving to to improve their member experience maybe they're also improving costs and other things you can probably speak to that

[24:42] Denny: but what is it

[24:44] Micah: I guess what is the challenge they're experiencing and then you know what is the result when they do get this stuff right

[24:50] Denny: yeah so I think the biggest thing that we run into or that we see that people don't account for is when way back earlier on when we were talking about the static files and how quick they are to serve and if it's just a static cached page even if that's coming from your server let's just take cloud player and everything else out of the scenario it's virtually no work for the server to pull up a static file and send it whether that's the cached version of the page or just a static HTML file or an image or whatever it's very easy for it to send it across the wire and incur virtually no processing cost let's say when we get into the dynamic pieces and we have to do all this churning through the code to generate

[25:28] Micah: the rendered page

[25:30] Denny: that's all got to go through the processor and it has to interpret and do everything it needs to there so the biggest thing that people don't understand is that they'll have a website and maybe it's pretty fast when they start maybe it's fine and then they start layering in pieces they go from a static marketing site to now they maybe they're going to expand and start their membership site and then they're bringing in some type of social network piece to it too and like as they start to layer these pieces in the site gets slower and they don't really understand why a lot of times the host won't admit why you know say well everything looks okay you know or point to something else but it amounts to basically

[26:04] Micah: you only have so many

[26:05] Denny: processing channels at most hosts some will say unlimited and that probably they don't artificially limit you usually when they say that but there's still some physical limit to the amount of processing power that any one server has and you've been using a lot of analogies we haven't talked about this before but I love analogies I'm an analogy guy so for me the analogy I use here is going to the supermarket and you go into the grocery store and get whatever you're going to get you know this is PHP compiling the pieces that it needs pulling up all that code that it needs to do its job that's you putting groceries into the cart you go get in line that is now PHP sending all of the code over to a processor and the cashier is the CPU or the processor that's actually going to do the work to bring these items out and get you out of the store so if you imagine and we've all been there we've been to the group especially with all the self-checkout lanes now we go to the grocery store and there's only like one cashier to do the work or maybe yeah you are going to self-checkout and you're doing it yourself there's still a limited number of slots and so a processor is very much the same setup in the same way there's only so many slots that you can try and fall into to get through to the other side of the checkout and so not only does the number of slots that you have or in this case the number of processors available to you that not only does that impact it but also the speed of the processor so again you know you've all looked at the checkout and judged the person and gone that lady looks a lot older than this other girl or this girl's screwing around on her phone I don't know how invested she is into getting me through here quickly so you judge and you make the best you think you pick the person you think is going to check you out the fastest but if you do get stuck with that slow person or you get stuck behind somebody who has to call customer service because they had an issue with their credit card or something well now your request is backed up behind that and you're not getting out of the store until this issue is cleared out and so when you have large code bases or slow processors or not enough processors you start to see the requests stack up and the line gets longer and longer and a lot of times especially with various types of hosting that you're not running yourself you don't have an option to just call the backup and say hey we've got too many people in line we need more we need more cashiers there's usually some kind of a process you have to go through to upgrade to either upgrade to a higher plan level or reprovision your server with more processors things like that and so that's the biggest thing that we see I don't remember sorry I got so far down my analogy I forgot the exact question but when we're going from like a static site to a marketing site that most people don't I'm sorry static site to a dynamic site that most people don't think about or even understand is kind of happening behind the scenes and then don't understand what those what are even the toggles the number of processors and the speed of the processors and all those the layers of caching you just don't know a lot of time what's available to you when you're getting started with this stuff

[28:50] Micah: it's a brilliant analogy actually so it's almost like people they sign up for shared hosting with whatever company I'll say GoDaddy I don't have anything against them but I'm just saying they sell like basic shared hosting so you jump on that and like you're saying you're fine until things get more complex or it gets crowded you know other people on the server with you or whatever are also in line trying to you know process I love that analogy brilliant so can you think of any examples of a business who improved this and then kind of what was the result because I'm assuming members were happier but what does that translate into or kind of you know maybe what are some of the success stories of member hosts because I understand you guys bring people on and they they like it there right we're going to move some of our stuff over to you guys because it just makes too much sense we're on

[29:42] Denny: and we think

[29:43] Micah: we're sophisticated hosting wise but when you explained what you're doing it's like yeah we're definitely not doing that and we should be

[29:49] Denny: yeah I think you know and I'm not obviously we're we're doing we host things at a higher level than a lot of people would even consider starting out with their site and so I'm never somebody who says like you gotta we gotta bring in the big guns to start

[30:04] Micah: like start

[30:05] Denny: where you need to and go through your journey and grow how you need to but if you know yeah that you're you're gonna have a big if you've already got a massive audience and you're launching some new product and the product happens to be this membership and you like you know there's gonna be a big influx of people you do have to think about these things more carefully from the get-go I think probably for a large number of people it's okay to start out somewhere and kind of learn the pieces but you have to know this type of information to understand when is it time to when have I outgrown this when is it time to move on to the to the next thing what was it you asked specifically I'm sorry just kind of about you know some of the stories yeah so there's a couple of things that we hear when we migrate somebody over because we do things differently in a couple of ways we've talked about this grocery store example and so one of the ways we help people out is by getting them into setups where they just have more grocery store checkout lanes that they can send customers through that's a big one for people but another thing we do as a part of that that we kind of don't compromise on ever even if you don't need that many grocery store checkout lanes we run extremely fast processors the numbers don't really matter too much I mean you would I'm sorry the numbers don't always indicate the speed that you're going to get out of it but in general we don't run anything below 3 gigahertz we're actually pushing pretty closely here to not being running anything under 4 gigahertz if you're like looking for a number and what that means is that we've got we've got our A tier or S tier cashiers on on every checkout they're extremely fast they're paying attention they're locked in they know what they're doing we tune the OP cache and the object caching and all those layers that we talked about so that everything's going through extremely quickly if there is a problem we've got we've got the customer service manager standing right there that you know are right at the cat helping immediately and so we've tuned everything so that the requests each individual request processes extremely quickly so the first thing we hear on several occasions is just like a I'm quoting a customer one time oh my god it's so fast like that was all they say you know hey your site's ready to go that was the reply we got so and that's really rewarding to hear of course there's more than that there's the scalability and what does it look like under load with more users

[32:15] Micah: but that's the response

[32:17] Denny: I expect I expect every customer has that thought in their head whenever they migrate to us because there are only a handful of other hosting companies that run the same caliber of hardware we do when it comes to speed but yeah the other piece of it is the concurrency we call it so that's the number of people we're sending through the checkout at the same time that would be the concurrency and there's a couple different ways that people talk about concurrency and measure it for the purposes of this conversation it's literally how many people can we send through the web server how many people can submit a request at the same time and we have we have ways of clustering the servers as well such that we can accommodate a large number of visitors at any one time and it just goes beyond what you're going to get out of most off-the-shelf packages whenever you go to even to a managed host you're going to have to probably get into the enterprise level plans and the custom you know call us for a quote kind of things before we start to see

[33:09] Micah: the same types

[33:11] Denny: of optimizations and functionality and processor speeds and things like that that we do by default

[33:17] Micah: that's so cool I think what is unique to me in talking to because we've dealt with hundreds if not maybe even a thousand or more hosts different I should say hosting setups right and it's interesting to me because like you're saying you run from the get-go a level of hardware that's just fast fast checkers you know the aid team right and then you kind of configure you know let's use your store analogy you've got the store configured you've got enough lanes you've got kind of everything dialed in for membership sites and I'm sure there's other use cases but not many people even you know understand membership caching to begin with but where you understand okay how many layers deep can we go down and optimize before we lose the uniqueness of the member right you know object caching maybe page caching if it's not a member page and then object caching if it is a different layer so that you're you're never giving them the wrong info but you're doing all this super fast and the reason I think this is so important at least in my experience is when a membership site owner gets pretty sophisticated and for example they want to do a live event via their membership site so that people actually have to authenticate through the site attend the event and they might even have interaction during the event hey you're logged in do this do that do whatever right and so let's say they've got a thousand people concurrently just hitting the site from all angles right interacting in the community because that's what the that's what the membership site owner wants hey everybody go in the community and tell me this tell me that whatever but if you don't have this stuff set up you know and like you're saying you've now layered in social on top of all the rest of it those are going to be expensive interactions for the server especially if there's a thousand or more whatever people on it right then and so I understand you know and I appreciate what you're saying a beginner probably at least for right now maybe shouldn't start with you they can start wherever but when they experience slowness if it's a membership site I would recommend you know talking to Denny and going to member host because my experience mostly is someone will say oh my site is slow let me upgrade my server and that doesn't actually fix it and now they're just paying more because it wasn't you know it wasn't a matter of the lanes it was a matter of the shelves are all screwed up like some back end thing is screwed up right something else and we even had this experience where we upgraded our hosting started paying a ton of money and I won't say who it is but our host when we realized oh that wasn't actually the fix this other thing is the fix they're like well we don't actually have a way to downgrade you so you're kind of like stuck at this hosting plan and just all sorts of silliness with different hosts but yeah I just find it interesting that there's a solution for this type of membership site because in my experience again most membership site owners are frustrated about this because they

[36:01] Denny: they're like

[36:02] Micah: okay whatever service failed us can we just buy more no they don't have like okay that doesn't work I'm gonna get my own server now I gotta hire a guy to manage it and now I gotta do all this other junk and not saying you can't find something that works but just generally speaking

[36:16] Denny: you know

[36:17] Micah: they don't know enough to make the right setup and most I think hosting companies don't even understand the membership site enough to create the right setup and so you guys specializing in it right member host it just seems like you're dialing in all all of the layers and again this is even just talking to you

[36:33] Denny: you know

[36:34] Micah: most people don't don't understand what you understand and I didn't understand you were in WordPress way back when which is cool so in a minute yeah

[36:44] Denny: the internet under

[36:44] Micah: yeah go ahead

[36:45] Denny: sorry I don't want to interrupt your train of thought or where you're headed but I did want to you touched on something that I think is really important

[36:51] Micah: that doesn't work

[36:53] Denny: for people to understand as they are going on their hosting journey

[36:56] Micah: and we touched on it

[36:58] Denny: earlier too but I want to clarify it so when you get to that that conversation like you said you had like okay we need to it's time to upgrade the server well there's two things there's probably more than this but there's two main things in my opinion that can make the site slow one is you just you have slow CPU and you're asking because you're running WordPress you're asking it to do too much so it's just it's it's a mismatch between the code base that we're running

[37:20] Micah: and the speeds

[37:21] Denny: of the CPU that we're running the other is we don't have enough checkout lanes

[37:25] Micah: okay

[37:26] Denny: so what a lot of hosts do and again the landscape of this is getting better there are starting to be people kind of focusing on the types of things that we see as being important as well but as a generalization you'll see people say oh yes you need to upgrade your server but the upgrade is we added more checkout lanes of the and nothing against the elderly but of the 90 year old lady that can't see what she's doing and is taking a really long time to check you out we added more checkout lanes of that so now your problem probably wasn't that you didn't have enough checkout lanes it was that you had the wrong cashier your cashier wasn't fast enough and so if we add more slow cashiers it doesn't do anything we weren't overwhelming the cashier because of the number of requests we were overwhelming the cashier because of this number of items we're asking her to check out at one time and so I don't know that's a really important point to make that just because you upgrade your server what you're probably going to get in a lot of cases is we gave you two processing cores two CPU or vCPU on the baseline plan and you need to upgrade your server and now you just get four or six or eight of those but they're the exact same types of cores they're the exact same speed of processors they just now you have more of them available to you and that won't if you imagine you don't have any visitors and you have one it's just you you're just you're just building the site and you say man this site is slow you can have a whole data center full of processors available to you and it won't make the site faster because WordPress and PHP they come in and they go through one checkout lane so they can't split things up and go through multiple checkout lanes it goes through one checkout lane so if you've got a slow checkout lane you're going to have a slow site no matter how many checkouts you have available to you I don't know if that makes sense or if that's helpful or not but that's a big thing that I think a lot of people don't understand is that upgrading server doesn't necessarily mean it's going to get faster if you're not upgrading

[39:12] Micah: the right component

[39:14] Denny: or the right aspect of the server

[39:17] Micah: yeah absolutely it makes me think too this is a little bit you know we'll give the elderly checkout lady a break and say it's the system like have you been to a place where their system they're entering the stuff into is like

[39:30] Denny: you know

[39:31] Micah: I was getting tires the other day and the dude took like 15 minutes to enter the order and I'm thinking how is that

[39:38] Denny: you know

[39:39] Micah: good for them basically how does that work

[39:42] Denny: it's somebody's there's a manager somewhere that's needing that data I used to be a pharmacist I don't know if we ever talked about that

[39:50] Micah: but we had

[39:51] Denny: a similar system and I feel your pain you know it was like you have to jump through all these hoops just to be like here's your medicine you know stuff

[39:59] Micah: yeah no it's I love the store analogy because yeah you ask them to upgrade and they're like oh look we put in more shelves and it's like I didn't need more shelves it really it's just yeah the system sucks and I have a hunch correct me if I'm wrong but I'm guessing here that probably a lot of these hosting companies they have their like high-end hosting that they're charging a lot for and when that machine gets old and they have to upgrade it that machine probably becomes the shared hosting machine right

[40:27] Denny: yeah I think it depends on the offering that the provider has if they have a more premium offering yeah that's the exact kind of thing that would happen they would just let that older commodity or that older generation of hardware kind of filter down and become part of their lower tier of hosting for sure some providers don't even have that higher tier necessarily it's just they just start out on lower it's cheaper you can I don't like to generalize and say that people are like or assume that people are purposely doing things to be sneaky about it

[40:55] Micah: but it's definitely

[40:57] Denny: it's easy to pull the wool over somebody's eyes and say well I don't know all the other sites are running fine on the server and to kind of talk people in circles when really you know at the end of the day that you bought too slow as a provider you bought too slow of a CPU that you've put into your machines and you're loading too many people on it at one time or you should know maybe you don't but and you also mentioned this earlier about the hosts not knowing some of these things somebody there knows these things there's engineers somewhere that know that these things are available to them

[41:29] Micah: that the frontline

[41:30] Denny: support that you're dealing with has probably never heard of it because it's not part of their job you know they don't have that available to them

[41:37] Micah: so yeah

[41:39] Denny: it's not it's a conscious decision

[41:42] Micah: for probably more

[41:43] Denny: people than would care to admit it I think and I mean everything in life is give and take but sometimes you need to know you don't have the transparency and that's a big thing that we really promote at Member Host

[41:58] Micah: is that

[41:59] Denny: we don't try and pull the wool over your eyes and we do are transparent about the problems that we have or the types of processors we're running and things like that and there's some other managed hosts that you get

[42:09] Micah: you get talked

[42:10] Denny: in circles if you try and ask anything about what CPU are running ask your host if you're listening to this ask your host what kind of CPU you're running and they either they won't know or they won't tell you I can in 80% of the cases

[42:24] Micah: yeah maybe the guy who knows probably isn't allowed to tell you

[42:28] Denny: yeah no for sure that's 100%

[42:30] Micah: yeah

[42:31] Denny: yeah

[42:32] Micah: so I guess you know to bring it home to the average membership site person right they're they're trying to get started they can start kind of anywhere probably doesn't matter initially as long as it's you know if they're not hearing that it's a problem it's probably fine when it does become a problem like let's let's let me ask you this what

[42:52] Denny: what is the

[42:53] Micah: average maybe number of members is it somebody who has like 500 or that has a thousand like who's going to member host

[42:59] Denny: it depends on so many things so you know how often those members come in like just having you can have 100,000 members just sitting in a database and if they don't ever come to the site then they're not impacting the server

[43:09] Micah: so in general

[43:11] Denny: I would say it's probably you know when people starting in getting into multiple hundreds of active you know and active maybe like on a weekly basis users that's where we start to see

[43:20] Micah: the benefits

[43:21] Denny: from something like this but if you've got if you've just got a few dozen users that are active in any given week or month there may be times when it gets busy but overall you may be better off you know sticking with something that's lower cost or more manageable for you at the time or just you know not going through the headache of migrating if you're not quite there yet but you'll start to see the signs of it you'll hear customers say or visitors will say that the pages are obviously loading slowly or we're getting 504 errors or something like that where certain components of the server are not responding to the request in enough time and so it just cancels the request but you'll start to see the signs of it and you'll you'll know your customers will let you know for sure especially if they're paying for membership they will usually be very vocal about it and it's not you know like I said I would love for everybody to come get started on us right away but I understand that people have their journeys and they have their past that they are going to go through and sometimes it's honestly better for us if somebody's had that experience they've been burned they felt what used somebody that isn't optimized for what they're doing because then when they come out I mean we look like rock stars just right out of the gate they don't they

[44:28] Micah: they know

[44:29] Denny: the other way and it was terrible so it's an it's an easy win for us if somebody comes to us direct they don't have that past experience to judge from

[44:35] Micah: so yeah yeah I almost want to say it was Charlie Munger but maybe not and they were saying you know the reason my marriage is so good is because of my wife's first husband yeah yeah that's just just like she appreciates me right sure

[44:54] Denny: so

[44:55] Micah: and yeah I think you know we're gonna discuss maybe seeing if you guys can provide some sort of you know beginning solution so that maybe some someday somebody can start on member host even though they're a beginner and then just like

[45:08] Denny: you know

[45:08] Micah: graduate through your levels but yeah I appreciate you being up front about hey you know it's okay start wherever and then if you have these issues come on over we'll take good care of you any advice generally for membership side owners doesn't have to be about hosting I'm sure we could get into way more stuff there but just kind of in closing anything come to mind

[45:27] Denny: yeah I mean I think you know I don't know if you want something not related to hosting but to me it's you know thinking about where you're headed and what resources you have available to you in terms of like your audience size and things like do you already have an audience that you're deploying something to is this something brand new that you're trying to start up and just having almost an honest conversation with yourself

[45:49] Micah: about where you're at

[45:50] Denny: because that's going to inform so many of the decisions that you make in getting started with this hosting definitely is one component of it do I really need higher powered hosting can I start on something you know can I just spin this up next to wherever my marketing site is at right now and it's not necessarily even the cost of that but the migration cost later you know am I anticipating maybe I don't have anybody today maybe it is brand new but I know because of my audience size I'm going to have a thousand people in the first week well don't mess around with doing something smaller then like go ahead and get on proper hosting but I think that can inform so many other things about the way you're building your site too if you're if you're honest with yourself about the audience everybody comes through and says I got the nice you know it's the next Facebook for dogs or whatever you know that's the old kind of joke that we have and but it's true everybody everybody thinks they're going to blow it up and hopefully they do but the I think the reality is that

[46:41] Micah: a lot of people don't

[46:43] Denny: and so being realistic with yourself about how far you're going to go with your expenditures on your hosting but also other pieces of software and things like that that you're going to implement and not just from again from a cost perspective but from a time and energy perspective you know so to me

[46:58] Micah: it's

[46:59] Denny: I'm a fan of getting started small and just like letting it snowball from there within reason think about the things and try and anticipate what's coming in the future but don't over-engineer the solution I think is the takeaway for me from hosting all the way through the software stack don't over-engineer it if you don't have any users

[47:17] Micah: you know

[47:18] Denny: focus on getting your users first and taking care of your audience

[47:21] Micah: yeah you're a you're a man after my own heart you you and your company I think are are a good fit with Manbirium because we think a lot the same as far as like hey you don't have to start here do what you gotta do we'll tell you if if you shouldn't be here you know yeah but when you are ready it's you know it's a good place to be well Denny thanks so much for coming on here today those of you watching you can go to member host or check out cave interactive media which is Denny's agency on the side so I'm sure we'll have you back on another time to go deeper but I appreciate you taking the time today and answering my very

[47:55] Denny: you know

[47:55] Micah: specific questions in such detail you were awesome

[47:58] Denny: yeah fabulous I appreciate you having me on your analogy game is strong

[48:03] Micah: I appreciate it thanks man