İçeriğe geç
Guides 7 dk okuma 1281 görüntülenme

Envoy Proxy

Envoy Proxy'nin mikroservisler için modern bir proxy olarak sunduğu temel özellikleri ve faydaları öğrenin: daha iyi performans ve güvenilirlik.

Envoy Proxy

Envoy Proxy, cloud-native uygulamalar için tasarlanmış, açık kaynaklı ve yüksek performanslı bir edge ve servis proxy'sidir; mikroservis mimarileri için evrensel bir data plane görevi görür. Ağ karmaşıklıklarını soyutlayarak dağıtık sistemler için gerekli olan gelişmiş trafik yönetimi, gözlemlenebilirlik ve güvenlik yeteneklerini sağlar.

Envoy, servisler arasındaki tüm ağ trafiği için şeffaf bir proxy olarak çalışır ve geliştiricilerin ile operatörlerin ağ meseleleri yerine uygulama mantığına odaklanmasına olanak tanır. Mimarisi modern mikroservis dağıtımları için kurgulanmıştır ve geleneksel proxy'lerin çoğu zaman sunmadığı ya da daha verimsiz uyguladığı özellikler sunar.

Temel mimari ilkeler

Envoy'un tasarımı performansı, genişletilebilirliği ve dinamik yapılandırmayı önceliklendirir. Tek süreçli, çok iş parçacıklı bir sunucu olarak çalışır ve yüksek hacimli eşzamanlı bağlantı ile istekleri verimli biçimde karşılamak için olay güdümlü I/O kullanır.

L3/L4 filtre mimarisi

Envoy, hem ağ (L3/L4) hem de uygulama (L7) katmanlarında takılabilir bir filtre zinciri mimarisi kullanır. Bu, ağ trafiğinin son derece özelleştirilebilir şekilde işlenmesini mümkün kılar.
* Ağ filtreleri: Ham bayt akışları üzerinde çalışır. Örnekler arasında TCP proxy, TLS sonlandırma ve bağlantı düzeyinde rate limiting yer alır.
* HTTP filtreleri: HTTP istekleri ve yanıtları üzerinde çalışır. Örnekler arasında Gzip sıkıştırma, request ID enjeksiyonu, JWT kimlik doğrulama ve gelişmiş yönlendirme bulunur.

Bu modülerlik, isteğin yaşam döngüsünün çeşitli aşamalarında gelişmiş politika uygulamasına ve trafik manipülasyonuna imkân verir.

Mikroservisler için öne çıkan özellikler

HTTP/2 ve gRPC desteği

Envoy, modern mikroservislerde temel protokoller olan HTTP/2 ve gRPC için birinci sınıf destek sunar. HTTP/1.1 istemcilerini HTTP/2 servislerine köprüleyebilir, HTTP/2 bağlantılarını sonlandırabilir ve gRPC farkındalıklı yük dengeleme ile yönlendirme gibi gelişmiş özellikler dahil olmak üzere gRPC proxy'lemesini kolaylaştırabilir.

Gelişmiş yük dengeleme

Envoy, basit round-robin'in ötesinde gelişmiş yük dengeleme algoritmalarından oluşan bir set sunar:
* Least Request: En az aktif isteği olan backend'e yönlendirir.
* Ring Hash: Daha iyi önbellek kullanımı ve sticky oturumlar için tutarlı hash'leme.
* Maglev (Power of Two Choices): Rastgele iki host seçer ve aktif isteği daha az olanı tercih eder; basitlik ile neredeyse optimal dağılımı dengeler.
* Random: Basit, yansız dağıtım için.
* Original Destination: Servis keşfi olmadan hedeflenen destinasyon IP'sine yönlendirir.

Ayrıca trafiğin yalnızca sağlıklı örneklere gönderilmesini güvence altına almak ve dayanıklılığı artırmak için otomatik yeniden denemeleri, circuit breaking'i, outlier tespitini ve health checking'i destekler.

Dinamik yapılandırma (xDS API)

Envoy'un cloud-native tasarımının köşe taşlarından biri, xDS (Discovery Service) API üzerinden sunduğu dinamik yapılandırma yetenekleridir. Statik yapılandırma dosyaları yerine Envoy, çeşitli kaynaklara ait güncellemeleri dinamik olarak alabilir:
* Listener Discovery Service (LDS): Listener'lar (Envoy'un bağlandığı portlar).
* Route Discovery Service (RDS): HTTP yönlendirme kuralları.
* Cluster Discovery Service (CDS): Upstream cluster'lar (backend servis grupları).
* Endpoint Discovery Service (EDS): Cluster'lar içindeki endpoint'ler (tekil örnekler).
* Secret Discovery Service (SDS): TLS sertifikaları ve özel anahtarlar.
* Runtime Discovery Service (RTDS): Dinamik runtime yapılandırma değerleri.

Bu, kesintisiz yapılandırma değişikliklerine olanak tanır; sürekli dağıtımı ve bu yapılandırmaları yöneten service mesh control plane'leriyle (örneğin Istio, App Mesh) entegrasyonu mümkün kılar.

Gözlemlenebilirlik

Envoy, gözlemlenebilirliği birinci sınıf bir unsur olarak ele alacak şekilde tasarlanmıştır ve ağ trafiğine dair derin içgörü sağlar:
* Ayrıntılı istatistikler: Bağlantıları, istekleri, hataları, gecikmeyi ve daha fazlasını kapsayan çok sayıda istatistik (upstream cluster başına 100'den fazla) üretir; bunlar Prometheus veya benzeri sistemlerce toplanabilir.
* Dağıtık tracing: Jaeger, Zipkin ve AWS X-Ray gibi yaygın tracing sistemlerini destekler; trace bağlamlarını (örneğin B3, W3C Trace Context) taşır ve her hop için span üretir.
* Erişim günlükleri: Her isteği header'lar, yanıt kodları ve zamanlama bilgileriyle birlikte ayrıntılandıran kapsamlı ve özelleştirilebilir erişim günlükleri.

Bu özellikler hata ayıklama, performans analizi ve dağıtık mikroservislerin izlenmesi için kritiktir.

Güvenlik özellikleri

Envoy, bu sorumlulukları çoğu zaman uygulama kodundan alarak güçlü güvenlik özellikleri sunar:
* TLS sonlandırma ve origination: TLS şifreleme/şifre çözme işlemini üstlenir; servislerin dahili olarak düz metin üzerinden haberleşmesine izin verirken dış iletişimi güvenli tutar.
* Mutual TLS (mTLS): İstemci sertifikalarını doğrulayarak mesh içindeki servisler arasında güvenli ve kimliği doğrulanmış iletişimi mümkün kılar.
* Rate limiting: Servisleri aşırı yük veya kötüye kullanıma karşı korumak için istek hızı limitleri uygular.
* Kimlik doğrulama ve yetkilendirme: External Authorization filtresi aracılığıyla harici yetkilendirme servisleriyle (örneğin OPA) entegre olur ve ayrıntılı erişim kontrolü sağlar.

Envoy'un mikroservis mimarilerindeki rolü

Sidecar proxy

Envoy'un mikroservis ortamındaki en yaygın dağıtım deseni sidecar proxy'dir. Bu modelde her servis örneği, tipik olarak Kubernetes'te aynı pod içinde olmak üzere yanında bir Envoy proxy çalıştırır. Servise ait tüm gelen ve giden ağ trafiği sidecar tarafından şeffaf biçimde yakalanır ve yönetilir.

Bu yaklaşımın çeşitli faydaları vardır:
* Ağ soyutlaması: Uygulama geliştiricileri localhost ile haberleşen servisler yazar; yönlendirme, yeniden deneme ve diğer ağ meselelerini Envoy sidecar üstlenir.
* Çoklu dil desteği: Farklı dillerde ve framework'lerde yazılmış servisler arasında tutarlı ağ politikaları ve özellikleri sağlar.
* İzolasyon: Ağ meseleleri iş mantığından ayrılır; geliştirme ve dağıtım basitleşir.

Service mesh data plane

Envoy, birçok yaygın service mesh uygulamasının (örneğin Istio, Linkerd, AWS App Mesh) fiili data plane'i olarak görev yapar. Bir service mesh'te control plane, Envoy proxy filosunu (data plane) yönetir ve yapılandırır. Control plane, mesh'teki tüm Envoy'ların yapılandırmasını dinamik olarak güncellemek için xDS API'yi kullanır; böylece trafik politikaları, güvenlik ve gözlemlenebilirlik tüm mikroservis ekosisteminde uygulanır.

Edge proxy / API gateway

Envoy, ağın kenarında API gateway veya ters proxy olarak da konumlandırılabilir. Bu rolde ingress trafiğini karşılar; kimlik doğrulama, rate limiting ve TLS sonlandırma işlemlerini gerçekleştirir ve istekleri mikroservis mimarisi içindeki uygun backend servislerine yönlendirir. Gelişmiş L7 yönlendirme yetenekleri, onu karmaşık edge yönlendirme gereksinimleri için uygun kılar.

Yapılandırma örneği

Temel bir Envoy yapılandırması listener'ları, filtre zincirlerini ve cluster'ları tanımlar. Bu örnek, 10000 portundaki bir listener'ın HTTP isteklerini web_service adlı upstream servis cluster'ına proxy'lediğini gösterir.

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: TCP
        address: 0.0.0.0
        port_value: 10000
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  cluster: web_service
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
  clusters:
  - name: web_service
    connect_timeout: 0.25s
    type: LOGICAL_DNS
    # v6 üzerinde test etmek için aşağıdaki satırı yoruma alın.
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: web_service
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: webserver.example.com # Kendi servisinizin gerçek hostname/IP değeriyle değiştirin
                port_value: 80

Diğer proxy'lerle karşılaştırma

Özellik Envoy Proxy Nginx HAProxy
Birincil kullanım Service mesh, sidecar, API gateway, edge Web sunucusu, ters proxy, yük dengeleyici Yüksek performanslı L4 yük dengeleyici, L7
Mimari Olay güdümlü, C++, yüksek modüler filtreler Olay güdümlü, C, modül tabanlı Olay güdümlü, C, yoğun optimize edilmiş
Dinamik yapılandırma Tüm kaynaklar için tam xDS API Config'i yeniden yükler (kesintili) veya ticari API Sınırlı değişiklikler için runtime API, config reload
HTTP/2 ve gRPC Birinci sınıf destek, gelişmiş özellikler İyi destek İyi destek
Gözlemlenebilirlik Kapsamlı metrikler, tracing, erişim günlükleri Temel metrikler, sınırlı tracing Ayrıntılı istatistikler, temel günlükleme
Yük dengeleme Gelişmiş L7 (tutarlı hash, Maglev), L4 Temel L7 (round-robin, least conn), L4 Gelişmiş L4, kısmen L7 (least conn, source)
Servis keşfi xDS, DNS ve statik ile entegre DNS, statik, bazı ticari entegrasyonlar DNS, statik, bazı ticari entegrasyonlar
Circuit breaking Evet Hayır (harici mantık gerekir) Evet
Outlier tespiti Evet Hayır (harici mantık gerekir) Hayır (harici mantık gerekir)
Service mesh rolü Data plane (birincil tercih) Bu rol için tasarlanmadı Bu rol için tasarlanmadı
Genişletilebilirlik C++ filtreleri, WASM uzantıları Lua betikleme, C modülleri Lua betikleme, C modülleri

Pratik değerlendirmeler

Performans ayarı

Envoy kutudan çıktığı haliyle yüksek performanslıdır, ancak belirli dağıtımlar ince ayardan fayda görebilir. Başlıca alanlar:
* İş parçacığı yapılandırması: Worker thread sayısını CPU çekirdek sayısına göre ayarlamak.
* Buffer yönetimi: Okuma/yazma buffer boyutlarını optimize etmek.
* Bağlantı havuzu boyutlandırma: Upstream cluster'lara yönelik maksimum bağlantı ve bağlantı başına istek sayısını yapılandırmak.

Kaynak tüketimi

Verimli olmasına rağmen her servis örneği için bir Envoy sidecar çalıştırmak toplam kaynak tüketimini (CPU, bellek) artırır. Bu ödünleşim, service mesh'in sağladığı operasyonel faydalar karşısında genellikle kabul edilebilirdir. Büyük dağıtımlarda kaynak kullanımının dikkatle izlenmesi kritiktir.

Hata ayıklama

Envoy, değerli hata ayıklama endpoint'leri sunan bir yönetim arayüzü (tipik olarak 15000 portunda) sağlar:
* /stats: Güncel istatistikler.
* /config_dump: Hâlihazırda etkin olan yapılandırmayı döker.
* /clusters: Upstream cluster'ların durumu.
* /hot_restart: Sorunsuz bir hot restart başlatır.

Bu endpoint'ler yapılandırma sorunlarını gidermek, sağlığı izlemek ve trafik akışını anlamak için son derece yararlıdır.

Güncellendi: 04.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.