Heya, I'm Carl! I'm the solo founder of Ymir. Ymir is an open startup. You can view its up-to-date business metrics, and also sign up for a newsletter where you can learn how I'm building and marketing it. Check it out.

Why serverless is the perfect hosting solution for an EDD licensing server

Serverless computing is a relatively new concept. Outside Ymir and its customers, there hasn’t been a lot of interest around it in the WordPress community. Part of it is distrust around the term “serverless” and what it really implies compared to hosting WordPress with a server.

But part of it is just not knowing what serverless is good at. Serverless is the best technology for scaling an application and doing so quickly. That’s why it’s an amazing technology for hosting e-commerce WordPress sites using WooCommerce or Easy Digital Downloads (EDD). I’ve written about WooCommerce before, but the entire article also applies to EDD as well.

That said, a lot of people know and use EDD for a specific use case: software licensing. Their software licensing extension is very popular with paid plugin authors. It saves them the time and energy to develop their own licensing system. (A complex endeavour for anyone!)

While a licensing server isn’t an e-commerce site per se, it still suffers from similar issues as an e-commerce site. That’s why serverless is also a perfect technological solution for anyone self-hosting their own EDD licensing server.

Let’s dive into why that is.

Serverless WordPress architecture on AWS

Serverless PHP is a new exciting technology that has the potential to remove a lot of the burden of hosting PHP applications. One type of application that has the most to gain from serverless PHP is WordPress. Serverless PHP eases the burden of scaling WordPress while offering the same performance benefits that you’d get with a top tier host.

To understand how serverless PHP works with WordPress, we’ll look at the current state of the modern WordPress server architecture. This architecture has evolved a lot over the last decade. (You can read more about it here.) Gone are the days of just hosting a WordPress site with an Apache server! There’s a lot more to hosting a WordPress site now.

The good news is that hosting a serverless WordPress site looks a lot like it does with a modern WordPress server stack. The big change is that you’re going to replace a lot of the architecture components with services from a cloud provider.

Now, the services that you’ll use and how they fit together will vary from one cloud provider to another. With serverless PHP, the most popular cloud provider is AWS. That’s why we’ll focus on serverless WordPress architecture on AWS.

It’s also worth noting that this is the same architecture that you’d get using Ymir. The only difference is that Ymir takes care of managing it all for you. (That’s also why it’s a DevOps platform.) But if you don’t mind putting all the pieces together yourself or with the help of another tool (such as the serverless framework), this article will help you achieve that.

A look at WordPress page caching with a CDN

We all know how important it is to have a fast WordPress site. If your site is slow, people leave or don’t make a purchase. It’s also a signal Google uses to do its ranking.

To make our WordPress site fast, we use different tools for different parts of the server stack. We have an object cache to speed up our MySQL queries. And then we have a HTTP cache to speed up how fast we return HTML back to the browser. You can see a diagram of how those different pieces work together below. (You can also read more about it here.)

You might have never heard of a HTTP cache, but you probably heard of the category of plugins that act as a HTTP cache. They’re called page caching plugins. Most WordPress sites use one or if they don’t, it’s because their host handles the HTTP caching. (Most of the time using Varnish.)

Now, you can also add a content delivery network (CDN) to the mix. If you’re not familiar with what a CDN is, it’s a service that lets you cache content in data centers across the globe. This allows you to serve cached content even faster because the CDN will serve it from the data center closest to the person making the request.

Now, a lot of page caching plugins support CDNs. But they only do so for media files such as CSS, JS, images and video. The HTML content that the page caching plugin generates still gets served from the server where your WordPress site is located. This means that, even with page caching, your site can still be slow for someone who isn’t close to where that server is.

This is, in essence, why you should use a CDN to do page caching. So why aren’t more plugins helping you do it? Let’s look at why that is and current solutions surrounding this problem.

What’s the difference between headless and serverless WordPress?

In the last few years, two new terms have emerged in the WordPress and larger web development space. Those two terms are headless and serverless. On top of both being terms ending in “-less”, they’re two terms that aren’t very self-explanatory. (Are there still servers with serverless? Yes. Is headless some new horror movie category!? Nope!)

But to make things worse, because you often use these two new development paradigms together, people use the two terms interchangeably or think they’re the same thing. But they’re not! This increases the confusion and suspicion around both paradigms.

So with that in mind, this article will walk you through both concepts. This should hopefully clear some of the confusion. But we’ll also see how both paradigms are changing the WordPress development landscape. Let’s go!

What is serverless and how is it different from hosting WordPress with a server?

When it comes to describing what Ymir is, WordPress serverless DevOps platform is the best way I’ve found to describe it. That said, it does feel like I’m playing buzzword bingo whenever I say it. While DevOps is a better understood term now, this isn’t the case with serverless.

The first thing someone thinks about when they hear serverless is, “Oh, there’s no more server. How does it work then?” This is a completely legitimate question! It’s also why a lot of us just think it’s a terrible marketing term. It feels like someone is trying to sell you snake oil.

But this is the term we got, and it’s not going to go away. So we might as well learn what it really means! Is it all marketing hype or are there some really exciting things about it? And most importantly, how does it change how you host a WordPress site.

How serverless helps keep your WordPress site secure

Anyone who manages WordPress sites knows how critical it is to keep them secure. Every day thousands of sites get hacked. The consequence of that are often disastrous. They range from lost income to Google blacklisting the WordPress site.

WordPress itself has always been very secure. But we never use WordPress in a vacuum. We install themes and plugins. We need to host the WordPress site somewhere. All these are potential attack vectors that someone can use to hack your WordPress site.

Because of its nature, serverless PHP makes a lot of these attack vectors irrelevant. This is another reason why it can be a great way to host a WordPress site. (Besides the ridiculous scaling potential.) It doesn’t matter whether you’re using Ymir or not.

But how can serverless PHP can help keep your WordPress site secure? Well, the best way to understand is by going over serverless PHP architectural elements and how they affect these attack vectors.

What is serverless PHP and how does it work?

Serverless computing is a new cloud computing model centred on Functions as a Service (FaaS). A serverless PHP application is simply a PHP application that runs on one of those serverless computing platforms. But what’s so special about it, and why is there interest in using it instead of a regular server for PHP?

Well, as web developers, we always have to consider where we host our code. It doesn’t matter whether we’re using JavaScript, PHP, Python or Ruby. (Just to name a few.) They all need a hosting service where that code can run and render the HTML sent to the browser.

There are a lot of different hosting services. You can pay for a server on DigitalOcean or some other some other cloud provider. This is often the cheapest option, but then you have a server to manage.

If you don’t want to do that, you can use a Platform as a Service (PaaS) like Heroku. You tell them how big of a server you want and they take care of the rest. On your end, you just need to deploy your code and that’s it. WordPress hosting works similarly.

While platforms as a service help you worry less about your server, they don’t completely remove all server issues. You still have to wonder if you can handle spikes in traffic. That’s because most of these services won’t scale automatically to handle these scenarios.

Serverless computing offers a solution to this problem. It distills your cloud computing needs to its barest essence. Your cloud provider will run your code on-demand and only charge you for that.

This lets you only pay for what you use. (If your site receives no traffic, you pay nothing.) This architecture also lets you scale infinitely. In fact, serverless computing can scale to handle thousands of visitors almost instantly.

This is a transformative change for all programming languages. But even more so for PHP, since it’s a language uniquely positioned to leverage the benefits of serverless. Let’s explore why that is.

Why serverless is the perfect hosting solution for WooCommerce

Serverless computing isn’t discussed much in the WordPress community. But it has the potential to transform how WordPress sites scale and perform.

No WordPress platform has more to gain from serverless computing than WooCommerce. Hosting a WooCommerce site comes with unique challenges that you don’t have when hosting a regular WordPress site. That’s why a lot of managed WordPress hosting companies started to offer dedicated WooCommerce hosting.

Serverless is the perfect technological solution to tackle those challenges. That’s why you’ll probably start hearing more and more about it.