{"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\/hu\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane","title":{"rendered":"Szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat, \u201eAdat s\u00edk\u201d \u00e9s \u201eIr\u00e1ny\u00edt\u00f3 s\u00edk\u201d (Service mesh data plane vs. control plane)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hell\u00f3, Habr! \u00d6r\u00f6mmel mutatom be az \u00edr\u00e1s ford\u00edt\u00e1s\u00e1t. <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.envoyproxy.io\/service-mesh-data-plane-vs-control-plane-2774e720f7fc\">\u201eService mesh data plane vs control plane\u201d<\/a><\/noindex> szerz\u0151 <b>Matt Klein<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat, \u201eAdat s\u00edk\u201d \u00e9s \u201eIr\u00e1ny\u00edt\u00f3 s\u00edk\u201d (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/487456689eb832f9e3845966cb0d85d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz\u00fattal szerettem volna leford\u00edtani mindk\u00e9t service mesh komponenst, az adat s\u00edkot \u00e9s az ir\u00e1ny\u00edt\u00f3 s\u00edkot. Ez a le\u00edr\u00e1s sz\u00e1momra a leg\u00e9rthet\u0151bb \u00e9s leg\u00e9rdekesebb volt, \u00e9s ami a legfontosabb, seg\u00edtett meg\u00e9rteni, hogy \u201eEgy\u00e1ltal\u00e1n sz\u00fcks\u00e9g van-e r\u00e1?\u201d.<\/p>\n<p>Mivel a \u201eSzolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat (Service mesh)\u201d \u00f6tlete az elm\u00falt k\u00e9t \u00e9vben egyre n\u00e9pszer\u0171bb\u00e9 v\u00e1lt (Eredeti cikk 2017. okt\u00f3ber 10-\u00e9r\u0151l), \u00e9s a r\u00e9sztvev\u0151k sz\u00e1ma is megn\u0151tt, \u00e9szrevettem, hogy a technikai k\u00f6z\u00f6ss\u00e9g k\u00f6r\u00e9ben ar\u00e1nyos z\u0171rzavar alakult ki arra vonatkoz\u00f3an, hogy hogyan kell \u00f6sszehasonl\u00edtani \u00e9s szembe\u00e1ll\u00edtani a k\u00fcl\u00f6nb\u00f6z\u0151 megold\u00e1sokat.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nA helyzetet a legjobban a k\u00f6vetkez\u0151 tweet sorozatokkal lehet le\u00edrni, amelyeket j\u00faliusban \u00edrtam:<\/p>\n<blockquote><p>Z\u0171rzavar a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3z\u00e1val (service mesh) #1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. Egyik sem egyenl\u0151 az Isti\u00f3val. Az Istio valami teljesen m\u00e1s.<\/p><\/blockquote>\n<blockquote><p>Az els\u0151dlegesek csup\u00e1n adat s\u00edkok (data planes). Magukban v\u00e9ve semmit sem csin\u00e1lnak. Valami t\u00f6bbre kell \u0151ket konfigur\u00e1lni. 2 \/<\/p><\/blockquote>\n<blockquote><p>Az Istio p\u00e9ld\u00e1ja az ir\u00e1ny\u00edt\u00f3 s\u00edknak (control plane), ami \u00f6sszekapcsolja a r\u00e9szeket. Ez egy m\u00e1sik r\u00e9teg. \/ v\u00e9g<\/p><\/blockquote>\n<p>A kor\u00e1bbi tweetekben n\u00e9h\u00e1ny k\u00fcl\u00f6nb\u00f6z\u0151 projekt (Linkerd, NGINX, HAProxy, Envoy \u00e9s Istio) eml\u00edt\u00e9sre ker\u00fclt, de ami enn\u00e9l is fontosabb, bevezett\u00e9k az adat s\u00edkok (data plane), a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat (service mesh) \u00e9s az ir\u00e1ny\u00edt\u00f3 s\u00edk (control plane) \u00e1ltal\u00e1nos fogalmait. Ebben a bejegyz\u00e9sben h\u00e1tral\u00e9pn\u00e9k, \u00e9s elmondom, mit \u00e9rtek az \u201eadat s\u00edk (data plane)\u201d \u00e9s az \u201eir\u00e1ny\u00edt\u00f3 s\u00edk (control plane)\u201d kifejez\u00e9sek alatt nagyon magas szinten, majd elmondom, hogy ezek a fogalmak hogyan kapcsol\u00f3dnak a tweetekben eml\u00edtett projektekhez.<\/p>\n<h1>Mi az a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat (What is a service mesh, really)?<\/h1>\n<p>\n<img decoding=\"async\" alt=\"Szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat, \u201eAdat s\u00edk\u201d \u00e9s \u201eIr\u00e1ny\u00edt\u00f3 s\u00edk\u201d (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/63c195aa9bcb7080f6924cecbff0fbc1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>1. \u00e1bra: A szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat \u00e1ttekint\u00e9se (Service mesh overview)<\/b><\/p>\n<p><b>1. \u00e1bra<\/b> illusztr\u00e1lja a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat (service mesh) koncepci\u00f3j\u00e1t a legalapvet\u0151bb szinten. N\u00e9gy szolg\u00e1ltat\u00e1si klaszter (A-D) van. Minden szolg\u00e1ltat\u00e1s p\u00e9ld\u00e1nyt egy helyi proxy szerver kapcsol \u00f6ssze. A k\u00fcl\u00f6n\u00e1ll\u00f3 alkalmaz\u00e1s p\u00e9ld\u00e1nyb\u00f3l sz\u00e1rmaz\u00f3 \u00f6sszes h\u00e1l\u00f3zati forgalom (HTTP, REST, gRPC, Redis stb.) \u00e1tker\u00fcl a helyi proxy szerveren kereszt\u00fcl a megfelel\u0151 k\u00fcls\u0151 szolg\u00e1ltat\u00e1si klaszterekbe. \u00cdgy az alkalmaz\u00e1s p\u00e9ld\u00e1nya nem tud a h\u00e1l\u00f3zatr\u00f3l, \u00e9s csak a saj\u00e1t helyi proxyj\u00e1r\u00f3l tud. Val\u00f3j\u00e1ban a elosztott rendszer h\u00e1l\u00f3zata el lett t\u00e1vol\u00edtva a szolg\u00e1ltat\u00e1st\u00f3l.<\/p>\n<h1>Adat s\u00edk (Data plane)<\/h1>\n<p>\nA szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zaton (service mesh) a helyi proxy-szerver az alkalmaz\u00e1shoz a k\u00f6vetkez\u0151 feladatokat l\u00e1tja el:<\/p>\n<ul>\n<li> <b>Szolg\u00e1ltat\u00e1sok felfedez\u00e9se (Service discovery)<\/b>. Milyen szolg\u00e1ltat\u00e1sok\/alkalmaz\u00e1sok \u00e9rhet\u0151k el az alkalmaz\u00e1s\u00e1hoz?<\/li>\n<li><b>Eg\u00e9szs\u00e9gellen\u0151rz\u00e9s (Health checking)<\/b>. A szolg\u00e1ltat\u00e1sfelfedez\u00e9s \u00e1ltal visszaadott szolg\u00e1ltat\u00e1smint\u00e1k m\u0171k\u00f6d\u0151k\u00e9pesek-e, \u00e9s k\u00e9szen \u00e1llnak-e a h\u00e1l\u00f3zati forgalom fogad\u00e1s\u00e1ra? Ez mag\u00e1ban foglalhat akt\u00edv (pl. v\u00e1lasz ellen\u0151rz\u00e9s \/ healthcheck) \u00e9s passz\u00edv (pl. 3 egym\u00e1st k\u00f6vet\u0151 5xx hibak\u00f3d) eg\u00e9szs\u00e9gellen\u0151rz\u00e9seket. <\/li>\n<li><b>\u00datv\u00e1laszt\u00e1s (Routing)<\/b>Miut\u00e1n a REST szolg\u00e1ltat\u00e1ssal megkaptuk a k\u00e9r\u00e9st a &#171;\\\/foo&#187; c\u00edmre, melyik szolg\u00e1ltat\u00e1si klaszterhez kell eljuttatni a k\u00e9r\u00e9st? <\/li>\n<li> <b>Terhel\u00e9seloszt\u00e1s (Load balancing)<\/b>. Miut\u00e1n az \u00fatv\u00e1laszt\u00e1s sor\u00e1n egy szolg\u00e1ltat\u00e1si klaszter ker\u00fclt kiv\u00e1laszt\u00e1sra, melyik szolg\u00e1ltat\u00e1smint\u00e1ba kell k\u00fcldeni a k\u00e9r\u00e9st? Milyen id\u0151t\u00fall\u00e9p\u00e9s mellett? Milyen \u00e1ramk\u00f6rmegszak\u00edt\u00e1si be\u00e1ll\u00edt\u00e1sokkal? Ha a k\u00e9r\u00e9s nem siker\u00fcl, meg kell ism\u00e9telni?<\/li>\n<li> <b>Hiteles\u00edt\u00e9s \u00e9s enged\u00e9lyez\u00e9s (Authentication and authorization)<\/b>. A bej\u00f6v\u0151 k\u00e9r\u00e9sek eset\u00e9n a h\u00edv\u00f3 szolg\u00e1ltat\u00e1s az mTLS vagy valamilyen m\u00e1s mechanizmus seg\u00edts\u00e9g\u00e9vel kriptogr\u00e1fiai azonos\u00edt\u00e1ssal rendelkezik-e? Ha azonos\u00edtva \/ enged\u00e9lyezve van, megengedett-e, hogy a szolg\u00e1ltat\u00e1sban k\u00e9r\u00e9si m\u0171veletet h\u00edvjon, vagy nem azonos\u00edtott v\u00e1laszt kell visszaadni?<\/li>\n<li> <b>Megfigyelhet\u0151s\u00e9g (Observability)<\/b>. Minden k\u00e9r\u00e9s eset\u00e9ben r\u00e9szletes statisztik\u00e1k, napl\u00f3k \u00e9s elosztott nyomk\u00f6vet\u00e9si adatok kell, hogy gener\u00e1l\u00f3djanak, hogy az \u00fczemeltet\u0151k meg\u00e9rthess\u00e9k az elosztott forgalom \u00e1raml\u00e1s\u00e1t \u00e9s a hib\u00e1k probl\u00e9m\u00e1it, amint azok felmer\u00fclnek.<\/li>\n<\/ul>\n<p>\nMindezek\u00e9rt a kor\u00e1bbi pontok\u00e9rt a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zaton (service mesh) az adatlap (data plane) felel. L\u00e9nyeg\u00e9ben a szolg\u00e1ltat\u00e1s sz\u00e1m\u00e1ra helyi (sidecar) proxy a m\u00edg az adatlap (data plane). M\u00e1s szavakkal, az adatlap (data plane) felel minden h\u00e1l\u00f3zati csomag felt\u00e9teles tov\u00e1bb\u00edt\u00e1s\u00e1\u00e9rt, tov\u00e1bb\u00edt\u00e1s\u00e1\u00e9rt \u00e9s megfigyel\u00e9s\u00e9\u00e9rt, amely a szolg\u00e1ltat\u00e1sra \u00e9rkezik vagy abb\u00f3l kimegy.<\/p>\n<h1>A vez\u00e9rl\u0151 s\u00edk (The control plane)<\/h1>\n<p>\nA helyi proxy \u00e1ltal biztos\u00edtott h\u00e1l\u00f3zati absztrakci\u00f3 az adat s\u00edkban (data plane) m\u00e1gikusnak t\u0171nik (?). Mindazon\u00e1ltal, hogyan tud val\u00f3j\u00e1ban a proxy szerver inform\u00e1ci\u00f3t szerezni a &#171;\\\/foo&#187; \u00fatvonalr\u00f3l a B szolg\u00e1ltat\u00e1shoz? Hogyan haszn\u00e1lhat\u00f3k a proxy k\u00e9r\u00e9sek \u00e1ltal felt\u00f6lt\u00f6tt szolg\u00e1ltat\u00e1s-keres\u00e9si adatok (service discovery)? Hogyan vannak konfigur\u00e1lva a terhel\u00e9seloszt\u00e1s, a timeout, a k\u00f6r megszak\u00edt\u00e1s (circuit breaking) stb. param\u00e9terei? Hogyan t\u00f6rt\u00e9nik az alkalmaz\u00e1s telep\u00edt\u00e9se a k\u00e9k\/z\u00f6ld (blue\/green) m\u00f3dszer vagy a forgalom fokozatos \u00e1tir\u00e1ny\u00edt\u00e1s\u00e1nak m\u00f3dszere alapj\u00e1n? Ki konfigur\u00e1lja a rendszerszint\u0171 azonos\u00edt\u00e1s \u00e9s jogosults\u00e1gok be\u00e1ll\u00edt\u00e1sait?<\/p>\n<p>Mindezek a k\u00e9rd\u00e9sek a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat (service mesh) vez\u00e9rl\u00e9si s\u00edkj\u00e1nak (control plane) a hat\u00e1sk\u00f6r\u00e9be tartoznak. <i>A vez\u00e9rl\u00e9si s\u00edk (control plane) egy izol\u00e1lt proxy-k\u00e9szletet<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hu\/server\/\"   title=\"szerverek\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1348\">szerverek<\/a> \u00e1llapot n\u00e9lk\u00fcli rendszerr\u00e9 alak\u00edt.<\/i>.<\/p>\n<p>Azt gondolom, hogy az oka annak, hogy sok technol\u00f3gus zavarba j\u00f6n az adats\u00edk (data plane) \u00e9s a vez\u00e9rl\u00e9si s\u00edk (control plane) k\u00fcl\u00f6nb\u00f6z\u0151 fogalmaival, az, hogy a legt\u00f6bb ember sz\u00e1m\u00e1ra az adats\u00edk ismer\u0151s, m\u00edg a vez\u00e9rl\u00e9si s\u00edk idegen\/\u00e9rthetetlen. R\u00e9g\u00f3ta dolgozunk fizikai h\u00e1l\u00f3zati routerekkel \u00e9s switch-ekkel. Meg\u00e9rtj\u00fck, hogy a csomagok\/k\u00e9r\u00e9sek A pontb\u00f3l B pontba kell \u00e9rkezzenek, \u00e9s hogy mi\u00e9rt haszn\u00e1lnak ehhez hardvert \u00e9s szoftvert. Az \u00faj gener\u00e1ci\u00f3s szoftver proxy-k egyszer\u0171en divatos verzi\u00f3i azoknak az eszk\u00f6z\u00f6knek, amelyeket m\u00e1r r\u00e9g\u00f3ta haszn\u00e1lunk.<\/p>\n<p><img decoding=\"async\" alt=\"Szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat, \u201eAdat s\u00edk\u201d \u00e9s \u201eIr\u00e1ny\u00edt\u00f3 s\u00edk\u201d (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/1b512802777cbf1853c5c4f7f2f81d99.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>2. \u00e1bra: Emberi vez\u00e9rl\u00e9si s\u00edk (Human control plane)<\/b><\/p>\n<p>Noha m\u00e1r r\u00e9g\u00f3ta haszn\u00e1ljuk a vez\u00e9rl\u00e9si s\u00edkokat (control plane), a legt\u00f6bb h\u00e1l\u00f3zati \u00fczemeltet\u0151 tal\u00e1n nem k\u00f6ti ezt a rendszer r\u00e9sz\u00e9t semmilyen technol\u00f3giai komponenshez. Ennek az az oka:<br \/>\n<b>A mai k\u00f6rnyezetben haszn\u00e1lt legt\u00f6bb vez\u00e9rl\u00e9si s\u00edk (control plane) -ezek vagyunk mi<\/b>.<\/p>\n<p>Ezen <b>\u00e1br\u00e1n<\/b> Amit, amit \u00e9n \u201eEmberi vez\u00e9rl\u0151 s\u00edknak\u201d (Human control plane) nevezek. Ebben a telep\u00edt\u00e9si t\u00edpusban, amely m\u00e9g mindig nagyon gyakori, az emberi \u00fczemeltet\u0151 val\u00f3sz\u00edn\u0171leg m\u00e9rgesen, statikus konfigur\u00e1ci\u00f3kat hoz l\u00e9tre \u2013 potenci\u00e1lisan script seg\u00edts\u00e9g\u00e9vel \u2013 \u00e9s ezeket egy k\u00fcl\u00f6nleges folyamat r\u00e9v\u00e9n telep\u00edti minden proxy szerverre. Ezut\u00e1n a proxyk elkezdik haszn\u00e1lni ezt a konfigur\u00e1ci\u00f3t, \u00e9s megkezdik az adat s\u00edk (data plane) feldolgoz\u00e1s\u00e1t a friss\u00edtett be\u00e1ll\u00edt\u00e1sokkal.<\/p>\n<p><img decoding=\"async\" alt=\"Szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zat, \u201eAdat s\u00edk\u201d \u00e9s \u201eIr\u00e1ny\u00edt\u00f3 s\u00edk\u201d (Service mesh data plane vs. control plane)\" src=\"\/wp-content\/uploads\/2019\/08\/6b12429611475e0fc4dfa9f980704e16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>3. \u00e1bra: Kiterjesztett vez\u00e9rl\u0151 s\u00edk a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zaton (Advanced service mesh control plane)<\/b><\/p>\n<p>Ezen <b>3. \u00e1br\u00e1n<\/b> l\u00e1that\u00f3 a \u201ekiterjesztett\u201d vez\u00e9rl\u0151 s\u00edk (control plane) a szolg\u00e1ltat\u00e1si h\u00e1l\u00f3zaton (service mesh). Ez a k\u00f6vetkez\u0151 r\u00e9szekb\u0151l \u00e1ll:<\/p>\n<ul>\n<li> <b>Ember (The human)<\/b>: M\u00e9g mindig van egy ember (rem\u00e9lhet\u0151leg kev\u00e9sb\u00e9 d\u00fch\u00f6s), aki magas szint\u0171 d\u00f6nt\u00e9seket hoz az eg\u00e9sz rendszerrel kapcsolatban.<\/li>\n<li><b>A vez\u00e9rl\u0151 s\u00edk felhaszn\u00e1l\u00f3i fel\u00fclete (Control plane UI)<\/b>: Az ember valamilyen t\u00edpus\u00fa felhaszn\u00e1l\u00f3i fel\u00fcleten kereszt\u00fcl l\u00e9p kapcsolatba a rendszer kezel\u00e9s\u00e9vel. Ez lehet webport\u00e1l, parancssori alkalmaz\u00e1s (CLI) vagy valamilyen m\u00e1s fel\u00fclet. A felhaszn\u00e1l\u00f3i fel\u00fclet seg\u00edts\u00e9g\u00e9vel az \u00fczemeltet\u0151 hozz\u00e1f\u00e9r\u00e9st kap olyan glob\u00e1lis konfigur\u00e1ci\u00f3s param\u00e9terekhez, mint p\u00e9ld\u00e1ul:\n<ul>\n<li>Telep\u00edt\u00e9si kezel\u00e9s, k\u00e9k\/z\u00f6ld (blue\/green) \u00e9s\/vagy fokozatos forgalomir\u00e1ny\u00edt\u00e1s <\/li>\n<li>Hiteles\u00edt\u00e9si \u00e9s jogosults\u00e1gi be\u00e1ll\u00edt\u00e1sok <\/li>\n<li>A routing t\u00e1bl\u00e1zat specifik\u00e1ci\u00f3i, p\u00e9ld\u00e1ul amikor az A alkalmaz\u00e1s inform\u00e1ci\u00f3t k\u00e9r a &#171;\\\/foo&#187; c\u00edmmel, mi t\u00f6rt\u00e9nik? <\/li>\n<li>Terhel\u00e9seloszt\u00f3 be\u00e1ll\u00edt\u00e1sok, p\u00e9ld\u00e1ul id\u0151t\u00fall\u00e9p\u00e9sek (timeouts), \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok (retries), \u00e1ramk\u00f6r megszak\u00edt\u00f3 (circuit breaking) param\u00e9terek stb. <\/li>\n<\/ul>\n<\/li>\n<li> <b>Feladat \u00fctemez\u0151 (Workload scheduler)<\/b>: A szolg\u00e1ltat\u00e1sok egy adott t\u00edpus\u00fa \u00fctemez\u0151\/orchestration rendszer seg\u00edts\u00e9g\u00e9vel indulnak el az infrastrukt\u00far\u00e1ban, p\u00e9ld\u00e1ul Kubernetes vagy Nomad. Az \u00fctemez\u0151 felel\u0151s a szolg\u00e1ltat\u00e1s beind\u00edt\u00e1s\u00e1\u00e9rt a helyi proxy szerver\u00e9vel egy\u00fctt.<\/li>\n<li> <b>Szolg\u00e1ltat\u00e1s felfedez\u00e9se (Service discovery)<\/b>. Amikor az \u00fctemez\u0151 ind\u00edtja \u00e9s le\u00e1ll\u00edtja a szolg\u00e1ltat\u00e1s p\u00e9ld\u00e1nyait, t\u00e1j\u00e9koztat a m\u0171k\u00f6d\u00e9si \u00e1llapotukr\u00f3l a szolg\u00e1ltat\u00e1s felfedez\u0151 rendszerbe.<\/li>\n<li> <b>Helyi proxy konfigur\u00e1ci\u00f3 API-k (Sidecar proxy configuration APIs) <\/b>: A helyi proxyk dinamikusan kinyerik az \u00e1llapotot a rendszer k\u00fcl\u00f6nb\u00f6z\u0151 komponenseib\u0151l az \u201ev\u00e9gs\u0151 k\u00f6vetkezetess\u00e9g\u201d (eventually consistent) modell szerint, oper\u00e1tor beavatkoz\u00e1sa n\u00e9lk\u00fcl. Az eg\u00e9sz rendszer, amely a jelenleg fut\u00f3 szolg\u00e1ltat\u00e1sok \u00e9s helyi proxyk p\u00e9ld\u00e1nyaib\u00f3l \u00e1ll, v\u00e9g\u00fcl egy \u00f6kosziszt\u00e9m\u00e1v\u00e1 olvad \u00f6ssze. Az Envoy univerz\u00e1lis adatlapj\u00e1nak (data plane) API-ja az egyik p\u00e9lda arra, hogyan m\u0171k\u00f6dik ez a gyakorlatban.<\/li>\n<\/ul>\n<p>\nL\u00e9nyeg\u00e9ben a vez\u00e9rl\u0151lap (control plane) c\u00e9lja a politika meghat\u00e1roz\u00e1sa, amelyet v\u00e9g\u00fcl az adatlap (data plane) elfogad. A kifinomultabb vez\u00e9rl\u0151lapok (control plane) elt\u00e1vol\u00edtanak a kezel\u0151t\u0151l t\u00f6bb r\u00e9szletet bizonyos rendszerekb\u0151l, \u00e9s kevesebb k\u00e9zi ir\u00e1ny\u00edt\u00e1st ig\u00e9nyelnek, felt\u00e9ve, hogy helyesen m\u0171k\u00f6dnek!..<\/p>\n<h1>Adatlap \u00e9s vez\u00e9rl\u0151lap. \u00d6sszegz\u00e9s (Data plane vs. control plane summary)<\/h1>\n<p><\/p>\n<ul>\n<li> <b>Szolg\u00e1ltat\u00e1s h\u00e1l\u00f3zat adatlapja (Service mesh data plane)<\/b>: \u00e9rinti a rendszer minden csomagj\u00e1t \/ k\u00e9r\u00e9s\u00e9t. Felel\u0151s az alkalmaz\u00e1sok \/ szolg\u00e1ltat\u00e1sok felfedez\u00e9s\u00e9\u00e9rt, \u00e1llapotellen\u0151rz\u00e9s\u00e9\u00e9rt, ir\u00e1ny\u00edt\u00e1s\u00e1\u00e9rt, terhel\u00e9seloszt\u00e1s\u00e9rt, hiteles\u00edt\u00e9s\u00e9rt \/ jogosults\u00e1g\u00e9rt \u00e9s megfigyelhet\u0151s\u00e9g\u00e9rt.<\/li>\n<li> <b>Szolg\u00e1ltat\u00e1s h\u00e1l\u00f3zat vez\u00e9rl\u0151lapja (Service mesh control plane)<\/b>: politik\u00e1t \u00e9s konfigur\u00e1ci\u00f3t biztos\u00edt a szolg\u00e1ltat\u00e1s h\u00e1l\u00f3zatban m\u0171k\u00f6d\u0151 \u00f6sszes adatlap sz\u00e1m\u00e1ra. Nem \u00e9rinti a rendszer b\u00e1rmely csomagj\u00e1t \/ k\u00e9r\u00e9s\u00e9t. A vez\u00e9rl\u0151lap minden adatlapot egy elosztott rendszerr\u00e9 alak\u00edt.<\/li>\n<\/ul>\n<p><\/p>\n<h1>A projekt aktu\u00e1lis \u00e1llapota (Current project landscape)<\/h1>\n<p>\nMiut\u00e1n tiszt\u00e1ztuk a fenti magyar\u00e1zatot, n\u00e9zz\u00fck meg a \u201eszolg\u00e1ltat\u00e1s h\u00e1l\u00f3zat\u201d projekt aktu\u00e1lis \u00e1llapot\u00e1t.<\/p>\n<ul>\n<li> <b>Adatlapok (Data planes)<\/b>: Linkerd, NGINX, HAProxy, Envoy, Traefik<\/li>\n<li><b>Vez\u00e9rl\u0151lapok (Control planes)<\/b>: Istio, Nelson, SmartStack <\/li>\n<\/ul>\n<p>\nAhelyett, hogy m\u00e9lyrehat\u00f3 elemz\u00e9st v\u00e9gezn\u00e9k az egyes felsorolt megold\u00e1sokr\u00f3l, r\u00f6viden kit\u00e9rn\u00e9k n\u00e9h\u00e1ny pontra, amelyek v\u00e9lem\u00e9nyem szerint a z\u0171rzavar legnagyobb r\u00e9sz\u00e9t okozz\u00e1k az \u00f6kosziszt\u00e9m\u00e1ban \u00e9ppen most.<\/p>\n<p>2016 elej\u00e9n a Linkerd volt az egyik els\u0151 adatlap\u00fa proxy (data plane) a szolg\u00e1ltat\u00e1s-h\u00e1l\u00f3zatokhoz (service mesh), \u00e9s fantasztikus munk\u00e1t v\u00e9gzett a szolg\u00e1ltat\u00e1s-h\u00e1l\u00f3zat koncepci\u00f3j\u00e1nak n\u00e9pszer\u0171s\u00edt\u00e9s\u00e9ben. K\u00f6r\u00fclbel\u00fcl 6 h\u00f3nappal k\u00e9s\u0151bb az Envoy csatlakozott a Linkerd-hez (b\u00e1r a Lyftn\u00e9l 2015 v\u00e9ge \u00f3ta dolgozott). A Linkerd \u00e9s az Envoy a k\u00e9t projekt, amelyeket leggyakrabban eml\u00edtenek a szolg\u00e1ltat\u00e1s-h\u00e1l\u00f3zatokkal (service mesh) kapcsolatban.<\/p>\n<p>Az Istio-t 2017 m\u00e1jus\u00e1ban jelentett\u00e9k be. Az Istio projekt c\u00e9ljai nagyon hasonl\u00f3ak a kiterjesztett vez\u00e9rl\u0151p\u00e1ly\u00e1hoz (control plane), amit a <b>3. \u00e1br\u00e1n<\/b>. Az Envoy az Istio alap\u00e9rtelmezett proxyja. \u00cdgy az Istio a vez\u00e9rl\u0151p\u00e1lya (control plane), m\u00edg az Envoy az adatlap (data plane). R\u00f6vid id\u0151 alatt az Istio nagy izgalmakat keltett, \u00e9s m\u00e1s adatlapok (data plane) integr\u00e1lni kezdt\u00e9k magukat az Envoy helyettes\u00edt\u00e9s\u00e9re (a Linkerd \u00e9s az NGINX p\u00e9ld\u00e1ul m\u00e1r bemutatt\u00e1k az integr\u00e1ci\u00f3t az Istio-val). Az a t\u00e9ny, hogy egy vez\u00e9rl\u0151p\u00e1ly\u00e1n (control plane) k\u00fcl\u00f6nb\u00f6z\u0151 adatlapok (data plane) haszn\u00e1lhat\u00f3k, azt jelenti, hogy a vez\u00e9rl\u0151p\u00e1lya (control plane) \u00e9s az adatlap (data plane) nem felt\u00e9tlen\u00fcl szorosan \u00f6sszefon\u00f3dott. Egy ilyen API, mint az Envoy univerz\u00e1lis adatlap (data plane) API, hidat k\u00e9pezhet a rendszer k\u00e9t r\u00e9sze k\u00f6z\u00f6tt.<\/p>\n<p>A Nelson \u00e9s a SmartStack tov\u00e1bb illusztr\u00e1lja a vez\u00e9rl\u0151p\u00e1lya (control plane) \u00e9s az adatlap (data plane) elv\u00e1laszt\u00e1s\u00e1t. A Nelson az Envoy-t haszn\u00e1lja proxyjak\u00e9nt, \u00e9s egy megb\u00edzhat\u00f3 vez\u00e9rl\u0151p\u00e1ly\u00e1t (control plane) \u00e9p\u00edt a HashiCorp stack alapj\u00e1n, mint p\u00e9ld\u00e1ul a Nomad stb. A SmartStack tal\u00e1n az \u00faj szolg\u00e1ltat\u00e1s-h\u00e1l\u00f3zatok (service mesh) els\u0151 k\u00e9pvisel\u0151je lett. A SmartStack a HAProxy vagy NGINX k\u00f6r\u00e9 \u00e9p\u00edti a vez\u00e9rl\u0151p\u00e1ly\u00e1t (control plane), bemutatva a szolg\u00e1ltat\u00e1s-h\u00e1l\u00f3zat (service mesh) vez\u00e9rl\u0151p\u00e1ly\u00e1j\u00e1nak \u00e9s adatlapj\u00e1nak (data plane) laza \u00f6sszekapcsolhat\u00f3s\u00e1g\u00e1t.<\/p>\n<p>A mikroszerviz-architekt\u00fara, a service mesh szolg\u00e1ltat\u00f3i h\u00e1l\u00f3zat egyre nagyobb figyelmet kap (j\u00f3l van!), \u00e9s egyre t\u00f6bb projekt \u00e9s szolg\u00e1ltat\u00f3 kezd dolgozni ebben az ir\u00e1nyban. A k\u00f6vetkez\u0151 n\u00e9h\u00e1ny \u00e9vben sok innov\u00e1ci\u00f3t l\u00e1tunk majd mind az adats\u00edkon (data plane), mind a vez\u00e9rl\u00e9si s\u00edkon (control plane), valamint k\u00fcl\u00f6nb\u00f6z\u0151 komponensek tov\u00e1bbi kevered\u00e9s\u00e9t. V\u00e9gs\u0151 soron a mikroszerviz-architekt\u00far\u00e1knak \u00e1tl\u00e1that\u00f3bbnak \u00e9s var\u00e1zslatosabbnak (?) kell lenni\u00fck az \u00fczemeltet\u0151 sz\u00e1m\u00e1ra.<br \/>\nRem\u00e9lem, egyre kev\u00e9sb\u00e9 ideges\u00edt\u0151.<\/p>\n<h1>Kulcsfontoss\u00e1g\u00fa pontok (Key takeaways)<\/h1>\n<p><\/p>\n<ul>\n<li> A service mesh k\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szb\u0151l \u00e1ll: az adats\u00ednb\u0151l (data plane) \u00e9s a vez\u00e9rl\u00e9si s\u00ednb\u0151l (control plane). Mindk\u00e9t komponens k\u00f6telez\u0151, \u00e9s n\u00e9lk\u00fcl\u00fck a rendszer nem m\u0171k\u00f6dik.<\/li>\n<li>Mindenki ismeri a vez\u00e9rl\u00e9si s\u00edkot (control plane), \u00e9s jelen pillanatban \u00d6n is lehet a vez\u00e9rl\u00e9si s\u00edk (control plane)! <\/li>\n<li>Az \u00f6sszes adats\u00edk (data plane) versenyez egym\u00e1ssal funkci\u00f3k, teljes\u00edtm\u00e9ny, konfigur\u00e1lhat\u00f3s\u00e1g \u00e9s b\u0151v\u00edthet\u0151s\u00e9g ter\u00e9n. <\/li>\n<li> Az \u00f6sszes vez\u00e9rl\u00e9si s\u00edk (control plane) versenyez egym\u00e1ssal funkci\u00f3k, konfigur\u00e1lhat\u00f3s\u00e1g, b\u0151v\u00edthet\u0151s\u00e9g \u00e9s haszn\u00e1lhat\u00f3s\u00e1g alapj\u00e1n.<\/li>\n<li>Egy vez\u00e9rl\u00e9si s\u00edk (control plane) megfelel\u0151 absztrakci\u00f3kat \u00e9s API-kat tartalmazhat, amelyek lehet\u0151v\u00e9 teszik t\u00f6bb adats\u00edk (data plane) haszn\u00e1lat\u00e1t. <\/li>\n<\/ul>\n<p>Forr\u00e1s: <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.3 - 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\/hu\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\udd47A service mesh, \u201eAdats\u00edk\u201d \u00e9s \u201eVez\u00e9rl\u00e9si s\u00edk\u201d (Service mesh data plane vs. control plane) | ProHoster","description":"Hell\u00f3, Habr!","canonical_url":"https:\/\/prohoster.info\/hu\/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":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/37030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=37030"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37030\/revisions"}],"predecessor-version":[{"id":158592,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37030\/revisions\/158592"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/27757"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=37030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=37030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=37030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}