stepan.wtf
Fri, Aug 7, 2020 gcp / gke / kubernetes / load-balancing

Multi-Cluster Load Balancing with GKE

One of the features I like the most about GCP is the external HTTP(S) Load Balancing. This is a global load balancer which gives you a single anycast IP address (no DNS load balancing needed, yeey!). Requests enter the Google’s global network at one of the edge points of presence (POPs) close to the user, and are proxied to the closest region with available capacity. This results in highly available, globally distributed, scalable and fully managed load balancing setup. Let’s get familiar with the GCP Load Balancing components in the first part, and we will setup load balancing across two GKE clusters step by step in the second. …

Wed, Apr 29, 2020 kubernetes / gke / eks / aks

Kubernetes: Deprecated APIs aka Introducing Kube-No-Trouble

With Kubernetes 1.16 available for a while and starting to slowly roll out across many managed Kubernetes platforms, you might have heard about API deprecations. While fairly simple to deal with, this change might seriously disrupt your services if left unattended. …

Sun, Mar 29, 2020 gcp / cloudsql / postgresql / performance / databases / benchmark

How does a Cloud SQL database scale?

One of the most challenging decisions when designing a new system is choosing your data storage solution. There are many aspects to consider, performance and scalability being usually the fundamental ones. I have been through this exercise many times and always felt there’s not enough good documentation on what performance to expect from Cloud SQL database and how does it scale. …

Thu, Oct 10, 2019 cloud / gcp / architecture / terraform

Cloud Naming Convention

Consistent naming strategy is important and should be an essential part of any cloud effort. Sadly it’s often overlooked. It might seem like a luxury when you run a few “pet” servers, but it quickly becomes critical as the number of managed resources grows. It is the first step in achieving even basic levels of consistency and prerequisite to establishing any sort of cloud governance. And in this post I’ll show you how to build one …

Wed, Sep 11, 2019 go / protobuf / grpc

Importing Protobuf with Go Modules

Protocol buffers and gRPC are established standards for building modern web services. Go modules are now the default way of versioning packages in Go projects. How can you import and reuse existing .proto definitions from your versioned dependencies while using Go modules? …

Tue, Aug 27, 2019 kubernetes / helm / terraform

To Helm or Not?

Helm is becoming a very popular tool to manage deployments on Kubernetes. The proposal is tempting – easily install and manage complex applications. It’s often picked up “by default”, without thinking twice whether it’s even needed, nor what the implications of such a choice are. I recommend caution before using it in more serious environments and in this post we’ll look at the main reasons why. …