wildcloud is a multi-tenant managed WordPress cloud platform, used to build, automate and manage WordPress Software or Website as a Service applications.
wildcloud is a multi-tenant managed WordPress cloud platform, used to build, operate and host WordPress applications be it Website as a Service or more general Software as a Service applications.
It's a platform that allows you to set up and centrally control the code (plugins, themes, WordPress and PHP versions) of multiple websites, while also being able to create new websites based on one or several starting points, either manually or in an automated fashion.
To explain the platform we are going to introduce a few concepts in this article.
What is multi-tenancy?
Multi-tenancy is a software architecture where a single instance of the software application serves multiple customers or tenants. Each tenant in a multi-tenant system is a separate and independent entity, often representing different organizations, users or customers.
Translating this to the WordPress space: multi-tenant WordPress is a technique that lets you run multiple WordPress websites on one shared environment. We say environment, because wildcloud's multi-tenant cloud hosting is not just a site, it an innovative way to host many sites in a cloud native way, bringing WordPress hosting technology to the 21st century.
How is this different from multi-site?
While there is a solution that allows you to run multiple websites on a single WordPress instance, namely multi-site, multi-tenancy is inherently different. To start off, multi-site runs on one database, whereas with the multi-tenancy model every website, or tenants as we like to call them, has its own database. This seems like a minor difference but this effectively makes a multi-tenant site act like a single site.
Another main difference between multi-site and multi-tenancy is the way the solutions are set up. Multi-site is implemented in WordPress itself. And while it has its place and use cases, wildcloud's multi-tenant approach does not alter WordPress (that much) but rather comes from the way our cloud infrastructure is setup. Where multi-site allows you to run multiple sites on one WordPress site through code, multi-tenancy allows you to do this through infrastructure.
What does this cloud native, multi-tenant approach bring me?
Because of the cloud native approach the wildcloud platform has been built there are certain functionalities that are harder to implement through more traditional hosting:
- Version control
- Automation
- Cloud scaling
Version control:
The wildcloud platform introduces a way to manage the shared code for all tenants (websites) in a centralized way. The way this is done is through Versions. Versions are the context in which a tenant is ran. It is also a WordPress website by it self. It is like the master site that contains all plugins, themes and language files that the tenants need in order to run.
When you create a version the version's WordPress website, also called the Version Editor (or Snapshot editor) is created, and a multi-tenant environment is created. When you add, change or remove a plugin, theme or language files and deploy these changes to the multi-tenant environment, the plugins, themes and language files of this multi-tenant environment will be updated.
Every tenant runs on a version's multi-tenant environment. So if this environment is changed, the code of all tenants running on that version is changed.
This doesn't allow for version control yet, but the wildcloud infrastructure is made so that it is easy to change the multi-tenant environment the tenant runs on. Or in different words: tenants can be moved from one version to another version. When the infrastructure is updated to reflect this change, the tenant runs on another multi-tenant environment.
In practice this means that if you want to update a plugin, but are not sure whether this will break the 30 tenants that you run, you can simply create a new version, move one tenant, test it out. If it breaks, there's work to do. If not, then we can safely assume that the rest of the tenants won't break either. So we can move them in bulk, and have safely updated our plugin.
Automation:
The version system is unique to wildcloud but it is just one step in improving managing large amounts of tenants. Another feature unique to wildcloud that comes from it's cloud native multi-tenant nature is automation. Nobody likes to do menial tasks and especially not for dozens of sites.
There are a few places on the wildcloud platform that allow for automation and each have their own place.
First of all there is our API. This API allows you to create versions, tenants, remove them, move them and update them in certain ways. With programming experience this allows you to create new sites from basically any other platform. For people with less programming experience, or who want an out of the box experience, there are our Storefront plugins that allow you to monetize your Website or Software as a Service application in a fully automated way.
Then there is the wildcloud CLI that makes it easier to incorporate API calls into modern DevOps pipelines such as GitHub Actions. This allows for automated tests, updates and other DevOps tasks.
Lastly there are ways to hook into actions that are happening on the platform in the tenants themselves. Was a tenant just created, or simply moved from one version to another, run some custom code.
Cloud scaling:
The cloud native approach of the wildcloud platform steps away from the traditional hosting methods of WordPress. Instead of using servers, the infrastructure is serverless. This allows for a modern scaling approach. Instead of needing to increase the RAM or CPU of the servers that are serving the websites, also called vertical scaling, the wildcloud platform relies on horizontal scaling. That is, instead of using a heavier server, the platform will simply use more servers. This allows for up and down scaling according to the needs of all the resources on the platform.
The benefit here is that there is no need to be actually involved in this. It all happens automatically according to the needs of your application. The tenants running on the platform are not aware of this and the infrastructural layer of the platform handles this resource management autonomously.
Managed WordPress
This term has been around for longer so we will minimally describe it here. The idea of managed WordPress is mostly that you don't need to worry about WordPress itself, other than the WordPress and PHP version your tenants are running on. You don't need to install WordPress, you don't need to keep the operating system of the machine that runs WordPress up to date and you don't need to do any database maintenance. This way the focus is entirely on the application itself.
Bring it in practice
The wildcloud platform is a unique platform, that allows you to work with many WordPress websites like no other platform allows you to. Because the wildcloud platform is an infrastructural layer around more complicated cloud services, it is important to know what certain terms mean and how to work with them. Below you can find an small overview of the following wildcloud concepts:
- Applications
- Versions
- Snapshots
- Tenants
- Configuration
Let’s get started 🚀
Applications
wildcloud is mostly used to create WaaS or SaaS applications. Applications in the wildcloud platform are mostly just an isolated collection of versions, tenants and snapshots. Every version and tenant run in the isolated Application environment. Think of it as a workspace or a namespace. Versions and Tenants are not easily transferable between Applications (although it is possible using our API or CLI).
Functions |
Description |
References |
Application Overview |
To create an application overview |
|
Application From Scratch |
To create an application from scratch |
|
Existing WP Site |
To import from the existing WP site |
|
Storefront |
To create a storefront |
|
Application from the Application Library |
To create an application from the application library |
|
Delete an Application |
To delete an application |
Versions
Versions represent distinct phases in the evolution of the application, such as v1.0 and v1.2. At the beginning of the application phase, an initial Version 'v1.0' is created for which the user needs to pick the WordPress and PHP versions. You can upgrade the version, delete the version, or shut down the editor when no longer required.
Functions |
Description |
References |
Create a Version |
To create a version |
|
Shutdown an Editor |
To shutdown an editor |
|
Set a Version as Production |
To set a version as production |
|
Delete a Version |
To delete a version |
Snapshots
Whenever a user performs any changes in the version such as installing plugins, it is done through snapshots. Snapshots constitute the evolution of your version. When the users edit the version, they can push the new plugins, themes and language files to the tenants in that
version by deploying the current snapshot in the WPCS Console.
Functions |
Description |
References |
Tenant Snapshot |
To create a tenant snapshot |
|
Version Snapshot |
To deploy a version snapshot |
|
Download a Snapshot |
To download a snapshot |
|
Delete a Snapshot |
To delete a snapshot |
Tenants
Tenants are the actual websites that are being served by the platform. They are always based on a snapshot. This snapshot determines the starting point of the tenant's files and the database, while the Version the tenant runs on determines the available Plugins, Themes and language files. Tenants have their own backups and databases. Moreover, they can be moved from one version to another version.
Functions |
Description |
References |
Create a Tenant |
To create a tenant |
|
Move a Tenant to Another Version |
To move a tenant to another version |
|
Delete a Tenant |
To delete a tenant |
|
Add, Verify & Delete Domain |
To add, verify & delete domain |
|
Set Tenant as a Main Domain |
To set tenant as a main domain |
|
Create, Update, & Delete PHP Constants |
To create, update, & delete PHP constants |
|
Create, Restore, & Delete Backups |
To create, restore, & delete backups |
|
Download Backup(s) |
To download backup(s) |
|
Activate & Deactivate WP Plugins |
To activate & deactivate WP plugins |
Configuration
The cloud scaling the wildcloud platform makes possible is fully managed and automatically done by the platform. However, because we do not know the nature of your applications you will need to set certain parameters and boundaries. One of the parameters is CPU and Memory availability and the other ones are the minimum and maximum scaling that the platform is allowed to do for you.
These limits are necessary, because the hosting part of the wildcloud platform will be the main factor in the monthly usage costs. There are performance metrics and dashboards are available to make estimates of needs. Additionally the wildcloud team can help determine the correct settings to make your websites run as smoothly as possible while minimizing costs.
To find more information, please refer to the Change Product Configuration documentation.