Running a self-hosted Content as a Service with Ibexa Cloud
Content as a Service (CaaS) is a concept where you purchase a subscription to a service to provide you with content editing tools. This approach is a very convenient way to get started but does have some caveats as well: you've got limited access to customizing the administration interface, and pricing often scales up for large volumes of content or editors.
eZ Platform is a capable Digital Experience Platform (DXP) that includes comprehensive content management features. Our strategy has been to provide an architecture that is capable of progressive decoupling. The Symfony framework stack includes a complete set of tools for templating and site building on the server side using Twig and the HMVC paradigm, but our GraphQL and REST APIs make eZ Platform a bona fide Headless CMS.
An interesting alternative to a pure CaaS offering is running eZ Platform on our optimized hosting service, eZ Platform Cloud (Now known as Ibexa Cloud). It runs our standard eZ Platform (Enterprise) software in a PaaS (Platform as a Service) environment. In a PaaS, all the services (application server, database, caching, etc.) are fully managed, but you've got full access to the source code.
With eZ Platform Cloud you have the convenience of not having to worry about database upgrades, etc. but on the other hand you have the freedom to do integrations, etc. on server side. And with our Enterprise subscription service your LTS (Long Term Support) version will be supported for years to come, and we provide an upgrade path for future versions.
Installing a demo of eZ Platform Cloud
It is easy to try eZ Platform Cloud for yourself. A trial account allows you to run a test instance free for 30 days. No credit card details required. Let's get started:
- Create a Platform.sh account at accounts.platform.sh
- Verify your account using the message sent to your email
- Login with your new account to cloud.ezplatform.com
Add a project to start the wizard for creating eZ Platform project and select "Use template":
Enter the name for your project and choose a cloud region close to your location.
Choose the latest eZ Platform 2.5 release and click next.
The instance is now being created. This can take some minutes.
Once the project creation is complete, you're presented with the dashboard. Select the "Master" environment from the dropdown. This is the production version of your project.
On the environment page you can view ongoing activities, including the log for the deployment and the Public URL where your eZ Platform installation is located.
If you are not familiar with eZ Platform, you can access the admin interface from /admin with the username admin and password publish, and the GraphQL API from /graphql.
Upgrading your installation on eZ Platform Cloud
In the screenshots above you can see I installed eZ Platform v2.5.5, which is an older version. This will not complete an installation, because of known security issues in Symfony:
* [CVE-2019-18887]: Use constant time comparison in UriSigner * [CVE-2019-18888]: Prevent argument injection in a MimeTypeGuesser * [CVE-2019-18889]: Forbid serializing AbstractAdapter and TagAwareAdapter instances
With eZ Platform Cloud all of the required services are handled as infrastructure as code via configuration files in the version control repository. You also have full ownership of the code, so you'll need to install upgrades yourself or have a partner do it for you.
Because we follow Semantic Versioning, updating our LTS versions (currently 2.5.x) is straightforward. You can use eZ Platform workflow capabilities to test and verify the upgrade before deployment. A typical upgrade process is done in these following steps:
- Branch a new environment from Master for testing
- Run Composer update to upgrade dependencies
- Verify upgraded environment
- Merge environment to master
- Verify master environment
You can see an upgrade being done on the video below:
Robust and with room to grow
The eZ Platform EE software running on eZ Platform Cloud is identical to the one that you can install on your own infrastructure or on a public cloud like AWS or Google. Our optimized configuration makes it simple to get started and install our software without heavy IT investment. A self-hosted CaaS is a good use case for eZ Platform Cloud if your content volumes are high and you need more flexibility than a pure CaaS player can provide.
eZ Platform Cloud is built together with Platform.sh, a leading PaaS vendor. Running on public cloud infrastructure, eZ Platform Cloud can scale to higher requirements. Depending on your needs we can also provide a high availability triple-redundant setup or add resources when you expect high loads. For optimal performance you can choose a cloud region near your users and take advantage of a global CDN for content delivery.
Our solution also includes extensive backup capabilities that can be configured to your individual needs. These are an additional safety net, for example, when someone your team has accidentally deleted some content, you can use the administration panel to roll back to a scheduled snapshot of your content repository. It is also worth noting that you retain full ownership of all your data and source code, keeping your implementation fully portable.
If you run a Headless CMS, but are looking for alternatives to relying on a Content as a Service solution or don't want to undertake the task of a complex hosting setup, please do not hesitate to contact us to discuss if eZ Platform Cloud could be a good fit for your needs. Also, why not download our eBook: A Business User's Guide to Content as a Service to get a deeper understanding of Traditional, Headless and Decoupled Approaches to Content Management.