Many businesses are looking for better ways to migrate their web applications to a cloud-based infrastructure so that they quickly adapt in today’s fast changing markets.
The road to success could be implemented using various strategies. Depending on the commitment to go “full cloud” the risks and rewards vary. In the following text we compare three strategies that can help you decide on your migration strategy.
Essential to plan cloud migration is a good understanding of the existing service. Converting an existing application into a cloud-based solution depends heavily on how the application interacts with its environment. Based on these “behind the scene” interactions there are various ways to migrate web applications in the cloud, each with benefits and pitfalls.
What choices do you have to migrate web applications in the cloud? What are the benefits? What about the pitfalls?
Quick “no questions asked” way
If you do not have the ambition of giving this too much thought and the application is a stand-alone service, the easiest way forward might just be to create a virtual copy of the current environment the application runs on. What it boils down to is that this is a machine to machine migration from on premise into the cloud. If the entire application runs on one machine the transition could be as easy as setting up a virtual server with the same capabilities and copying the entire application. Then make sure the internet is using your newly created virtual “cloud” server. Most of the times changing your DNS system to point to the new IP address will be enough and you are ready to go.
When to choose the quick “no questions asked” way?
Choose this cloud migration option if you are running a CMS (WordPress, Joomla, Drupal, other) or a native web application using a front facing web server.
- Network security and resilience is provided by the cloud service provider. This will most likely improve service delivery substantially and reduce maintenance hours.
- From a cost point the situation is a little less obvious but since you are paying for resources used there is no doubt that an infrastructure cost gain is to be made.
- You are also benefiting from a fully maintained well connected internet infrastructure set up with redundancy and security in mind. Setting up and maintaining such infrastructure is costly. Having to pay only a minor part of this will pay itself back quickly.
- If your application requires several machines, say a database cluster, a webserver cluster and an email cluster, you are in for a more complex migration. You will have to make sure that all servers are connected via a backbone network not accessible over the internet. Fortunately, most of the cloud providers have provisions to allow you to set up such a network. Even for more complex setups this remains a very viable way forward to create a big cost cut.
There are a few.
- Remember that most of these applications run on databases. So you will have to migrate the database content.
- You are no longer responsible for maintaining the full network stack. That does mean you can not fine-tune settings on a network level. You are obviously responsible for the security on a server level so don’t forget to implement a good set of firewall rules.
- You have to migrate the web certificates to make sure that your service provides a secure web channel.
- Important to realize is that email could potentially be a hurdle. Some cloud providers do not allow you to send out email directly. You will have to set up your email service so that it uses one of their “cloud” offerings to deliver email.
Do not forget to set up a backup strategy – most cloud providers offer an integrated solution but you are not obliged to use that.
In general, most applications have at least some aspects that are better served converting them to their cloud alter ego. Cloud offering started of with a range of services that at first feel do not bring much to the table. One of the more fascinating cloud offerings are the “cloud storage” and “cloud databases”.
Cloud databases come in many different flavors and offer a variety of options. If you are willing to spend the time to transition your application to use a cloud database, you get a lot in return. No need to maintain database software, instant redundancy, automatic backups will allow database administrators to focus on what matters rather. And from a cost perspective you just pay for what you are using making this an easy and affordable alternative, even if you are not running your application in the cloud.
Similarly, cloud storage comes in a wide variety of flavors, ready to be integrated with any application.
Most applications can be containerized. To eliminate doubt there are a slew of services that will verify if migration is possible and depending on the type of application will even migrate your application into a container for you. Containers can easily be shipped and a cloud based system can be configured to automatically deploy and scale up your infrastructure on demand.
Doing complex migrations always requires time and effort. Striking the right balance between effort and gain is key for complex migrations. But these gains can be substantial.
When to choose the complex migration way?
Most applications don’t run at full load all the time causing a lot of over-spill and unused capacity. If the (re)focus is on the customer and the application rather than the infrastructure and the hardware, a complex migration might be just what you need.
- Moving to the cloud allows you to scale up more easily and a lot of routine jobs that are required to keep services running are taken care of by an external team of experts.
- No need to over-spend on excess capacity for future growth. Pay-as-you go is definitely a good thing is you don’t run any mega-sized data pool.
- You have to update the application to use the cloud resources. There are many libraries available for many different platforms but a detailed analysis is needed.
- The necessary software needs to be incorporated and the speed of delivery need to be evaluated.
- Some resources might be hard to access. Depending on the specific requirements an alternative has to be used or a set of tunnels will have to provide a solution.
Going fully cloud
It might come as a surprise that in most cases turning your web service into a cloud native application is just a matter of getting the facts right. Once the application is mapped into a set of data, storage and application requirements the migration path often turns out to be quite simple. There are a variety of software environments that are easy to set up and accommodate your current software.
The only thing left to do is use the handle accessibly via the cloud app’s environment and the provided libraries and set up a roll-out scheme. And even there the cloud offers a helping hand. You can simple set up a roll-out infrastructure starting from code in a Git repository, setting up a test-pipeline, an approval scenario and a roll-out mechanism out of the box. Obviously if you already have that available you can just set up your pipeline and as a last step roll out to the cloud.
Most web application in languages such as PHP, Java or Python can easily be converted into cloud applications once the underlying data structure and application exchanges have been detailed.
When to opt for going fully cloud?
Any application that is not depending on a wide range of external services is a potential candidate to be converted into a full-fledged cloud application.
- Automatic scaling. As soon as the infrastructure detects overload it can scale up your application by spinning more instances.
- Load balanced, filtered requests entering your application. No need to set up firewalls, protection against DDOS or intrusion prevention systems. All of this is being handled by the infrastructure provider.
- All of the services you are buying are used to the fullest. You are only paying for the memory and cpu cycles you are consuming. Even database costs are calculated based on storage and scale linearly. Combined, this does take “pay-as-you-go” to the next level.
- If a number of (recurring) external jobs need to be run to maintain data structure integrity an external mechanism might be needed.
- Linking up external services might need additional network setup, potentially tunnels to other services. Notable candidates are LDAP and other authentication services, virus scanning and email exchange.
Properly migrating your web application helps you optimize the costs and ensures that your application is scalable, reliable and secure for a price point that is hard to beat.
To take full advantage of the cloud migration benefits, it is imperative to assess the complexity of your web application. It will provide invaluable information to choose the right way forward. It will also allow you to strike the right balance between effort and gain.
This article provided you with a overview on different cloud migration choices, the benefits and the risks. Every IT setup is different and has its benefits and problems. Rarely do you find one that does not benefit from using cloud services.