Overview

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

See More

Application From Scratch

To create an application from scratch

See More

Existing WP Site

To import from the existing WP site

See More

Storefront

To create a storefront

See More

Application from the Application Library

To create an application from the application library

See More

Delete an Application 

To delete an application

See More

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

See More

Shutdown an Editor

To shutdown an editor

See More

Set a Version as Production

To set a version as production

See More

Delete a Version

To delete a version

See More

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

See More

Version Snapshot 

To deploy a version snapshot 

See More

Download a Snapshot

To download a snapshot

See More

Delete a Snapshot

To delete a snapshot

See More

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

See More

Move a Tenant to Another Version

To move a tenant to another version

See More

Delete a Tenant

To delete a tenant

See More

Add, Verify & Delete Domain

To add, verify & delete domain

See More

Set Tenant as a Main Domain

To set tenant as a main domain

See More

Create, Update, & Delete PHP Constants

To create, update, & delete PHP constants

See More

Create, Restore, & Delete Backups

To create, restore, & delete backups

See More

Download Backup(s)

To download backup(s)

See More

Activate & Deactivate WP Plugins

To activate & deactivate WP plugins

See More

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.