Cloud native, Portable & Inter-cloud application architecture is more relevant in current economic scenario
In digital era, businesses need to keep evolving and innovating very fast to be relevant and align with changing customer paradigm. While large players need to aim to reach closer to consumer, small players need to aspire to widen the reach. In both the cases technology plays a differentiating role hence Cloud platforms and richness of cloud services become more relevant to address the need-for-speed, use-as-you-need and pay-as-you-use requirement of an enterprise.
While cloud will help to address above mentioned requirements, the challenge an enterprise need to address in current economic scenario is to avoid vendor lock-in by defining a cloud agnostic architecture including considerations for replaceability of consumed services across cloud service providers as well as on-premise so that portability & best ROI is ensured.
Let’s analyse relevance of cloud native, portable & inter-cloud architecture for high business value applications through following aspects.
Common requirements of a high business value application
Some of the most common requirements of such an application include:
In summary, a high business value application requires a combination of robust architecture, reliable infrastructure, and ongoing monitoring and maintenance to ensure it remains highly available, scalable, secure, and performant.
Address these requirements through architectural interventions
The level of non-functional requirements implementation can vary based on the investment an individual application deserves hence design decisions must be backed by positive business case for the money spent.
While these requirements can be achieved in multiple ways, let’s look at how some of these requirements are addressed through an inter-cloud, cloud native & portable architecture and identify sample technology building blocks supporting such architecture.
Inter-Cloud architecture
Inter-cloud is a deployment model where an application is either fully deployed on a cloud with redundancies built on another cloud or its components are distributed across multiple cloud providers. An inter-cloud architecture essentially can bring in several redundancies that can help improve the reliability, availability, and performance of the overall system e.g. geographic redundancy, provider redundancy, resource redundancy, load balancing redundancy etc.
The redundant architecture across cloud providers
Active-active and active-passive architectures are commonly used in inter-cloud environments to provide high availability and redundancy for applications.
Recommended by LinkedIn
Active-active and active-passive architectures have their advantages and disadvantages, and the choice of architecture will depend on the specific requirements of the application.
Some of the common ways to handle traffic routing across multiple cloud & on-premises are Load Balancers, Software-Defined Networking (SDN), or DNS-Based Solutions.
Another ask is to establish connectivity between different clouds which can be achieved through Virtual Private Networks (VPNs), CSP provided dedicated Connectivity or through gateway.
It is important to consider factors such as redundancy, security, performance, scalability, and cost when selecting connectivity & routing solution.
Portability across CSPs
Another architecture consideration is to ensure application portability across cloud environments such as public clouds, edge & on-premise, which can be achieved through various techniques and strategies. Here are some of the common approaches
Achieving application portability across multiple cloud environments requires careful planning & design trade-offs across CSP managed services v/s self-managed deployments.
Enable such architecture with portable technology components
There are several application components and technologies that can be used to build portable applications that can seamlessly run on GCP, AWS, Azure, Edge & on-premise. Here are some examples in the below diagram:
To build redundancy at the component level, it may be beneficial to use a multi-cluster setup for Kafka and Istio. Using a multi-cluster setup for Kafka and Istio can help provide better fault tolerance, resilience, and scalability across different cloud environments. It can also help to isolate workloads and data to specific regions or clouds, enabling organizations to meet regulatory and compliance requirements. Additionally, using a multi-cluster setup can help to reduce latency and improve data locality, as data can be stored and processed closer to the end-users. Eventually, whether to use a single-cluster or multi-cluster setup for YugaByte DB, Kafka, Istio, or any other distributed system, depends on several factors, including the size of workload, performance and availability requirements, regulatory and compliance needs etc.
Conclusion
Inter-cloud & portable solution needs a thorough deliberation on the requirements & corresponding business case to justify it because it comes with its own implementation complexities, operations overheads & cost. However very high business value applications with stringent non-functional requirements and needing portability across cloud providers can justify such architecture & investment. This PoV doesn’t claim to cover all possible architecture considerations and technology options however the intent is to identify foundational building blocks and build on top of it based on individual application requirements.