Clever Cloud vs Upsun

Summary

If you want a short summary, here it is:

They are both good at:

  • automated deployments
  • Good CLI
  • Infrastructure updates and maintenance / security patches taken care of
  • scalability
  • backups
  • cheaper than AWS, GCP, Azure
  • documentation pretty good and where it lacks, the support is very good

The downsides of both are:

  • Less community support than GAFAM
  • More expensive than a VPS or Dedicated server if you don’t include your time in the cost

The wining points of Upsun are:

  • Environment duplication, yon can duplicate your production environment to a staging environment pretty easily, and even run a script to anonymize the data
  • An APM is included in the price (Blackfire)
  • Partnership with a CDN provider (Fastly)
  • More profiles choices (High CPU,High RAM, Balanced)

The winning points of Clever Cloud are:

  • Easy logs access from the web interface
  • Blue/Green deployments
  • Auto scaling
  • Pretty transparent when there is an incident, cf their postmortems
  • Simple pricing model, no surprises. Everything is included in the price, no extra cost for traffic. When changing the resources profile you have a preview of the new pricing (which you don’t have on upsun so it’s “surprise” pricing)
  • Easy configuration without interruption (detailed in the Clever Cloud section below)

Clever Cloud

Clever Cloud is a French PaaS provider that offers a wide range of services for deploying and managing applications. It supports various programming languages and frameworks, including Node.js, Python, Ruby, PHP, and more. Clever Cloud provides a user-friendly interface, automated deployments, and scalability options.

At the time of writing I used Clever cloud for over 3 years, both for personal projects and in my job.

Here are what my experience with it.

I will start with the bad points, then the good ones.

Clever Cloud Downsides

Feature documentation

Some functionalities are not available in the web interface and are not presented on the website, or not well documented.

For example, I know they can provide a custom load balancer with a custom error page. In case of a down on your applications. I only know this because I talked with some of their employees and they mentioned it to me.

Also you can configure a database replication, but you need to ask support to do it for you, it’s not available in the web interface.

They are also a provider for Elastic APM, but I find it a shame to not advertise it more.

CDN / Caching

They are not providing a CDN, you have to use a third party CDN like Cloudflare or Fastly by yourself.

Instead they can provide a caching layer with Varnish, but you have to configure it yourself.

Logging

When I stated using Clever Cloud, the logging stack in the web interface was not very good, it was hard to find the logs you were looking for, and a little buggy.

It’s still not perfect, but they improved it a lot, and it’s still better than not having logs in the web interface at all.

You also can access the logs with the CLI which works well.

Staging environment

There is no way to automatically duplicate your production environment to a staging environment.

You can create new instances and configure it like the production one, but you have to do it manually.

You also can create scripts to do it, but it’s not as easy as Upsun’s environment duplication feature.

Down

We had some pretty big incidents with Clever Cloud, they were not very frequent, but when they happened it was pretty bad. They talked about it on their blog, and they were transparent about what happened and how they fixed it.

They also were very comprehensive, and we found an agreement together which was good.

Clever Cloud Upsides

Logging

I mentioned the logging stack above, but I want to mention it again here because they improved it a lot.

And when it’s not buggy it works really well, and it is very useful to look at the logs quickly from the web interface.

Blue/Green deployments

In my job, we usually deploy our new features / bug fixes once it’s ready. We don’t wait to release everything at once.

So sometimes we deploy new features multiple times a day. Without a blue/green deployment strategy, it would create downtime for our users.

Depending on the goal of you application, it may be necessary for you. Which was the case for us.

Auto scaling

You can configure vertical or horizontal auto-scaling for your applications.

Depending on the traffic you have it will automatically scale your application up or down.

Simple pricing model

You basicly pay for the resources you use, and everything is included in the price.

There is no extra cost for traffic, and when you change the resources profile you have a preview of the new pricing.

Each addon is also priced per minute, so you only pay for what you use.

It’s the same for the storage, you pay for what you use. If your application uses 1GB of storage, you pay for 1GB, if it uses 10GB, you pay for 10GB.

Easy configuration without interruption

You can change your environment variables, and choose to restart your application immediately or not. This is a simple feature, but when you don’t have it, it can be a pain to manage, as I will explain in the Upsun section below.

Other upsides

There is also some other good points, that are not related to the service itself, but to the company behind it.

They are a French company, so they are subject to the GDPR, which can be a good point if you are concerned about data privacy.

Also they are very transparent when there is an incident, they publish postmortems on their blog to explain what happened and how they fixed it.

They also are very active on developers communities, they are present doing talks at conferences, posting on social media. They are alos very active on open source projects, they have a lot of open source projects on GitHub.

Upsun

Upsun is a French PaaS provider, it’s a product created by the company Platform.sh.

I have used Upsun for a few months, and I will share my experience with it.

I did not stay long because of the pricing which was too high, especially when you have some downsides like I will explain.

Upsun Downsides

Pricing

This was the main reason I stopped using Upsun.

They are more expensive than Clever Cloud, which can be justified by the features they provide.

But they also are charging you for the traffic, which is not the case with Clever Cloud.

If you have a lot of traffic, it can quickly become very expensive.

Also, they charge you for each user you have.

The first month of use I had more traffic charges than the resources I used. The website was a media with a lot of pages (millions). A media need a lot of traffic, to start making money so it was not a good fit for Upsun.

Configuration without interruption

This part is not a dealbreaker for a media website, but it can be for some SaaS applications.

When you deploy a new version of your application, it will restart your application, and create a downtime for about 1 minute.

Also when you change an environment variable, it will force a restart of your application.

So if you are adding a new environment variable for the next release, it will restart the application a first time, then when you deploy your new version it will restart it again.

For a simple deploy it can be 2 minutes of downtime. It can be seen as acceptable for some cases. But that’s not something I liked.

Logging

The logging are only available in the CLI, and not in the web interface.

This is not a big deal, but it can be a pain to manage when you have to look at the logs quickly.

Complexity in the web interface

The web interface is more complex than Clever Cloud’s one. Again this is not a big deal, but it still worth mentioning.

Opaque pricing

When you change the resources profile, you don’t have a preview of the new pricing.

You will have to go to their simulator to see the new pricing, which is not very convenient.

Also since they charge you for the traffic, you don’t know how much it will cost you until the end of the month.

Bad experience with the support

At the beginning I had a problem with the redirection of the domain, which was not working correctly.

As a temporary solution I added a redirection from cloudflare.

I asked the support to help me with it. They did a change to apply the redirection, they did not warn me or ask me before doing it.

This created a redirection loop, and my website was not accessible anymore.

They were not aware of the redirection I had added with Cloudflare, and they did not check with me before doing the change.

Fortunately I was able to fix it quickly (10 minutes after the loop started), but it was not a good experience. If I had not been available when they did the change, it could have stayed down longer.

Domain management

That’s not a big problem, but it can be surprising if you are not aware of it.

When you add a domain to your application, it implicitly means you also add the subdomain www.

It’s not mentioned on the interface, so if you also add the subdomain www it will create the domain www.www.yourdomain.com.

If in your configuration you have a redirection from the root domain to www, and if you make the www subdomain you added as the main domain, it will create a redirection to the www.www.yourdomain.com domain.

Also, if you have multiple project with the same root domain, for example www.yourdomain.com, and api.yourdomain.com, and they are not on the same project, you will need to create some configurations to allow the other project to have the same root domain, or ask their support.

resources profiles

Changing the resources profile can also create problem.

The resources are configured in two places.

The config file in the project define the type of profile, like high-cpu, high-ram, etc.

The web interface define the amount of resources you want in the profile defined in the config file.

So let’s say you have a high-ram profile, with 1vCPU and 4GB of RAM. You realize you need more CPU than RAM.

If you change the profile to high-cpu, it will then deploy the application, with the new profile. But since you did not choose the amount of resources in the web interface, it can apply 1vCPU and 0.3GB of RAM. Which can be less than what you need. And while you change the resources, and it deploys the application, the application will stay down since there is no resources to run it.

You can avoid it by changing the profile in the web interface and make sure you increase the amount of resources to more than what you need, since you don’t know on which cursor it will be once the profile is applied, and then once the profile is applied, you can change the resources to what you really need.

Upsun Upsides

Environment duplication

One feature that I really liked is the environment duplication feature.

You can create your configuration so that when you create a new environment, it will automatically duplicate your production environment to the new one. You can also run a script to anonymize the data, so you can have a staging environment with production data without the sensitive data.

With it, you can have as many environments as you want, and you can easily test your new features before deploying them to production.

APM included

Upsun includes Blackfire as an APM in the price, which is a great tool to monitor your application performance and find bottlenecks.

You have nothing to pay extra for it, it’s included in the price. And the configuration is very easy.

Contacts

The presales team is very talented. They are giving you a lot of information about the product, and they are very responsive.

I did some calls with them, they were pretty technical, not just sales people trying to sell you the product.

They understood my needs, and they were able to answer all my questions. They also did some demos of the product, which was very useful to understand how it works.

Resources profiles

They have a lot of resources profiles to choose from, which is great if you have specific needs.

Depending on your application, or the technology you use, you may need more CPU or more RAM.

You can choose the profile that fits your needs, and you can change it at any time.

Environment variables

I found the environment variables management to be very good.

You can create an environment file to manage it and adapt it to your needs.

For example, when you have a database linked to your application, you have automatic environment variables created for you, like the database URL, username, password, etc.

The names of the environment variables are not always the same as the ones you would use in your code, but you can easily adapt it to your need in the environment file.

Like renaming the database URL to DATABASE_URL instead of UPSUN_DATABASE_URL.

It’s also important to note that there is other point related to the environment variables that will be in the downsides section below.

Performance

It’s only a feeling we had in my team. After migrating from Upsun to Clever Cloud, with the same code and similar resources.

We were multiple people in my team that noticed that the performance was better, that the pages were loading faster, and that the application was more responsive.

Without concerting with each other, multiple people in my team mentioned it to me.

I don’t have any metrics to prove it, and it’s probably a tiny difference, but it’s worth mentioning.

Still Upsun was performant enough for our needs, and we did not have any performance issues with it.

Differences between Clever Cloud and Upsun

With all the points above, you can see that there are some differences between Clever Cloud and Upsun.

Now there is also some differences that are not particularly bad or good, just different approaches.

Configuration

In upsun a lot of the configuration is done in the config file, for example the addons needed (filesystem, databases, etc..).

In clever cloud it usually done in the interface, or the CLI / API. And then with environment variables in the applications.

It’s the same for the deployment configuration, like the build command, the start command, etc.

In upsun it’s done in the config file, in clever cloud it’s done in the environment variables.

Both worked well for me.

Conclusion

For me Clever Cloud is way better than Upsun. It has its downsides, but there is not as many as Upsun.

Also, there is some important features, like deployment without interruption and auto-scaling, that are not available in Upsun.

The services are more suitable for my needs on Clever Cloud, and the pricing is better. The relationship with the support is also better, I had a better experience with them.

Both providers are good, but Clever Cloud is more mature and has a better overall experience.