Any IT project is a two-dimensional balance of risk and reward, cost and benefit. The cloud doesn't break this...
traditional model, but it complicates it. In the cloud, it's often difficult to assess any of the four elements, much less balance all of them.
The perfect formula for cloud success is complicated: Assess the cost-benefit profile of candidate cloud applications, assess their technical suitability for the cloud and organize the migration process to ensure success.
But which applications are good candidates for deployment to the cloud? Which apps are better left out of your cloud plans? You'll need to make these determinations on a technical basis, of course, but it's just as important to weigh the costs of deploying particular applications to the cloud versus holding them in place. That means close scrutiny of factors such as resource use and per-gigabyte costs.
The perfect application for cloud deployment is one that's likely excessively expensive to run internally. That higher cost can be associated with low or highly variable utilization, excessive operations support costs or an unusual resource need that's hard to fulfill within the data center. Things running on independent servers, particularly at the departmental level, often fit this profile. Core applications that run on high-capacity data center systems or on virtualized server farms, on the other hand, are less likely to be unreasonably expensive and thus less likely to benefit from cloud migration.
The perfect application for cloud deployment is one that's likely excessively expensive to run internally.
Realizing cloud benefits means accepting cloud costs -- the second dimension of cloud application consideration. The pricing model for cloud services typically includes a component of processing/computing use, data storage costs and access costs. Applications that have low server utilization on-premises will have low utilization in the cloud and can likely run on the least-expensive compute resources.
The hardest costs to assess are those associated with cloud data and access. Most cloud plans will charge per gigabyte, per month, for data storage and will also charge for access to data, so applications that are highly data-intensive are likely to be more expensive to run in the cloud.
The best way of understanding cloud costs is to look at application/system logs for the systems currently running candidate applications to understand their resource use, particularly data usage. Based on real data, you can estimate cloud costs and pick applications with the lowest costs.
If you started by picking applications with the best potential cloud savings, the balance of savings and cost will give you the list of the best cloud candidates.
Preparing applications for the cloud
Prepping applications for cloud deployment is the next critical step. An application running in the cloud uses some cloud provider resources and some of a company's application resources, the same ones used to run the application internally. Remember: What you contribute to the cloud as a part of an application image needs to be maintained by you.
With Infrastructure as a Service (IaaS), you contribute all the software in the form of a machine image. Consequently, you need to maintain this software image just as you would were it running on your own virtual machine. That means IaaS won't displace software costs or software operations costs, limiting its savings.
If your applications run on a popular platform, such as Windows or Linux, you may be able to secure Platform as a Service (PaaS) cloud hosting for them. This will save the cost and support of the operating system and middleware.
Software as a Service (SaaS) displaces the largest total internal cost because you provide nothing -- the cloud includes all the hardware and software needed, and the provider supports the combination. The challenge with SaaS is that most applications you run today are likely not available as SaaS. At minimum, it may be necessary to accept the same application (CRM, for example) but from a different source, with different data formats and a different user interface -- for which workers will need to be trained.
Technical obstacles will prevent certain applications from being moved to the cloud since some apps require a special hardware configuration or operating system and middleware that cloud providers don't support. In these cases, it is necessary to either drop the application from consideration or shift to a supplier or configuration that's cloud-compatible.
Where it's necessary to make a change like this, it's almost always best to try to find a SaaS version of the application you need first. If that's not possible, look for one that runs on an available PaaS. That will create more cloud savings and eliminate the need to train support personnel on maintaining machine images for a completely new application.
About the author
Tom Nolle is president of CIMI Corp., a strategic consulting firm specializing in telecommunications and data communications since 1982.