{"id":37030,"date":"2019-10-31T22:15:23","date_gmt":"2019-10-31T19:15:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane\/"},"modified":"2019-10-31T22:15:23","modified_gmt":"2019-10-31T19:15:23","slug":"servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane","title":{"rendered":"Sie\u0107 serwisowa, \"P\u0142aszczyzna danych\" i \"P\u0142aszczyzna sterowania\" (Service mesh data plane vs. control plane)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cze\u015b\u0107, Habr! Przedstawiam wam t\u0142umaczenie artyku\u0142u <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.envoyproxy.io\/service-mesh-data-plane-vs-control-plane-2774e720f7fc\">\u201eP\u0142aszczyzna danych service mesh vs p\u0142aszczyzna kontrolna\u201c<\/a><\/noindex> autora <b>Matt Klein<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Sie\u0107 serwisowa, &quot;P\u0142aszczyzna danych&quot; i &quot;P\u0142aszczyzna sterowania&quot; (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/487456689eb832f9e3845966cb0d85d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTym razem \u201ezachcia\u0142em i przet\u0142umaczy\u0142em\u201d opis obu komponent\u00f3w service mesh, p\u0142aszczyny danych i p\u0142aszczyny kontrolnej. Uwa\u017cam, \u017ce ten opis jest najja\u015bniejszy i najbardziej interesuj\u0105cy, a przede wszystkim prowadzi do zrozumienia \u201eCzy naprawd\u0119 jest to potrzebne?\u201d.<\/p>\n<p>Poniewa\u017c pomys\u0142 \u201eService mesh\u201d staje si\u0119 coraz bardziej popularny w ci\u0105gu ostatnich dw\u00f3ch lat (oryginalny artyku\u0142 z 10 pa\u017adziernika 2017), a liczba uczestnik\u00f3w w tej dziedzinie wzros\u0142a, zauwa\u017cy\u0142em proporcjonalny wzrost zamieszania w ca\u0142ej spo\u0142eczno\u015bci technicznej w odniesieniu do por\u00f3wnywania i przeciwstawiania r\u00f3\u017cnych rozwi\u0105za\u0144.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nSytuacj\u0119 najlepiej opisuj\u0105 nast\u0119puj\u0105ce serie tweet\u00f3w, kt\u00f3re napisa\u0142em w lipcu:<\/p>\n<blockquote><p>Zamieszanie z service mesh nr 1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. \u017baden z nich nie jest r\u00f3wny Istio. Istio to co\u015b zupe\u0142nie innego. 1 \/<\/p><\/blockquote>\n<blockquote><p>Pierwsze to tylko p\u0142aszczyzny danych. Same w sobie nic nie robi\u0105. Musz\u0105 by\u0107 skonfigurowane z czym\u015b wi\u0119cej. 2 \/<\/p><\/blockquote>\n<blockquote><p>Istio jest przyk\u0142adem p\u0142aszczyzny kontrolnej, kt\u00f3ra \u0142\u0105czy cz\u0119\u015bci razem. To inna warstwa. \/ koniec<\/p><\/blockquote>\n<p>W poprzednich tweetach wymieniono kilka r\u00f3\u017cnych projekt\u00f3w (Linkerd, NGINX, HAProxy, Envoy i Istio), ale co wa\u017cniejsze, wprowadzono og\u00f3lne poj\u0119cia p\u0142aszczyzny danych, service mesh i p\u0142aszczyzny kontrolnej. W tym po\u015bcie zamierzam cofn\u0105\u0107 si\u0119 i wyja\u015bni\u0107, co mam na my\u015bli, m\u00f3wi\u0105c o terminach \u201ep\u0142aszczyzna danych\u201d i \u201ep\u0142aszczyzna kontrolna\u201d na bardzo og\u00f3lnym poziomie, a nast\u0119pnie wyja\u015bni\u0119, jak te terminy odnosz\u0105 si\u0119 do projekt\u00f3w wymienionych w tweetach.<\/p>\n<h1>Czym jest naprawd\u0119 service mesh?<\/h1>\n<p>\n<img decoding=\"async\" alt=\"Sie\u0107 serwisowa, &quot;P\u0142aszczyzna danych&quot; i &quot;P\u0142aszczyzna sterowania&quot; (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/63c195aa9bcb7080f6924cecbff0fbc1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Rysunek 1: Przegl\u0105d service mesh<\/b><\/p>\n<p><b>Rysunek 1<\/b> ilustruje koncepcj\u0119 service mesh na najbardziej podstawowym poziomie. Istniej\u0105 cztery klastry serwisowe (A-D). Ka\u017cdy egzemplarz us\u0142ugi jest po\u0142\u0105czony z lokalnym serwerem proxy. Ca\u0142y ruch sieciowy (HTTP, REST, gRPC, Redis itd.) z poszczeg\u00f3lnego egzemplarza aplikacji przechodzi przez lokalny serwer proxy do odpowiednich zewn\u0119trznych klastr\u00f3w serwisowych. W ten spos\u00f3b egzemplarz aplikacji nie zna ca\u0142ej sieci, a jedynie sw\u00f3j lokalny serwer proxy. Faktycznie, sie\u0107 systemu rozproszonego zosta\u0142a oddzielona od us\u0142ugi.<\/p>\n<h1>P\u0142aszczyzna danych<\/h1>\n<p>\nW service mesh lokalny serwer proxy dla aplikacji wykonuje nast\u0119puj\u0105ce zadania:<\/p>\n<ul>\n<li> <b>Odkrywanie us\u0142ug (Service discovery)<\/b>. Jakie us\u0142ugi\/serwisy\/aplikacje s\u0105 dost\u0119pne dla Twojej aplikacji?<\/li>\n<li><b>Sprawdzanie stanu (Health checking)<\/b>. Czy instancje us\u0142ug zwr\u00f3cone przez odkrywanie us\u0142ug (service discovery) s\u0105 sprawne i gotowe do przyjmowania ruchu sieciowego? Mo\u017ce to obejmowa\u0107 zar\u00f3wno aktywne (np. sprawdzanie odpowiedzi\/healthcheck), jak i pasywne (np. wykorzystanie 3 kolejnych b\u0142\u0119d\u00f3w 5xx jako oznaczenie niezdrowego stanu us\u0142ugi) sprawdzenie stanu. <\/li>\n<li><b>Routing (Routing)<\/b>. Po otrzymaniu od us\u0142ugi REST zapytania do &#171;\\\/foo&#187;, do kt\u00f3rego klastra us\u0142ug powinno by\u0107 wys\u0142ane zapytanie? <\/li>\n<li> <b>Rozk\u0142ad obci\u0105\u017cenia (Load balancing)<\/b>. Po wyborze klastra us\u0142ugi podczas routingu, do kt\u00f3rej instancji us\u0142ugi powinno by\u0107 wys\u0142ane zapytanie? Z jakim czasem oczekiwania? Z jakimi ustawieniami przerywania (circuit breaking)? Je\u015bli zapytanie nie powiedzie si\u0119, czy powinno zosta\u0107 powt\u00f3rzone?<\/li>\n<li> <b>Uwierzytelnianie i autoryzacja (Authentication and authorization)<\/b>. Czy dla nadchodz\u0105cych zapyta\u0144, wywo\u0142uj\u0105ca us\u0142uga mo\u017ce by\u0107 kryptograficznie zidentyfikowana\/zaautoryzowana za pomoc\u0105 mTLS lub innego mechanizmu? Je\u015bli jest zidentyfikowana\/zaautoryzowana, czy ma prawo wywo\u0142a\u0107 \u017c\u0105dan\u0105 operacj\u0119 (endpoint) w us\u0142udze, czy powinien zosta\u0107 zwr\u00f3cony nieautoryzowany odpowied\u017a?<\/li>\n<li> <b>Obserwowalno\u015b\u0107 (Observability)<\/b>. Dla ka\u017cdego zapytania powinny by\u0107 generowane szczeg\u00f3\u0142owe dane statystyczne, logi oraz dane o \u015bledzeniu rozproszonym, aby operatorzy mogli zrozumie\u0107 rozproszony przep\u0142yw ruchu i problemy z debugowaniem w miar\u0119 ich powstawania.<\/li>\n<\/ul>\n<p>\nZa wszystkie poprzednie punkty w sieci us\u0142ug (service mesh) odpowiada p\u0142aszczyzna danych (data plane). W istocie lokalny dla us\u0142ugi (sidecar) proxy jest p\u0142aszczyzn\u0105 danych (data plane). Innymi s\u0142owy, p\u0142aszczyzna danych (data plane) odpowiada za warunkow\u0105 translacj\u0119, przesy\u0142anie i obserwacj\u0119 ka\u017cdego pakietu sieciowego, kt\u00f3ry jest przesy\u0142any do us\u0142ugi lub z niej przesy\u0142any.<\/p>\n<h1>P\u0142aszczyzna steruj\u0105ca (The control plane)<\/h1>\n<p>\nAbstrakcja sieci zapewniana przez lokalny proxy w p\u0142aszczy\u017anie danych jest jak magia (?). Jednak jak serwer proxy rzeczywi\u015bcie dowiaduje si\u0119 o trasie '\/foo' do serwisu B? W jaki spos\u00f3b dane o odkrywaniu us\u0142ug, kt\u00f3re s\u0105 wype\u0142niane zapytaniami proxy, mog\u0105 by\u0107 wykorzystane? Jak skonfigurowane s\u0105 parametry r\u00f3wnowa\u017cenia obci\u0105\u017cenia, czasu oczekiwania (timeout), awarii obwodu (circuit breaking) itp.? Jak odbywa si\u0119 wdro\u017cenie aplikacji z u\u017cyciem metody niebieskiej\/zielonej (blue\/green) lub metody stopniowego przenoszenia ruchu? Kto konfiguruje parametry og\u00f3lnej autoryzacji i autoryzacji systemowej?<\/p>\n<p>Wszystkie powy\u017csze punkty s\u0105 w gestii p\u0142aszczyzny zarz\u0105dzania (control plane) sieci serwisowej (service mesh). <i>P\u0142aszczyzna zarz\u0105dzania (control plane) przyjmuje zestaw izolowanych proxy-<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/\"   title=\"serwer\u00f3w\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1348\">serwer\u00f3w<\/a> bez stan\u00f3w i przekszta\u0142ca je w rozproszony system<\/i>.<\/p>\n<p>My\u015bl\u0119, \u017ce pow\u00f3d, dla kt\u00f3rego wielu technolog\u00f3w uwa\u017ca podzielone poj\u0119cia p\u0142aszczyzny danych (data plane) i p\u0142aszczyzny zarz\u0105dzania (control plane) za myl\u0105ce, polega na tym, \u017ce p\u0142aszczyzna danych jest znana wi\u0119kszo\u015bci ludzi, podczas gdy p\u0142aszczyzna zarz\u0105dzania jest obca\/niezrozumia\u0142a. Od dawna pracujemy z fizycznymi routerami sieciowymi i prze\u0142\u0105cznikami. Rozumiemy, \u017ce pakiety\/zapytania musz\u0105 podr\u00f3\u017cowa\u0107 z punktu A do punktu B i \u017ce mo\u017cemy do tego u\u017cywa\u0107 sprz\u0119tu i oprogramowania. Nowa generacja proxy programowych to po prostu modne wersje narz\u0119dzi, kt\u00f3re u\u017cywali\u015bmy od d\u0142u\u017cszego czasu.<\/p>\n<p><img decoding=\"async\" alt=\"Sie\u0107 serwisowa, &quot;P\u0142aszczyzna danych&quot; i &quot;P\u0142aszczyzna sterowania&quot; (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/1b512802777cbf1853c5c4f7f2f81d99.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Rysunek 2: Ludzka p\u0142aszczyzna zarz\u0105dzania (Human control plane)<\/b><\/p>\n<p>Jednak od dawna u\u017cywamy p\u0142aszczyzn zarz\u0105dzania (control plane), chocia\u017c wi\u0119kszo\u015b\u0107 operator\u00f3w sieciowych mo\u017ce nie kojarzy\u0107 tej cz\u0119\u015bci systemu z jakimkolwiek komponentem technologicznym. Pow\u00f3d jest prosty:<br \/>\n<b>Wi\u0119kszo\u015b\u0107 dzisiejszych p\u0142aszczyzn zarz\u0105dzania (control plane) to\u2026 my<\/b>.<\/p>\n<p>Na <b>rysunk\u00f3w 2<\/b> pokazano to, co nazywam \u201eLudzk\u0105 p\u0142aszczyzn\u0105 zarz\u0105dzania (Human control plane)\u201d. W tym typie wdro\u017cenia, kt\u00f3re nadal wyst\u0119puje bardzo cz\u0119sto, cz\u0142owiek-operator, prawdopodobnie zrz\u0119dliwy, tworzy statyczne konfiguracje \u2014 potencjalnie za pomoc\u0105 skrypt\u00f3w \u2014 i wdra\u017ca je przy u\u017cyciu jakiego\u015b specjalnego procesu na wszystkich serwerach proxy. Nast\u0119pnie proxy zaczynaj\u0105 korzysta\u0107 z tej konfiguracji i rozpoczynaj\u0105 przetwarzanie p\u0142aszczyzny danych (data plane) przy u\u017cyciu zaktualizowanych ustawie\u0144.<\/p>\n<p><img decoding=\"async\" alt=\"Sie\u0107 serwisowa, &quot;P\u0142aszczyzna danych&quot; i &quot;P\u0142aszczyzna sterowania&quot; (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/6b12429611475e0fc4dfa9f980704e16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Rysunek 3: Rozszerzona p\u0142aszczyzna zarz\u0105dzania sieci\u0105 us\u0142ug (Advanced service mesh control plane)<\/b><\/p>\n<p>Na <b>rysunku 3<\/b> pokazana \u201erozszerzona\u201d p\u0142aszczyzna zarz\u0105dzania (control plane) sieci us\u0142ug (service mesh). Sk\u0142ada si\u0119 ona z nast\u0119puj\u0105cych cz\u0119\u015bci:<\/p>\n<ul>\n<li> <b>Cz\u0142owiek (The human)<\/b>: Nadal jest cz\u0142owiek (mam nadziej\u0119, \u017ce mniej z\u0142y), kt\u00f3ry podejmuje decyzje na wysokim poziomie dotycz\u0105ce ca\u0142ego systemu jako ca\u0142o\u015bci.<\/li>\n<li><b>Interfejs u\u017cytkownika p\u0142aszczyzny zarz\u0105dzania (Control plane UI)<\/b>: Cz\u0142owiek wchodzi w interakcj\u0119 z jakim\u015b typem interfejsu u\u017cytkownika w celu zarz\u0105dzania systemem. Mo\u017ce to by\u0107 portal internetowy, aplikacja linii komend (CLI) lub inny interfejs. Dzi\u0119ki interfejsowi u\u017cytkownika operator ma dost\u0119p do takich globalnych parametr\u00f3w konfiguracji systemu jak:\n<ul>\n<li>Zarz\u0105dzanie wdro\u017ceniem, niebieski\/zielony (blue\/green) oraz\/lub stopniowe przekazywanie ruchu <\/li>\n<li>Opcje uwierzytelniania i autoryzacji <\/li>\n<li>Specyfikacje tabeli trasowania, na przyk\u0142ad, gdy aplikacja A \u017c\u0105da informacji o \u201e\/foo\u201d, co si\u0119 dzieje <\/li>\n<li>Ustawienia balancera obci\u0105\u017cenia, takie jak czasy oczekiwania (timeouts), ponowne pr\u00f3by (retries), parametry przerywania po\u0142\u0105cze\u0144 (circuit breaking) itp. <\/li>\n<\/ul>\n<\/li>\n<li> <b>Harmonogram obci\u0105\u017cenia (Workload scheduler)<\/b>: Us\u0142ugi s\u0105 uruchamiane w infrastrukturze przez system planowania\/orkiestracji okre\u015blonego typu, na przyk\u0142ad Kubernetes lub Nomad. Harmonogram odpowiada za uruchomienie us\u0142ugi wraz z jej lokalnym serwerem proxy.<\/li>\n<li> <b>Odkrywanie us\u0142ugi (Service discovery)<\/b>. Gdy harmonogram uruchamia i zatrzymuje instancje us\u0142ugi, informuje o stanie sprawno\u015bci w systemie odkrywania us\u0142ugi.<\/li>\n<li> <b>API konfiguracji lokalnego serwera proxy (Sidecar proxy configuration APIs) <\/b>: Lokalne serwery proxy dynamicznie pozyskuj\u0105 stan z r\u00f3\u017cnych komponent\u00f3w systemu wed\u0142ug modelu \u201esp\u00f3jno\u015bci w ko\u0144cu\u201d (eventually consistent) bez udzia\u0142u operatora. Ca\u0142y system, sk\u0142adaj\u0105cy si\u0119 z wszystkich aktualnie uruchomionych instancji us\u0142ug i lokalnych serwer\u00f3w proxy, ostatecznie zbiega si\u0119 w jeden ekosystem. API uniwersalnej p\u0142aszczyzny danych (data plane) w Envoy jest jednym z przyk\u0142ad\u00f3w, jak to dzia\u0142a w praktyce.<\/li>\n<\/ul>\n<p>\nW zasadzie celem p\u0142aszczyzny zarz\u0105dzania (control plane) jest ustalenie polityki, kt\u00f3ra ostatecznie zostanie przyj\u0119ta przez p\u0142aszczyzn\u0119 danych (data plane). Bardziej zaawansowane p\u0142aszczyzny zarz\u0105dzania (control plane) usun\u0105 od operatora wi\u0119cej szczeg\u00f3\u0142\u00f3w niekt\u00f3rych system\u00f3w i b\u0119d\u0105 wymaga\u0107 mniej r\u0119cznego zarz\u0105dzania, pod warunkiem, \u017ce b\u0119d\u0105 dzia\u0142a\u0107 poprawnie!..<\/p>\n<h1>P\u0142aszczyzna danych i p\u0142aszczyzna zarz\u0105dzania. Podsumowanie (Data plane vs. control plane summary)<\/h1>\n<p><\/p>\n<ul>\n<li> <b>P\u0142aszczyzna danych sieci us\u0142ugowej (Service mesh data plane)<\/b>: dotyczy ka\u017cdego pakietu \/ \u017c\u0105dania w systemie. Odpowiada za odkrywanie aplikacji \/ us\u0142ug, sprawdzanie ich dost\u0119pno\u015bci, trasowanie, r\u00f3wnowa\u017cenie obci\u0105\u017cenia, uwierzytelnianie \/ autoryzacj\u0119 oraz obserwowalno\u015b\u0107.<\/li>\n<li> <b>P\u0142aszczyzna zarz\u0105dzania sieci us\u0142ugowej (Service mesh control plane)<\/b>: zapewnia polityk\u0119 i konfiguracj\u0119 dla wszystkich dzia\u0142aj\u0105cych p\u0142aszczyzn danych w obr\u0119bie sieci us\u0142ugowej. Nie ingeruje w \u017cadne pakiety \/ \u017c\u0105dania w systemie. P\u0142aszczyzna zarz\u0105dzania przekszta\u0142ca wszystkie p\u0142aszczyzny danych w rozproszony system.<\/li>\n<\/ul>\n<p><\/p>\n<h1>Aktualny stan projektu (Current project landscape)<\/h1>\n<p>\nPo zrozumieniu powy\u017cszego wyja\u015bnienia, przyjrzyjmy si\u0119 aktualnemu stanowi projektu \u201esieci us\u0142ugowej (service mesh)\u201d.<\/p>\n<ul>\n<li> <b>P\u0142aszczyzny danych (Data planes)<\/b>: Linkerd, NGINX, HAProxy, Envoy, Traefik<\/li>\n<li><b>P\u0142aszczyzny zarz\u0105dzania (Control planes)<\/b>: Istio, Nelson, SmartStack <\/li>\n<\/ul>\n<p>\nZamiast przeprowadza\u0107 szczeg\u00f3\u0142ow\u0105 analiz\u0119 ka\u017cdego z powy\u017cszych rozwi\u0105za\u0144, kr\u00f3tko om\u00f3wi\u0119 niekt\u00f3re punkty, kt\u00f3re, moim zdaniem, powoduj\u0105 najwi\u0119ksz\u0105 cz\u0119\u015b\u0107 zamieszania w ekosystemie obecnie.<\/p>\n<p>Na pocz\u0105tku 2016 roku Linkerd by\u0142 jednym z pierwszych serwer\u00f3w proxy w warstwie danych dla sieci us\u0142ug (service mesh) i wykona\u0142 fantastyczn\u0105 prac\u0119, aby zwi\u0119kszy\u0107 \u015bwiadomo\u015b\u0107 oraz zwr\u00f3ci\u0107 uwag\u0119 na model projektowania \u00absie\u0107 us\u0142ug\u00bb (service mesh). Oko\u0142o 6 miesi\u0119cy p\u00f3\u017aniej Envoy do\u0142\u0105czy\u0142 do Linkerd (cho\u0107 pracowa\u0142 w Lyft od ko\u0144ca 2015 roku). Linkerd i Envoy to dwa projekty, kt\u00f3re s\u0105 najcz\u0119\u015bciej wspominane w dyskusjach na temat sieci us\u0142ug (service mesh).<\/p>\n<p>Istio og\u0142oszono w maju 2017 roku. Cele projektu Istio s\u0105 bardzo podobne do rozszerzonej warstwy zarz\u0105dzania (control plane), pokazanej na <b>rysunku 3<\/b>. Envoy dla Istio jest domy\u015blnym serwerem proxy. W ten spos\u00f3b Istio stanowi warstw\u0119 zarz\u0105dzania (control plane), a Envoy warstw\u0119 danych (data plane). W kr\u00f3tkim czasie Istio wzbudzi\u0142o wiele emocji, a inne warstwy danych (data plane) zacz\u0119\u0142y integrowa\u0107 si\u0119 jako alternatywa dla Envoy (zar\u00f3wno Linkerd, jak i NGINX zademonstrowa\u0142y integracj\u0119 z Istio). Fakt, \u017ce w jednej warstwie zarz\u0105dzania (control plane) mo\u017cna u\u017cywa\u0107 r\u00f3\u017cnych warstw danych (data plane), oznacza, \u017ce warstwa zarz\u0105dzania (control plane) i warstwa danych (data plane) nie musz\u0105 by\u0107 \u015bci\u015ble powi\u0105zane. Taki API jak uniwersalny API warstwy danych (data plane) Envoy mo\u017ce tworzy\u0107 most mi\u0119dzy dwiema cz\u0119\u015bciami systemu.<\/p>\n<p>Nelson i SmartStack pomagaj\u0105 dodatkowo zilustrowa\u0107 podzia\u0142 mi\u0119dzy warstw\u0105 zarz\u0105dzania (control plane) a warstw\u0105 danych (data plane). Nelson wykorzystuje Envoy jako sw\u00f3j serwer proxy i buduje niezawodn\u0105 warstw\u0119 zarz\u0105dzania (control plane) sieci\u0105 us\u0142ug (service mesh) na bazie stosu HashiCorp, tj. Nomad itp. SmartStack sta\u0142 si\u0119 chyba pierwszym z nowej fali sieci us\u0142ug (service mesh). SmartStack tworzy warstw\u0119 zarz\u0105dzania (control plane) wok\u00f3\u0142 HAProxy lub NGINX, demonstruj\u0105c mo\u017cliwo\u015b\u0107 od\u0142\u0105czenia warstwy zarz\u0105dzania (control plane) od sieci us\u0142ug (service mesh) i warstwy danych (data plane).<\/p>\n<p>Architektura mikrous\u0142ugowa z sieci\u0105 serwisow\u0105 (service mesh) zyskuje coraz wi\u0119ksze zainteresowanie (s\u0142usznie!), a coraz wi\u0119cej projekt\u00f3w i dostawc\u00f3w zaczyna pracowa\u0107 w tym kierunku. W ci\u0105gu najbli\u017cszych kilku lat zobaczymy wiele innowacji zar\u00f3wno w p\u0142aszczyznach danych (data plane), jak i w p\u0142aszczyznach zarz\u0105dzania (control plane), a tak\u017ce dalsze mieszanie r\u00f3\u017cnych komponent\u00f3w. Ostatecznie architektura mikrous\u0142ugowa powinna sta\u0107 si\u0119 bardziej przejrzysta i magiczna (?) dla operatora.<br \/>\nMam nadziej\u0119, \u017ce wszystko staje si\u0119 coraz mniej irytuj\u0105ce.<\/p>\n<h1>Kluczowe punkty (Key takeaways)<\/h1>\n<p><\/p>\n<ul>\n<li> Sie\u0107 serwisowa (service mesh) sk\u0142ada si\u0119 z dw\u00f3ch r\u00f3\u017cnych cz\u0119\u015bci: p\u0142aszczyzny danych (data plane) i p\u0142aszczyzny zarz\u0105dzania (control plane). Oba komponenty s\u0105 niezb\u0119dne, a bez nich system nie b\u0119dzie dzia\u0142a\u0107.<\/li>\n<li>Wszyscy znaj\u0105 p\u0142aszczyzn\u0119 zarz\u0105dzania (control plane), a obecnie p\u0142aszczyzn\u0105 zarz\u0105dzania (control plane) mo\u017cesz by\u0107 Ty! <\/li>\n<li>Wszystkie p\u0142aszczyzny danych (data plane) konkuruj\u0105 ze sob\u0105 w zakresie funkcji, wydajno\u015bci, konfigurowalno\u015bci i rozbudowy. <\/li>\n<li> Wszystkie p\u0142aszczyzny zarz\u0105dzania (control plane) konkuruj\u0105 ze sob\u0105 w zakresie funkcji, konfigurowalno\u015bci, rozbudowy i \u0142atwo\u015bci u\u017cycia.<\/li>\n<li>Jedna p\u0142aszczyzna zarz\u0105dzania (control plane) mo\u017ce zawiera\u0107 odpowiednie abstrakcje i interfejsy API, aby mo\u017cna by\u0142o wykorzysta\u0107 wiele p\u0142aszczyzn danych (data plane). <\/li>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462699\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u00abService mesh data plane vs control plane\u00bb \u0430\u0432\u0442\u043e\u0440\u0430 Matt Klein. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u00ab\u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u043e\u0441\u044c\u00bb \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0431\u043e\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 service mesh, data plane \u0438 control plane. \u042d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u0434\u0432\u043e\u0434\u044f\u0449\u0438\u043c \u043a \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u00ab\u0410 \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u043e\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435?\u00bb. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0434\u0435\u044f \u00ab\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27757,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37030","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u0430\u044f \u0441\u0435\u0442\u044c, \u00ab\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u0438 \u00ab\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00bb (Service mesh data plane vs. control plane) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sie\u0107 us\u0142ugowa, \u201eP\u0142aszczyzna danych\u201d i \u201eP\u0142aszczyzna sterowania\u201d (Service mesh data plane vs. control plane) | ProHoster","description":"Cze\u015b\u0107, Habr!","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u0430\u044f \u0441\u0435\u0442\u044c, \u00ab\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u0438 \u00ab\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00bb (Service mesh data plane vs. control plane) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:23+00:00","article:modified_time":"2019-10-31T19:15:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37030","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 17:07:03","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:34:25","updated":"2026-02-09 17:07:03","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=37030"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37030\/revisions"}],"predecessor-version":[{"id":158592,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37030\/revisions\/158592"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/27757"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=37030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=37030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=37030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}