Implications of cloud computing
Selecting Cloud Computing as an option for your business is less straight-forward than you might think. The overwhelming bulk of writing on Cloud Computing to date has been marketing spin of little practical help to end-users. DMW Group is bucking the trend with two articles: one that helps dispel the myths for business readers, and this second paper which gives technical readers some specific criteria to evaluate when considering using “the cloud”.
As we stated in our business article, Cloud Computing is a series of recycled ideas presented with a fresh twist. Commoditisation of servers, virtualisation, automation and ubiquitous network access have all converged to allow providers to now offer a Infrastructure as a Service, Platforms as a Service or Software as a Service from “the cloud”.
Suitable candidate applications for the cloud
In our business-focused introductory article, we suggested commonplace, non-strategic applications (e.g. email) are best selected for early transition to the cloud, and that other applications may need more careful scrutiny.
In determining whether a computing application or situation is appropriate for Cloud Computing, it is worth considering a number of factors as suggested below:
- The purpose of the environment or environments (e.g. development, testing or production)
- Computing power required(number of CPUs/cores/threads required)
- Memory required
- Disk or storage requirements
- Operating system/environment
- Connectivity to other applications or systems
- Performance criticality
- Backup requirements
- Availability (i.e. the SLA being provided to the end-users)
- Resiliency (i.e. the ability to recover from a hardware fault or operator error)
Once you have scored your applications with respect to their relative need of the above criteria – you should then group them to assist with easily identifying those which could move into the Cloud.
What are the implications of using cloud computing?
Once you have a shortlist of applications that are potential candidates to move into the cloud you need to understand the implications of actually doing so.
Selecting a Cloud Computing service potentially combines package selection, platform selection and selection of an outsourcing provider, each of which could be a project in itself
Returning to the basic attributes of an application, which we touched on earlier, we can look at the impact of moving into the cloud. We will consider each of the following aspects in turn.
- Computing Power
- Operating System/Environment
- Connectivity to Other Applications or Systems
- Performance Criticality
- Backup Requirements
- Availability Requirements (from a Business Perspective)
- Resiliency requirements
Although Cloud Computing vendors advertise their “clouds” as having infinite compute power, this is not the case. Most vendors who sell Cloud Computing solutions will have very slim margins and are likely to commission new compute power within their datacentres on a just-in-time basis. Thus large increments in customer demand may not be instantaneously met. This is especially true if the vendor doesn’t have the capital budget provision to commission, build and bring into service datacentres in plenty of time to serve its customers needs.
There will be physical limitations within the vendor’s computing infrastructure that will limit the amount of RAM that is accessible from a particular set of processors (given that you are sharing their facilities with many other customers). To this end, computing applications which are very memory intensive are probably not best suited to migration into the Cloud.
Despite many Cloud Computing vendors selling the promise of unlimited, instantly-available storage, access speeds will be limited by your Internet connection: therefore bandwidth is a major consideration when using applications that use a lot of data. Some companies offer a service to upload data (and potentially applications, although this is more troublesome) via a portable hard disc that is shipped directly to them (wherever in the world they may be) but you should consider the security of that information while it is in transit.
Operating system / environment
Most vendors are running particular tailored varieties of the Linux platform (since this provides them with the cheapest running costs). Whilst this does ensure compatibility with their infrastructure — it does mean that you will need the source code to your application so that you can compile it in the cloud and have it run from there. It is worth noting that some vendors do offer Windows as the operating system, but this increases costs and may shift the maintenance over to you (which will negate some of the benefits of Cloud Computing).
Connectivity to other applications or systems
It is highly likely that the system that you are considering moving to the Cloud will need to communicate with at least one other application. In order to facilitate this you need to decide whether the other applications that are needed are also moved to the cloud, or whether they access them over the Internet. In deciding which path to take, you will need to consider how much data is moved from one system to the others, as well as how “chatty” an application is (does your application speak in long drawn-out sentences or short bursts). Applications which use short bursts typically perform poorly as the latency across cannot be guaranteed and is often poor. Lastly you should consider the integrity of the data which is flowing between applications and how well protected it is.
How much do your end-users depend on the performance of this application and if that performance varies, what’s the impact? What class of application are you migrating kind of application are you thinking about moving to the Cloud? Is it a development environment that users are using where performance is less critical than a CRM system which is being used in a call centre to answer customer’s calls?
Assuming that the application(s) and associated data that you put in the Cloud are worth something to you, you almost certainly wish to ensure that if there is either a hardware, software or human error, that application and its data can be recovered. Ensuring that your applications and data are properly backed up (on a schedule that fits with your pattern of usage) and is restorable is very important. Equally you may wish to use backups explicitly such as the case where you are running testing an application and wish to rewind the entire system back to a known position before each testing phase starts.
Availability requirements (from a business perspective)
In addition to the performance of the application considered above, it is important to determine the level of service provided by the Cloud vendor; this needs to match your business requirements. For example, for development and test uses of Cloud Computing having the system available during office hours may be sufficient, however if the system is used by your globally-distributed workforce, then there is little tolerance for downtime.
Head in the clouds?
Moving to Cloud Computing is very much like creating a partnership with another company. You are, after all, moving your precious application and its even more precious data into their trust. You want to be sure that your Cloud provider is worth your business and will ‘look after’ your valuable data.
In choosing a vendor of Cloud Computing services you should consider the following aspects.
- Connection speed
- Support (technical and non-technical)
- Migration strategy
- Migration approach
Having taken the leap to Cloud Computing, you also need to ensure that they stay in business since the impact and delay of switching provider would be likely to severely impact any business case or drastically affect service level agreements to your end-users. As part of moving to the Cloud – you should plan an exit strategy with your provider to in case either of the above do happen – so you won’t be left with a problem. You will also need this plan should you chose to in-source the application(s).
If you like the sound of benefits but you don’t want the risk of the downsides, a possibility is for you to run your own ‘private’ cloud. This would negate many of the concerns over data security, vendor lock-in whilst offering, to your business, some of the advantages of a more flexible approach. However, it does mean you still need capital investment, and may lose ability to provide ‘elastic’ computing power.
For large enterprises DMW recommends a hybrid approach.
For large enterprises the concerns about moving data and applications into the Cloud will probably be a step too far even if it does make financial sense. For those groups it probably makes sense to create a private cloud. That is, a service which has the attributes of a Cloud (flexible pre-provisioned compute environment) that has a service catalogue which can be offered back to other departments within both IT and the business.
This approach permits IT to keep a control of costs and for the business to receive a service that is perceived as more flexible yet is leveraging the existing IT asset base more effectively.
Small / medium enterprises
Cloud Computing has much to offer small and medium enterprises. It permits them to run applications that are traditionally too complex or expensive (either because of prohibitive licensing costs or impractical hardware requirements). It reduces the need for long startup times for implementing new services and capabilities as well as the ongoing need for operator training.
It is clear that Cloud Computing is no silver bullet. However for some, it certainly provides advantages. It allows businesses to outsource the commodity aspects of providing IT services, thus reducing the need for them to maintain the overheads of a dedicated computing facility.