Penny-pinching your Episerver Azure environment

What’s the cost for hosting an Episerver test environment on Azure? And what can you do to minimize those costs?

Calculating the price for hosting on Azure is a bit complex, so it’s hard to say what a certain setup would cost for you. You can use the price calculator here to see the list-price. But you should also take in to account the possible credits and discounts you get when having a Visual Studio subscription, or other benefits. You could, for example, subscribe to VS professional for $539/year, get $50/month as credits, and e.g. pay $30/month for a Basic (B1) web app, instead of $55/month.
For the rest of this post I will use the list-price (USD).

So, what’s the minimum price for an Epi environment on Azure?
You’ll need at least this:

  • A “Free” web app. Yes it’s free, as in no costs at all, you can even use SSL.
  • A “B1 Basic” SQL database. $5/month.
  • Blob storage for your images/files + network traffic. <$5/month

In total, less than $10/month! The Free web app isn’t without limitations of course. There is a limit to how many “CPU minutes” you can use per day. Personally I’ve only reached that limit on a few occasions. When that happens an error message will be shown. You can just scale up, and within a minute you can continue to use the site.
If you want to use your own domain name, you need to use at least a “Shared” web app ($10/month).
For a “regular” test/development environment, storage and network traffic will be less than $5. But that could become higher of course. A while ago I was developing a site that used Episerver Find, where some parts of the site (including a lot of large pdf-files) were constantly being updated by an external system. All pdf-files where sent to Find for indexing, and since they where constantly updated, they got sent over and over again. In two weeks 18 Tb of data was sent to Find. Luckily we had set up a spending limit that alerted us before it became too costly.

But how does that minimum environment perform?
It actually works pretty well, at least when the site is warmed up, and pages are cached. If you feel you need more performance, the first thing you should do is to scale up the database.

Most times it works fine running an Episerver dev/test environment on a “B1 Basic” (5 DTU) SQL database, but  on a few occasions I got yellow screen of death when I have done a new deploy. I guess it has happened when we’ve done larger changes to the Page/Block models. Scaling up the database fixes the problem. After Episerver´s first initialization with the new models, the database can be scaled down again.
Importing/exporting a BACPAC can be painfully slow on a “Basic” database. I usually scale up the database before importing/exporting, and then scale down when finished.

I’ve been hosting a large, multi-site, well used, test environment on an S0 database and B1 web appliction. Deployments are continuously done on every check-in, and manual and automated tests are done against that environment. It may not always be “production fast”, but it works really well. Not bad for an environment that costs around $75/month.

My best super-saver deluxe tip
The costs for Azure resources are usually calculated by the hour. If you really want to optimize costs, you can take advantage of the scaling possibilities in a cloud solution, and scale down to a minimum when the environment isn’t used. You could for example use Powershell to automatically scale down your environment during nights and weekends.

Now, buy some drinks for you and your colleagues, for all the money you saved! 🙂

2 thoughts on “Penny-pinching your Episerver Azure environment

  1. If you are really penny pinching, then why even bother with the blob storage? App_Data works as well when you have just 1 server 🙂 Good post.

Leave a Reply