Last October, my colleagues presented at EnvoyCon the talk "Building a Flexible Compression Subsystem in Envoy". Here it is below
Judging by the statistics of today's article fromSergeAx, the topic of network traffic compression turned out to be interesting to many. In this connection, I immediately desired universal glory and decided to briefly retell the content of the report. Moreover, it is not only about compression, but also how you can simplify the maintenance of the network subsystem of both the backend and the mobile frontend.
I did not completely "novelize" the video of the lecture, but only the part voiced by Jose NiΓ±o. It will interest more people.
To begin with, what is Envoy.
. Envoy β -, , , -, NGINX, HAProxyβ¦ .
- : , -, , , . TLS. , , . , , . .
, , . .
, -, , . - β , , , .
.
(Edge), , , . Edge , (Sidecar). , , , Edge.
, , β . , . , , , .
, , Android. , Lyft , - , Envoy . , .. , .
, , Envoy .
Envoy Mobile, Java, Kotlin, Swift, Objective-C Envoy. .
Then the task of reducing the volume of traffic described in the article from FunCorp could be solved approximately as in the picture below (if you swap the compressor and decompressor, and replace response with request). That is, even without having to install updates on phones.
You can go further and introduce bilateral compression
In general, the field for experiments in such a scheme greatly increases in size.