Continuing my review of some Drupal PaaS hosting platforms I am taking a look at Platform.sh.
What I'm not doing is a massive deep dive on all platforms. Ultimately, your milage will vary and what you get out of these platforms will be different for most people. You will know the requirements of your project and what you need to accomplish.
Also, if you want to know more about a platform, then please contact them directly. I'm sure they will be happy to hear from you.
Platform.sh is a PaaS site created by Commerce Guys, who are the main driving force being the Drupal Commerce suite of modules. They split off in 2016 and have grown to become a very respectable company in the PaaS space. They have also expanded their service to support a lot more than Drupal so you can easily deploy your Drupal and WordPress sites side by side.
- Uptime 99.5%.
- Container based infrastructure, which means it is highly resilient to traffic spikes as it can be set up to auto scale with the amount of traffic encountered.
- Highly configurable containers.
- Spin up unlimited environments from any code branch.
- One-hour critical response SLA; TAM; Managed code updates.
- Dedicated onboarding support.
- Support for compliance audits for security.
- Global CDN included.
- Automated backup and restore.
- Caching and CDN: Robust caching router; Varnish.
- New Relic supported.
- Solr service available.
- Extensive documentation.
- The platform is quite developer focused and as such doesn't provide a lot of tools for non-developers to manage or use the platform. The platform command line tool is used to control all aspects of the service.
- Platform.sh are on the fairly high side of pricing, compared to other Drupal PaaS providers.
- Although the documentation is extensive it is sometimes lacking in critical details.
The Platform.sh dashboard has gone through a few changes since I started using it, the latest included some much needed interface fixes and reports.
The dashboard of a typical site on Platform.sh, there isn't much to see outside of this screen though.
I've used Platform.sh for a few years to host a Drupal community group site for free, and I am really thankful that Platform.sh give our little group the ability to do this. We only get a few visits a month, so it doesn't make much of an impact, but having this site hosted on Platform.sh has meant that I have been able to take a look at the platform first hand for an extended period.
The container based approach allows for different configurations of the platform that are based on your code, rather than setting in the platform itself. One key feature of Platform.sh (that they were the first to introduce in this space) was the ability to create a branch in git and then immediately see a copy of the site running under that code. This copy is done in such a way that new branches can be seen pretty much straight away without the need to wait for the platform to copy everything over. Only when you change things does a copy start being made but it's all seamless.
The dashboard you get with Platform.sh is pretty minimal and there isn't a lot to see here. Everything is meant to be controlled via a command line all called platform. This tool was pretty easy to install, but I personally would like more controls to be done through the dashboard. The original tool was quite annoying to use and required a lot of coping and pasting of commands with long variables names. This has improved in the last couple of years as it has now started to accept user input as you run through commands. This is greatly appreciated and has made the tool much easier to use for me.
I have only ever needed to use the support systems once, and that was because I got stuck trying to configure the platform to run a drush command. The configuration files are YML based and control all aspects of the platform, including cron jobs, server memory and even server versions. The configuration files look like they are well documented, but when you come to use them it isn't clear what options should be under what level of hierarchy (an important factor in YML files). I was able to sort out my problems with a quick support email.
One thing I find really irritating is that I must never forget to relaunch my site at least once a month. If I do forget then the Let's Encrypt certificate will simply expire and I'll have a broken site on my hands. What's more irritating is that I can't do this from the website, I must install the command line tool and relaunch the site. It only takes a few minutes to do this, but I really can't see why Platform doesn't take care of this as part of the service. I'm hoping that this is because I am using a free tier and that paid for services get a better set up than this.
Overall, Platform.sh is a really slick and professional service, and that's clear from the outset. Everything is set out to empower developers to what they need to do. The command line heavy interface is geared towards developers and so might put some people off. I know that many people like using command line tools, so you might have a different experience to me. The support I have used has always been quick (especially for a free tier) and from a knowledgeable person. Other than the SSL/relaunch issue I mentioned above (which you could argue is my fault) I have never seen any downtime for the site I have hosted there. If you don't mind using the command line then give Platform.sh a look, I'm sure you'll be impressed by what they offer.
What is your opinion of Platform.sh PaaS hosting product? Comment below and let me know. I'd be interested to hear your experiences.
More in this series
- Drupal PaaS Hosting Review: Dropsolid
- Drupal PaaS Hosting Review: Pantheon
- Drupal PaaS Hosting Review: Acquia
Platform.sh recommend that you setup a cron job that redeploys the site twice a month, to ensure that the certificate never expires.
Further information is available in the docs (https://docs.platform.sh/configuration/routes/https.html#automated-ssl-certificate-renewal-using-cron).
Even on the paid tiers, this is something that you have to setup yourself, in your websites .platform.app.yaml, it isn't something that is done out of the box. I'm not sure if this is handled differently with there enterprise plans, but this is certainly the case with there other paid plans.
Thank you Alan, I guess I should have Googled it before complaining about it :)
I will get that set up now!