While my slides of the session are available here, without any context they won’t make much sense. That is why I’ve decided to write up this blog post. I know Umbraco also recorded all sessions as video, and as soon as it goes online, I'll share that here also.
Let us get introduced!
My name is Michael Nielsen, I’m head of production here at Ørskov Web. I originally have a degree in Graphic design (you won't think that when you see my slides). I’m an Umbraco Certified Master, have worked with Umbraco for 7 years and worked with web development for a total of about 20 years.
Ørskov Web is the web part of Ørskov Gruppen, an ad agency located in western part of Denmark. We also work with communication, off- and online marketing, print ads, magazines, yearly reports, do courses and lectures and so on.
We’ve been Gold Partner since February this year, and currently we are 4 developers, and have been trough a heavy modernization process, where we implemented new workflows, with Visual Studio, Version Control, Bower, Gulp and other modern tools.
If you want to label us, I guess we should be placed in the frontend category, however the lines are getting more blurry, as we are doing more C# as a part of our continuous development to handle more complex projects on our own.
Our hosting used to be a mix, where smaller & medium solutions was placed on our own shared server and larger projects would have their own dedicated servers, some with extra servers for test environments.
Are we there yet?
Our journey with Umbraco Cloud started around 2013-2014, here we heard the first rumors, read some blog posts of the upcoming Umbraco as a Service, as it was called back then.
It did sound very interesting, so it was something we kept track of, and at Codegarden 2015, we tried a demo at a workshop. While it had some issues that needed to be fixed, we generally liked it, though at the time, it was still too pricey for us to use for our most common Umbraco projects.
At Codegarden 2016, Umbraco as a Service was renamed to Umbraco Cloud, it has also undergone some drastic changes and also offered a new pricing structure, so now it was competitive with the hosting we used at the time.
We still weren’t quite sure if Umbraco Cloud was there yet, ready to use. So we went home, talked about it and decided the best way forward was to test it out with a real project. We could just move it to regular hosting if something should not work out. After the summer break, we had the perfect project to test Umbraco Cloud with.
The first project we put on Umbraco Cloud was Vestjysk-lederforum.dk, a site for a business network in the western part of Denmark. Members can see information, events, sign up for events, and see who else has signed up.
In the backend, the editors can see how many signed up and how many has declined. They can create PDF’s with participants lists for booking flights, hotels and other things. They can also send out notifications to those who haven’t responded. So a fairly simple site, with a couple of custom tweaks.
Working with Umbraco Cloud went really well, perhaps too well we thought, so to find out if it really was as good as it seemed, we decided to test it with two more projects, which also went very well.
What bumps did we encounter?
No matter how well you plan something, or think you have it figured out, there is always going to be unforeseeable issues. And we did encounter some bugs, other problems was just us getting used to the new workflow and a few were caused by our own stupidity.
Pro tip: Check the rules in your global git ignore files. I’ve personally spent a good hour or so figuring out why some files were not pushed up.
Something probably everyone will run into while working with Umrbaco Cloud, is “Out-of-Sync/Schema Mismatch” messages, when deploying content from one environment to another.
These were by far the majority of issues we had when starting out, and most of the time, it was just us not quite being used to the workflow yet. At the time there weren’t really any good documentation on it, but the Umbraco support crew were really helpful.
When you do get into the workflow, it will only happen rarely, and also the documentation now fully covers this.
But should everything else fail, you can always just delete the local website, and clone it down from remote again. I thin we had to do this one or two times when starting out.
It can be hard to figure out if a package works on Umbraco Cloud or not, as users cannot vote for Package compatibility on Our, which makes at least some sense as solutions on Umbraco Cloud is in a automatic upgrade cycle.
However just like when you usually do an Umbraco upgrade, you should test it out, and if it isn't working, you can either get creative and find alternative solutions, code something yourself, or if all else fails, maybe consider if it's right for Umbraco Cloud.
Other minor issues
There isn’t any SMTP server, so to send out mails from Form submissions, forgot password form, notifications and so on, you have to use an external service. We use Mailgun and it takes about 2 minutes to set up.
There are also no options for setting up scheduled tasks, if you need something for this, you can use Azure or AWS.
But Umbraco Cloud is not for everything. But so far for our usage, we haven’t found any limitations caused by doing really complex things, aka crazy ass things, that is just not how the majority of our projects are.
The 100 max hostnames
We have however found one limitation, which made us give up on a migration to Umbraco Cloud.
It happened with a multi-site solution with about 100 sites. Some might say, having so many sites in one solution is not the best thing, and those people would usually be right. Usually this would be bad for performance, however, the sites have shared content, and at the time, this was the most simple and best solution. The sites are low traffic sites, so there aren’t any issues with performance.
We wanted to migrate the solution to Umbraco Cloud, to get all the benefits when developing. However we found that there is a limit on the number of hostnames you can have on a solution, which is 100. This is a limit in Azure not on Umbraco Cloud.
The correct way to put it on Umbraco Cloud, would be to use a baseline project. That would take some restructuring of the project, which is not relevant at this time, so we’ve postponed it for a later time.
We love Umbraco Cloud!
And why do we love it? It saves us time as it removes trivial tasks, like setting up hosting environments for new projects.
Larger projects might mean contacting a hosting provider for one or more servers. Might take a day or two until those are setup and ready. When you have a server, connect via Remote Desktop, create a folder, create a site and application pool on IIS, create a database and user, then uploading files via FTP and run installation process.
This has been replaced by a few clicks then you have an Umbraco installation running, a few more clicks and a little wait time for downloading, and you’ll be up and running locally. It’s also easier for developers with less knowledge of servers to get started, they do not need any help with setting up IIS or database.
A lot of time is also saved when developing on an existing site. No longer need for copying files and/or mirroring databases either to local or a test environment, this is also just replaced by a few clicks.
It is hard to set an amount on time saved, Umbraco says 8-12%, the only thing we know is that it does save us time and some hassle.
Automatic patch upgrades are also nice. Who hasn’t just upgraded a solution, only to learn that a patch is released quickly after, because an error snuck into the previous release. Upgrades between major versions are also easier. Again much less time spend in mirroring files and database to local or test environment.
Umbraco Forms is bundled and can be used for every project, don’t have to buy and upload license file, and worry about multiple domains.
Savings on hosting
Previously smaller projects would be placed on our own dedicated server in a shared setup. The hosting provider maintained the server and it's ressources, and we paid a price per site we placed on it. Larger and more critical projects had their own dedicated servers, som several for test environments.
Hosting can be done in a lot of different ways, some are cheap, others more expensive. We want to leave handling of servers to those who know more about it than us, and then just focus on being good at developing Umbraco sites.
On the smaller projects we actually save a little on hosting.
For the larger and more critical projects, where we intend to use the Pro version of Umbraco Cloud, we will also save some on hosting. How much depends on the setup, but the example below shows the real costs of a server with 2 Umbraco solutions on it. It is hosted at one of Denmarks largest hosting providers. They also have extra servers for test environments and pay extra for high traffic volumes.
Migrating them to 2 Pro solutions will give us all the benefits of Umbraco Cloud, but will also save on hosting, something that will benefit both us and the client.
Again, this is very individual, but as mentioned before, we don’t want to use our time setting up or maintaining servers, we want to spend our time developing great Umbraco sites.
As you can see the pricing for the Pro plans are extra advantageous for Gold Partners. This leads me to something I call the Gold Partner Trick.
The Umbraco Gold Partner Trick
Usually the Umbraco Cloud Pro plan costs €400 a month. For Gold Partners it is only €100 a month. That means with just 3 Pro solutions, you’ll save more than the yearly cost of the Gold Partner membership.
€10.000 a year is a lot of money for a small company like ours, and while we probably would have become Gold Partner soon anyway, this was the final push for us to become a Gold Partner.
We actually don’t have any solutions on the Pro plans yet, we do have one in development, and a couple in our pipeline, and in time we expect to have several.
But all savings aside, the greatest benefits of Umbraco Cloud is in the time saved and getting rid of some of the hassle, which can leave time to code some extra nice features for your editors.
What does the clients say?
A few might not care, others have heard the term “Cloud”, and feel it is a must-have since everyone are talking about it.
But when we explain the benefits
- It is possible for editors to work on a staging environment, test things out, before pushing their content to live
- When upgrading or developing, content lock will either be non-existent or minimal, depending on scenario
- Automatic patch upgrades
- Umbraco Forms is bundled
The clients are very positive, like it and really do want it.
What’s next for us?
We will keep putting sites on the Cloud, if they are applicable, which almost everything we do is. We will also migrate solutions hosted elsewhere, when doing larger development to get the benefits. Currently we have 20 projects on Cloud, all created since September 2016.
We will start looking further into baseline projects, an area of Umbraco Cloud we haven't explored much yet, to see how that can help us save even more time and also in general we’re looking forward to further development of Umbraco Cloud.
What should you do?
So is Umbraco Cloud right for you? I can’t answer that. There might be many reasons why Umbraco Cloud is not right for you. Whether it's doing very complex projects that aren’t a good fit, have workflows and/or deployment setups in place that gives you other benefits. You might also have your own servers or have very high hosting revenue.
We had none of that, so for us it makes sense, and we’ve gotten a lot out of it. And even if it had meant some lower revenue on hosting, the benefits would still be worth it.
But whatever your situation is, I’ll recommend you at least try it out.