Mistakes we’ve seen migrating systems from legacy to cloud.
In this article, we’re looking at some things that people misunderstand or get wrong when moving from the legacy world of on-premises systems to the modern setup offered by the cloud.
This isn’t a finger-pointing exercise, though, as we’ve made past mistakes (newsflash: no one is perfect). As ever, the important point is to learn from those experiences. We hope the areas covered here will get you thinking the right way about your next cloud migration project.
So, let’s look at what to keep in mind so that you get your cloud projects right.
Cloud needs a new mindset
Cloud technology is not a new thing – it’s been around for well over a decade – but its speed of adoption has really gathered pace over the past 5 years. Crucially, because the cloud offers a different way of doing things, it requires us to take on a new mindset, and that’s something that many old-school techies might have a problem getting their heads around.
In the traditional on-premises model, businesses would buy servers and that would fix their computing and storage capacity. They could fine-tune their setup, of course, but it was essentially limited – unless and until there was another large capital investment in expanding the tech real estate (sometimes literally, as servers require physical space).
On the other hand, the cloud model isn’t limited by such restrictions. It has a great ability to scale. Solutions can be quickly and easily created, used and torn down.
It’s like comparing a pre-fabricated building with a pile of building blocks. The former has limited uses and can be quite costly and hard to change, but the latter is almost infinitely extensible – and it’s relatively cheap to do so.
As storage is now relatively cheap, it’s become affordable to store much of the data that we might previously have discarded. Holding on to that data opens up possibilities for data mining, AI and other analytics.
And scaling to compute capacity up and down (or “right-sizing”) at all times makes the cloud perfect for services that have to deal with spikes in demand. Imagine an ecommerce system going into overdrive on Black Friday, for example – cloud designs can accommodate such scaling requirements with no problem.
Beware the costs of poor app performance
The above sounds as though cloud is a perfect alternative to on-premises models, but it’s important to understand that not everything about the cloud approach is cheap. OK, storage is low cost – 1TB of data might cost you only £10 per month – but the challenge of having all that data is in the computational power needed to process it all. Computing all this is what costs the most money in the cloud model.
It’s all too common to move a poorly performing app from an on-premises system to the cloud. This costs a lot in terms of compute time, and that’s where you could be stung.
Running an app with poor performance in the cloud is the equivalent of sending the kids to a sweet shop and telling them to spend as much time and money there as they want – it’s going to cost you.
But planning the “trip” better would mean less time in the shop and hence less money spent. So it is with the cloud. Compute time has to be planned and used wisely, else you’re wasting resources.
Don’t settle for lift and shift
Another typical mistake is that moving to cloud is treated as a “lift and shift” – that’s moving from physical servers to virtual servers without doing anything else. This is an improvement in that renting your servers is usually better than buying them. But it’s also the perfect opportunity for “app modernisation”, i.e. changing your apps to work with cloud-native services to reduce operational costs.
This comes back to the mindset point we started out with. Thinking about cloud the right way – a departure from the old fixed approach – should help you see that there’s much more you can do than simply create a like-for-like copy of your old apps. (We help our clients get this stuff right so that the cloud delivers new and better value generation for their businesses.)
Think about data governance and working practices
When moving to the cloud, it’s important to think about your data governance and working practices so that your team has a safe environment in which to work.
Security teams used to on-premises systems are sometimes fearful of the cloud, so they write policies, routines and rules that stop anyone doing any practical work in the cloud. Companies can stay in stasis while these things are argued over.
At the other end of the spectrum, some might see the freedom offered by the cloud as meaning that there ought to be no rules, no governance, no consistency.
But that often leads to bad results, and it can be hard to pull back from this. You can end up in the midst of an overgrown tech jungle. Compare that with the overly cautious approach in the first scenario – the equivalent of having to fill out countless forms just for permission to turn on the garden sprinkler. Finding the happy medium is what it’s all about. You know you’ve found it when your app teams think of the governance as a help not a hindrance!
Let the cloud service provider do the heavy lifting
We always recommend trying to make use of the highest-value services offered via the cloud. Instead of getting bogged down with the nuts and bolts, leave the cloud service provider to worry about the things you don’t need to.
Whether you need a Platform as Service, Web App as Service, Infrastructure as Service or some other feature, you’ll see better operational efficiencies and have more agility if you take advantage of what the cloud can offer. Again, helping clients understand what cloud options are available to them is something we do on a daily basis.
Move away from the monoliths
The old and rather monolithic structures of legacy systems are much better replaced by the new microservices model. New, reusable microservices components are easier to build and maintain, and they work well together.
Instead of trying to do a wholesale replacement of a legacy system that might have taken a decade to create, the piece-by-piece microservices approach lets you deliver value quickly, and this is what we’ve been applying in our work in financial services and the property industry.
In fact, focusing on migrations to the cloud and cloud-first projects means that we now approach all work the same way every time.
We believe that infrastructure should be built as code, allowing us to tear things down and rebuild the same every time – with microservices that we can quickly develop and reuse. Our clients appreciate this, and their cloud-based systems tend to work much better than the old monolithic systems they were used to.
Do more upfront thinking
The old adage of measure twice and cut once applies to cloud projects. If you can put some time and thought into the first stages of thinking, planning and designing, you’ll benefit from:
- Shorter build and test times.
- Better delivery of the project’s technical goals.
- Reduced slippage on deadlines and budget.
And a final thought: all new ways of thinking about cloud projects should apply to the people involved, including your customers. Technology tends to behave – it’s the people who cause the trouble!