StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Product

  • Stacks
  • Tools
  • Companies
  • Feed

Company

  • About
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2025 StackShare. All rights reserved.

API StatusChangelog
  1. Home
  2. Companies
  3. Uswitch
Uswitch logo

Uswitch

Verified

Compare and switch gas and electricity suppliers, also compare broadband deals, mobile phone deals, car & home insurance, credit cards, boiler cover & more.

The Cooperage, 5 Cooper Row, London SE1 2LHwww.uswitch.com
51
Tools
3
Decisions
35
Followers

Tech Stack

Application & Data

15 tools

Clojure logo
Clojure
Elixir logo
Elixir
Ruby logo
Ruby
Redux logo
Redux
Rails logo
Rails
Node.js logo
Node.js
MongoDB logo
MongoDB
Google BigQuery logo
Google BigQuery
Haskell logo
Haskell
JavaScript logo
JavaScript
Golang logo
Golang
PostgreSQL logo
PostgreSQL
MySQL logo
MySQL
Amazon Redshift logo
Amazon Redshift
React Native logo
React Native

Utilities

3 tools

Slack logo
Slack
Elasticsearch logo
Elasticsearch
Cilium logo
Cilium

DevOps

4 tools

Prometheus logo
Prometheus
Grafana logo
Grafana
Kibana logo
Kibana
Thanos logo
Thanos

Team Members

Alexander Curtis
Alexander Curtis
Brendon Boshell
Brendon Boshell
Callum Evans
Callum Evans
Francisco Debs
Francisco DebsVP Growth
Dewald Viljoen
Dewald ViljoenPlatform Engineer
giorgia-amici
giorgia-amici
Joseph Irving
Joseph IrvingDevOps Engineer
Jumee-LDN
Jumee-LDN
Nathan Hynes
Nathan HynesFull Stack Developer
Ninju
Ninju
okwujeisrael
okwujeisrael
Phil Helm
Phil Helm

Engineering Blog

Stack Decisions

Joseph Irving
Joseph Irving

May 15, 2019

At uSwitch we wanted a way to load balance between our multiple Kubernetes clusters in AWS to give us added redundancy. We already had ingresses defined for all our applications so we wanted to build on top of that, instead of creating a new system that would require our various teams to change code/config etc.

Envoy seemed to tick a lot of boxes:

  • Loadbalancing capabilities right out of the box: health checks, circuit breaking, retries etc.
  • Tracing and prometheus metrics support
  • Lightweight
  • Good community support

This was all good but what really sold us was the api that supported dynamic configuration. This would allow us to dynamically configure envoy to route to ingresses and clusters as they were created or destroyed.

To do this we built a tool called Yggdrasil using their Go sdk. Yggdrasil effectively just creates envoy configuration from Kubernetes ingress objects, so you point Yggdrasil at your kube clusters, it generates config from the ingresses and then envoy can loadbalance between your clusters for you. This is all done dynamically so as soon as new ingress is created the envoy nodes get updated with the new config. Importantly this all worked with what we already had, no need to create new config for every application, we just put this on top of it.

740k views740k
Comments
Joseph Irving
Joseph Irving

May 10, 2019

At uSwitch we use Vault to generate short lived database credentials for our applications running in Kubernetes. We wanted to move from an environment where we had 100 dbs with a variety of static passwords being shared around to a place where each pod would have credentials that only last for its lifetime.

We chose vault because:

  • It had built in Kubernetes support so we could use service accounts to permission which pods could access which database.

  • A terraform provider so that we could configure both our RDS instances and their vault configuration in one place.

  • A variety of database providers including MySQL/PostgreSQL (our most common dbs).

  • A good api/Go -sdk so that we could build tooling around it to simplify development worfklow.

  • It had other features we would utilise such as PKI

25.9k views25.9k
Comments
Joseph Irving
Joseph Irving

Dec 3, 2018

We recently implemented Thanos alongside Prometheus into our Kubernetes clusters, we had previously used a variety of different metrics systems and we wanted to make life simpler for everyone by just picking one.

Prometheus seemed like an obvious choice due to its powerful querying language, native Kubernetes support and great community. However we found it somewhat lacking when it came to being highly available, something that would be very important if we wanted this to be the single source of all our metrics.

Thanos came along and solved a lot of these problems. It allowed us to run multiple Prometheis without duplicating metrics, query multiple Prometheus clusters at once, and easily back up data and then query it. Now we have a single place to go if you want to view metrics across all our clusters, with many layers of redundancy to make sure this monitoring solution is as reliable and resilient as we could reasonably make it.

If you're interested in a bit more detail feel free to check out the blog I wrote on the subject that's linked.

64.9k views64.9k
Comments