# service-mesh

Published articles for service-mesh.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## 【Istio 控制面】控制面全景：从 CRD 到 xDS 的翻译与推送内核

DevFeed: [【Istio 控制面】控制面全景：从 CRD 到 xDS 的翻译与推送内核](<https://devfeed.tech/articles/istio-crd-xds-34001.md>)

Original publisher: [Read original article](<https://quant67.com/post/istio-xds/01-controlplane-overview/01-controlplane-overview.html>)

Author: Liao Tonglang

Published: 2026-08-11T00:00:00Z

Content type: article

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [istio](<https://devfeed.tech/topics/istio.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [ambient](<https://devfeed.tech/tags/ambient.md>), [control-plane](<https://devfeed.tech/tags/control-plane.md>), [gateway-api](<https://devfeed.tech/tags/gateway-api.md>), [istio](<https://devfeed.tech/tags/istio.md>), [istiod](<https://devfeed.tech/tags/istiod.md>), [k8s](<https://devfeed.tech/tags/k8s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [network](<https://devfeed.tech/tags/network.md>), [pilot](<https://devfeed.tech/tags/pilot.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [sidecar](<https://devfeed.tech/tags/sidecar.md>), [xds](<https://devfeed.tech/tags/xds.md>)

### AI overview

This first article in a 16-part series maps the Istio control plane's role between configuration inputs and proxy-side xDS consumption. It defines five analytical axes and uses Istio 1.30.3 as its version anchor, while outlining the series' scope and boundaries.

### Source excerpt

定位 Istio 控制面内核相对 Envoy 消费侧、Service Mesh 税文与 Gateway API 资源模型的缺口；给出五条坐标系、16 篇地图与本系列明确不写的范围，钉住 istiod 1.30.3 为主线。

## Service Mesh Architecture: Sidecar Overhead, Istio, and Alternatives Without Sidecars

DevFeed: [Service Mesh Architecture: Sidecar Overhead, Istio, and Alternatives Without Sidecars](<https://devfeed.tech/articles/service-mesh-sidecar-sidecar-33975.md>)

Original publisher: [Read original article](<https://quant67.com/post/architecture/76-service-mesh/service-mesh.html>)

Author: Liao Tonglang

Published: 2026-04-13T00:00:00Z

Content type: article

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [istio](<https://devfeed.tech/topics/istio.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Cilium](<https://devfeed.tech/topics/cilium.md>), [eBPF](<https://devfeed.tech/topics/ebpf.md>), [linkerd](<https://devfeed.tech/topics/linkerd.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [cilium](<https://devfeed.tech/tags/cilium.md>), [ebpf](<https://devfeed.tech/tags/ebpf.md>), [envoy](<https://devfeed.tech/tags/envoy.md>), [istio](<https://devfeed.tech/tags/istio.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [linkerd](<https://devfeed.tech/tags/linkerd.md>), [observability](<https://devfeed.tech/tags/observability.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [security](<https://devfeed.tech/tags/security.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [sidecar](<https://devfeed.tech/tags/sidecar.md>), [tls](<https://devfeed.tech/tags/tls.md>)

### AI overview

This article explains the core problems addressed by service meshes and examines the Sidecar architecture, including traffic interception, proxy processing, Envoy's xDS configuration model, and Istio's istiod control plane. It focuses on the performance and operational overhead of Sidecars and compares them with approaches such as Cilium's eBPF-based implementation and Istio Ambient Mesh.

### Source excerpt

2023 年，某头部电商平台在全量接入 Istio 后发现：每个 Pod 的内存占用增加了 40-70 MB，p99 延迟从 12 ms 上升到 18 ms，整个集群每月多出数万美元的计算成本。这并非个例。CNCF 2024 年度调查显示，超过 60% 的受访企业已在生产环境中使用或评估服务网格（Service Mes...

## Kubernetes 网络深度系列

DevFeed: [Kubernetes 网络深度系列](<https://devfeed.tech/articles/kubernetes-34005.md>)

Original publisher: [Read original article](<https://quant67.com/post/k8s-network/index.html>)

Author: Liao Tonglang

Published: 2026-04-03T00:00:00Z

Content type: tutorial

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [eBPF](<https://devfeed.tech/topics/ebpf.md>), [VXLAN](<https://devfeed.tech/topics/vxlan.md>), [gateway](<https://devfeed.tech/topics/gateway.md>), [nginx](<https://devfeed.tech/topics/nginx.md>), [traefik](<https://devfeed.tech/topics/traefik.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>)

Tags: [ebpf](<https://devfeed.tech/tags/ebpf.md>), [gateway](<https://devfeed.tech/tags/gateway.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [index](<https://devfeed.tech/tags/index.md>), [k8s](<https://devfeed.tech/tags/k8s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [linux](<https://devfeed.tech/tags/linux.md>), [net-11](<https://devfeed.tech/tags/net-11.md>), [networking](<https://devfeed.tech/tags/networking.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [return](<https://devfeed.tech/tags/return.md>), [series](<https://devfeed.tech/tags/series.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [traefik](<https://devfeed.tech/tags/traefik.md>), [vxlan](<https://devfeed.tech/tags/vxlan.md>)

### AI overview

A Chinese tutorial series explains Kubernetes networking from the Linux network stack through virtual devices, routing, tunnels, eBPF, CNI plugins, Services, security policies, service discovery, traffic management, performance tuning, and troubleshooting. It includes packet captures, code, and kernel-source references, with comparisons of major CNI and ingress approaches.

### Source excerpt

从 Linux 网络栈的第一个字节到多集群联邦网络的最后一跳----用代码、抓包和内核源码把 Kubernetes 网络讲透

## How to Secure Microservices with SPIFFE and Istio

DevFeed: [How to Secure Microservices with SPIFFE and Istio](<https://devfeed.tech/articles/how-to-secure-microservices-with-spiffe-and-istio-29691.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/how-to-secure-microservices-spiffe-istio/>)

Author: info@goteleport.com (Jeff Ellin, Boris Kurktchiev)

Published: 2026-02-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [istio](<https://devfeed.tech/topics/istio.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [SPIFFE](<https://devfeed.tech/topics/spiffe.md>), [Zero Trust](<https://devfeed.tech/topics/zero-trust.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Secrets Management](<https://devfeed.tech/topics/secrets-management.md>), [certificates](<https://devfeed.tech/topics/certificates.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [backend](<https://devfeed.tech/tags/backend.md>), [certificates](<https://devfeed.tech/tags/certificates.md>), [cloud-native](<https://devfeed.tech/tags/cloud-native.md>), [firewalls](<https://devfeed.tech/tags/firewalls.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [istio](<https://devfeed.tech/tags/istio.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [policies](<https://devfeed.tech/tags/policies.md>), [secrets-management](<https://devfeed.tech/tags/secrets-management.md>), [security](<https://devfeed.tech/tags/security.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [spiffe](<https://devfeed.tech/tags/spiffe.md>), [zero-trust](<https://devfeed.tech/tags/zero-trust.md>)

### AI overview

This guide explains how to secure microservices with SPIFFE identities, Istio service-mesh mTLS, short-lived certificates, and Zero Trust authorization policies. It addresses the limits of network-based trust and long-lived certificates in dynamic Kubernetes environments.

### Source excerpt

Learn how to deploy a secure microservices application, configure default-deny authorization policies, and rebuild service connectivity with SPIFFE-based allow rules.

## Securing Salesforce Integrations with Heroku AppLink

DevFeed: [Securing Salesforce Integrations with Heroku AppLink](<https://devfeed.tech/articles/securing-salesforce-integrations-with-heroku-applink-26494.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/securing-salesforce-integrations-with-heroku-applink/>)

Author: David Baliles

Published: 2025-09-10T15:00:41Z

Content type: article

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Security](<https://devfeed.tech/topics/security.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [applink](<https://devfeed.tech/tags/applink.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [credentials](<https://devfeed.tech/tags/credentials.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [integrations](<https://devfeed.tech/tags/integrations.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [salesforce](<https://devfeed.tech/tags/salesforce.md>), [security](<https://devfeed.tech/tags/security.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [trust](<https://devfeed.tech/tags/trust.md>), [validation](<https://devfeed.tech/tags/validation.md>), [visibility](<https://devfeed.tech/tags/visibility.md>)

### AI overview

This post explains how Heroku AppLink secures Salesforce integrations through a managed bridge, service mesh, authentication, service discovery, request validation, and short-lived credentials. It describes how AppLink can replace exposed endpoints and stored credentials while supporting integrations deployed in different languages.

### Source excerpt

Salesforce customers often leverage third-party or custom services to extend their orgs, and they do so with two common options: Connected Apps and External Services. Connected Apps let third-party vendors or custom code call Salesforce APIs using long-lived OAuth tokens, while External Services call vendor APIs through declarative configurations with vendor-managed hosting, scaling, and endpoint security. While both approaches deliver functionality, the dynamic security threat landscape challenges us to continuously improve the risk and governance of our applications. Heroku AppLink improves your security model and provides a managed bridge between Salesforce and Heroku, so developers or vendors can deploy services in any language and expose them as native Salesforce actions. Heroku AppLink automatically handles authentication, service discovery, and request validation while its service mesh and short-lived credentials mean that your integrations no longer depend on stored credentials or exposed endpoints. Development teams can reuse existing code and libraries instead of rewriting in Apex, admins get centralized visibility into connections and authorizations, and security teams gain tighter trust boundaries across both Connected App and External Service scenarios. The post Securing Salesforce Integrations with Heroku AppLink appeared first on Heroku.

## How we Integrated SPIFFE, Oauth2.0 and Spring Boot

DevFeed: [How we Integrated SPIFFE, Oauth2.0 and Spring Boot](<https://devfeed.tech/articles/how-we-integrated-spiffe-oauth2-0-and-spring-boot-15454.md>)

Original publisher: [Read original article](<https://medium.com/wise-engineering/how-we-integrated-spiffe-oauth2-0-and-spring-boot-39a6faf41f96?source=rss----f2565bbe9c46---4>)

Author: Matthew Benedict Stocks

Published: 2022-12-14T09:36:48Z

Content type: tutorial

Language: en

Sources: [Wise Engineering - Medium](<https://devfeed.tech/sources/wise-engineering-medium.md>)

Topics: [SPIFFE](<https://devfeed.tech/topics/spiffe.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [OpenID connect (OIDC)](<https://devfeed.tech/topics/oidc.md>), [SPIRE](<https://devfeed.tech/topics/spire.md>), [Library](<https://devfeed.tech/topics/library.md>), [Security](<https://devfeed.tech/topics/security.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>)

Tags: [authorization](<https://devfeed.tech/tags/authorization.md>), [cybersecurity](<https://devfeed.tech/tags/cybersecurity.md>), [library](<https://devfeed.tech/tags/library.md>), [oauth2](<https://devfeed.tech/tags/oauth2.md>), [platform](<https://devfeed.tech/tags/platform.md>), [security](<https://devfeed.tech/tags/security.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [spiffe](<https://devfeed.tech/tags/spiffe.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>)

### AI overview

Wise's Security Engineering team describes how it consolidated SPIFFE/SPIRE and OIDC authorization strategies into the wise-security shared library. The approach reduces Spring Security boilerplate, presents a consistent service-layer security context, and adds guardrails intended to reduce misconfiguration and authorization complexity.

### Source excerpt

How we Integrated SPIFFE, OAuth2 and Spring Boot At Wise the Security Engineering team supports the Security Squad by developing tools and building technical controls relevant to the security maturity of existing technological setup. We work closely with teams across Platform and Product to help improve our overall security posture and reduce the friction encountered when engineering new software at speed. Photo by Jason Dent on UnsplashThe problem As a company we have a goal of reducing the amount of time it takes to go from inception to creation with our services. We want teams across Wise to be able to focus on the challenges encountered in their domain, rather than cross-cutting concerns, such as how to secure their endpoints. At Wise our approach was to create a common shared library, allowing teams to share our security solution while still retaining their autonomy. Standard security setups such as those seen with Spring Security often require a lot of boilerplate code (even if provided as part of a service template) which we wanted to reduce and where possible, abstract it entirely. Along with improving the quality of life for new and experienced engineers within Wise, this also helps to prevent any misconfiguration that could eventually lead to a vulnerability. Another challenge which arose was to offer a security context that appears the same at the service layer, but can be created from any of the protocols used by our systems, as well as being extensible if necessary. We needed to allow developers to control access to services with minimal effort, alongside creating a security guardrail for exposed endpoints to ensure services have been configured correctly. Introducing Wise Security At Wise, our service mesh layer is handled by Envoy and the identity framework for secure communication between mesh nodes is SPIFFE/SPIRE. User based IAM is handled via the OIDC authorization protocol. Each authorization approach must be enforced at the service layer, but du

## RPC 漫谈： 连接问题

DevFeed: [RPC 漫谈： 连接问题](<https://devfeed.tech/articles/rpc-40975.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/deep-into-rpc-connection/>)

Author: Joway

Published: 2021-05-06T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [IO](<https://devfeed.tech/topics/io.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [io](<https://devfeed.tech/tags/io.md>), [linux](<https://devfeed.tech/tags/linux.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [server](<https://devfeed.tech/tags/server.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [tcp](<https://devfeed.tech/tags/tcp.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This article explains what a network connection represents, the memory, file-descriptor, and thread costs of maintaining connections, and why the C10K problem is primarily an operating-system and software-design challenge. It then introduces the evolution of Linux I/O interfaces, including select and poll, in the context of RPC and large numbers of concurrent connections.

### Source excerpt

什么是连接 在物理世界并不存在连接这么一说，数据转换为光/电信号后，从一台机器发往另一台机器，中间设备通过信号解析出目的信息来确定如何转发包。我们日常所谓的「连接」纯粹是一个人为抽象的概念，目的是将传输进来的无状态数据通过某个固定字段作为标识，分类为不同有状态会话，从而方便在传输层去实现一些依赖状态的事情。

## RPC 漫谈：序列化问题

DevFeed: [RPC 漫谈：序列化问题](<https://devfeed.tech/articles/rpc-40977.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/deep-into-rpc-serialization/>)

Author: Joway

Published: 2021-04-30T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Code](<https://devfeed.tech/topics/code.md>), [interface](<https://devfeed.tech/topics/interface.md>), [class](<https://devfeed.tech/topics/class.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [client](<https://devfeed.tech/tags/client.md>), [code](<https://devfeed.tech/tags/code.md>), [interface](<https://devfeed.tech/tags/interface.md>), [java](<https://devfeed.tech/tags/java.md>), [protobuf](<https://devfeed.tech/tags/protobuf.md>), [remote-procedure-calls](<https://devfeed.tech/tags/remote-procedure-calls.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This article explains RPC serialization and deserialization, including IDL definitions, generated Stub code, reflection, and encoding techniques such as Varint and ZigZag. It discusses trade-offs between generated code size, convenience, performance, and network payload size.

### Source excerpt

何为序列 对于计算机而言，一切数据皆为二进制序列。但编程人员为了以人类可读可控的形式处理这些二进制数据，于是发明了数据类型和结构的概念，数据类型用以标注一段二进制数据的解析方式，数据结构用以标注多段(连续/不连续)二进制数据的组织方式。 例如以下程序结构体：

## RPC 漫谈： 限流问题

DevFeed: [RPC 漫谈： 限流问题](<https://devfeed.tech/articles/rpc-40976.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/deep-into-rpc-ratelimiter/>)

Author: Joway

Published: 2021-04-23T00:00:00Z

Content type: opinion

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Server](<https://devfeed.tech/topics/server.md>), [client](<https://devfeed.tech/topics/client.md>), [IO](<https://devfeed.tech/topics/io.md>), [Network](<https://devfeed.tech/topics/network.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [client](<https://devfeed.tech/tags/client.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [io](<https://devfeed.tech/tags/io.md>), [network](<https://devfeed.tech/tags/network.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [server](<https://devfeed.tech/tags/server.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This article examines rate limiting for RPC calls between microservices. It explains why fixed limits can help prevent cascading failures and preserve response times, then discusses the limitations of leaky-bucket and token-bucket approaches. The article argues that service capacity changes with code, dependencies, hardware, node count, business demand, and time of day. It proposes estimating current load using concurrent in-flight requests, average response time, and throughput, drawing on Little's law, and describes the trade-off between increased throughput and degraded response time under resource contention.

### Source excerpt

微服务之间的 RPC 调用往往会使用到限流功能，但是很多时候我们都是用很简单的限流策略，亦或是工程师拍脑袋定一个限流值。 这篇文章主要讨论在 RPC 限流中，当前存在的问题和可能的解决思路。 为什么需要限流 避免连锁崩溃 一个服务即便进行过压测，但当真实运行到线上时，其收到的请求流量以及能够负载的流量是不固定的，如果服务自身没有一个自我保护机制，当流量超过预计的负载后，会将这部分负载传递给该服务的下游，造成连锁反应甚至雪崩。

## The Road to an Envoy Service Mesh

DevFeed: [The Road to an Envoy Service Mesh](<https://devfeed.tech/articles/the-road-to-an-envoy-service-mesh-27020.md>)

Original publisher: [Read original article](<https://medium.com/square-corner-blog/the-road-to-an-envoy-service-mesh-d1a51cbd31dd?source=rss----3650599ae4e2---4>)

Author: Snow Pettersen

Published: 2019-03-29T15:36:51Z

Content type: article

Language: en

Sources: [Square Corner Blog - Medium](<https://devfeed.tech/sources/square-corner-blog-medium.md>)

Topics: [microservices architecture](<https://devfeed.tech/topics/microservices-architecture.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Java](<https://devfeed.tech/topics/java.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [automatic](<https://devfeed.tech/tags/automatic.md>), [discovery](<https://devfeed.tech/tags/discovery.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [envoy-proxy](<https://devfeed.tech/tags/envoy-proxy.md>), [failover](<https://devfeed.tech/tags/failover.md>), [go](<https://devfeed.tech/tags/go.md>), [http](<https://devfeed.tech/tags/http.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [java](<https://devfeed.tech/tags/java.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [microservices-architecture](<https://devfeed.tech/tags/microservices-architecture.md>), [routing](<https://devfeed.tech/tags/routing.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>)

### AI overview

Square describes its evolution from a Ruby on Rails monolith to a microservices architecture and explains the interoperability challenges created by its Java, Ruby, and Go stack. The article outlines its Protobuf-based Sake RPC framework, its routing, failover, traffic-shaping, and service-discovery features, and Square's migration toward a full service mesh.

### Source excerpt

Heads up, we've moved! If you'd like to continue keeping up with the latest technical content from Square please visit us at our new home https://developer.squareup.com/blog At Square we've been running a microservices architecture for years, primarily using three different languages: Java, Ruby and Go. Running such a diverse stack can make interoperability between the different languages/frameworks challenging, and in this post I'll talk about how Square has handled this in the past and where we're at today -- actively migrating towards a full service mesh. The Old World Square started off, like many other companies, just running one large monolith. For Square this was a big Ruby on Rails service, that handled everything that Square did. A monolith makes service to service communication completely unnecessary: everything runs in the same code base on a single database, so everything can be implemented without making any outbound network calls (except to third parties outside of Square). After a while, Square decided to move more towards a service oriented architecture to reduce the reliance on a single, large application. To do this Square decided to build their own Protobuf based RPC framework, inspired by Google's Stubby. This was years before gRPC was created, so there weren't any open source options at the time. This RPC framework, called Sake, was implemented for Java and Go as these were the languages used for higher availability services, while regular REST HTTP was used between services that didn't understand Sake. (Incidentally, Sake became a part of gRPC's DNA) Over time this framework became fairly sophisticated, with many features not generally available: Smart retries with automatic failover Prioritized routing based on upstream health Traffic shaping and service discovery This ended up working well, but relied on fat client/server libraries, so extending support to other languages was hard. Attempts were made to bring feature parity between languages i

## Keycloak and Istio

DevFeed: [Keycloak and Istio](<https://devfeed.tech/articles/keycloak-and-istio-31568.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2018/02/keycloak-and-istio>)

Author: Sébastien Blanc

Published: 2018-02-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [istio](<https://devfeed.tech/topics/istio.md>), [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [proxy](<https://devfeed.tech/topics/proxy.md>)

Tags: [envoy-proxy](<https://devfeed.tech/tags/envoy-proxy.md>), [http](<https://devfeed.tech/tags/http.md>), [idm](<https://devfeed.tech/tags/idm.md>), [istio](<https://devfeed.tech/tags/istio.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [saml](<https://devfeed.tech/tags/saml.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [sso](<https://devfeed.tech/tags/sso.md>)

### AI overview

This short blog post describes early trials of combining Keycloak with Istio. It explains how Istio's Envoy sidecar and JWT authentication filter can take over some security tasks traditionally handled by Keycloak adapters, while noting that the replacement is not yet complete.

### Source excerpt

This short blog post is to share the first trials of combining Keycloak with Istio. What is Istio? Istio is an platform that provides a common way to manage your service mesh. You may wonder what a service mesh is, well, it's an infrastructure layer dedicated to connect, secure and make reliable your different services. Istio, in the end, will be replacing all of our circuit-breakers, intelligent load balancing or metrics librairies, but also the way how two services will communicate in a secure way. And this is of course the interesting part for Keycloak. As you know Keycloak uses adapters for each of the application or service that it secures. These adapters make sure to perform the redirect if needed, to retrieve the public keys, to verify the JWT signature etc ... There are a lot of different adapters depending on the type of application or technology that is used : there are Java EE adapters, JavaScript adapters and we even have a NodeJS adapter. The end of the adapters? Following the Istio philosophy, these adapters would not be needed in the end because the Istio infrastructure will take care of the tasks the adapters were doing (signature verification etc ...). We are not yet there for now but in this post we will see what can already be done with Istio and how much it already can replace the role of the Adapters. The Envoy Sidecar We won't dive into the details on how Istio works but there is one main concept to understand around which Istio is articulated : the Envoy Sidecar. Envoy is a high performance proxy deployed alongside with each deployed service and this is the reason we call it a "sidecar". Envoy captures all incoming and outgoing traffic of its "companion" service, it can then apply some basic operations and also collect data and send it to a central point of decision, called the "mixer" in Istio. The conifugration of Envoy itself happens through the "pilot" an other Istio component. Envoy Filters To make it easier to add new functionnality to t