We were recently invited to explain to a disparate group of senior business people - who were very non-technology savvy - what our approach was to developing software applications and the use of these in the Cloud. That talk inspired this post.
You are, I am sure, well aware of the Cloud by now. You probably already use it for much of your data. You may use; Google for your email, or have iCloud for your phone and use Dropbox for storing files. All of these services, and many more, exist in the Cloud. But what about your major IT systems? Are they also in the Cloud. In this post we will look at why we think you should consider the Cloud for all (or at least much of) your database needs. We will also look at creating your own dedicated database applications in the Cloud or using Cloud-based database Apps. Many times these are referred to either as; PaaS (Platform-as-a-Service) or IaaS (Infrastructure-as-a-Service). Here we will explain the difference.
First things first. The Cloud is growing rapidly. From what we can see, there is still some nominal growth in on-premises systems i.e. having a database app in a server based in your office. However, from what we see, this growth seems mostly due to price increases and forced upgrades undertaken to avoid risk, and much less so from new on-premises deployments. According to Gartner, in 2018 worldwide database management systems revenue grew 18.4% to $46 billion. Of this growth, Cloud-based database systems accounted for 68%. And of this, just over 75% came through two companies: Amazon and Microsoft. So the bottom-line is that most growth is going to Cloud based databases hosted on Amazon and Microsoft.
So, should you follow the trend and go to the Cloud? Some advantages to think about:
- Cloud is more scalable. Simply put, this means you can very quickly, and without fuss, add more computing resources. Or reduce them. You can also much more easily, just pay for what you need as you need it.
- Financially, you renting rather than owning those computing resources. This may or may not suit how you do business. There is typically no Cap-ex except for perhaps some initial consultancy/implementation assistance you may use - it's all operating budget spend.
- Risk and Safety. Unless you have a well resourced IT department with separate redundant resources ready to deploy when equipment fails (because it will). You will be better off trusting, that the likes of Amazon and Microsoft will have your back. This does not mean you can opt out of securing your own data. But it does mean that you can have them manage much of your computing infrastructure for you. All Cloud services still suffer some form of outage from time to time. But the major ones are highly reliable and we suggest they will be considerably more reliable than the vast majority of in-house IT departments.
- IT Staffing and equipment costs. Running your own IT in-house operations costs a lot. You need the equipment obviously. But you will also need skilled staff to operate it all. If you are using an outsourced IT Service provider, then they will pass these costs on to you. With the Cloud - you still need IT staff to manage things. But much less so. You can generally rely on the Cloud provider to manage much of the hardware and infrastructure services. Doing it in-house, or with contractors, or outsourced IT service providers still costs.
In putting your database in the Cloud there are 3 ways you can go:
1. PaaS (Platform-as-a-Service)
Here you are using a public cloud provider, like Amazon or Microsoft, and one of their managed database/application service packages. Most of the administrative tasks such as backup, patching, setting up infrastructure, providing SLA backed availability, and scaling up and down is taken care by them. They are relatively easy to set up and you can typically get your database/application up and running in a few clicks. They generally provide you with software for managing and monitoring your systems. And you can choose between multiple sizes and performance options - usually from a pre-configured list. There are some limitations e.g. you do not have full control over the file system, there are usually some limitations on available storage available, plus you will have slightly higher costs of license and storage.
Oh, and you will need to have the skills and expertise to set up the database/application. So you save much of the infrastructure type costs. But you still need some IT resources.
2. IaaS (Infrastructure-as-a-Service)
With the IaaS model, you can build your own database and run it on the infrastructure made available by a cloud service provider. Here, you have much more choice than the packaged databases provided by e.g. Amazon and Microsoft. The benefit of IaaS is very much having everything under your control while still taking advantage of public cloud-based infrastructure. So, you can control when updates and patches are applied and more fully control your own licensing. There is no lock-in so you can move your database between clouds or even back to on-premises.
However, you are going to need a fair bit of skill and expertise to manage all this. You will need your own IT dept or staff for this to be a viable option. And, it unlikely to end up being a cheap option unless you have large economies of scale.
3. Using a Cloud-based Application Database / App from a third party.
This last option is used by many. It's where you buy in, either a ready built application or one which you can rapidly customise for your own use. Depending on your needs you can find many - Apps - that provide pre-formed capabilities in a simple get-on-and-use manner. Most web apps fall into this category. They work the way they work, and you can't really change their nature. However, they are cheap to use and can do a great job if they work the way you want them to.
However, many businesses are a bit more complicated and/or need database applications to work to their particular requirements. Or, they need to be able to rapidly amend these applications to incorporate new needs and features as time goes on. This is where the Application Database App comes in. We ourselves use a number of these tools to produce applications for our clients. However in the interests of keeping this as open and non-partisan as possible here are two other examples:
- Filemaker from Apple is an Application Database. We sometimes use it ourselves and its amazing what database apps you can quickly build and configure with it. And in a very short time. You can use it on a PC as well as Web and Mac. These days, its available as a Cloud-based service too.
- Salesforce.com - the Daddy of CRM (Customer Relationship Management) systems. It however, provides much more than a "standard" CRM and includes tools to build and amend workflows and capabilities within the core product-set. Its has progressed now to the point where there is very little in terms of database apps that it can't do.
The advantage of the Cloud-based Application Database approach, is that you can have things customised and setup to work they way you want them to, and without needing any particular IT staff overhead. Apart from the App, your costs are minimal. The business case for Apps like these, where you can get the advantages of the Cloud and have it tailored to work the way you want it, is hard to beat. Unless you really want to acquire/keep and pay-for in-house expertise, this route will likely be cheapest of the three options listed here.
However, the final message really is - if you have not done so already - then consider putting your databases/apps in the cloud. Use IaaS if you have and want to keep technical staff. Use PaaS if you want to build your own applications. Use standard web applications if you are ok with working to the way another system works. Or use Application Database Apps where you just want the software to work the way you want it to and have it configured for you.