Cloud Migration Blueprint
Cloud computing (aka someone else’s systems and infrastructure ;-) can provide benefits and cost savings if utilized appropriately.?However, if you’re not careful, use of a cloud can become overly intricate and lead to skyrocketing charges.?Regardless of the provider(s) you select, there are a number of migration paths from which to choose based on your goals.
You can lift-and-shift relatively quickly and cope with charges and tech debt afterwards, which is great for cloud providers.?In practical terms however, it’s a cumbersome process that carries technical debt to the cloud, and once there systems are not well suited to capitalize on that ecosystem. There are variations of this approach that minimize required changes, and one might be suitable if you don't have great diversity across systems.
Another suggestion is to rebuild VMs and re-platform as you go to reduce technical debt. You upgrade the software in addition to hardware, which is a step in the right direction, but note that you’re essentially implementing IaaS or infrastructure as a service, similar to the lift-and-shift approach, which is often more expensive than running VMs on-premises.
A third option is to containerize apps and deploy to an orchestration system, ideally Kubernetes. This too, is a step in the right direction that may work well for smaller apps, particularly if you re-platform (i.e. update software in the process), however larger apps require more resources and undermine orchestration. You then require larger VMs, which are vastly more expensive than small ones in the cloud; that's a common pitfall, unless there are other savings involved to offset those costs, such as the closing of a data center.
领英推荐
If you have the time or personnel, you can modernize apps.?This is the optimal way to utilize the cloud as it can provide great costs savings and integration, though often no small task since you're rewriting apps.?Leverage serverless and native services, choose NoSQL over RDBMS, adopt a serverless offering for any RDBMS required, and use containers in an optimal way when serverless falls short. The latter involves modern architecture such as microservices, or distributed computing, and API design for example.
Finally, depending upon your application, you may have the opportunity to adopt a SaaS solution, or software as a service.?More often than not, SaaS will be more cost effective than IaaS, but of course it depends on the vendor, assuming such a solution meets your needs.
In the end you may leverage a variety of these approaches since one size rarely fits all, and in the process, you might even find it more cost effective to leave some apps on-premises.?In any case, as you evaluate options, be sure to consider what applications can be retired or consolidated to reduce your footprint and associated costs.
One final note is that the groundwork needed to move to the cloud is extensive, assuming you’re not hosting a simple, modern app for public consumption, because you’re building a private data center from the ground up, which requires architectural planning, networking, security, infrastructure, and integration. The cloud can be quite advantageous for a variety of reasons, but do your research to chart a successful course and control the spend.