{"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\/et\/blog\/administrirovanie\/servisnaya-set-ploskost-dannyh-i-ploskosti-upravleniya-service-mesh-data-plane-vs-control-plane","title":{"rendered":"Teenuste v\u00f5rk, \"Andmete tasand\" ja \"Juhtimis tasand\" (Service mesh data plane vs. control plane)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, Habr! Esitlen teile t\u00f5lget artiklist <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.envoyproxy.io\/service-mesh-data-plane-vs-control-plane-2774e720f7fc\">\u201eTeenuste v\u00f5rkude andmeplaan vs juhtimiplaneer\u201c<\/a><\/noindex> autor <b>Matt Klein<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Teenuste v\u00f5rk, &quot;Andmete tasand&quot; ja &quot;Juhtimis tasand&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 \/>\nSeekord \u201esoovisin ja t\u00f5lkisin\u201c m\u00f5lema teenuste v\u00f5rgu komponente, andmeplaani ja juhtimiplaneerimist. See kirjeldus tundus mulle k\u00f5ige arusaadavam ja huvitavam, ning mis k\u00f5ige t\u00e4htsam, viib arusaamiseni \u201eKas see on \u00fcldse vajalik?\u201c<\/p>\n<p>Kuna idee \u201eteenuste v\u00f5rgust (service mesh)\u201c on viimase kahe aasta jooksul \u00fcha populaarsemaks muutunud (originaalartikkel 10. oktoobrist 2017), ja osalejate arv selles valdkonnas on kasvanud, olen m\u00e4rganud, et kogu tehnilises kogukonnas on tekkinud rohkem segadust selle \u00fcle, kuidas erinevaid lahendusi v\u00f5rrelda ja vastandada.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nOma olukorda on k\u00f5ige parem kirjeldada j\u00e4rgmiste tweetide seeriaga, mille kirjutasin juulis:<\/p>\n<blockquote><p>Teenuste v\u00f5rgu (service mesh) segadus nr 1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. \u00dckski neist ei ole v\u00f5rdne Istio'ga. Istio on midagi hoopis muud. 1 \/<\/p><\/blockquote>\n<blockquote><p>Esimesed on lihtsalt andmeplaanid (data planes). \u00dcksinda ei tee nad midagi. Need peavad olema konfigureeritud millekski enamaks. 2 \/<\/p><\/blockquote>\n<blockquote><p>Istio on n\u00e4ide juhtimiplaneerist (control plane), mis seob osad omavahel. See on erinev kiht. \/l\u00f5pp<\/p><\/blockquote>\n<p>Varasemates tweetides mainitakse mitmeid erinevaid projekte (Linkerd, NGINX, HAProxy, Envoy ja Istio), kuid mis on veel olulisem, tutvustatakse \u00fcldisi m\u00f5isteid andmeplaani (data plane), teenuste v\u00f5rgu (service mesh) ja juhtimiplaneerimise (control plane) kohta. Selles postituses astun sammu tagasi ja r\u00e4\u00e4gin, mida m\u00f5tlen terminite \u201eandmeplaan (data plane)\u201c ja \u201ejuhtimiplaneer (control plane)\u201c all v\u00e4ga k\u00f5rgel tasemel, ning seej\u00e4rel r\u00e4\u00e4gin, kuidas need terminid seonduvad tweetides mainitud projektidega.<\/p>\n<h1>Mis on teenuste v\u00f5rk (What is a service mesh, really)?<\/h1>\n<p>\n<img decoding=\"async\" alt=\"Teenuste v\u00f5rk, &quot;Andmete tasand&quot; ja &quot;Juhtimis tasand&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>Joonis 1: Teenuste v\u00f5rgu \u00fclevaade (Service mesh overview)<\/b><\/p>\n<p><b>Joonis 1<\/b> illustreerib teenuste v\u00f5rgu (service mesh) kontseptsiooni k\u00f5ige p\u00f5hialustel. On neli teenuste klastrit (A-D). Iga teenuse eksemplar on seotud kohaliku proksiserveriga. Kogu v\u00f5rgu liiklus (HTTP, REST, gRPC, Redis jne) eraldi rakenduse eksemplarist suunatakse kohaliku proksiserveri kaudu vastavatesse v\u00e4listesse teenuste klastritesse. Seega ei tea rakenduse eksemplar v\u00f5rgustiku \u00fcldisest toimimisest, vaid ainult oma kohalikust proksist. Tegelikult on jaotatud s\u00fcsteemi v\u00f5rk teenusest eemaldatud.<\/p>\n<h1>Andmeplaan (Data plane)<\/h1>\n<p>\nTeenuste v\u00f5rgus (service mesh) t\u00e4idab kohaliku proksiserveri rakenduse jaoks j\u00e4rgmisi \u00fclesandeid:<\/p>\n<ul>\n<li> <b>Teenuste avastamine (Service discovery)<\/b>. Millised teenused\/teenused\/rakendused on teie rakendusele saadaval?<\/li>\n<li><b>Tervise kontrollimine (Health checking)<\/b>. Kas teenuste eksemplarid, mida teenuste avastamine (service discovery) tagastab, on toimivad ja valmis v\u00f5rguliiklust vastu v\u00f5tma? See v\u00f5ib h\u00f5lmata nii aktiivset (nt vastuse kontrollimine \/ healthcheck) kui ka passiivset (nt kolme j\u00e4rjestikuse 5xx vea kasutamist teenuse ebatervislikuks seisundiks n\u00e4itamiseks) tervise kontrollimist. <\/li>\n<li><b>Suunamine (Routing)<\/b>. \u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 REST \u0437\u0430\u043f\u0440\u043e\u0441 \u043a &#171;\/foo&#187;, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441? <\/li>\n<li> <b>Koormuse tasakaalustamine (Load balancing)<\/b>. P\u00e4rast teenuste klastri valimist suunamise k\u00e4igus, millisele teenuse eksemplarile peaks p\u00e4ring olema edastatud? Millise ooteajaga? Milliste h\u00e4irekatkestuse (circuit breaking) seadistustega? Kui p\u00e4ring eba\u00f5nnestub, kas seda tuleks korrata?<\/li>\n<li> <b>Ahnitsemine ja autoriseerimine (Authentication and authorization)<\/b>. Kas sissetulevate p\u00e4ringute korral saab kutsuv teenus kr\u00fcptograafiliselt tuvastada\/autoriseerida mTLS-i v\u00f5i m\u00f5ne muu mehhanismi abil? Kui see on tuvastatud\/autoriseeritud, kas tal on lubatud teha soovitud toiming (endpoint) teenuses v\u00f5i tuleb tagastada mitteautentseeritud vastus?<\/li>\n<li> <b>J\u00e4lgitavus (Observability)<\/b>. Iga p\u00e4ringu puhul peaks olema genereeritud \u00fcksikasjalikud statistikaandmed, logid ja jaotatud j\u00e4lgimisandmed, et operaatorid saaksid m\u00f5ista jaotatud liiklusvoogu ning t\u00f5rkeotsinguprobleeme nende ilmnemisel.<\/li>\n<\/ul>\n<p>\nK\u00f5ik eelnevad punktid teenuste v\u00f5rgus (service mesh) on seotud andmete tasandi (data plane) funktsioonidega. Sisuliselt on teenusele kohalik (sidecar) proksid andmete tasand. Teisis\u00f5nu, andmete tasand (data plane) vastutab igasuguse kommunikatsiooni, edastamise ja j\u00e4lgimise eest, mis toimub teenusele suunatud v\u00f5i sealt saadetud v\u00f5rgu pakettide osas.<\/p>\n<h1>Juhtimis- ja kontrollitase (The control plane)<\/h1>\n<p>\n\u0421\u0435\u0442\u0435\u0432\u0430\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0432 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (data plane), \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439 (?). \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043a\u0430\u043a \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443\u0437\u043d\u0430\u0435\u0442 \u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435 &#171;\/foo&#187; \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 B? \u041a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 (service discovery), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u043a\u0441\u0438-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b? \u041a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430 (timeout), \u043e\u0431\u0440\u044b\u0432\u0430 \u0446\u0435\u043f\u0438 (circuit breaking) \u0438 \u0442.\u0434.? \u041a\u0430\u043a \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043d\u0435\u0433\u043e\/\u0437\u0435\u043b\u0435\u043d\u043e\u0433\u043e (blue\/green) \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430? \u041a\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0431\u0449\u0435\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438?<\/p>\n<p>K\u00f5ik \u00fclalnimetatud punktid kuuluvad teenusev\u00f5rgu (service mesh) juhtimistasandi (control plane) alla. <i>Juhtimistasand (control plane) v\u00f5tab rikka kogumi isoleeritud proksi-<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/\"   title=\"serverid\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1348\">serverid<\/a> ilma seisundita ja muudab need jaotatud s\u00fcsteemiks<\/i>.<\/p>\n<p>Ma arvan, et p\u00f5hjus, miks paljud tehnoloogid leiavad andmete plaani (data plane) ja juhtimistasandi (control plane) kontseptsioonid segadusse puutuvad, on see, et suurusele inimese plaan on tuttav, samas kui juhtimistasand on v\u00f5\u00f5ras\/raske m\u00f5ista. Me oleme juba pikka aega t\u00f6\u00f6tanud f\u00fc\u00fcsiliste v\u00f5rgu marsruuteritega ja l\u00fclititega. Me saame aru, et paketid\/p\u00e4ringud peavad liikuma punktist A punkti B ja mis me v\u00f5ime selleks riist- ja tarkvara abil kasutada. Uue p\u00f5lvkonna tarkvaraliseks proksiks on lihtsalt moekad versioonid t\u00f6\u00f6riistadest, mida oleme juba pikka aega kasutanud.<\/p>\n<p><img decoding=\"async\" alt=\"Teenuste v\u00f5rk, &quot;Andmete tasand&quot; ja &quot;Juhtimis tasand&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>Joonis 2: Inimese juhtimistasand (Human control plane)<\/b><\/p>\n<p>Kuid oleme juba pikka aega kasutanud juhtimistasandeid (control plane), ehkki enamik v\u00f5rguoperaatoreid ei pruugi seostada seda s\u00fcsteemi osa konkreetse tehnilise komponendiga. Selle p\u00f5hjuseks on lihtne:<br \/>\n<b>Enamik t\u00e4na kasutatavaid juhtimistasandeid (control plane) on... me<\/b>.<\/p>\n<p>Pealehe <b>jooniselt 2<\/b> N\u00e4idatakse seda, mida ma nimetan \u201eInimese juhtimispinnaks (Human control plane)\u201c. Selles t\u00fc\u00fcpi seadistuses, mis on endiselt v\u00e4ga levinud, loob inimene-operaator, ilmselt \u00e4rritunu, staatilisi konfiguratsioone \u2014 potentsiaalselt skriptide kaudu \u2014 ja rakendab neid m\u00f5ne spetsiaalse protsessi abil k\u00f5ikidele vahetusserveritele. Seej\u00e4rel hakkavad vahetusserverid kasutama seda konfiguratsiooni ja asuvad t\u00f6\u00f6tlema andmepinda (data plane) uuendatud seadistuste abil.<\/p>\n<p><img decoding=\"async\" alt=\"Teenuste v\u00f5rk, &quot;Andmete tasand&quot; ja &quot;Juhtimis tasand&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>Joonis 3: T\u00e4iendav teenuste v\u00f5rgu juhtimispind (Advanced service mesh control plane)<\/b><\/p>\n<p>Pealehe <b>joonisel 3<\/b> on kujutatud \u201et\u00e4iendav\u201c juhtimispind (control plane) teenuste v\u00f5rgus (service mesh). See koosneb j\u00e4rgmistest osadest:<\/p>\n<ul>\n<li> <b>Inimene (The human)<\/b>: Kuller on endiselt inimene (loodetavasti v\u00e4hem \u00e4rritunud), kes teeb k\u00f5rgetasemelisi otsuseid kogu s\u00fcsteemi kohta.<\/li>\n<li><b>Juhtimispinna kasutajaliides (Control plane UI)<\/b>: Inimene suhtleb mingi kasutajaliidese t\u00fc\u00fcbiga s\u00fcsteemi haldamiseks. See v\u00f5ib olla veebipood, k\u00e4surea rakendus (CLI) v\u00f5i muu liides. Kasutajaliidese kaudu on operaatoril juurdep\u00e4\u00e4s sellistele globaalsetele s\u00fcsteemi konfiguratsiooniparametritele nagu:\n<ul>\n<li>K\u00e4ivitamise haldamine, sinine\/roheline (blue\/green) ja\/v\u00f5i j\u00e4rk-j\u00e4rguline liikluse suunamine <\/li>\n<li>Autentimise ja volitamise seadistused <\/li>\n<li>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 A \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e &#171;\/foo&#187;, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 <\/li>\n<li>Laie tasakaalustaja seadistused, n\u00e4iteks aegumise (timeouts), taasilmimise (retries), ahelakatkestuse (circuit breaking) parameetrid jne. <\/li>\n<\/ul>\n<\/li>\n<li> <b>T\u00f6\u00f6koormuse planeerija (Workload scheduler)<\/b>: Teenused k\u00e4ivitatakse infrastruktuuris teatud t\u00fc\u00fcpi planeerimis-\/orkestreerimiss\u00fcsteemi kaudu, n\u00e4iteks Kubernetes v\u00f5i Nomad. Planeerija vastutab teenuse koormuse ja kohaliku vahetusserveri koormuse laadimise eest.<\/li>\n<li> <b>Teenuse avastamine (Service discovery)<\/b>. Kui planeerija k\u00e4ivitab ja peatab teenuse eksemplare, teavitab ta teenuse avastamiss\u00fcsteemi t\u00f6\u00f6korrasolekust.<\/li>\n<li> <b>Kohaliku vahetusserveri konfiguratsioon API-d (Sidecar proxy configuration APIs) <\/b>: Kohalikud proxiserverid v\u00f5tavad s\u00fcsteemi erinevate komponentide seisundi d\u00fcnaamiliselt, j\u00e4rgides mudelit \"l\u00f5plikult \u00fchtne\" (eventually consistent) ilma operaatori osaluseta. Kogu see s\u00fcsteem, mis koosneb hetkel k\u00e4ivitatud teenuste ja kohalike proxiserverite instantsidest, j\u00f5uab l\u00f5puks \u00fchte \u00f6kos\u00fcsteemi. Universaalse andmeplaani (data plane) API Envoy's on \u00fcks n\u00e4ide, kuidas see praktikas t\u00f6\u00f6tab.<\/li>\n<\/ul>\n<p>\nSisuliselt on juhtimistasandi (control plane) eesm\u00e4rk kehtestada poliitika, mis l\u00f5puks v\u00f5etakse vastu andmeplaani (data plane) poolt. T\u00e4iustatud juhtimistasandid (control plane) eemaldavad operaatori k\u00e4est rohkem \u00fcksikasju teatud s\u00fcsteemide kohta ja n\u00f5uavad v\u00e4hem k\u00e4sitsi sekkumist, tingimusel et need t\u00f6\u00f6tab \u00f5igesti!..<\/p>\n<h1>Andmeplaanid ja juhtimistasandid. Kokkuv\u00f5te (Data plane vs. control plane summary)<\/h1>\n<p><\/p>\n<ul>\n<li> <b>Teenuse v\u00f5rgu andmeplaan (Service mesh data plane)<\/b>: k\u00e4sitleb iga paketti \/ p\u00e4ringut s\u00fcsteemis. Vastutab rakenduste\/teenuste avastamise, t\u00f6\u00f6kindluse kontrollimise, marsruutimise, koormuse tasakaalustamise, autentimise \/ autoriseerimise ja j\u00e4lgimise eest.<\/li>\n<li> <b>Teenuse v\u00f5rgu juhtimistasand (Service mesh control plane)<\/b>: pakub poliitikat ja konfiguratsiooni k\u00f5igile t\u00f6\u00f6tavatele andmeplaanidele teenuse v\u00f5rgus. Ei puutu mingite pakkide \/ p\u00e4ringutega s\u00fcsteemis. Juhtimistasand muudab k\u00f5ik andmeplaanid jaotatud s\u00fcsteemiks.<\/li>\n<\/ul>\n<p><\/p>\n<h1>Praegune projekti seis (Current project landscape)<\/h1>\n<p>\nM\u00f5istes eelnevat selgitust, vaatame projekti \"teenuse v\u00f5rgu (service mesh)\" praegust seisu.<\/p>\n<ul>\n<li> <b>Andmeplaanid (Data planes)<\/b>: Linkerd, NGINX, HAProxy, Envoy, Traefik<\/li>\n<li><b>Juhtimistasandid (Control planes)<\/b>: Istio, Nelson, SmartStack <\/li>\n<\/ul>\n<p>\nKuna ei ole m\u00f5tet s\u00fcvitsi anal\u00fc\u00fcsida iga eeltoodud lahendust, tahan l\u00fchidalt peatuda m\u00f5ningatel punktidel, mis, minu arvates, tekitavad praegu \u00f6kos\u00fcsteemis k\u00f5ige rohkem segadust.<\/p>\n<p>2016. aasta alguses oli Linkerd \u00fcks esimesi andmeplaani (data plane) v\u00f5tmeproksi teenusev\u00f5rgus (service mesh) ning tegi fantastilist t\u00f6\u00f6d teenusev\u00f5rgu (service mesh) kavandamismudeli teadlikkuse t\u00f5stmisel. Umbes kuus kuud hiljem liitus Envoy Linkerdiga (kuigi t\u00f6\u00f6tas Lyftis juba 2015. aasta l\u00f5pust). Linkerd ja Envoy on need kaks projekti, mida k\u00f5ige sagedamini mainitakse teenusev\u00f5rkude (service mesh) aruteludes.<\/p>\n<p>Istio kuulutati v\u00e4lja 2017. aasta mai. Istio projekti eesm\u00e4rgid on v\u00e4ga sarnased laiendatud juhtimisplaaniga (control plane), nagu on n\u00e4idatud <b>joonisel 3<\/b>. Envoy on Istio jaoks vaikimisi v\u00f5tmeproksi. Seega on Istio juhtimisplaan (control plane) ja Envoy andmeplaan (data plane). L\u00fchikese ajaga tekitas Istio palju elevust ning teised andmeplaanid (data plane) hakkasid integreeruma Envoy asendamiseks (nii Linkerd kui NGINX on demonstreerinud integreerimist Istiosse). See, et \u00fches juhtimisplaanis (control plane) saab kasutada erinevaid andmeplaanid (data plane), t\u00e4hendas, et juhtimisplaan (control plane) ja andmeplaan (data plane) ei pruugi olla tihedalt seotud. Selline API nagu universaalne andmeplaani (data plane) API Envoy v\u00f5ib luua silda kahe s\u00fcsteemi osa vahel.<\/p>\n<p>Nelson ja SmartStack aitavad veelgi illustreerida juhtimisplaani (control plane) ja andmeplaani (data plane) eraldatust. Nelson kasutab Envoyd oma proksina ja loob usaldusv\u00e4\u00e4rse teenusev\u00f5rgu (service mesh) juhtimisplaani (control plane) HashiCorpi steki baasil, st Nomad jne. SmartStack on t\u00f5en\u00e4oliselt esimene uus laine teenusev\u00f5rkudest (service mesh). SmartStack loob juhtimisplaani (control plane) HAProxy v\u00f5i NGINXi \u00fcmber, demonstreerides teenusev\u00f5rgu (service mesh) juhtimisplaani (control plane) ja andmeplaani (data plane) eraldamise v\u00f5imalust.<\/p>\n<p>Mikroteenuse arhitektuur teenuste v\u00f5rgustikuga (service mesh) t\u00f5mbab \u00fcha rohkem t\u00e4helepanu (\u00f5igesti!), ja \u00fcha rohkem projekte ja tarnijaid hakkavad selles suunas t\u00f6\u00f6tama. J\u00e4rgnevatel aastatel n\u00e4eme palju uuendusi nii andmeplaanides (data plane) kui ka juhtimisplaanides (control plane), samuti erinevate komponentide edasist segamist. L\u00f5ppkokkuv\u00f5ttes peab mikroteenuse arhitektuur saama l\u00e4bipaistvamaks ja maagilisemaks (?) operaatori jaoks.<br \/>\nLoodan, et k\u00f5ik on j\u00e4rjest v\u00e4hem h\u00e4iritud.<\/p>\n<h1>Peamised punktid (Key takeaways)<\/h1>\n<p><\/p>\n<ul>\n<li> Teenuste v\u00f5rgustik (service mesh) koosneb kahest erinevast osast: andmeplaan (data plane) ja juhtimisplaan (control plane). M\u00f5lemad komponendid on kohustuslikud, ja ilma nendeta s\u00fcsteem ei t\u00f6\u00f6taks.<\/li>\n<li>K\u00f5ik on tuttavad juhtimisplaaniga (control plane), ja seni v\u00f5ib juhtimisplaan olla teie! <\/li>\n<li>K\u00f5ik andmeplaanid (data plane) konkureerivad omavahel funktsioonide, tootlikkuse, konfigureeritavuse ja skaleeritavuse poolest. <\/li>\n<li> K\u00f5ik juhtimisplaanid (control plane) konkureerivad omavahel funktsioonide, konfigureeritavuse, skaleeritavuse ja kasutusmugavuse poolest.<\/li>\n<li>\u00dcks juhtimisplaan (control plane) v\u00f5ib sisaldada \u00f5igeid abstraktsioone ja API-sid, et kasutada mitmeid andmeplaane (data plane). <\/li>\n<\/ul>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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\udd47Teenuste v\u00f5rgustik, \u00abAndmeplaan\u00bb ja \u00abJuhtimisplaan\u00bb (Service mesh data plane vs. control plane) | ProHoster","description":"Tere, Habr!","canonical_url":"https:\/\/prohoster.info\/et\/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":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/37030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37030"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37030\/revisions"}],"predecessor-version":[{"id":158592,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37030\/revisions\/158592"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27757"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}