From email and file sharing to CRM systems and critical infrastructure, businesses are moving their systems to the cloud at a phenomenal rate. But before diving head first into the cloud, keep in mind that migrations don’t happen overnight and that any company considering this move must carefully evaluate both the risks and rewards.
Benefits to Consider
Among a cloud deployment’s many benefits is scalability. As opposed to dedicated or collocated hardware, the ability to scale up or down quickly and to match capacity to demand can be a powerful incentive, especially for applications with seasonal or cyclical fluctuations in traffic. Combined with the “pay for what you use” billing model of most services, cloud migrations can make good financial sense as well.
A somewhat less obvious, but equally important benefit is automation. Having the ability to stand up new operating environments in minutes, rather than days or weeks, can mean the difference between capturing new business opportunities and missing them altogether. The ability to quickly provision new systems and have them instantly managed often results in a dramatically lower total cost of ownership.
Reliability is another potential benefit to a cloud migration. Reputable, mature cloud providers can be significantly more robust than infrastructure that is managed in-house, and may also enjoy economies of scale that smaller companies simply do not have access to in terms of purchasing bandwidth and equipment. Many providers guarantee a certain level of availability and rapid failover options.
Challenges and Potential Drawbacks
Despite the benefits, cloud migrations are not without potential drawbacks. Any company considering such a move must take these into account when evaluating its future cloud strategy.
One key consideration is security. If you think your applications are secure in the cloud, think again. In May 2016 a technique known as “TeLeScope” was revealed for silently obtaining encryption keys on many major virtualized environments. If you hosted your applications on an outsourced hypervisor environment such as those used by Amazon, Google or Microsoft (News - Alert), all of your sensitive data in transit may have been decrypted and read!
Another consideration: With the power and benefits of automation comes the ability to easily make bulk changes to your environment that may have unintended consequences – including the possibility of irreversibly modifying or deleting critical infrastructure, resulting in significant down-time. If you plan to use automation tools for provisioning or configuration, ensure that any automation can be tested prior to running on production instances, and that the tools you plan to use include simple undo functionality in the event of an error.
A third consideration is vendor lock-in. Depending on your provider’s technology stack, it could be difficult to migrate your systems to another cloud service. To avoid this potential problem, take the time to understand your provider’s technology stack and ask what tools are available to aid in system migration. It pays to do detailed research. Many cloud providers use the same underlying technology. So expect the best, but plan for the worst.
Choosing a Provider
If your business decides to migrate to the cloud, the next step is to choose a provider and ensure the migration is achieved without a glitch. Questions to ask potential partners include:
- If a server goes down, what is the turnaround time to get it up again?
- How quickly do they respond to an issue and what sort of escalation do they use?
- How fast will they fix any problems?
- What is their mean time between failures (MTBF)?
Insist on service-level agreements that cover these issues, and note that most reputable cloud service providers will issue service credits if standards are not met.
Planning and Performing the Migration
Once you have selected the best provider for your needs, ensuring a flawless migration requires careful planning and validation. First you must determine which of your applications are appropriate for the cloud and which are not. Conduct a deep dive assessment of your applications’ requirements and your existing IT environment to determine which of your apps are a good fit for the cloud.
Some important questions to consider:
- What is the load for your applications in the current environment?
- What bandwidth do your applications require?
- How much memory or CPU code do you need?
- How much logical storage space is required?
- What type of load balancing is required?
- What are your current bandwidth needs?
- How many transactions per second does this app normally process?
- How many CPU resources do you need?
- What is the memory utilization for your various apps?
- What are your slow times and peak times day-to-day, hour-to-hour, month-to-month and year-to-year?
- What are your inputs and outputs per second (IOPS) or how many read/writes do you use between the CPU and the actual disk?
If possible, plan to “soft-deploy” and run the new, cloud-based system in parallel with the legacy environment. This allows for testing and verification without impacting existing users. And it enables the legacy environment to serve as a fallback in case of problems with the cloud migration. Before you finalize migration and direct all user traffic to the new environment, be sure to include load testing, stress testing and performance testing in your verification plan.
In February 2016, a survey by International Data Corporation revealed that 58 percent of companies planned to use cloud-computing services for more than two applications. That’s a 24 percent increase in just 14 months. The trend is irreversible. But if you want to avoid glitches when migrating, consider both the benefits and possible security and lock-in considerations, choose your provider wisely and make sure to have ample time for testing and verification.
Seth Jaslow is CTO of Northgate Digital, a leading software development and outsourcing company providing application development expertise to customers across a wide range of industry verticals. You can reach him at: email@example.com
Edited by Alicia Young