Migrating to the Cloud. What You Should Know First
If you, like many businesses, are thinking of moving some or all of your operations into the cloud, it’s generally a good idea to take a step back and evaluate the reasons. Regardless of what many will tell you, this migration comes with its share of pitfalls. Moving your operations to the cloud is a smart decision. However if done incorrectly, or without a plan in place, moving to the cloud can cause many avoidable problems. This article will go over some of the pros and cons of cloud-migration and provide a few guidelines to help you smoothly make this transition.
Expense is relative
Moving your business operations to the cloud can help you eliminate a significant portion of your up-front expenses. Locally-based systems require purchasing a considerable amount of expensive hardware. Each of these systems need to be maintained, and with changes in technology being what they are, will become obsolete within a frustratingly short time-period. This doesn’t take into account unexpected events such as a flood, which could quickly destroy an entire bank of servers overnight.
On top of this, software needs to be purchased, with a rate for each user, which needs to be renewed each year. Individual users with different devices may need different specifications, so keeping them up-to-date can be a huge and expensive headache.
Cloud hosts, on the other hand, provide all of these features for a monthly fee. All hardware is hosted remotely, any upgrades in technology is typically taken care of the hosting provider. Access to software can be provided through software-as-a-service (SaaS) applications.
However, all of this comes with a caveat. if you don’t pay attention, many of your gains can be quickly erased. Cloud hosting companies charge per use. Cost-per-use may seem very inexpensive at first, but as your business grows, the expense can increase very quickly. With local hosting, you own all of your equipment. Adding new users typically only requires getting a few software licenses, and you’re ready to go. You know your capacity so expense is a lot easier to control. Cloud providers make their money off of usage, so if you grow your expenses might start to skyrocket.
Scalability in the Cloud
With local systems, whenever you need to expand your systems, you typically need to purchase new hardware. You need to be able to plan in advance how much capacity you are going to need, so that you can handle changes in your workload when the time comes. As a result you often need to have a great deal of unused resources available.
With the cloud, provisioning new resources can often occur easily. Many cloud providers, such as AWS provide automatic provisioning, which can detect if more resources are being demanded and can expand to meet this need. You also have the ability to set benchmarks to lower capacity for periods when usage is not expected to be high.
The ease of provisioning more resources can increase the likelihood that you may not be measuring your systems effectively. Setting up auto-scaling is a bit more complicated than providers may lead you to believe, so if you don’t want to be throwing good money after bad you will need to spend some time learning how to use these tools properly. As cloud-hosting providers make their money based on used resources, it’s in your best interest to carefully monitor your usage so as to make the best use of what you are paying for.
Also, while your remote database connections may seem like they are all on the same devices, in reality, various instances can be running slower than others due to the fact that each one may be on a different piece of hardware, shared with who knows what other services, causing more usage than is necessary. It’s generally a good idea to regularly monitor behavior of all of your resources.
Develop some Key Performance Indicators (KPIs) including categories such as lag, load time, error rates, throughput, cpu usage, conversion rates, etc. to make sure everything is running well. Defining these beforehand makes evaluating easier. Once you have these in place, you will be better able to know what to measure.
By using Software as Service (SaaS), you have a great deal of flexibility to be able to have people work from remote locations. Additionally, as all of your data is stored centrally, cloud hosting ensures that data is consistent across your entire enterprise. Everyone accesses the same information, so there is no need for employees to come into the office, and potentially have inconsistent information. While it is possible to remotely access your company’s systems remotely using VPN, occasionally issues can occur. Accessing information through VPN’s can cause slowdowns on some machines, as you are essentially running two operating systems at once. With cloud access, this does not become a problem.
With the flexibility associated with the cloud, it becomes a lot easier to innovate. Because of the cheaper data, you have the option to experiment with new ideas and technologies by simply spinning up new servers when needed without having to purchase new hardware. Given the rapid changing nature of today’s business, it’s very important to be able to quickly provide new options when needed so as to not be left behind by your competition.
With remotely hosted software, you no longer own it. SaaS is typically licensed. You may have site licenses for your software already, but be aware that there many be additional charges for cloud-based access to the same systems.
Also, if for some reason you have a lapse in budget, you could suddenly lose access to all of your systems, which could cause your entire operations to be forced to shut down. For this reason, it’s generally a good idea to not migrate all of your resources, or at least not at first. Keep some local resources handy; make sure you have emergency procedures in place so that if something is to occur, you can still access your important software. Also consider regularly maintaining local copies of important data.
The agility associated with remote access has some give and take. You may find yourself with a slowdown of access if you are located too far from cloud centers. For this reason, it is wise, when choosing cloud providers, to enable CDNs to improve speed. This, however, can cause some data consistency issues. There are a number of ways of handling this, such as well normalized databases and good indexing to improve database speed. You may also choose to deliver views to build in some lag time to ensure that chances of your users working with different data is reduced.
Many fear placing sensitive data in the cloud. This is an understandable fear, however, counter-intuitively, your data may actually be safer hosted remotely. To keep your information safe hosted locally, you need to have a full-time security staff who must keep up-to-date on latest threats. You need to update your hardware and software on a regular basis with the latest patches. It’s highly likely that mistakes can be made. Of course, you could make sure your most sensitive systems are not available remotely, but that could cause a major hit to your productivity. With cloud-based services, particularly with major providers such as Amazon, Google, and Microsoft, these items are handled professionally on a regular basis. Generally, you are actually in better hands with the remote hosting.
Also, with remote hosting, your data is automatically backed up across multiple locations, decreasing the likelihood that your data will be lost in the case of a breach
Even with the best-maintained cloud, your data is often on shared servers. There is always the chance that your data can be exposed to the public. Poor code by someone else on your server can accidentally cause this. One way around this is to use dedicated servers. This may cost a little more, but if your data is sensitive, it may be well worth it. In the event of a breach, despite the backups that many hosts provide, it is, however, a good idea to keep local copies. It never hurts to have too many backups.
More things you should know
You still need your IT Staff
If you believe that you will not need as many quality systems professionals, you may need to think again. What the cloud will not do is to entirely remove the need for quality employees or contractors. Even though you may not need as many people managing the hardware, different types of complexities appear with cloud-based resources. As mentioned earlier, effectiveness and efficiency of these resources need to be constantly monitored, and need to be managed to make sure they are meeting your business needs.
As mentioned earlier, security in the cloud is not perfect. You will still need your security engineers to constantly monitor, identify any possible problems and regularly test for breaching issues.
Consider not putting all your eggs in one basket
Many providers offer services that integrate well with each other. The sheer number of services and options from, for example, AWS, could convince you to solely host your cloud business there. However with this comes the risk of vendor lock-in, wherein moving from one provider to another becomes too difficult to be considered feasible. As a result you can be at their mercy if any pricing changes, or of for instance you want to try using some resources from another cloud provider.
It’s not a bad idea to have your resources stored in multiple locations. You may suffer some performance lag, but it may be worthwhile to not be locked-in. Alternately, you may wish to consider using containerization with tools such as Docker or CoreOs, which are cloud-agnostic, virtual machines for each application, fully-contained and independent of any hosting platform, and including include all dependencies so you can quickly move if need be.
Hybrids can be complex
IIt is important to note that if you wish to keep your resources divided between different providers, this can add a new layer of complexity, particularly if applications need to communicate with each other. Even if you are prepared to handle some of the performance lag mentioned above, making them work with each other can be difficult. It’s important to ensure that your engineers can handle this. Also, while it may be tempting to keep some resources locally hosted, this is probably something you should be moving away from unless it is required for specific governmental regulations. f you are concerned with wholesale moves to the cloud, it’s important to understand the complexity involved for hybrid. Calculate costs for everything. Make sure your engineers are ready to handle the change. Make sure you have coverage for the transition. Compare costs. Also consider moving pieces of your business at a time. Identify the easy ones first and then move forward with the next pieces.
Know your Business Capacity
Before getting started, identify whether the cloud (including SaaS) meets all of your existing needs. Much of the software you have been used to may be trimmed down in the cloud. Less complex means less functionality. You may want to seriously examine all of the SaaS options before going forward and choosing which ones to use.
Make sure you have a plan in place
Before starting, don’t just try and move everything at once. Create a full data migration plan, including what is moving, when production is switching over, your disaster recovery plans, and more. Define a clear leader in your teams. Create a run-book including all of the processes that will occur and make sure everyone involved has a copy.
Overall, making the switch to the cloud is a smart move. The benefits are clear, and it can be done incrementally. However do not make the mistake to assume that the process will be easy. It will take some adapting and getting used to, but you will find in the long run you will be glad you made the change.