Cloud Agnostic vs. Cloud Native Architecture: Which Approach to Choose?
In between are countless other cloud services providers (CSPs), also competing for the growing corporate cloud budgets. Amidst this abundance of technology, leaders are often pressed with a tough choice: Should we develop cloud agnostic architecture or go with a cloud native approach?
In this post, Infopulse cloud consultants provide you with the necessary information to make the right choice.
Systems in cloud agnostic architecture don’t have any dependencies on a specific cloud provider. Cloud architects design applications in a way that allows them to be ported to any cloud environment with minimum (if any customization).
Application portability in cloud agnostic architecture is achieved by:
- Using Kubernetes as an abstraction layer between the cloud platform and hosted applications
- Replacing cloud vendor SaaS capabilities with open-source, self-hosted alternatives.
Essentially, your cloud agnostic microservices architecture only relies on a vendor for cloud data storage. Other complementary capabilities — e.g., tools for database management, cloud infrastructure monitoring, resources orchestration, etc. — are deployed as a separate layer and maintained by your company’s engineers, rather than the CSP.
Sample Architecture for a Cloud Agnostic Data Analytics Platform
In contrast, cloud native architecture assumes full reliance on the platform-native toolchain and provided reference architecture patterns. Your team proactively uses all the premade components and workflows to design applications, fit to run on a specific platform.
Reference Architecture for a Native Web Application on Microsoft Azure
Both architecture patterns have their merits, but also some unique considerations to account for. Cloud-native is a more straightforward approach. However, it exposes your business to vendor lock-in and underlying platform constraints (e.g., limited regional data center support).
Cloud-agnostic architecture introduces an extra degree of complexity into system design, maintenance, and security. Technology compatibility and standardization issues may arise and need to be planned for, as well. On the pro side, however, you minimize dependencies on a single vendor and can assemble a more diverse technology portfolio.
- Local data centers availability from shortlisted CSPs. Factors like failover, resilience, and latency will depend on the geographic proximity of the data center. Despite positioning themselves as “global”, even the biggest CSPs do not offer full international service coverage.
- Data affinity. For optimal performance, applications must reside close to the data they need. If much of your data is stored in an AWS instance, then it makes more sense to deploy this application on the same platform. Transferring data out of a data center and rehosting it elsewhere usually increases costs without offering many (if any) sizable benefits.
- Security risks. All cloud providers practice a “shared” approach to security. As a customer, you are responsible for implementing proper controls of access management, privileged identity management (PIM), data encryption, and security monitoring. Vendors offer different approaches for implementing baseline cloud security practices, meaning that you have to standardize these across the board.
- Technical maturity. A cloud agnostic approach requires a wider team skillset. You need to have engineers familiar with both specific CSP environments (which differ in small, but crucial ways), as well as a wider range of supporting open-source technologies for cloud orchestration, application management, monitoring, security, and more.
More familiar factors like “deployment costs” and “time-to-market” should also be factored in. If you are switching from one provider to another because of a recent price hike (as GCP did this year), consider the numbers.
With a cloud native approach, you have low upfront investment, but high switching costs once you get committed to their ecosystem. With a cloud agnostic approach, you face an inverted scenario — high upfront investment, but non-existent switching costs since your systems will remain easily portable to other environments.
The chart below offers a side-by-side comparison of cloud native vs. cloud agnostic operating scenarios:
Ultimately, when deciding on the optimal cloud architecture, mull over the following question: Which approach would offer more value to your business and customers?
Cloud native applications are easier to develop and maintain. However, you are more constrained by the capabilities (and policies), enforced by the selected vendor. In some cases, they might not support data storage in a specific location (for example, to meet GDPR requirements). Or you may need to source data from different cloud storage locations as part of a large-scale big data analytics project.
For instance, a group of Hungarian researchers designed a cloud agnostic, fault-tolerant data analytics platform for supporting advanced IoT use cases. The platform contains reusable blocks, made of open-source components, which any other organization can adopt and customize to achieve interoperability between systems.
That said, cloud agnostic systems are harder to manage since you have to establish visibility into multiple underlying cloud components to monitor consumption (and costs). Careful cloud orchestration is also required to ensure proper application performance across live environments.
Cloud Agnostic Architecture Complexities to Keep in Mind
- Weighted selection of the platform stack and subsequent standardization requires extra effort. You will have to bring your own solutions for object storage, database management, and resource orchestration instead of using the available services.
- Cloud infrastructure maintenance is fully on you. Each “block” in your cloud agnostic architecture will require regular updates, patching, and security-proofing.
- Security, compliance, and data governance become more complex as you have to adapt all three processes to different ecosystems.
- Establishing a cross-environment Identity and Access Management (IAM) process is challenging since cloud providers have different implementations of IAM.
When Should Businesses Go Cloud Agnostic?
Cloud agnostic architecture requires high cloud maturity, meticulous planning, and significant upfront investments. It is rarely a strategic choice for new cloud adopters or smaller organizations with a modest cloud estate.
Tech-forward enterprises, however, often gain two significant advantages from choosing a cloud agnostic approach:
- Risk minimization
- Technology choice selection
Cloud agnostic architecture minimizes the risk of vendor lock-in. Your company retains independence on where to place specific workloads in order to better balance costs or ensure the necessary degree of compliance. Mission-critical workloads can also be rapidly migrated to another target environment as part of business continuity planning. In this case, if a CSP experiences a breach or a critical outage, you can rapidly pivot to an alternative platform.
Cloud agnostic architecture also exposes you to a wider range of open-source and proprietary tools you can use to assemble scalable, resilient, and purpose-built systems.
You do not have to make compromises for certain applications to ensure the high performance of others. Instead, you can allocate them to different cloud environments and benefit from their native capabilities. That said, open-source cloud solutions are not fully suitable for every industry as security remains your full responsibility. Likewise, it may be challenging to find an IT vendor who would support a particular open-source cloud technology.
On the other hand, a cloud agnostic strategy exposes you to a wider choice of CSPs and IT vendors who specialize in particular environments. You can shortlist vendors, based on their certification status with a CSP. Oftentimes, you can also obtain better license deals as CSPs offer certified vendors attractive discounts.
Richard Heeley, CIO of Macquarie Banking and Financial Services, sums up his company’s rationale for a cloud agnostic approach: “By running multi-cloud for all IaaS and PaaS, we are always able to have a choice in our technology stack. This means better outcomes for our customers”. The outcomes include higher service availability, high application performance, and access to new financial products through the Open Banking API Macquarie has developed as part of its cloud journey.
Cloud native and cloud agnostic architecture patterns are not mutually exclusive and can co-exist within a wider technology strategy.
Cloud native application development has an undeniable advantage in terms of speed. You can iterate on new ideas faster and accelerate time-to-market for innovative customer-facing products.
At the same time, CSPs also recognize the market’s growing affinity for multi-cloud usage. Hence, interoperability between different cloud platforms has been improving. AWS, Microsoft Azure, and GCP offer plenty of APIs for building secure data exchange pipelines and automating deployments across environments.
Finally, a new breed of tools are coming to the fore to facilitate multi-cloud connectivity. For instance, Distributed Application Runtime (Dapr) allows companies to use native cloud services without relying on their APIs. Instead, you can setup a custom abstraction layer, which facilitates service discovery, observability, and message broker integration among other aspects. Most importantly, you can focus on creating the optimal business logic for your application without worrying about the specific CSP requirements.
Therefore, your company can practice a dual approach: Prioritize native cloud architecture for customer facing-products and rely on cloud agnostic approach for core business systems. This way, you reduce dependencies on a single cloud provider (and therefore, optimize risks) without sacrificing the speed of new product development.
CSPs are actively competing for clientele. As the market continues to evolve, more and more companies are drifting towards a cloud agnostic approach. To decide if this option is a fit for your business, analyze your product development plans and overall IT maturity. If fast time-to-market and low infrastructure management overhead are your current priorities, a cloud native approach makes sense. However, if your organization is looking to improve its long-term resilience and diversify risks, a cloud agnostic approach can bring in longer-term benefits.