When companies first moved from huge monolithic mainframe systems to cloud computing services, one of the key selling points was choice.
CIOs were given the selection of public cloud services and the likes of Amazon Web Services, Microsoft and Google were reaping the rewards.
Since the cloud computing market has developed over the last decade or so, some CIOs of established enterprises have wanted a choice of managed services to go along with the likes of Amazon EC2, or software-as-a-service (SaaS) from one vendor, and platform-as-a-service (PaaS) from another.
The problem is that while all of the Infrastructure-as-a-Service (IaaS) providers offer virtual machines as a basic service, they offer other PaaS and SaaS services that complement their basic VM offering. Therefore, because of the complexity involved in trying to spin up different vendors' PaaS and SaaS services, as well as the additional costs involved, and the lower level of service they're able to attain, businesses often decide to just stick to using one vendor.
What compounds this issue is that cloud portability - or the ability to move from one cloud service provider to another - is inherently difficult, something which AWS for one openly admits.
"Let's use the analogy of portability as moving away to a new property. You don't pay for removal and exit fees from where you've moved out, [but] if you engineer for portability you're paying for those costs," Iain Massingham, technical evangelist at AWS tells Cloud Pro.
"You are taking on additional complexity and you might be using commercial or open source software and this means you're loading on additional costs," he says.
Unsurprisingly, Massingham questions why it would be desirable to be cloud agnostic in the first place - claiming that even if providers support such an approach, it might not be the best way of doing things.
But Mark Holt, CTO of the trainline.com, agrees, stating that his firm made an explicit decision to not even attempt to be cloud agnostic.
"The native features and functionality of AWS are so good that it made sense to leverage them to the maximum extent possible; rather than trying to go cloud agnostic and ending up working with the lowest common denominator," he tells Cloud Pro.
"Things like OpenStack are all very clever but they add a lot of complexity, and it feels like the traditional situation where the number three, four and five players in a market get together to 'create a standard' in a desperate hope to compete," he adds.
But this approach of relying solely on AWS may not necessarily work for all types of companies; despite its success, thetrainline.com has more in common with a start-up than an established enterprise.
So for those large companies who do want to be cloud agnostic, what else is holding them back?
SaaS and PaaS lock-in
With SaaS and PaaS it can become increasingly difficult to leave particular cloud providers.
"Some services are unique to the vendor, and even if they are very similar, running the same apps on similar SaaS or PaaS is a complete no go," says Tom Wilde, head of solutions engineering at cloud hosting firm Cogeco Peer 1.
And as David Shacochis, VP of product management at telecoms provider CenturyLink, adds, firms are not only trusting cloud providers for hosting and runtime of their environment and their data but they're deciding to mould their business processes around that SaaS environment.
"You become increasingly locked-in when you've put business processes into someone else's platform," he states.
Moving from one cloud to another doesn't just incur additional costs and complexity when it comes to the way the cloud itself is structured, how the data is stored also affects the cost.
An enterprise's new provider may store data differently to its old provider, so moving this data may require manual manipulation, which once again could have a huge effect on business processes if it involves business-critical data.
Another issue lies with the new provider's ability to export the data. Some cloud providers have time-consuming and complicated ways to move the information, and if the customer has already got rid of its internal servers, that data may not even be able to be moved in-house for a temporary period.
However, Radek Dymacz, head of R&D at disaster recovery service provider Databarracks, explains that as long as the company in question architects the technology to ensure it is future-proof, these issues shouldn't occur.
"There is always the option to migrate to another provider if your business case changes, if you've architected your services in the correct way," he states.
"Containerisation services like Docker have revolutionised the way we work, because now you can build your platform within a container and essentially run it anywhere - allowing you to be cloud-agnostic, while cloud companies have also begun to make it easier for firms to use multiple providers," he adds.
Google introducing full support for Amazon S3 migrations is an example of this.
However, the idea of cloud agnosticism doesn't merely come from a technology perspective - it has to be bedded into the organisation at a leadership level.
"You can do things as a leader that locks you in to certain vendors," warns CenturyLink's Shachochis.
He says that a cloud agnostic model is possible if the IT leader oknows what it is they are trying to achieve, whether or not they want to hire their own developers and whether they want to have their own intellectual property.
He adds that they need to get to grips with what apps they must provide to the business and the value these apps offer.
"You can then start making a decision around whether or not that's something you can do yourself through a deployment model and whether that could be deployed on any cloud or whether that is specific to any vendor technology, and what those limiting options can really be," he states.
The cons of cloud agnosticism
Being cloud agnostic needn't be the be all or end all however; in fact, this approach can limit your capabilities as you are designing for all platforms, rather than focusing on and using one vendor's full capabilities.
"The caveat to being able to use multiple platforms for your business needs means you are drawing investment from building on and improving one platform," says Andy Hinxman, managing director of hosting firm Keybridge IT.
"Performance can be impacted too, as different platforms vary in design and specification, while there is also a cost to maintain services on different platforms."
For example, AWS's Massingham believes that his firm has the edge over the likes of Microsoft and Google because of the feedback that it gets from its larger customer base, enabling it to invest in new features and respond to customers concerns more swiftly by adding the features its customers want.
But the likes of Microsoft and Google would claim they are innovating too, and it is expected that we will see more suppliers entering the field to provide cheap, reliable and customisable environments for businesses in the coming years.
The key for enterprises is to ensure they have a clear strategy on how they want to use IaaS, SaaS and PaaS - and ensure that an application doesn't rely on a particular platform that they are hosted on. If it is, they must be aware of that, and the costs and complexity of having to move away from it.
It is possible to be cloud agnostic, but firms will have to ask themselves whether it's worth it. In the short-term it could cost them dearly, but in the long-term it could solve a lot of the technical and financial issues that could stand in their way.
Cloud Pro Newsletter
Stay up to date with the latest news and analysis from the world of cloud computing with our twice-weekly newsletter