Today’s Community Contributor is Benjamin Plotkin, Technical Project Manager at California State University, Northridge. Benjamin has managed software development teams and IT projects for more than 20 years, and has held additional IT and technologies roles throughout his career. He has written several detailed reviews on TrustRadius of the tools he uses at work. Here, Benjamin shares his experience and advice for completing an on-premise to cloud migration.
“The Cloud” — a phrase that is, at turns, both idyllic and ominous. Clouds can be fluffy and fun, or dark and foreboding (reports of silver linings remain, at present, unverified). Will “The Cloud” solve your data center infrastructure problems, or will it “lift and shift” them into a remote and confusing new paradigm?
Wikipedia defines cloud computing as the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. But you knew that already, right? In fact, if you’re reading this article, it’s probably because you’re considering jumping on the cloud bandwagon.
Your timing is great, because you have a plethora of vendors to choose from. Popular services include Amazon Web Services, Microsoft Azure, Google Cloud, and IBM Cloud (and this is, by no means, a complete list). But the purpose of this article isn’t to tell you which service is right for you, but to share some wisdom I’ve gained from my team’s foray into the heavens.
So who am I, and what gives me the right? I’m a veteran software development and technical project manager with experience in the private and public sectors. At present, I manage a small (but nimble!) team of web application developers for a public university on the West Coast of the United States. We’re nearly finished with the migration of our on-premises, Linux-based hosting infrastructure into the cloud, and it’s been quite the journey.
As per that old aphorism, “no plan survives contact with the enemy,” and we’ve had to reassess our base assumptions more than once. But the good news is we’re nearly to the finish line, and, with hope, dear readers, you can benefit from our learning experiences without having to relive them yourselves.
Why move to the cloud?
Let’s start at the beginning: why move to the cloud? There are many drivers, but some particularly compelling reasons follow:
- Reducing spending
- Increasing agility
- Unprecedented scalability
Cloud vendors have done an admirable job in communicating the potential cost savings that cloud hosting can deliver. By only using resources that you need, when you need them, you don’t have to pay for oversized physical infrastructure (or the pricey subject matter expertise required to keep the “big iron” running 24/7/365).
Saving money is the primary motivation for cloud migrations, but by abstracting your infrastructure into the cloud, you can also benefit from the freedom to fail fast and often. The dynamic nature of the platform makes increasing (or reducing) infrastructure to accommodate changing needs a relatively pain-free process. And that same scalability that empowers your devs to chase their dreams also has your back should your latest gambit prove successful — another server instance is always just a click away.
What are the challenges of moving to the cloud?
Of course, it’s not all sugarplums and unicorns in the cloud. A successful migration faces many challenges, including:
- Controlling costs
- Picking the right architecture
- Scaling learning curves
While there is great potential for cost savings when moving to the cloud, moving from an “all you can eat” model to use-based billing is a double-edged sword. If wielded inexpertly, the cloud pricing model is as likely to slash profits as it is to cut costs. Make sure you understand the recurring costs you’re committing to before you spin up services, keep an eye on your run rates, and be choosy about what you move into the cloud. Consider moving low-use services into the cloud first, as they will yield the biggest savings when compared with on-premises hosting.
What to know before migrating from on-prem to the cloud
Don’t let the hype fool you: a cloud migration is a complex project. As such, your success is predicated on careful planning. Before you jump into the cloud, make sure your stakeholders agree on what your drivers and objectives entail.
Give your technical team the time to draft a solution architecture that delivers on your objectives. This could require giving your team the time and training budget to scale the cloud ecosystem learning curve, which can be surprisingly steep. Remember those subject matter expertise savings I mentioned as a benefit of giving up your on-premises data center? You just might find yourself trading one set of contractor costs for another if your organization has to rely on external resources to implement your cloud migration.
Speaking of implementation, you’ll need a plan for that, too. Do you really want to eat the elephant and move everything at once? I’m no magic 8-ball, but my sources say NO.
Consider a modular approach, instead. In your first phase, move those low-use services. In subsequent phases, roll out higher-trafficked and more important services. This gives your team some breathing room, and aligns their growth in expertise with the increase in risk.
Instead of rebuilding your services from scratch, think about starting with a “lift and shift” approach for your initial cloud migration project (this involves directly migrating current processes and infrastructure directly into the cloud). Even if your team has a very compelling vision for going serverless, you’re far more likely to produce successful results by moving what works now off-premises before you start rewriting things. If it ain’t broke, etc.
Successful on-premise to cloud migrations require effective preparation
I hope I’ve made it clear that a successful cloud migration requires an up-front investment in time spent training, designing, and planning. If you commit to the process unprepared, you risk failing (fast, and maybe just once, if your executive staff lacks empathy). However, with patience, diligence, and clearly-defined goals, your cloud migration project will be a resounding success!