Case Study
Many founders assume multi-cloud means redesigning the platform. It doesn't — and it shouldn't. Hybrid architectures are common in mature companies; they're rare in startups because it's easier to teach a Series A startup how to optimize for one cloud than to manage two. But when you've already optimized for one, and new capital (in credits) is contingent on using another, the math changes. You preserve what works, extend what you've built, and move forward. At Renaiss, we help founders make that call technically sound — and profitable.
Many founders assume multi-cloud means redesigning the platform. It doesn't — and it shouldn't. Hybrid architectures are common in mature companies; they're rare in startups because it's easier to teach a Series A startup how to optimize for one cloud than to manage two. But when you've already optimized for one, and new capital (in credits) is contingent on using another, the math changes. You preserve what works, extend what you've built, and move forward. At Renaiss, we help founders make that call technically sound — and profitable.
Get this right before anything else; it's the cheapest mistake to avoid and the most expensive to fix later.
/12 for AWS, a separate /12 for Azure) so route tables and BGP advertisements stay compact. Govern it from real IPAM tooling, not a spreadsheet.
Two layered decisions: how the two clouds physically connect, and what sits in the path to route and inspect traffic.
For Kilimo we stayed fully cloud-native: an IPsec VPN between AWS Transit Gateway and Azure Virtual WAN, with no third-party appliances. Their traffic volumes and inspection requirements didn't justify NVAs or a dedicated circuit, and keeping the interconnect on managed appliances meant no HA, patching, or licensing burden to carry — the cloud providers own that.
A workload in EKS must resolve an Azure private name (and vice versa) without leaking the query to public DNS.
forward rules so workloads inside EKS and AKS actually reach the right resolver.
In a cross-cloud microservices platform you'll often want mTLS or internal TLS — which means one coherent trust hierarchy, not a pile of self-signed certs.
cert-manager at the shared issuer in each cluster so certificates are short-lived and self-renewing.For Kilimo this didn't apply — their cross-cloud requirements didn't call for service-to-service mTLS, so we deliberately kept a private PKI out of scope rather than build something unused. We include it here because most cross-cloud platforms reach for it eventually, and it's far cheaper to plan the trust hierarchy early than to retrofit it.
This is the question that ties the whole design together: how does a service in EKS actually reach a service in AKS? There are three broad answers, in ascending order of capability and operational weight.
For Kilimo we chose internal load balancers. Only a handful of services needed to talk across clouds, and the internal-LB model gave us the cleanest balance of simplicity and control: the clusters stay decoupled, we don't need to make pod CIDRs mutually routable, and the LB endpoints pair naturally with the conditional DNS forwarding from point 3 — a service simply resolves the peer's private name and gets a stable address on the other cloud. The trade-offs are an extra network hop and owning LB health and endpoint configuration ourselves, both of which were easy prices to pay versus standing up and operating a cross-cloud mesh for a small set of flows.

The topology: a managed hub in each cloud, an IPsec interconnect between Transit Gateway and Virtual WAN carrying BGP, conditional DNS forwarding between the two resolvers, and internal load balancers as the cross-cloud service entry points. No third-party appliances, no private PKI.
A cross-cloud call follows the dotted and solid lines together: a pod in EKS resolves the Azure service name (conditional forwarding hands it the internal LB address), the traffic crosses the IPsec link via Transit Gateway and Virtual WAN, and lands on the Azure internal load balancer fronting AKS — and symmetrically in reverse.
Kilimo now orchestrates water management intelligence across AWS and Azure without platform fragmentation. Latency is predictable, failure modes are understood, and the cost per byte of data moved across the interconnect is known and acceptable. The Azure credits, which arrived as an obligation, became a strategic asset.
The lesson is broader: hybrid doesn't mean compromise. It means deliberate choices made early. It means knowing your IP space before you need it, routing traffic symmetrically before you have an outage, and thinking about mTLS before you're in a compliance audit.
If you're building climate tech, fintech, or any infrastructure-heavy startup and you're facing the same decision — credits in one cloud, architecture in another, a mission that won't wait — let's talk about how to scale without splitting.
Plan your address space before you connect: no overlaps, aggregatable CIDRs, and know Kubernetes' IP appetite. The cheapest mistake to avoid, the most expensive to fix later. Kilimo learned this the hard way.
IPsec, dedicated circuits, or fully managed cloud fabric. Decide what sits in the path before traffic arrives. For Kilimo: cloud-native. Transit Gateway and Virtual WAN, no third-party appliances, no licensing burden.
A workload in EKS resolves Azure service names without leaking queries to public DNS. Conditional forwarding in both directions, resolver endpoints in HA across AZs, CoreDNS rules in every cluster.
One certificate hierarchy that crosses clouds: a shared root, per-cloud intermediates. Kilimo didn't need mTLS, so we left this out. But it's cheaper to plan early than retrofit later.
One certificate hierarchy that crosses clouds: a shared root, per-cloud intermediates. Kilimo didn't need mTLS, so we left this out. But it's cheaper to plan early than retrofit later.





INFRASTRUCTURE MAPPING
01 / 05
CONNECTIVITY DESIGN
02 / 05
DNS AND NAME RESOLUTION
03/ 05
LOAD BALANCER ORCHESTRATION
04 / 05
TESTING AND HANDOFF
05 / 05
We audited Kilimo's existing AWS architecture, mapped the workloads that would cross clouds, and calculated how much IP space each cloud needed. The goal was simple: know exactly what you're building before you build it. Most teams skip this. We don't.
We modeled three scenarios: IPsec VPN over the internet, dedicated circuits via Equinix, and cloud-native managed fabric. For Kilimo's traffic volume and inspection needs, IPsec between Transit Gateway and Virtual WAN was the answer. No third-party appliances, no licensing overhead.
We built conditional forwarding so an EKS pod can resolve an Azure service name and vice versa, without leaking queries to public DNS. Route 53 Private Zones on one side, Azure Private DNS on the other, with resolver endpoints in HA across availability zones.
We fronted the cross-cloud services with internal load balancers — an NLB in AWS, a Standard LB in Azure. The clusters stay decoupled from each other's pod-level details. A service resolves the peer's private name and gets a stable endpoint. Simple, predictable, operationally sound.
We validated latency, failover, and symmetric routing before handing over to Kilimo's ops team. Documented the BGP topology, the DNS rules, and the cost per byte crossing the interconnect. The platform was live, the team understood it, and it stayed live.