A Deep Dive Into Serverless, Advanced WordPress Development, and Ymir with Carl Alexander

Episode 11 August 04, 2023 01:07:23
A Deep Dive Into Serverless, Advanced WordPress Development, and Ymir with Carl Alexander
Within WordPress
A Deep Dive Into Serverless, Advanced WordPress Development, and Ymir with Carl Alexander

Aug 04 2023 | 01:07:23

/

Show Notes

In this Within WordPress podcast episode, I talk to Carl Alexander, a WordPress developer from Canada. Carl shares his journey with WordPress, starting from when he got hired as a WordPress developer in 2008. He talks about his involvement in the WordPress community, including organizing events and speaking at WordCamps. Carl also mentions his book on object-oriented programming for WordPress and his current project, Ymir, which is a serverless WordPress solution.

The main focus of the podcast is on serverless WordPress and its benefits for scaling WordPress sites. Carl explains that serverless architecture abstracts the need to manage servers, allowing developers to focus on writing code. He discusses the challenges of scaling WordPress, particularly for applications with spiky, non-cacheable traffic, such as e-commerce sites and e-learning platforms. Carl highlights the advantages of serverless WordPress, including the ability to elastically scale compute resources and the potential for building innovative WordPress products.

However, Carl acknowledges that serverless WordPress is not a one-size-fits-all solution and may not be suitable for all use cases. He mentions the complexity of cloud infrastructure and the need for developers to understand serverless concepts. Carl also discusses the limitations of serverless WordPress, such as latency issues and plugin compatibility.

Overall, this episode provides insights into the world of serverless WordPress and the challenges and opportunities it presents for developers and hosting companies.

View Full Transcript

Episode Transcript

[00:00:00] Speaker A: Welcome to yet another edition of Within WordPress, the podcast you want to be listening to. It's the podcast where you learn everything about all those people making up this wonderful WordPress community. With us today is all the way from Canada, is Mr. Carl Alexander. Carl, how are you doing? [00:00:25] Speaker B: I'm doing great. How about you? [00:00:27] Speaker A: I'm I'm excellent. I've been working out this afternoon, and that always sort of invigorates me a little bit, so I'm good. [00:00:35] Speaker B: Yeah. You got some athletes balls lifted? [00:00:38] Speaker A: No, this is just normal gym stuff. We don't always go fancy. [00:00:44] Speaker B: Okay. Yeah, I'm afternoon, too, so I know the importance. Yeah. I wish I was a morning person and I could actually go in the morning, but I go afternoon. [00:00:54] Speaker A: I feel you on that one. I can be a morning person, but I'm typically not. So I ask this all of my guests, and what is the thing that connects you to WordPress? Where can people know you from? So how about you tell a little bit about yourself? [00:01:15] Speaker B: Yeah, so I got into WordPress in 2008. I basically got hired at this agency, and they were like I was their first WordPress developer, and I started their WordPress PHP team, basically. And then that summer I found out there was, like, a work camp in Montreal. So I was, oh, like, let me go to that. And it was like one of the OGS. Like, Montreal was one of the older work camps, and Matt used to come, so Matt was there that year, and I just liked the feel a lot. And I started doing meetups, and then the second year I started volunteering, and then I started organizing events. And for ten years until COVID, I was a work camp organizer in Montreal and event organizer. And then I started speaking. So I spoke at the original work camp, US. [00:02:27] Speaker A: That's the one in Philadelphia, right? [00:02:28] Speaker B: Yeah, that was the one in Philadelphia. So now I'm actually at two out of three OG regional, like weird OG or big work camps that I've spoken to. I spoke at work camp Asia this year. That was the first work camp Asia. And I spoke at the first work camp US. As to I have to nail the to get I have to get into the first camp. Latin America. [00:02:54] Speaker A: Yeah, you need europe is is unfortunately no longer an option for you. [00:02:59] Speaker B: Yeah, no, it's gone. It's gone. I wasn't even traveling by then when WordCamp Euro was happening, but yeah, so I've been involved in WordPress for a long time, organizing events and speaking. You can find me, actually, I didn't even plug my site yet, but I'm at Carlalexander CA. I'm also known for writing about really advanced work programming topics or just topics around WordPress. I wrote a book called Object Oriented Programming for WordPress. I think that teaches you object oriented programming. Actually, I think it's using WordPress. I'm really bad at shilling my own stuff, but it's been a good book. I've made like $30,000 with it. So it's like pretty good. Yeah, it's pretty good for a niche book about object oriented programming. So it's pretty good. So I've been involved at teaching a lot of in WordPress for a while and organizing events, and now I'm working on Emir, which is basically serverless WordPress, which is what I talked about at WordCamp Asia. [00:04:09] Speaker A: Serverless WordPress or Emir specifically serverless WordPress. [00:04:15] Speaker B: That I talked mean at the end. I felt bad because I joked about it on Twitter because I was like, I hate doing a talk. And you're the only thing you can talk about at the end of the talk when you're like, what tools can you use to and then you're literally the only tool that exists for that. But the talk itself was about serverless WordPress itself. How does it work, why you would want to use it, what is it good for, and why I think it's important. But honestly, it was super well received. I used to give five to six talks a year and I think that's the most successful one I've given. I just got a lot of inbound inquiries and things after. I wish it was on WordPress TV. I don't know what's taking so long, but it's not on WordPress TV yet. But I'm hoping you'll do that. [00:05:24] Speaker A: Yeah, I believe the team has quite a big of a queue to process through. No, but that's exciting. Doing a talk and then getting a lot of feedback afterwards is one of the most rewarding things, I think, personally. [00:05:38] Speaker B: Yeah. I just didn't expect a lot of interest, to be fair. I'm going to dive in a bit. But one of the problems that WordPress has is scaling, as I think you're a bit aware of that problem yourself. And scaling WordPress is a challenge and it wasn't really designed for that. [00:06:04] Speaker A: Maybe it's nice to interject a little here. [00:06:06] Speaker B: Yeah. [00:06:07] Speaker A: Scaling. I know what it means for me. You know what it means for you. But for those listening who are not fully aware of what is scaling and when is the threshold of now we're scaling. [00:06:17] Speaker B: Oh, sure. I thought you were going to explain it. No. Okay, so scaling here what we mean is how to deal with so you can have sites where your traffic is somewhat constant. And the classic example is if you get reddited or something like that, then your traffic spikes and then your site goes down if you don't have something like cloudflare in front of it or some other CDN solution. And a lot of the hosting companies are now very well suited to handle this kind of scenario. But there's a different type of scaling, which is what is more computing intensive. So it's scenarios where you're actually dealing with a lot of logged in users. So the classic example of that is if you have an ecommerce site and you're newsletter driven, or you're sales driven, your site normally doesn't get a lot of traffic, but then you might get hundreds or even thousands of people showing up with a cart. And that cart isn't something that cloudflare can just cast for you. It's actually like real beta. It's something that needs to communicate with WordPress. So when that happens, WordPress has to be able to what's hosting WordPress has to be able to scale to handle that demand that is very computing. So it's like more CPUs as opposed to just with a CDN. It's just like page caching. So the HTML has already been rendered and then we just send it back. So that's kind of the long answer to that. But specifically in the case of serverless, what we're interested in is that CPU side scaling and that's what a lot of people came up to me after because they're like, oh my God, I post these types of sites that it could be like a concert, like you have ticket sales. Another example was I had a friend that ran Microbreweries. So Microbreweries, they release batches of beer and then people will come in and there's a limited quantity of that too. So there's an actual need to not oversell what you have as well right, which can be treated with caching. So there's all these very tricky, more demanding scaling problems that a lot of the hosting companies aren't really equipped to handle well right now, but that a lot of people are struggling with and a lot of WooCommerce especially is very frustrated and struggling with. So if you work with WooCommerce and you deal with these kinds of scenarios, those are a lot of the people that came up and talked to me after, they were either hosting companies that were hosting these sites and they were like, how do I deal with this? And I was just like, there's no easy way to no. [00:09:31] Speaker A: I have nothing to comfort you softly. [00:09:34] Speaker B: Yeah, no, exactly. But that's where serverless comes in. So that's what the talk was about. So it explained how it worked architecturally, I would start by showing yeah, no. [00:09:48] Speaker A: I was going to say so what does that look like? Because I think it's fair to say that we've all seen the various scenarios where a server crashes because workers got too much traffic in too short of a time frame. [00:10:01] Speaker B: Yeah. So how does that look like? Well, first of all, I think I should probably say what serverless means because everybody loves making fun of the Term. I make fun of it in the talk too. I'm like, are there still servers with serverless? And the answer is like, yes, there's still servers. Yes. I'm not a big fan of the term. Whoever in whatever marketing department decided to call it serverless. You've done us a huge disservice. But it's the term that we have now and we're just going to have to live with it. But the idea with serverless is that it makes servers outside of your sphere of concern. So people that work in JavaScript understand this super fundamentally. When they deploy the Versaille, they're never asking themselves, hey, how many CPUs does this machine have? How many PHP workers? How much Ram? They're like, what are these things updating an operating system, what's the operating system behind this? I don't know, I don't care. And that's kind of serverless that it abstracts a lot of basically this need to know of servers. Like, you just upload code and the code runs on demand. So how does that help with this specifically? Well, specifically what this allows you to do is it allows you to scale that compute problem at a rate that nobody else can do it. I don't know if you do podcast notes, but I had like I can demo, I did a technical demo that I prepared for WorkAmp Asia, where I bit 4000 WooCommerce orders in 15 minutes and we could see it scale elastically to the demand. So to give an idea if you know a bit about servers, we went from basically zero PHP workers to basically 1200, I think, in the span of a minute, like of a few minutes. So to do that with a regular architecture is essentially not possible. You'd need something really well calibrated to be able to pull that off, but just being able to spin up a site and then troll. Basically I threw 1500 browsers at it. Like people trying to buy products at it at the same time. That way to elastically scale your compute is something that serverless is really good at. And honestly, the only limit I hit in that test was the fact that the load testing software could only give me 1500 browsers to do the load test with. Well, it wasn't actually like, oh, this was the limit, that what AWS, Lambda or serverless could do. It was just, oh, I need to ask for more. I haven't yet. But I thought that was already impressive for that. Again, how many people need this? Not that many, but what I talk about is a lot is that I'm a technologist, I like technology, I like building stuff that nobody can think of or find hard problems to solve. And there were a lot of hard problems to solve for serverless WordPress. But what this allows you is I talked a lot about these ecommerce sites, but there's also this idea that what if you want to build products with like, what if you want to build let's like, one of the examples I gave at Asia is, like, why couldn't gravity forms have just a standalone gravity forms product like Google Forms or Typeform? And the reason for that is maybe they just don't have the expertise to host something like that at scale. But what if you didn't need that? My favorite story, we'll get to how I got to working on that, but Emir's idea comes from Laravel. Like laravel has a product called laravel vapor. And I was there when Taylor announced it and I was like, I'm going to build that for WordPress. And that was basically how I got started. But inside the Laravel community, there's a product called Fadom Analytics. I'm sure there's probably people that are going to listen to this that especially if you're in Europe, you probably might know them because they're a privacy focused analytics company. [00:14:58] Speaker A: They were originally co founded by a Dutch guy. [00:15:03] Speaker B: Oh, yeah. But now it's like Paul Jarvis and Jack Ellis. But Jack Ellis has been like a really strong proponent of serverless. But what's been super insane with them is they're basically two people, one developer, and they're handling hundreds of millions of requests a minute with this as two people. I don't know what cool things I mean, Emir has a couple of cool products that people are building on top of it, but I'm just there to give you the tools. What kind of WordPress products could people build if you could abstract away the fact your customer didn't even need to know it was WordPress and things like that, but you didn't have the budget or something like that to build out that infrastructure? Now you don't need to you can just deploy code and then it just works. As long as you pay your AWS bill, it works. So that's emir. Yeah, that's the TLDR with emir. I wish it was as simple as that because WordPress unfortunately wasn't designed to scale this way. I think there's still a lot of performance optimization that needs to happen, especially if you have a site with a lot of plugins and things like that. The behavior can be it depends on the plugins. Some of them, they work great, some of them don't work as well. And it really depends on the plugins and what they're doing because so that. [00:16:49] Speaker A: Was one of the questions I'd love. [00:16:50] Speaker B: To say. [00:16:52] Speaker A: In terms of compatibility, is any site running into performance issues? Is that a candidate for Emir? [00:17:02] Speaker B: Yeah, I mean, I talked with Johnny Aris a decent amount, who's on the. [00:17:06] Speaker A: Performance team, too, on the first podcast of mine. [00:17:10] Speaker B: Yeah. So I talked with him a decent amount about things. There's definitely things that happen that plugins do. But in terms of plugin compatibility, like what plugins work and don't work, it's been very minor. Usually it's the ones that I don't want you to install anyways, like a security plugin, like it security or something like that. You don't need that. So that's another thing. With serverless, that's a good and a bad thing. So if you come from a more professionalized enterprise environment, you will be like, oh, that's obvious. But you can install plugin. You have to install the plugin and then deploy the code again because the entire environment is read only. So for some people, I've lost customers because of that, because they were like, why can't I install a team or something directly? And I'm like, well, that's not how you get the scaling. The scaling comes from the fact that everything's packaged and ready to basically be multiplied by 1000 or 2000 times in a split of a second. But that also helps with security because now you can't write anything. So that's why you don't really need a lot of these security plugins because you need two factor authentication. I suggest I have a small one that connects to have I been poned API? So make sure that you're not using passwords that have been basically hacked already, things like that. But in terms of protecting and reading the file system and all that stuff, you don't need that. So those are the ones. The other ones that cause issues are media library plugins. So the media library was by far the hardest part to get working on this because with serverless, you also don't really have a machine to upload the images to anymore. So I had to rewrite library. [00:19:14] Speaker A: Sorry, so where do you offload them? [00:19:17] Speaker B: To S Three, which there's a lot of plugins that do that, but they sync them in the background. But there's no place to sync them from. So I had to rewrite the media library to actually send them directly to S Three. [00:19:35] Speaker A: Let me make sure that I understand this correctly. On the WordPress install itself, not the active live site, but the installation where you do your content and photos. [00:19:45] Speaker B: Yeah. When you open the media library and you say, upload picture, it'll look the same, but what's happening behind the scenes is I'm sending it to S Three. [00:19:55] Speaker A: Yeah, but the installation where that WordPress install lives is not production, it's sort of staging. Is that a good analogy? [00:20:08] Speaker B: I don't know what would be production versus staging in this scenario. [00:20:12] Speaker A: Production is whatever somebody sees as a life site. [00:20:16] Speaker B: Okay. [00:20:16] Speaker A: And staging is essentially whatever is the next version of the production. [00:20:21] Speaker B: No, no, it's like, really it's really just like WordPress wasn't designed. Again, this is something if you deal with any other framework or drupal or something like that, if they're like, oh, we don't actually want to send let's say you want to upload a file, you can tell it like, I don't want to send it to the machine, I want to send it somewhere else. And WordPress doesn't make that easy to do. [00:20:50] Speaker A: Okay. Yeah. My question, if I'm just trying to clarify for everybody listening who doesn't fully understand what serverless means in this context, do they still log into a WordPress site to do what they need to do when they hit publish? Is it instant on production? Visible? Okay, so there's no syncing in between what you see with some of those headless solutions? No, in that case, it's a little bit different from traditional headless as far as that is a concept. [00:21:27] Speaker B: You could do headless with serverless. I actually did a blog post talking about it on the Emir blog. Yeah, headless is so serverless is about the infrastructure. Headless is about basically the markup. Like you're saying, I want to have something separate that handles displaying information. And then WordPress in that scenario just becomes a data source. [00:21:54] Speaker A: That's a good distinction to make because for most people, if we're hearing Serverless, we're automatically inclined to think headless. [00:22:03] Speaker B: I think that comes from the JavaScript ecosystem because a lot of what headless and JavaScript is also serverless. So they use the terms, they sound like they're interchangeable, but they're solving two different things, which is really good, actually, with headless, too, because headless and if you have headless and Serverless, then you really don't have to worry about anything. Right. So you deploy your code, and then your code scales as you need it, and then your front end scales as you need it. So it's painless because of that. But right now, if you do headless WordPress, there's always a machine handling that data source. You can still overwhelm that machine easily with that, so it solves that problem. But yeah, the media stuff was tricky because like I said, the thing with serverless is that there is a less part in it is that one common question is that you might ask is, like, how big is the machine? Or how do I SSH into the machine? Well, there's no machine to SSH to. There's no machine per se. Right. Like, there's just your code. Your code exists in the cloud somewhere, and then there's a machine somewhere. You don't need to know what it is. You don't need to know anything about it. It's going to run your code. [00:23:31] Speaker A: That's a very interesting distinction. [00:23:35] Speaker B: But that causes problems when you have assumptions built into the software that there's a machine there. Yeah, so that's the problem with the media library and all these offload media s Three, or the human made S Three plugin, is that they all work with the assumption that you're going to upload that file to a machine somewhere, and then they can do something from that machine and then send it to S Three. But because there's no machine now, you actually legitimately have to send the file to its final destination right away. [00:24:15] Speaker A: That's a very interesting thing because that makes whatever you're doing quite alienated from core WordPress. The whole of WordPress, like everything in its settings and configurations, assumes it's living on a correct. [00:24:34] Speaker B: So there's a reason I'm one of the few people in all WordPress that could have built this product because you needed to go really deep. Like Emir plugin that integrates with WordPress goes really low level in WordPress to tricks it tricks everybody to thinking that they're on a machine. [00:25:02] Speaker A: I'm assuming the answer is yes, but I'm curious how close you are to actually wanting to rewrite core files. [00:25:09] Speaker B: Not close, actually. Okay. Actually, honestly, the only thing right now that's not working is just because I don't really have I'm a bit worried because they want to rewrite the media library. But that's why I'm talking with Johnny Harris a lot, because I need to make sure that they don't rewrite it in a way that I can't do something like this. [00:25:36] Speaker A: Yeah, they need to understand your use case and incorporate it. [00:25:39] Speaker B: Yeah, that's why I spent a lot of time with him after work, Camp Asia, just going over the tech and how it worked, just so he understood that. Just to have somebody that understands that scenario. Because, for example, one thing that doesn't work right now, and that's also because I'm not a very strong JavaScript react developer, is that the media block, like the gunberg block, there's two ways to interact with it, right? You can just upload a file directly, or you can just click on a tab and go to the media library and interact with the media. But just a plain upload button does not work right now with Emir because I haven't been able to rewrite it to do what I made the media library do. But I guess the media library is the closest I came to hacking core. So I basically unhooked the JavaScript files, default JavaScript files, and I made copies of them that I maintain with the changes. And then I replaced the media library like JavaScript files with those. [00:26:49] Speaker A: That does sound very hacky. [00:26:51] Speaker B: Yeah, I didn't say that I was making this super legit, but I don't hack Core files, so that's all I'm saying. There's no core files that were hacked, but I do, and luckily they're not edited a lot, so I keep track of it. Of it, but it's all really old code that doesn't get changed a lot. [00:27:19] Speaker A: So does your plugin need to work with the latest version of WordPress or do you maintain a few versions backwards or how does that work? [00:27:33] Speaker B: What I interact with is so old and so baked. It's stuff like I interact with the uploads URL filter, or they're just like really old hooks that aren't likely to be removed or touched. So I haven't had version compatibility issues. If anything, I've taken it pretty seriously. Like, I support PHP 7.2 and up, and that's one of the cool things with serverless too, is like if you deploy with PHP 7.2 and you never change the code again, it'll work in ten years because the code was uploaded and it's there and they just have to run it. [00:28:24] Speaker A: And since they're interacting with a static version, it doesn't really hurt if the no exactly correct. [00:28:30] Speaker B: Up to date correct. [00:28:32] Speaker A: That in itself is an interesting use case. Are you stuck in 72 for whatever reasons? [00:28:39] Speaker B: Yeah, planning to support it for a while, even though it doesn't cost me anything to keep supporting it. [00:28:48] Speaker A: Right. So there are different perspectives from where that might be something you do. Here's an interesting thing you've mentioned S three Amazon. Is there any other cloud hosting service that you could work with or already work? [00:29:08] Speaker B: Want to I got that question a bunch of times. There's a couple of reasons. I even talked about it in my talk. The Asia talk? Yeah. One, so I'm going to be a bit harsh if you're a GCP fan here, I'm sorry. I would never build my business relying on Google Cloud. They deprecate, they don't respect backwards compatibility. Imagine you're me and I'm one person. I have to build something that's incredibly complex deals with. I think I'm up to 15 to 20 services in AWS that Amir interacts with. And those services could have their API changed. They could be sunsetted at any time. I would be stressed the hell out having to maintain that. So that's one of the reasons. So this is why I don't do GCP. In fact, I joke that I would probably support Oracle Cloud before I supported GCP. That's like how low my cloud engineer opinion is of GCP. But let's say azure. Azure is like legit. The reason why is because even though they all have these kind of similar services, they don't work the same way, they don't interact the same way, they're not interchangeable. [00:30:39] Speaker A: So you would need to write an API layer just to be able to. [00:30:43] Speaker B: I think more than that, I might have to do a completely different architecture of how I even host it. Right? Like it depends how it works, what they have, what features they have, how the different services behave and things like that. So it's not a one on one thing. And then the other aspect is that in general, all the energy around serverless right now is all on AWS. So there's like in PHP, there's something called Breath. I talked it's this guy named Matsu Napoli, and he built that. He's the OG person to work on serverless PHP. So he did it before Taylor did Laravel vapor. And we owe a lot to him, but he only does AWS too. All the energy across all the different programming languages is all focused on AWS. So you'll find better resources, tutorials, answers to problems. So it's not super. [00:31:50] Speaker A: Okay, that makes sense. That makes sense. I'm asking it not even necessarily from the Azure or Google side of things, but what if I want to maintain where my data is and have either my own cloud or whatever? [00:32:07] Speaker B: Oh no, wait, node anymore, right? No, they call it Akamai now. It's akamai cloud or akamai hosting or whatever. But yeah, they renamed it there's Herzinger too. In Europe. That's really big. I don't think so. Behind the scenes, what runs Lambda is something open source that AWS open source firecracker. And you could technically host something like firecracker on a machine and then try to do it. But the reality is that one of the things that I think you can appreciate this, but I think a lot of people don't necessarily appreciate when they like, it's really easy to jump at these cloud providers and be like, wow, the markup is so crazy. I could just get this $5 vulture box and just run things there. But they've abstracted as somebody that's been assistant min since they're 16, working at law firms. Like, I did like, multidata center redundancies with VMware when I was like, 20, okay? And I was like, they abstract a stupid amount of infrastructure complexity to a simple API call. There's more to hosting serverless than just having a machine with firecracker that you can deploy this thing on. How do you make sure that it works across data centers? How do you do failovers? How do you do if performance between the two, like, if performance on one machine is degrading, how do you fail over to the next one? Automatically, they can do all of that for you. [00:34:07] Speaker A: And you would have to spend an enormous amount of energy and time to make what Emir does work on. But it doesn't make sense to even start considering going in that direction. Okay. Yeah. [00:34:20] Speaker B: Even for product people. So here's a discussion I had at WorkAmp Asia. So I was talking with, I think, engineer one of elementor, and we were talking infrastructure and things like that. So they have five or six he was saying, don't take my word exactly for it, but they have five or six infrastructure people just to deal with their Black Friday sale. And they were, like, talking how they have this Kubernetes stack and it works so well and stuff like that. And I was like, well, what happens if your platform changes or something code changes? They're like, oh, we have to recalibrate everything. Yeah, we have to recalibrate everything. And I was, like, talking about what this does. It's like, oh, yeah, this is simpler because, yeah, it might not be as well calibrated, but it works. You just upload your code and it works. Right? And there's a lot of stuff that you would have to do yourself that gets kind of, like, folded into this extra cost that you are just thinking, oh, this is expensive. And you're right, it is more expensive. Like, their CDN is a bit more expensive than cloudflare. Their Computes a bit more expensive than cloudflare. But you know what you never hear of? You never hear about AWS going down is a very freaking rare occurrence. And when I joke about, like, if your site goes down, like, if you're hosting on AWS and your site goes down because AWS has an outage, you're the least of your clients problems right now. Like, half the Internet's probably out at the same like, I take it super seriously as well. Like, Emir I consider to be. There are people now trying to build hosting products on top of this, and I take it really seriously the same way AWS does. My test suite for Emir takes. 12 hours to run just to make sure that it actually does what it can do and it's resilient and people can, there's still bugs and things like that, but I make sure that things don't break well, you got to provision the resources, provision resources, apply changes, make sure that they work, that the behavior is expected. And some of them I have to do across all the regions. [00:36:56] Speaker A: But that's super decent. You already answered one of the questions I had about Emir in terms of what it provides, because you mentioned in, in a nutshell, what it does. It provides a set of tools for you to be able to run WordPress serverless. You just mentioned that there are folks building modules on top of Emir that allow for hosting. So my question was going to be, how much do you consider yourself as a tool provider versus hosting company? Because by the sound, I'm not a hosting company. [00:37:36] Speaker B: And that's really intentional. [00:37:39] Speaker A: Okay, it is intentional. [00:37:40] Speaker B: It is intentional. I've rebuffed dozens of investment offers and also people asking me like, why aren't you building hosting? And because somebody has told me this, but hosting the best analogy. I heard it last year from Dave Ryan who's at said, and it was the truest thing. You will probably relate to this because you worked with Surfbolt, but a hosting company is actually a customer service company that happens to have a data don't want to I love customer service, but I want my customers to be developers. I don't want it to be just anybody. So I'm okay leaving that money on the table. But the thing that is happening so here's kind of my high level view of what's happening right now. So, Emir is also a tool that you can just sign up and just like it's a CLI tool. Eventually, I wanted it to be a bit closer to Versaille, like you'll be able to do a lot more from the admin. But right now, I'm not really losing customers because the dashboard is not really powerful. That's usually not how I'm losing customers. But to have that product where you can just bring up a WordPress site or create a project. But there's a subset of people where this is complex tech, and there's only like a few hosting companies that have the budget and the know it all to actually bring this. I basically had WP Engine and Paisley, but I think actually Pagely got gutted with the recent layoffs inside GoDaddy. So I'm not even convinced that GoDaddy could do this right now. So there's like WP Engine is really the only people that use AWS, because Pantheon does not use AWS. They would have to develop some product like that. But the idea is that there's a really long tail of hosting companies that won't have the ability to do this and that Emir can be won't have. [00:40:03] Speaker A: The ability, like the technical know how. [00:40:05] Speaker B: Or the technical know how specifically okay. [00:40:09] Speaker A: Is that because of the complexity of Emir to even use it as a base? [00:40:17] Speaker B: I think it's not a complexity of Emir. I think it's a complexity of just cloud infrastructure. It's a completely different skill set to design cloud infrastructure and wire a whole bunch of services together into a platform than it is to actually just have spin up. Choose your server provider, Linode DigitalOcean or whatever, and spin up some machines using let's say there's a lot of hosting companies that use grid paint, so they just use grid paint to manage their server fleet. [00:40:56] Speaker A: Sorry, but I was going to say, unless you have a fully custom dashboard entirely built as an API, then we're starting to make sense in terms of what could be hooked into. [00:41:11] Speaker B: Yeah, well, I mean, the main competitor to me right now of Emir, to me, the one that I think is the closest is actually Cloud. If you're not familiar with WP Cloud, because it's an automatic product, but they're really not very good at marketing it. It's basically a CLI tool that lets you spin up environments on their infrastructure. And they basically wanted use it as a kind of API for hosting companies to use. They would manage the infrastructure and then via the API, you would basically bring up sites and things like that and do all the maintenance around that. So I consider them the closest thing to what Emir wants to be in terms of platform, except I wouldn't even host the hardware. Like, it's still your, um but the idea is the so you can you can have this API. So now there's an SDK. So Emira has an SDK, which I built for one of my basically potential partnerships that I just split the code out so that you have an SDK to interact with the Emir API. So that if you want to build like, I had somebody building a Laravel application where the application would spin up the sites and stuff like that and manage the sites, things like that. So that's like one angle where I'm going, and that's probably the one that's going to get me not profitable, but be able to work on this full time. Side note, a lot of my stats are public. Like, if you go up to Amirapp.com Open, you can see I'm at 1200 MRR right now. But I can't work on this full time still after four years. I started working on this in 2019. [00:43:10] Speaker A: I remember you tweeting about this a little while back. [00:43:14] Speaker B: Yeah, it's been a long journey. Matsunapali, who does breath too, we've talked about because Laravel Vapor makes a lot of money. I estimated that in the first year, he was probably making half a million from it. So I thought, oh, well, it shouldn't be that hard to make like a fraction of that. Incorrect. Incorrect. It's been very hard to do. [00:43:49] Speaker A: What is the main reason for that? What is the main reason for that, you think, why is it not picking up as you sort of is? WordPress. WordPress, yeah, sorry, go ahead. [00:44:05] Speaker B: There's a challenge, right? Like I said, I wish I could say, like, you'll deploy any site to this and it'll perform amazingly. There's just one thing that we haven't talked I know you had also Till before, but Till actually saved my product. So one thing that baked into WordPress is that what I talked earlier, this idea that you're on a lot of gross inefficiencies and you do a lot of performance work, so you're aware of that too. There's a lot of gross inefficiencies that get kind of basically papered over by just throwing more hardware at it, or just by being on the same machine. And the one thing that can't get around when you start using serverless is latency. So latency you now have to deal with like latency for those who aren't familiar with the term, is just basically the time it to communicate with an external service. So it could be your database, it could be your redis cache. When everything's on the same machine, that time is essentially zero. But once you start moving everything out of the machine, which you have to do, that time becomes not zero. It might be incredibly small, but if somebody is doing something really gross, even if it's really small, it could cause a lot of issues. So what ended up happening early on? I have to do a case study for Till for this bit, by the way, but I'm just showing his product right now. Basically what happened early on is I remember testing WooCommerce with somebody and we were doing load tests and they were like, holy shit, that's amazing. Okay, but we haven't added the object cache yet. It's going to be even better once we add the object cache. And we added the object cache and the admin went from loading like sub 1 second to taking 6 seconds to load. Yeah. And I was like, wait, what's happening here? And I ended up figuring out eventually it was that Redis. So the site was making, let's say I don't remember exactly, but 1500 requests to read us. So let's say request before it caused zero. So 1500 times zero is still zero. But if now the time is two milliseconds, it's not a big amount, it's two milliseconds, like trivial amount, but you do it 1500 times, you now just added 3 seconds to your load time just to talk to Redis it compounds. So that caused a lot of issues. And luckily Till was working on a PHP extension for Redis called Relay. [00:47:32] Speaker A: You released yesterday. [00:47:34] Speaker B: Yeah, I mean, I've been using it emir, the runtime, like what runs PHP doesn't even ship with the regular PHP redis extension. It just ships with relay. Because Relay is the only way that Redis can work. The way it works is that it keeps an in memory copy of some of the data and then it keeps it in sync so that you basically get that sweet zero millisecond latency for redis, except for the first time when the cache isn't primed, but because of that. Yeah. So that was like one of the examples. But basically you can get a lot of these kind of gross scenarios where you basically are just papering over the problem with the machine and then you're going to put it in Emir and you'll be like, why isn't it as fast on the server? Every time that somebody says me that in my head I have the melting smiley face emoji that they came out. That's basically how I feel inside because then I have to explain to somebody that it's not a magical tool. Go ahead. [00:48:59] Speaker A: I was going to say if it was magical, if whatever you threw at it, you would most likely see larger growth is essentially what you're saying. There is still a complexity layer. [00:49:12] Speaker B: Yeah. I mean, there's also the fact that it's a CLI tool and a lot of WordPress people aren't super comfortable with CLI tools. It's more developer focused. And honestly, I'd rather do that. We could have an entire Utter podcast on how to design the business that you want because I think about that a lot. I love developers. I showed this to developers. Some of the problem is just switch over costs, which I think coming from serverbolt, you understand it's hard to get somebody to switch over to anything once they're in something. It's just the switch over cost is huge, so it's hard to get people to switch over even if they're really interested in using it. [00:50:04] Speaker A: We were doing pretty okay there, by the way, just for the costs were relatively low because we were essentially white gloveing most of that and they were already into serious troubles. [00:50:19] Speaker B: Well, I do that when I have people with serious problems. But also I have to just be realistic that I can't as one person trying to survive and not making enough to pay myself from this. There's only so much white glovebing that I can do with people. And it's hard when you do like I've done sometimes 20 to 30 hours of customer service to someone and then they cancel and that is just like that hurts. That's brutal. I mean, they help make the product better, so I'm still grateful for them, but that's always going to be a challenge. [00:50:54] Speaker A: Yeah, that's not how you intended for that interaction to happen. [00:50:59] Speaker B: But I just thought there was more developers that were secretly like Laravel lovers that were just like, waiting for this. And the answer is, like, there weren't that many. [00:51:09] Speaker A: No. I think we're at the cusp actually of the eruption of more developers like that. [00:51:17] Speaker B: I think so. I get more and more inbound interest and especially once people have been working in JavaScript, I don't have to explain the product to them if they've done JavaScript before. It's pure PHP. Developers that don't really struggle a bit to understand what the value proposition is because they're like, well, one, this is way more expensive to host. You can't host this for $5 a month. I cost $39 by itself. And just like your basic always on stuff like your database starts at $15 a month. So you're basically looking at something like 60, something like 60 $70 US a month to just have one site. [00:52:08] Speaker A: The easy two comes on top of that. So the actual usage of the serverless. [00:52:16] Speaker B: Part oh, that's so cheap. I don't think people understand how cheap this is. So that 4000. Do you know how much that 4000 orders low test cost? [00:52:27] Speaker A: No. [00:52:27] Speaker B: $10. [00:52:29] Speaker A: $10. Okay, so that's not too bad. If you were to say you have a WooCommerce site now and you're struggling to find hosting that works for your particular set of traffic, I think it's fair to say that if you're making good money with your WooCommerce site, you're fine with a bill of hosting somewhere between $250 and $500 a month. Yeah, in my mind you should. [00:52:59] Speaker B: That'll be really hard to hit with email. Yeah, because don't forget you're not paying for anything when nobody's around. Yeah, exactly. [00:53:08] Speaker A: So in my mind then, the Use case is much larger than developers. The use case possibly should be. And this is not me telling you how to do it, but more me trying to understand for anybody listening or watching. Or watching. [00:53:26] Speaker B: Yeah. [00:53:28] Speaker A: When is your scenario, when is your product a solution? And that's essentially much larger set than developers who enjoy working in a smart way, understanding serverless. So the proposition that you have is much larger than that. [00:53:47] Speaker B: Oh yeah, it's bigger. The proposition is there's twofold there's like on the hosting side, which we've talked a lot of, is the key use case is spiky non cashable traffic like that correct. So WooCommerce ecommerce is the classic kind of example. Another one that I was thinking about is like if you run your own Edd licensing server, like you can DDoS yourself and things like that. The other one is any sort of elearning platform LMS LMS, because if you do membership sites yeah, so some of the customers that I have are e learning, so they have kind of like live sessions of a course or something like that, and then everybody's coming in at the same time, logging in huge spike of traffic. And then when there's no course going on, the site's essentially dormant. Right. So all these kind of spiky what I call WordPress applications. So I think on the hosting company side, I had a talk with the VP of hosting, I think of Newfold, like at WorkAmp, US lab. He's the one that really put me on the path for this. But it's like how to scale applications because you have WordPress content sites which are a largely solved hosting basically I call them like every hosting company that basically sells you a vanilla, it's getting vanilla ice cream, but you're getting a different flavor of vanilla. Like oh, WP engine gives you French vanilla and GoDaddy just gives you like the soft served vanilla. [00:55:39] Speaker A: Exactly. [00:55:39] Speaker B: But they're all kind of vanilla vanilla. They all follow a certain structure which I gave a talk in 2016 on. Basically they all follow the same architectural structure and it solves that problem really well. But because like I said early on in the podcast, there's that type of scaling for content site where you're just getting bombarded by requests for essentially static content which is easy to serve back. That problem is largely solved. But how to scale what I call WordPress applications like WordPress, where you're using WordPress but as an application to do more content, like Ecommerce, elearning membership sites. It could be also like buddy press, like community sites, things like that, where you're actually dealing with a lot of logged in traffic, lots of what you consider like an application use case where your scaling requirements are more on the CPU side than just content delivery. This is where Emir really is going to be good. And that's where a lot of the hosting companies are going anyways, because that's where they all see like I know everybody in every hosting company at this point, because I was speaking at so many events. The only people you see at all the work camps are essentially hosting companies. So I just know everybody. And that's where they're thinking. That's why you're seeing a lot of managed WooCommerce coming out and then you're seeing manage LearnDash, you're seeing these kind of like more specialized hosting solutions for these applications because they have different scaling requirements and hosting requirements. And this is where I know that I'm the better solution than whatever throwing a machine at it. Because there's only like like I said. Just to give you an idea, I assume most people here aren't really into servers as much as I am. But let's say the biggest server you can get right now is something like 192 cores. And is it 96 core and 192 treads? But it's like somewhere around like that, the amount of PHP workers you could have with this is usually you can multiply it by basically two or three the number of treads. So if you're like at 92 cores and 192, you're looking at maybe 500 to 600 PHP workers. If you remember, like I said earlier, when I did that load test, I went from zero to 1200 in a minute. So that is two and a half times, let's say, that largest machine you can buy on the market, which basically costs you like $3,000 a month or something like that to keep running. So there's just a limit to what you can do with a single machine. That's why everybody else in every other business on the planet has TerraForm and auto scaling and kubernetes setups and stuff like that, because there's a limit to what one machine can handle and nobody in WordPress is really tackling. There's a couple of hosting companies now, like Convesio is kind of tackling that a bit, but they're not simple problems to solve. And this is so important application. Yeah, with Emir and with applications, they need that because if you want WooCommerce to take on to be a serious contender to taking on shops, that if you want to start taking people that are on shopify, start thinking about coming to use WooCommerce, you need to have a platform that can handle this. There's just a lot of conversations that are happening around that. And serverless is the tool to do it for WordPress, I think at least there's kubernetes and stuff, but I think for most people, they don't have the budget, that elementor or like some big hosting. No. [01:00:08] Speaker A: And it's a different level of complexity that you don't necessarily want to find yourself in if you can solve that by the Amazon platform and. [01:00:22] Speaker B: Sorry, my personal take on it is that kubernetes is like an in between. I think for most people. They won't need you to use it. [01:00:33] Speaker A: No, I agree. I think I tweeted this last week. Something about you don't always need the most complex thing just because it's there. Just try to think of what you can use in the most smart and most nimble way and that's probably going to solve your problem better than throwing more complexity at it. Yeah, but it sounds like if I'm translating what you're saying and the use cases and the things happening to me, it sounds like you're on the cusp of breakthrough. I see a bright future. [01:01:15] Speaker B: I think so. It's just been long, man. Four years. A long time. [01:01:24] Speaker A: I was going to say. There's more who have overnight success in five, six years. So you're still within that. [01:01:32] Speaker B: I've been very honest. Like I said, I'm very public. I write a report every two weeks that you can sign up to where I talk about what I've done for the past two weeks. I usually do one week marketing and one week product and then I talk about the business. But I also talk about it when I do a year in Review as well. And I really hate how everybody uses the term, but I'm in an innovator's dilemma situation. So if you don't know what the innovator's dilemma is, it comes from this business book by this professor, this famous professor called Clay Christensen. He passed away now, but it's this book that discusses how technologies come and overtake previous like new technologies slowly creep up and overtake the incumbent technology. And a lot of the way of how it works usually is that the technology starts off worse than the current good stuff, but for specific things it is very good. Yeah. And usually how they start off is they just chip away at it with those specific cases where it's really good, and then eventually they just overtake the other one. A classic example because it's an old book, so he talks about mainframes, like mainframes that's before servers. It was like mainframes before the personal computer and how the mainframe makers basically eventually got overtaken by those personal computers because it was just mainframes needed an entire basement in a building to exist. And you had a little personal computer that eventually could do the same thing that the mainframe did and took half the space, and you could put it on every desk in a building. [01:03:46] Speaker A: Have you ever seen one of those rooms, by the way? [01:03:49] Speaker B: No. Okay. No, I've only done server rock. [01:03:57] Speaker A: I've worked at an insurance company, and we work with as, four Hundred S, and other mainframe type stuff. [01:04:05] Speaker B: There's still an app and you work with insurance companies. I'm sure they're still there. [01:04:09] Speaker A: Yeah, probably. But just you said it filled an entire basement. But when you said that, Carl, you meant that literally. Yeah, they are that big. [01:04:20] Speaker B: They are that big. But he talks about different scenario, not just computing. There was like, motorcycles there's, different use cases, but this idea that the new technology always starts off worse but has a greater potential. And I think this is this scenario here because right now it's really good for the use cases that I've been talking about. And are there a lot of them? How many stores need when I was in Tokyo for six weeks and automatics VP no, the director of operations lives there half the year. I had dinner with him twice and I sent him that video and he's like, wow, that's crazy. We can't do that. But how many people need that right now? But that's not the question I'm asking myself is if we want WordPress or WooCommerce to be a valid solution to take on a platform, what do we need to think about for the next ten years to get us there? And to me, that's where I see it. It's slow. I wish I could say that it was an easy ride, but that's what keeps me going, is this belief that and the more time I spend it was really hard, too. One of the things that we didn't talk about is also I built this during COVID so you kind of feel a bit insane building something like this during COVID and you can't talk to anyone or you're just tweeting at stuff. It feels a bit insane. It's gotten better once the in person events started because I'm just a better in person networker. But also people are just like, oh, shit, okay. Yeah, we have this problem and we're interested in talking about it. [01:06:18] Speaker A: You're only confirming what I suspected in terms of bright future ahead, because I think you are spot on. I think you are exactly at that innovator's dilemma. [01:06:29] Speaker B: Yeah, it's hard when you have no funding and you don't want funding. That's another like I said, we should do another podcast on building the business you want, because I could do another podcast just on that. [01:06:44] Speaker A: Well, we might end up there. But for now, I want to thank you for sharing your story and the. [01:06:53] Speaker B: Whole. [01:06:55] Speaker A: Yeah, I think it's a large set of problems that your product is solving. I think it's a super interesting one. I'm going to dive into it a little bit more than glancing at your website. So I'll have questions for you after. But for now, thank you so much, Carl, and we'll see you on the next one. Yeah.

Other Episodes

Episode 37

September 06, 2024 00:53:09
Episode Cover

Inside the Mind of Cristian Raiber: Building a WordPress Plugin Business

Join us in this episode of 'Within WordPress' as we chat with Cristian Raiber, a prominent figure in the WordPress community. Cristian shares his...

Listen

Episode 13

September 15, 2023 01:01:10
Episode Cover

Ian Svoboda: On Block Themes, Custom Block development and a whole lotta WP CLI

In this podcast I talk with Ian Svoboda about themes and Custom Blocks. He covers how to develop themes and Custom Blocks using the...

Listen

Episode 8

June 23, 2023 01:04:23
Episode Cover

How Contributing to WordPress as an Agency Helps the WordPress Project – with Brad Williams

In this video, I sit down with, Brad Williams, CEO of WebDevStudios, to discuss how contributing to WordPress as an agency helps the WordPress...

Listen