Does Your App Need A Multi-Cloud Strategy?

By Kiran Darisi, Co-Founder & Director DevOps at Freshdesk

Kiran Darisi, Co-Founder & Director DevOps at FreshdeskA few years ago, the biggest concern of an enterprise company when it came to hosting their data was the cost. Private data centers cost a lot in terms of real estate and in terms of people who could manage these data centers. But with the advent of IaaS (Infrastructure as a service) companies, enterprises got an option to pay them to do the hard work of managing the physical servers and to host their data on an already set up, easy-to-use environment.

With more and more apps moving from their own datacenter to a public cloud model, the main

concern has also moved from cost of hosting to security and availability.

Availability is the single most important factor that determines an application’s success. Being available doesn’t just mean having a backup running somewhere that can be booted up incase of a downtime. It also means being available in different locations.

This is why enterprises that want to promise almost a 100% uptime to their customers are experimenting with a multi-cloud approach. A multi-cloud approach is the use of two or more cloud services (like AWS, Microsoft Azure, Google) to deploy your app as opposed to using one service. This way, if one service is down, companies can rely on the other provider to keep the app running. Apart from uptime, multi-cloud approach is also used to overcome geographical restrictions and to overcome specific weaknesses of the single service provider.

But there are a few things to consider before you make the switch from a single cloud to a multi-cloud model:

“Implementing multi-cloud is not easy but when you want to scale rapidly and give better solutions to your customers, it is necessary”

Development cycle

Setting up a local development environment that mimics the services used by each public cloud app will not be easy. The OS that the engineers work on cannot be custom made for each public cloud the app is using. A way around this would be to use Linux containers (LXCs) like dockers. Dockers are self contained execution environment that contain their own, isolated CPU, memory, block I/O, and network resources. Dockers are, therefore, cloud agnostic and can be used to deploy an app in multiple cloud providers.

Monitoring

When the data is flowing between multiple clouds, monitoring the entire network will be a challenge. It would mean a remodelling of all the homegrown monitoring apps. Not to mention the retraining of the NOC team that supports the application 24x7 on different cloud environments. This means, companies opting for multi-cloud should be ready to invest in commercial monitoring tools that show all the data from different environments in a single dashboard so incidents can be resolved faster.

Resources

Public clouds will have a resource limit. Not all of them can provide the apps with as much computing power as they need in case of a disaster recovery situation, especially if the apps have to rely on the secondary provider when the primary is down. Additionally, the traffic has to hop between the networks of multiple clouds, meaning, important data has to travel via the same internet that is used to access cat videos. So bandwidth also ends up becoming a problem. The ideal way to run the app is always share the load between pods so traffic is distributed.

Compliance

Lot of mature public clouds will already have compliance in place. But some are not compliant to certain region’s regulations, like the German Data Protection Act. Companies have to keep that in mind when they are choosing the public cloud providers and when they are distributing functions between the providers.

Identical services

Each public cloud will offer a variety of preliminary services like data storage, email service etc. Companies need to evaluate the performance/ SLA of each service before picking the right one for their apps.

Data Transfer Latency and Security

During multi-cloud deployments, data takes time to travel through different public networks (between clouds). This increases latencies, security concerns, and other inconsistencies.

Companies have to prepare for the worst case scenario and would have to make a wise choice on what kind of data transfers can be compromised in these situations.

Multi-cloud deployments are the definite next step when you want to promise your customers a 100% uptime. Even companies like Netflix have started using multi-cloud to make themselves available across the world. Implementing multi-cloud is not easy but when you want to scale rapidly and give better solutions to your customers, it is necessary.

Don't Miss ( 1-5 of 25 )