howardjohn's Blog

Opinionated Istio Feature Recommendations

Which features I recommend using, or not using, in Istio

February 6, 2024 · 6 min

Analyzing Go Binary Sizes

In Analyzing Go Build Times, I went over how to analyze and understand Go build times, and what factors impact build times. A close cousin to build times is build sizes. Large binaries can lead to a variety of issues such as: Generally, slower build times Increased costs of storage Increased costs and time to distribute Increased memory usage at runtime (more on this in another article, hopefully) So its generally nice to keep them small....

 · January 6, 2024 · 8 min

Truly Extensible Proxies

Exploring an extreme service mesh architecture to maximize extensibility.

October 13, 2023 · 13 min

Proxy Layers

The OSI model attempts to build a model for network communications, where increasingly high level layers are built upon lower layers. This is only slightly useful in practice, as the real world is not so simple. In service mesh, generally discussion is reduced to L4 and L7, or TCP and HTTP. This oversimplifies the problem, leading to some confusion. Thinking in terms of termination Simply saying "HTTP" is not really clear about what is going on....

October 12, 2023 · 4 min

Service Mesh Proxy Classes

When looking at service mesh (or even general networking) architectures, the basic idea is to send network traffic through some component, which handles various functionality. This could be authentication, authorization, encryption, observability, reliability, networking, etc. There are a few different classes of components that can do this, though: Different types of proxy deployments Native application enhancement. The application itself is compiled in with functionality. This could be something like gRPC (or, even more "meshy", gRPC with xDS), Finagle, Hystrix, etc....

October 11, 2023 · 8 min

User space isn't slow

In-kernel networking solutions, such as WireGuard, are not always faster than user space.

September 10, 2023 · 3 min

An optimal CI/CD system

Exploring an (unfortunately, hypothetical) CI/CD system for end to end tests on Kubernetes.

September 6, 2023 · 6 min

Istio Ambient is not a "Node Proxy"

The common messaging around Istio Ambient Mesh is that is a "node proxy." For example, from The New Stack ... architecture that moves the proxy functionality from the pod-level to the node-level. While this is technically accurate, it is misleading and really missing the point and benefits of Ambient. A brief history of service mesh architectures This skips quite a bit of information, but is close enough. One of the earlier service meshes on the market was Linkerd 1 - not to be confused with Linkerd 2, which most people just call "Linkerd" today....

August 22, 2023 · 3 min

Waypoint Proxies The Hard Way

How to achieve an architecture similar to "Waypoint Proxies" without ambient mesh, or even Istio.

August 22, 2023 · 11 min

Building a lot of docker images

Fully utilizing buildkit's potentional

August 4, 2023 · 5 min