HNHacker News
TopNewBestAskShowJobs

labrabbit

3 karma · joined January 7, 2019

submissionscomments
labrabbit··on How Canary Deployments Work in Kubernetes, Istio and Linkerd
Glasnostic CEO here. These are all valid points and good, straightforward ways of doing things in a perfectly engineered world, where they work until they don't.

Problem is, our world is rarely perfectly engineered. Our perfectly engineered application becomes a service to other applications. Some other team deploys something that affects our dependencies. An external partner hammers our API. Our managed service provider has an issue. Noisy neighbors cause shock waves, gray failures compound. These things happen irrespective of whether your code is correct or not.

Unless your service architecture is small, "perfectly engineered" is an anti-pattern because it is too expensive to track down and code against such events, no matter whether we run in Kubernetes/Istio or elsewhere. Operational challenges always require operators.

labrabbit··on Developments around Microservices, API Gateways, Kubernetes and Service Mesh
We'll fix that font, thanks!

In most cases, organic architecture would include microservice-based applications. At a very high level, organic architecture is a style that IT adopts when the multitude of business needs make the organization itself "organic". An outward sign of this transformation is the emergence of parallel teams and independent release cycles. When this happens, applications take on the role of digital capabilities that can be recombined to support new products and services and the difference between an "application" and a "service" fades away. So, in the IT environment you describe, microservice-based applications would be part of the organic architecture.

The key issue in composing capabilities in such a way is the emergence of complex behaviors. For instance, composed fan-out patterns tend to be non-linear, large-scale and highly dynamic. To fully realize the potential of organic architecture, you'll need a way to control these behaviors. This is what we do.

labrabbit··on Developments around Microservices, API Gateways, Kubernetes and Service Mesh
Kubernetes' load balancing, health and performance monitoring, etc. operate at Layer 4. Service Mesh addresses the higher (L5-7) concerns like per-request routing, metrics, encryption, IAM, etc.

Coding these higher-level concerns yourself is laborious and error-prone, so if your application runs on Kubernetes, then service mesh can be a substantial help.

labrabbit··on Developments around Microservices, API Gateways, Kubernetes and Service Mesh
Full disclosure: I work for Glasnostic.

Service mesh encapsulates the complexities of distributed service-to-service communication so you don't have to deal with them. There are a few options (not just Istio) and all approach the problem in a different way.

I have written about this here: https://glasnostic.com/blog/what-is-a-service-mesh-istio-lin... and here: https://glasnostic.com/blog/should-i-use-a-service-mesh