This post was originally published on AIIM's Expert Blogs by Serge Huber, CTO at Jahia Solutions
With all the current hype about cloud deployments, it is sometimes difficult to understand what are the real-world implications of choosing such a technology to deploy enterprise services. What are the common pitfalls and what are the best practices that will help you successfully install a solution (such as a CMS) in the cloud ? In this blog post I will quickly go over some basic yet important steps to help you jumpstart your cloud project both quickly and safely.
Choosing a cloud provider
The selection of a cloud provider is a good place to start, but it is also one of the most difficult choices to make. It will involve selecting a solution based on price, reliability, features and support. In order to select a provider, it is best to have a clear understanding of the setup requirements. For example, is a separate machine needed as a database server ? Will the setup require multiple cluster instances ? What are the existing system administrator skills ? Will the instances be needed 24/7/365 or are they just needed for a short period ?
Based on detailed requirements, selecting a cloud provider becomes a little easier as it will then drill down mostly to price and support options. Support services should not be neglected as they might not be immediately needed but they will be essential to make sure the deployed service runs smoothly.
One of the great things about cloud service providers is that many offer the possibility to rent hardware by the month, or even by the hour. This makes it very easy to evaluate a service, by for example simply setting up a trial installation of a CMS in a cloud instance. This is also useful for setting up any proof-of-concept installation.
For example, it is not at all uncommon for a vendor to set up a temporary cloud CMS installation to provide a custom demo setup for a potential client, or for an integrator to provide a customer a temporary proof-of-concept installation so that they made validate the initial work being done.
Security and system administration
As with any internet accessible service, security is a very important part of any cloud install, and proper effort must be made to make sure that even temporary installs do not fall victim to any of the many dangers of the public network.
Also, it is often a good idea to look at the various cloud offerings to select solutions that include high-level system administration tools, which may even include security frameworks (such as intrusion detection systems).
Cloud providers are often a prime target for hackers as they know that a lot of instances are setup with little or no security, and therefore these networks are often scanned for vulnerabilities. It is therefore paramount to make sure that any installation is secured safely, even if it is only temporary.
A good choice to facilitate system administration is to make use of specialized instances such as a specialized database instance (for example Amazon’s Relational Database Service (RDS) that offers ready-to-use instances of MySQL, Oracle or Microsoft SQL server) or other prebuilt cloud packages. The offering will of course depend on the select cloud service provider, but it is worth looking at the availability of such instances to help reduce system administration work.
Preventing cloud failures
Last but not least, it is important to remember that despite all the best efforts by cloud service providers, the risk of system failure still exists, and it is important to be prepared for such an eventuality. For example, Amazon instances have been known to be subject to hardware failure, which may lead to complete data instance loss. Therefore it is important to remember that outsourcing hosting to a cloud provider does not mean that you can forget about a proper backup strategy. The best approach is to perform offsite backups, for example using a low-level technology such as rsync or using system backup tools, and immediately validating the backup setup by performing a restore on a separate instance. I cannot stress the point enough to test the backup properly because I have seen it happen quite too often that administrators claim to have setup a proper backup strategy but when the time finally comes to actually restore a backup it is not usable because it was improperly implemented.
New possibilities, new responsibilities
Cloud deployment is both a incredibly interesting and powerful deployment solution, and hopefully the above tips and tricks will help you get started with the proper background to avoid some of the most common pitfalls. Of course, as usual, I’m quite sure I didn’t cover all the points that may be relevant cloud deployment but only the ones that, from my own experience, have been most critical to ensure proper deployments. If you’d like to contribute your own, please feel free to do so in the comments.