Cloud agnostic development: Pros and cons, tips and tools
N-iX
2020-10-20T17:56:53+00:00

A recent research [1] shows that 93% of companies worldwide are utilizing multiple clouds in their attempt to either avoid vendor lock-in or to gain maximum business value from using different providers. Even if you are currently planning to use a single cloud, it’s good to know that you can s...

Cloud agnostic development: Pros and cons, tips and tools

A recent research [1] shows that 93% of companies worldwide are utilizing multiple clouds in their attempt to either avoid vendor lock-in or to gain maximum business value from using different providers. Even if you are currently planning to use a single cloud, it’s good to know that you can switch providers at any given moment with little to no problems. But how do you future proof your application and make it less dependent on a cloud provider? Here’s when the cloud agnostic approach comes into the picture. In this article, we will take a look at:

How the COVID-19 pandemic is affecting cloud adoption?

In the recent study by Flexera, 57% of companies stated that pandemic only stimulated their interest in cloud computing, thus increasing the funding. An additional 8% claimed that pandemic only slightly changed their plans for cloud expansion.

Changes in cloud adoption diue to COVID19 pandemic

As you can see, 40% of small and medium businesses and 59% of enterprises are increasing their cloud computing funding in 2020 and beyond. Companies worldwide are moving forward with their cloud adoption. Moreover, some of them are choosing an approach that would allow them to be less dependent on their cloud providers.

Cloud agnostic concept

Cloud agnostic architecture is designed to be neutral towards the use of a specific cloud. Some experts believe that a truly cloud-agnostic approach uses every opportunity to create a highly portable system.  Such systems allow you to switch cloud providers easily. Other tech experts think that cloud agnosticism includes the use of multiple cloud providers simultaneously. Moreover, building a solution using a cloud-agnostic approach even with on-premises infrastructure will help to migrate it to the cloud in the future and make such migration resource-effective (both time- and money-wise).

2 major reasons for going cloud agnostic 

There might be several reasons behind the decision to go cloud-agnostic. First and foremost, the danger of vendor lock-in. According to the research, among the companies that either implement or consider cloud adoption, more than one third are cautious of becoming too dependent on a single vendor.

the greatest fears and issues of cloud computing: can cloud agnostic solve it?

Risks of the vendor lock-in

  • Vendors can change their product or offerings, shifting focus to a new technology or different business needs, so they no longer align with your expectations.
  • If the quality of service declines or does not meet your expectations over time, you may be stuck with it due to the legal commitments or your dependency on that specific service building your vendor lock-in.
  • Any vendor can significantly change their price for the service or you can get an attractive deal from a different cloud provider.
  • Finally, vendors can go out of business. And while this is an unlikely situation for the big 3, let’s remember the case of public cloud data storage provider Nirvanix, which went out of business back in 2013, giving their clients only two weeks to move their data. 

You can see some of the most common risks and concerns associated with vendor lock-in on the chart below.

What are the risks of vendor lock-in? And how can cloud agnostic strategy help?

Another reason that motivates companies to go cloud agnostic is their choice of multi-cloud or hybrid strategy. A recent study shows that only 7% are using either a single private or a single public cloud.

Enterprise cloud strategy: multi cloud

Forrester’s research [2, 3] shows that nearly half of both North American and European companies utilize multi-cloud as a part of their ‘hybrid’ approach. 

Cloud adoption in North America and Europe

So roughly half of the companies chose to go multi-cloud and avoid the proverbial basket with all the eggs in one place. But how do you manage multi-cloud environments successfully? The answer is cloud agnostic architecture. So what are some other benefits and challenges of the cloud agnostic approach?

The pros and cons of a cloud agnostic strategy

If planned and executed properly, such strategy can be extremely beneficial from both business and technical perspectives.

The pros of being cloud agnostic

  • No vendor lock-in. One of the apparent benefits is the ability to avoid vendor lock-in. This strategy allows companies to  ‘diversify their portfolio’ and become more flexible to changes in the IT landscape.
  • Easier risk management. Stemming from the previous point, if you are not dependent on a single provider, it is easier to manage the risks or change tactics.
  • More customization and flexibility. Combining a cloud-agnostic approach with multi-cloud allows you to adjust the cloud adoption roadmap to your needs.
  • Access to open source technologies. Having access to various technologies up your sleeve will help you expand your tech stack and tweak the strategy to fit your needs.  
  • Easier migration. It will be relatively easy to migrate from one cloud provider to another or add another provider to your list.
  • Maximum coverage . If your system is based in various clouds or can be easily moved to a new one, it means you are covered, should you or a vendor encounter problems.
  • Better consistency. Cloud agnostic approach allows you to achieve cross-cloud consistency while using multiple clouds.

The cons of cloud agnostic  approach

Unfortunately, cloud agnostic is not your regular go-to approach as it has some drawbacks as well: 

  • Lowest common denominator. If you want to be cloud agnostic for the sole purpose of being agnostic, you might be missing out on some of the great offerings from the major public cloud providers. Let’s say AWS introduces a great new tool or feature. If you are using multiple clouds, you will have to wait until others have this option.
  • Price. In some cases, the initial cost of development may be  higher than developing for a specific cloud provider. But on the other hand, it often pays off long-term even if cloud-agnostic was not a part of the initial strategy. 
  • More complicated deployment* and day-2 operations. In the case of the multi-cloud approach, you will be deploying to and monitoring multiple platforms at once.
    *Cloud agnostic deployment should be designed to run seamlessly on different cloud platforms or between on-premises hardware and different cloud platforms.

Tips and tools for a successful cloud agnostic strategy

While there is no right or wrong way to adopt the cloud agnostic strategy, there’s a number of proven practices to consider.  

Adopt automation early in the process.

Cloud agnostic strategy can increase the workload on DevOps engineers, so you should focus on the automate-first approach. Your infrastructure should be easily scalable with little to no manual effort. The same principle should be applied to CI/CD pipelines. There’s a great amount of tools that help users set up CI/CD processes. Some of them are open-source like Spinnaker and Jenkings, while others are commercial tools, e.g. Bamboo or CircleCI.

Opt for microservices architecture 

Whether you are working on a legacy application or working on a new product, considering microservices is definitely a good idea. First of all, microservices allows you to break down an app into separate modules, making applications easier to develop, test, and deploy. It also helps you scale an app, migrate it if needed, and introduce new technologies. Moreover, microservices architecture reduces your dependency on a particular tech stack and perfectly pairs with container-based platforms.

You might also like: Microservices vs Monolith: which architecture is the best choice?

Containerize your application 

Containerisation technologies such as Open Container Initiative (OCI), RedHat CoreOS Rkt or, probably still the most popular, Docker will help you make your application portable. Containers package all OS-level dependencies, runtime, libraries, and configuration along with your application into one runnable image. It means containers can, with minor exceptions, be launched on almost any platform without customization of the host environment. 

One other very important benefit of containerization is increased workload density. Compared to Virtual Machines (VMs), which were a focal point of modernization throughout IT a decade or two ago, containers are much more efficient in using compute resources resulting in cost and time optimization.

If you want to avoid vendor lock-in, containerization, backed by cloud-agnostic container orchestration platforms, is your best choice. 

Use Infrastructure as code (IaC)

Every cloud vendor has its own mechanism of running infrastructure templates; however, the vendor-specific syntax of each tool makes it much harder to switch from one provider to another. To solve this approach in a cloud-agnostic way, several 3rd party tools allow you to script your infrastructure on most leading cloud providers, giving you an abstraction layer to the underlying IaaS. 

Because of scope and complexity, there are not too many tools that can support IaC in cloud-agnostic setups: Cloud Foundry BOSH, Red Hat Ansible, and Hashicorp  Terraform, which is most popular in cloud-agnostic IaC setups. Terraform provides you with APIs to work with each of the leading public cloud providers and many on-prem virtualization platforms.

Go for Container Orchestration  

While containerization provides benefits on its own, it wouldn’t be nearly as valuable, as with container orchestration engines. These runtime platforms allow you to run, coordinate, and manage the lifecycle of containerized workloads. For a cloud agnostic deployment, there should be no binding between the workloads and the underlying cloud infrastructure, and the best way is to run your containerized workloads on a cloud-agnostic container orchestration platform.  

There are quite a few mature and popular platforms that can run containerized workloads on different kinds of infrastructure, including public cloud IaaS, private clouds, or on-prem: Cloud Foundry, DC/OS (the Distributed Cloud Operating System), Docker Swarm, Hashicorp Nomad, and, definitely, Kubernetes which became an industry standard over the last couple of years.

Tech stack for cloud agnostic approach

Hybrid Cloud and Multi-Cloud Solutions

For companies that choose a hybrid or multi-cloud strategy, it is crucial to find a toolkit that will help them manage these environments. One of the instruments that allows users to build, manage, and operate across clouds with consistent infrastructure and operations is VMware. 

Their solutions help run applications from the data center to the cloud to the edge. VMware also encourages users to:

  • Modernize existing applications through containerization;
  • Migrate an existing app without rewriting it;
  • And integrate new cloud services to expand application value.

Also in 2018, Google introduced the Hybrid Cloud Support tool - Anthos. It allows users to get centralized visibility and effectively manage disparate resources. It also helps manage workloads on GCP and Google Kubernetes Engine. Google’s container offering provides users with a significant advantage as it developed the very Kubernetes standard now utilized by Google’s competitors - AWS and Azure.

Cloud-Native Architecture

Technologies and tools play an important role in building applications and setting up processes, and can even drive good decisions, but understanding core concepts of target architecture is far more crucial. Following Cloud-native principles in the architecture of your solutions will help you leverage maximum value from cloud-agnostic platforms (PaaS) or cloud-agnostic usage of specific public or private clouds (IaaS) and choose appropriate tooling and tech stack.

Want to go cloud agnostic? Let N-iX help you!

We have a strong portfolio of cloud projects across a variety of industries: telecom, fintech, healthcare, retail, and more. Many are multi-cloud consumers following a cloud-agnostic approach. With dozens of skilled cloud experts on board, we are fully equipped to help you develop cloud-agnostic apps or move your existing applications to the cloud without having to worry about vendor choice.

  1. N-iX is a certified AWS Select Consulting Partner, a Microsoft gold certified partner, a Google Cloud Platform Partner, an Opentext Services silver partner, and a SAP partner;
  2. N-iX is compliant with PCI DSS, ISO 9001, ISO 27001, and GDPR standards;
  3. Cloud-Native Services at N-iX offers highly specialized services of Application Migration and Data & Analytics Migration targeting among other Cloud-Agnostic transformation of architecture, tech stack and runtime environment;
  4. We offer professional DevOps services, including Cloud adoption (architecture, migration, optimization), building and streamlining CI/CD processes, security issues detection/prevention (DDOS & intrusion), firewall-as-a-service, and more;
  5. N-iX has broad data expertise to design different kinds of data solutions: Big Data / Data Warehouse / Data lake, Business Intelligence, Data Science, Artificial Intelligence & Machine Learning.

Cloud native services map

We will help you:

  • define the best cloud strategy for your business case;
  • create a roadmap that will mitigate the potential risk of vendor lock-in;
  • develop a solution that fits your needs. From cloud readiness assessment and cloud strategy development to infrastructure setup, architecture redesign, migration, and maintenance - we are here to guide your journey to successful cloud adoption!

Successful cloud adoption with N-iX

Featured case study: Using cloud-neutral technology to avoid vendor lock-in and benefit from different cloud providers.

Our client is a Fortune 500 industrial supply company. As a part of its data management strategy change, this company needed to extend its data warehouse solution, collecting data from multiple departments. Our client also wanted to migrate the solution to the cloud to make it more scalable and cost-efficient. They did not want to commit to a single vendor; thus, the system had to be cloud-agnostic.

To migrate from on-premise Hadoop Hortonworks cluster to a selected cloud platform and allow processing additional cloud data, the N-iX team built a dedicated big data platform from scratch. Also, we have been involved in extending and supporting the existing Teradata solution.

Our specialists created a proof of concept to choose the data warehouse design and the tech stack that fits our client’s business needs. We compared Amazon Redshift with Snowflake and preferred Snowflake as it met the client’s cloud neutrality approach: it can quickly scale up and down any amount of computing power for any number of workloads and across any combination of clouds.

The whole development process is cloud-agnostic and is designed to ensure that the client can easily change the cloud provider in the future. For example, we use Terraform as it is compatible with all major cloud vendors - AWS, Azure, and Google Cloud.

References:

  1. Flexera 2020 State of the Cloud Report
  2. Adoption Profile: Public Cloud In North America, Q2 2020,  Forrester Research, Inc., May 27, 2020
  3. Adoption Profile: Public Cloud In Europe, Q2 2020,  Forrester Research, Inc., May 29, 2020
  4. Critical analysis of vendor lock-in and its impact on cloud computing migration: A business perspective by journalofcloudcomputing.springeropen.com
  5. Cloud agnostic architecture: Myth or a reality? By Deloitte
  6. Cloud Adoption Statistics for 2020 by hostingtribunal.com
  7. Guide to the cloud: How to navigate the multi-cloud future by GitLab
N-iX Staff
Yaroslav Novytskyy
Director of Cloud-Native Services

ASK AN EXPERT

Up to 3 attachments. The total size of attachments should not exceed 5Mb.


SHARE:
By Yaroslav Novytskyy, Andrian Vyslotskyi October 20, 2020

Related Articles

About N-iX

N-iX is an Eastern European provider of software development services with 1000+ expert software engineers onboard that power innovative technology businesses. Since 2002 we have formed strategic partnerships with a variety of global industry leaders including OpenText, Novell, Lebara, Currencycloud and over 50 other medium and large-scale businesses. With delivery centers in Ukraine, Poland, Bulgaria, and Belarus, we deliver excellence in software engineering and deep expertise in a range of verticals including finance, healthcare, hospitality, telecom, energy and enterprise content management helping our clients to innovate and implement technology transformations.

Connect with our experts
Get in touch