27 April 2023
On-premise to cloud migration – solution study. How to maximize benefits & minimize risks? [real project examples]
Are you tired of generic cloud migration articles that don’t take into consideration your own unique circumstances? Today, we’re going to show you a number of real examples of on-premise to cloud migration so that you can get a feel of what it’s like and discover a use case in the cloud migration process that’s most familiar to your situation.
Finding your way in the world of cloud technologies is just as hard at the beginning as it is rewarding in the end.
Just check out how much research it took to help this fintech company get real-time Business Intelligence dashboards crucial in their decision-making process.
As The Software House with one of the biggest DevOps teams in Poland and an official AWS Partner, we use cloud development to build and scale such applications all the time.
By doing so, we help businesses navigate the complexity of cloud technology and we are happy to share the experience of our teams.
You’re going to get a taste of that in this very article.
Moving from on-premise to the cloud is a process
There is no better way of describing the on-premise to cloud strategy than: this really is a process.
Most of the time, you’re not going to move from privately owned servers to something like Amazon Web Services or Google Cloud Platform in one fell swoop. The larger and more complex your system is, the truer it is. A recent guest of our cloud webinar from the CTO Roundtables series André Neubauer, CTO of Trusted Shops, seconded that:
“I’m still a big fan of lift and shift migrations because they tend to be faster. Or the other way around, migrating your infrastructure while transforming your architecture is something like a black hole project that I would never do again.”
Why is that? While the cloud gives you a lot of potential benefits, it takes time to analyze all of the cloud options and tools, pick up the right ones and craft new development, testing, and deployment processes for your applications around them.
Just to give you an idea, in the data lake example we mentioned earlier, we used:
- Amazon Athena for data analysis in visualization in the context of the Amazon S3 object storage system.
- Amazon QuickSight for business intelligence dashboards complete with paginated reports, analytics, and natural language queries.
- AWS Glue for moving data to the data warehouse or lake with connectors, crawlers, jobs, triggers, workflows, or blueprints.
- AWS Lake Formation for aggregating and managing other data lake analytics services.
And that’s just some of the AWS-related tools!
If you’re yet to develop strong cloud computing and AWS expertise, chances are you won’t be able to use them efficiently very quickly though.
Therefore, if you want to migrate to the cloud, you should think about finding a technology partner willing not only to do development for you but also to provide your business with true transferrable insights that one day will help you grow into a cloud-first organization that can handle everything on its own if need be.
The light at the end of the tunnel – freedom to grow as a business
Once you manage to become a cloud-first company, you’ll be able to enjoy all the practical benefits of moving from on-premise servers to cloud services, which are all about doing away with needless and repetitive tasks in favor of improving your core business software.
This journey can be broken down into five stages:
- Stage 1 – on-premise
When your entire infrastructure is on your own premises, you are responsible for all the tasks that support its operations, including hardware, operating systems, and configuration.
- Stage 2 – infrastructure as a service (IaaS)
Now your cloud provides you with storage and virtualization on a pay-as-you-go basis – no need to maintain or update your own data center. You can now manage your infrastructure through APIs and UIs. You still need to manage your operating systems as part of your virtualized environment.
- Stage 3 – container as a service (CaaS)
At this stage, even operating systems are taken care of. You can now organize, run, and scale containers that have all the necessary dependencies and thus can run on any system.
- Stage 4 – platform as a service (PaaS)
Now even your development platform is delivered and professionally maintained by your cloud provider.
- Stage 5 – function as a service (FaaS)
How about infinite scalability and nothing to worry about aside from the business logic of your software solution? That’s what FaaS can give you.
As you advance through the next stages of cloud maturity, you increasingly abandon worries about problems that have already been solved multiple times by infrastructure engineers.
Let’s take a look at an example of a gradual transition to the cloud.
Moving to the cloud – example scenario
Check out how this company dealt with the cloud migration challenges, gradually finding their path in the cloud environment.
1. The need arises
This company has been keeping all of its applications on bare metal for several years. The cost of their physical maintenance continued to increase as they aged. A lot of them were on the brink of reaching their end-of-life date at the same time.Replacing them would be costly.
As cloud services started getting increasingly popular, they decided that it was worth looking into it. Considering the economic challenges of 2023, they thought that efficient and scalable cloud services could also be a good way to optimize infrastructure costs.
2. Humble beginnings
They started by researching their options. Out of the biggest cloud service providers, they opted for AWS solutions due to the high availability of AWS specialists in their areas. The third-party DevOps support provider they asked for consultation suggested an Agile approach to introducing the cloud. The initial changes that had to be made to the bare-metal servers to facilitate the migration to the cloud turned out to be minimal.
This whole process is what is sometimes called a hybrid approach to moving from on-premise to cloud – one in which new cloud-based resources are created while the on-premise infrastructure runs at the same time.
The company has been working with Agile methodologies for years so it was only natural for them to approach the migration that way. First, they learned all the important cloud best practices and cloud migration tools such as Amazon Simple Storage Service (S3) for storage, Amazon Elastic Compute Cloud (EC2) for scalable cloud computing capacity, or Amazon OpenSearch for data operation such as searching, aggregating, or analyzing.
3. Getting comfortable
At some point, they were ready to do more complex things. They started moving parts of their apps into the cloud in iterations. This gradual Agile-based process made the whole experience pleasant and stress-free for the in-house teams.
In order to ensure good security, they worked out aspects such as the configuration of the whole network and Virtual Private Cloud (VPC) – their very own logically isolated place in the cloud. With the support of their DevOps partner, they were able to make sure that they are covered in all the important places and that they can communicate with the cloud safely and efficiently.
4. Re-shaping the company’s infrastructure
When they worked out exactly how their new cloud services work, set up their cloud configurations, and moved some of their apps onto the AWS servers, the time has come to make decisions on what to do next.
The evolution of the cloud performance was satisfactory – AWS auto-scaling features made it possible for them to optimize cost depending on the resource usage at any given moment. The in-house teams were now more than comfortable with the AWS tools. They started moving more and more apps and datasets to the cloud.
5. Going cloud-first
When almost all of their apps were successfully moved into the cloud, they made steps towards decommissioning their old hardware and archiving their legacy code and metadata. The process of moving from on-premise servers to the cloud was now over.
This example company fully moved to the cloud and benefited from it, but it was still only the infrastructure as a service model.
In time, they will automate and outsource away even more non-essential processes so that they focus entirely on delivering business value through their development.
Getting the most out of cloud-first strategy – the use cases
Let’s now take a look at how and why moving from on-premise to cloud made sense for some of our clients.
Autoscaling in the service of cost control
Snappit was a Norwegian company that developed remote ordering technology for restaurants. The DnB Nord bank purchased it to add new functionalities to their mobile payment product called Vipps. However, Snappit’s system could not handle the traffic volume required in these new circumstances.
We separated the remote ordering module and rewrote it into a React-based SPA but the most interesting part of the project was the work of our cloud engineering team on the client’s AWS-based infrastructure.
The changes in the infrastructure included:
- limiting database queries number,
- rewriting queries to make them faster,
- including indexes for database columns,
- Implementing auto-scaling mechanisms.
The last improvement made it possible for the client’s system to withstand traffic without crashes. When tested in practice, the app never crashed during a 15-minute period of the most intense usage. What’s more, autoscaling made sure that the app always used only as many resources as it needed.
Learn more about auto-scaling and other challenges in this project.
Cost reduction with preemptible instances
Moneteo is one of a number of specialized web portals run by the Polish fintech company Blue Coin.
They wanted to commit to a specific cloud infrastructure provider and they were interested in securing discounts for a number of services they planned on using for a long time.
As we worked on that, we also decided to take advantage of preemptible instances. Also called spot instances, these virtual environments are made available and taken away on short notice so your developers need to stay alert in order to make the best use of them. But when they do, they can save as much as 90% when compared to on-demand prices for virtual environment capacity on services such as Amazon Elastic Compute Cloud.
Find out more about the Blue Coin fintech case study and the challenges our developers faced.
The cost-saving quality of cloud infrastructure is confirmed by another guest of the recent CTO Roundtable event Kenan Karamehmedovic, Partner Solution Architect at AWS:
“You can experiment a lot more being in the cloud. You can fail fast. So, all of these points are something that you cannot easily do on premises. So, lift and shift for the start and then experiment your heart away. Try different stuff out. Try all the new technologies that we offer in the cloud. And then you, by definition, we almost always see that the price or your monthly price of using the cloud will go down over time.”
Change management system automation
This company provides smart solutions to the utilities industry and has a very complex system full of highly specialized applications. Their goal was to automate the change management processes in their infrastructure, that is, the system responsible for minimizing IT disruptions when making changes to critical services. It was part of the data migration project you can read about more below.
Such a tool would take a lot of time to develop for a company that has very different specializations.
Taking advantage of cloud-based AWS services, including Lambda, StepFunctions, and SQS, helped save both money and time so that they can focus on their core business.
Check out the whole data migration plan we implemented for GOconnectIT. As part of our work for this client, we also helped upgrade web apps for fiber-optic communication management using Symfony.
Michał Smoliński, CTO of Radpoint, a med-tech company that delivers radiology solutions, reached similar conclusions when it comes to using cloud services for data protection purposes.
“Our requirements, not to mention the compliance requirements that we have from various regulatory bodies all across Europe when it comes to managing the healthcare record, our requirements are such that implementing them without using ready-made cloud services will be prohibitively costly. So that’s what defines the cloud for me, that I can pick and choose certain services.”
Securing sensitive information through data separation
BrickVest is a fintech company – an online real estate investment platform as well as a major innovator of financial technologies.
For a company like this, the topic of data security is especially important.
As part of our work on its infrastructure, we implemented data separation between different accounts across the organizations. It improved security through increased data granularity, that is, by making sure that everyone only has access to the data they need to perform their responsibilities – and to nothing more.
The ability to see resource usage and cost broken down into different services, each assigned its real used volume, was very important to this client. Another priority was implementing alerts informing about the risk of going over budget for each service.
Want to consult your own cloud-based projects similar to these?
Why don’t we talk about it then?
Moving from on-premise to the cloud – to do it or not to do it?
Most of the time, choosing cloud infrastructure for your systems is the right thing to do.
Pros
Do it when you:
- want or need to focus on your core business instead of solving infrastructure issues,
- have easy access to trustworthy cloud providers and skilled cloud developers,
- work on a project in which it is hard to define specific computer power needs beforehand,
- can benefit greatly from being able to scale your resource usage depending on the demand (e.g. event services),
- can use all the other cloud benefits that follow the aforementioned quality, including simplified testing, researching, experimenting with new features, etc.
Cons
Reconsider if you:
- have strong specializations in data security and good reasons for wanting to handle that in-house – cloud provides excellent security too, but when on-premise you do enjoy full freedom of handling this issue,
- deal with unique data compliance challenges and may need to create highly customized infrastructure solutions for this,
- think that the cost of ownership may be lower when compared to the recurring cloud payments in the long run in your specific case,
- won’t benefit from typical advantages of the cloud such as dynamic scaling of resource usage up and down depending on the traffic.
As you can see, only a handful of uniquely positioned companies will find the on-premise situation better than cloud-provided infrastructure.
So what did we learn from our experience about migrating to the cloud?
Moving from on-premise to the cloud – how to start?
To sum it up:
- Each company needs to develop a cloud migration strategy tailored to its own system and figure out what they want the most out of its cloud provider.
- Most of the time, migration to the cloud is the right move, especially for small to medium businesses. For those, there are only a handful of very specific situations in which sticking to bare metal is a preferable option.
- With a hybrid approach, you can migrate gradually and quickly feel the benefits of the move, without ever getting deeper than you can swim at any given moment.
Cloud is not just and not always about saving money. You can minimize costs with a well-optimized cloud infrastructure but the biggest advantage is not having to worry about your infrastructure and using that time and the cloud-provided tools to grow your business services instead.
If you want to develop a tailored-made strategy that takes into consideration all of your unique circumstances...
… you can start by booking a free consultation with The Software House.