TinderTinderProblem & solution
How Tinder Eased Development Pain With Ignis
Summary
Managing hundreds of microservices with disparate configurations forced Tinder engineers to deploy code to staging environments to verify every change, slowing development velocity. To shorten feedback loops, the team created Ignis, a Go-based CLI tool that lets engineers run an isolated service locally while proxying ingress and egress traffic through a multi-tenant development Kubernetes cluster. Ignis pairs with an API gateway for client testing and uses a custom Smart Router proxy to dynamically intercept downstream gRPC and HTTP requests via Kubernetes informers and header propagation. Since launching in 2019, the tool enabled Tinder to eliminate a dozen staging environments, decrease cloud spend, and accelerate onboarding, followed by a V2 release adding remote IDE support and monitoring.
Context
Tinder operates hundreds of microservices, each with distinct networking configurations, roles, metric rollups, and environment variables. This complexity made it difficult for engineers to verify local code behavior. Developers were required to push every change to a feature branch, deploy it to a staging environment, and inspect logs and metrics to evaluate their modifications, introducing high latency in the development loop and hindering velocity.
Approach / What changed
Tinder built Ignis, a Go-based CLI tool that swaps cluster application pods for proxy containers and links them to local development containers sharing identical environment variables and filesystem access. Ignis integrates with an API gateway for local client testing and introduces the Smart Router, a gRPC/HTTP proxy leveraging Kubernetes informer APIs to dynamically route downstream requests containing special propagated headers to developer-specific pods in a multi-tenant cluster.
Takeaways
Ignis replaces application containers in a development Kubernetes cluster with proxy containers that mirror production environment variables and network volume mounts on local dev machines.
The Smart Router uses Kubernetes informers and propagated tracing-like headers to intercept and route multi-hop downstream microservice requests directly to isolated developer proxy pods.
Adopting Ignis allowed Tinder to decommission an old development account, retire a dozen staging environments, reduce cloud spending, and accelerate developer onboarding and integration testing.
Source and freshness
- Source
- medium.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.