Cloud computing for your website
What service model is right for you and your business?
Many companies would agree that a significant part of their Digital Transformation programme, assuming they adopted one, involved migrating some or all of their business critical systems to the Cloud. There are many reasons why this is an attractive business model, but the main ones are scalability and cost reduction, with ongoing maintenance, security and performance also being taken into consideration.
At Yoyo we predominantly build websites, so we’re only going to focus on those as part of this article. If you need more information on running other types of application in the Cloud, then please do get in touch and we’ll try to help or connect to you directly to our partners.
Ok, so here are your current options in terms of getting your website hosted in the Cloud…
Software-as-a-service; a form of “on-demand” software where you subscribe to an entirely externally hosted application. Some don’t realise it, but websites like Facebook, Twitter and [insert favourite social media platform here] are all forms of software-as-a-service. That’s easy enough to understand for you as a consumer, but what about you as a business?
Well, with regards to websites, there are plenty of basic website builder tools out there that effectively equate to the same thing; Squarespace, Wix, Yahoo sitebuilder, GoDaddy and 1&1, to name a few. Regardless of how sophisticated or commercially viable you consider these to be, they remain the best example of a purist’s view of SaaS, in terms of websites. The key here is that with the SaaS model, there’s nothing you have to do in terms of setting up your website. All of the installation and configuration tasks are handled by the SaaS provider. They use automation techniques to create your website, and then provide you with an admin interface to apply content, styling and configuration changes as necessary. Normally, software updates would be automatically applied without your knowledge, giving you peace of mind that your website is running on the latest and greatest version of the product.
- Low barrier to market — suits very small brochure websites with low traffic
- Typically offers the lowest running costs
- Little or no management required
- Typically limited software features and little flexibility for any customisations
- Could be costly to change hosting model at a later date
- Limited or zero integration with on premise and third-party apps \ APIs
- May not meet organisation’s compliance policies
Platform-as-a-service; Ok, so this is where it starts to get interesting. By “platform” we mean server or operating system, in the most part. So that means “don’t worry, you don’t need to manage and maintain your own server, we’ll do that for you. Also, we might even install the software you want to run on it, but it will be a fresh install. Nothing will be configured for you — that’s your job”.
Whereas SaaS is locked down tight so that you can’t break your website even if you wanted to, the PaaS model, theoretically, gives you plenty of opportunity to configure (and break) your own website as you control which files get uploaded to it. In a nutshell, you are directly responsible for the development, management and maintenance of the website running on the platform.
- Full control of your application without having to worry about the operating environment
- Typically lower running costs than running the same software on-premise or on IaaS (see below)
- Built in vertical and horizontal scaling
- Possible integration with on-premise and third-party apps \ APIs over the Internet or private networks
- Care needs to be taken getting the application topology / solution design right (web site architectures, databases and related subsystems, load balancers, etc.)
- Still an emerging technology so there is limited end-user documentation / standards changing all the time
- You are in charge of application management
Infrastructure-as-a-service; put simply, this is your old on-premise server but in virtual form (VPS). Everything you used to do when you managed your server in-house, you can now do in the Cloud - apart from physically connecting to it. That last point is important. On-premise servers often have other physical devices attached to them. In practice this shouldn’t really be a commercial consideration as things like backup devices or other disaster recovery (DR) measures are simply replaced by yet more Cloud-based services you can employ instead.
- Feature rich (if you could do it on-premise, you should be able to do it on your VPS too)
- Full access to underlying OS through RDP
- Possible integration with on-premise and third-party apps \ APIs or over the Internet or private networks
- Usually well documented / well established and stable architecture
- Underlying hardware (networking, host servers and storage) fully managed by the vendor, such as Microsoft
- Highest costs (although probably still cheaper than on-premise)
- Any horizontal or vertical scaling will have to be manually managed by you
- Deployment lifecycle can be more complicated
- Requires you to fully managed the entire environment, including the application itself
Which one is right for me?
In reality, when you‘re considering your own website or product, it might be sensible to opt for a combination of all three. Naturally this depends on how complex or specific your requirements are, coupled with your budgetary constraints. For example:
- SaaS for your subsystems like databases (e.g. SQL Azure, mLab, etc.)
- PaaS for your content delivery website instances (which may need to easily scale)
- IaaS for everything else (e.g. your single content management website instance)
What else is out there?
There is new breed of services masquerading as SaaS but in reality are PaaS plus a “managed application” environment. For the benefit of this article, I’m going to call this an “MPaaS” service (not to be confused with mobile-platform-as-a-service, or indeed IBM’s own managed-platform-as-a-service which is much more geared around the management and provision of the Cloud infrastructure itself).
Managed-platform-as-a-service; like traditional SaaS, these tend to be a product or vendor service rather than a function of a Cloud computing provider. MPaaS involves abstracting away the headache of infrastructure management and scaling strategies (i.e. platform) as well as any core application management (i.e. software upgrades and patches to the underlying application framework which you are building on top of). Everything else though is up to you to manage. So, in theory it should offer the best of both SaaS and PaaS worlds.
The best example of this model is Umbraco CMS’ Cloud offering (aka Umbraco Cloud, aka UaaS). We’ve deployed a number of websites to Umbraco Cloud, including our own. Like PaaS, you own the code, you develop the code, you commit the code to the repo (their repo) and it gets automatically deployed to a target PaaS environment (or deployment “slot”). At the same time, Umbraco auto upgrades your core Umbraco instance with minor version releases as well as any other related core libraries. Umbraco manages the platform and the application framework entirely while you manage the website that sits on top of it.
Sitecore, our other CMS of choice, will also be offering this SaaS / PaaS hybrid solution (“MPaaS”, as I’ve coined it) in the coming months along similar lines of operation. So keep an eye out for that if you are a Sitecore customer. It already supports both Paas and IaaS, of course. Check out the official Sitecore Cloud documentation for more.
As a final note, there is a saying that goes, “a weakness is a strength overplayed” and that is often true of the MPaaS model. Having an environment that is managed for all, not just you, means that you are going to experience the occasional downtime. You are going to experience this inconvenience due to scheduled maintenance, patch releases and software upgrades, all of which are beyond your control. It’s a fact, so deal with it or go with a different Cloud model which gives you as close to 100% uptime as possible. However, this means you’ll have to manage your environment and application yourself, like PaaS or IaaS. There’s no right or wrong way with this, it’s whatever works for you and your business.
Get in touch if you’d like to discuss anything you’ve read in this article.
This article was brought to you by James Forage, Technical Director at Yoyo Design and Luke Smith, Director at ElysianIT Limited.
Yoyo Design are a multi award-winning digital agency, a Sitecore Implementation Partner and an Umbraco CMS specialist.
ElysianIT is a Microsoft Systems Integrator (SI) with extensive experience of working with Microsoft Azure, EMS and Office 365. We offer a range of business change and implementation services focused around Microsoft cloud technologies.