{"id":55700,"date":"2020-01-26T00:00:00","date_gmt":"2020-01-25T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti"},"modified":"2020-02-18T14:03:50","modified_gmt":"2020-02-18T11:03:50","slug":"trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","title":{"rendered":"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Heisenberg hat\u00e1rozatlans\u00e1gi elve azt \u00e1ll\u00edtja, hogy egy objektumnak a helyzet\u00e9t \u00e9s sebess\u00e9g\u00e9t nem lehet egyszerre m\u00e9rni. Ha az objektum mozg\u00e1sban van, akkor nincs helyzete. Ha viszont van helyzete, akkor nincs sebess\u00e9ge.<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/617ace5f892b62652b404b24585537b0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA Red Hat OpenShift platformon (Kubernetes alatt) fut\u00f3 mikroszolg\u00e1ltat\u00e1sok a megfelel\u0151 ny\u00edlt forr\u00e1sk\u00f3d\u00fa szoftvernek k\u00f6sz\u00f6nhet\u0151en egyszerre tudnak jelenteni a teljes\u00edtm\u00e9ny\u00fckr\u0151l \u00e9s a hibamentess\u00e9g\u00fckr\u0151l. Ez term\u00e9szetesen nem c\u00e1folja Heisenbergot, de megsz\u00fcnteti a bizonytalans\u00e1got a felh\u0151alkalmaz\u00e1sok kezel\u00e9s\u00e9ben. Az Istio lehet\u0151v\u00e9 teszi, hogy k\u00f6nnyen nyomon k\u00f6vethess\u00fck \u00e9s figyelemmel k\u00eds\u00e9rhess\u00fck az ilyen alkalmaz\u00e1sokat, hogy minden a kontroll alatt maradjon.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Hat\u00e1rozzuk meg a terminol\u00f3gi\u00e1t<\/h3>\n<p>\nA <b>nyomk\u00f6vet\u00e9s<\/b> (Tracing) alatt a rendszeraktivit\u00e1s napl\u00f3z\u00e1s\u00e1t \u00e9rtj\u00fck. Ez el\u00e9g \u00e1ltal\u00e1nosan hangzik, de val\u00f3j\u00e1ban az egyik alapvet\u0151 szab\u00e1ly itt az, hogy nyomk\u00f6vet\u00e9si adatokat a megfelel\u0151 t\u00e1rol\u00f3ba kell k\u00fcldeni, an\u00e9lk\u00fcl, hogy a form\u00e1z\u00e1sukkal foglalkozn\u00e1nk. A keres\u00e9s \u00e9s az adatok elemz\u00e9s\u00e9nek feladata a felhaszn\u00e1l\u00f3ra h\u00e1rul. Az Istio a Jaeger nyomk\u00f6vet\u00e9si rendszert haszn\u00e1lja, amely megval\u00f3s\u00edtja az OpenTracing adatelm\u00e9letet.<\/p>\n<p><b>nyomvonalak<\/b> (Traces, \u00e9s itt a \u201enyomvonalak\u201d kifejez\u00e9st a \u201enyomok\u201d \u00e9rtelemben haszn\u00e1ljuk, mint p\u00e9ld\u00e1ul a ballisztikai szak\u00e9rt\u00e9sben) azokat az adatokat nevezz\u00fck, amelyek teljes m\u00e9rt\u00e9kben le\u00edrj\u00e1k egy k\u00e9r\u00e9s vagy munka egys\u00e9g\u00e9t az \u201eelej\u00e9t\u0151l a v\u00e9g\u00e9ig\u201d. P\u00e9ld\u00e1ul mindaz, ami akkor t\u00f6rt\u00e9nik, amikor a felhaszn\u00e1l\u00f3 megnyomja a gombot a weboldalon, \u00e9s addig, am\u00edg az adatok vissza nem t\u00e9rnek, bele\u00e9rtve az \u00f6sszes \u00e9rintett mikroszolg\u00e1ltat\u00e1st. Azt lehet mondani, hogy egy nyomvonal teljes m\u00e9rt\u00e9kben le\u00edrja (vagy modellezi) a k\u00e9r\u00e9s oda-vissza halad\u00e1s\u00e1t. A Jaeger fel\u00fclet\u00e9n a nyomvonalakat id\u0151rendben bontj\u00e1k le, ahogyan egy l\u00e1ncot is k\u00fcl\u00f6n linkekre lehet szedni. Csak itt a nyomvonal nem linkekb\u0151l, hanem \u00fagynevezett span-ekb\u0151l \u00e1ll.<\/p>\n<p><b>a k\u00e9r\u00e9st az Envoy sidecar megfogja, \u00e9s l\u00e9trej\u00f6n egy 'gyermek' a span-ben (ez\u00e9rt l\u00e1tjuk a nyomokban), majd \u00e1tir\u00e1ny\u00edt\u00f3dik a kont\u00e9nerbe<\/b> \u2013 ez az id\u0151tartam az egy munka egys\u00e9g\u00e9nek v\u00e9grehajt\u00e1s\u00e1nak kezdet\u00e9t\u0151l a befejez\u00e9s\u00e9ig. Folytatva az anal\u00f3gi\u00e1t, azt mondhatjuk, hogy minden span egy k\u00fcl\u00f6n l\u00e1ncszemet k\u00e9pvisel. A span rendelkezhet (vagy nem rendelkezhet) egy vagy t\u00f6bb gyermekszpan-nal. Ennek k\u00f6vetkezt\u00e9ben a legfels\u0151 szint\u0171 span (root span) azonos id\u0151tartammal rendelkezik, mint ahhoz a nyomvonalhoz, amelyhez tartozik.<\/p>\n<p><b>Monitoroz\u00e1s<\/b> \u2013 ez val\u00f3j\u00e1ban a rendszered megfigyel\u00e9se, szemmel, a felhaszn\u00e1l\u00f3i fel\u00fcleten vagy automatiz\u00e1l\u00e1si eszk\u00f6z\u00f6k\u00f6n kereszt\u00fcl. A megfigyel\u00e9s alapja a nyomk\u00f6vet\u00e9si adatok. Az Istio megfigyel\u00e9se a Prometheus eszk\u00f6zeivel val\u00f3sul meg, \u00e9s rendelkezik a megfelel\u0151 felhaszn\u00e1l\u00f3i fel\u00fclettel. A Prometheus t\u00e1mogatja az automatikus megfigyel\u00e9st figyelmeztet\u00e9sek \u00e9s figyelmeztet\u00e9si menedzserek haszn\u00e1lat\u00e1val.<\/p>\n<h3>Megjegyz\u00e9seket f\u0171z\u00fcnk<\/h3>\n<p>\nAhhoz, hogy a nyomk\u00f6vet\u00e9s lehets\u00e9ges legyen, az alkalmaz\u00e1snak el kell k\u00e9sz\u00edtenie a span-ok gy\u0171jtem\u00e9ny\u00e9t. Azokat ezut\u00e1n export\u00e1lni kell a Jaegerbe, hogy az vizu\u00e1lis nyomk\u00f6vet\u00e9si k\u00e9pvisel\u00e9st hozhasson l\u00e9tre. Ezek a span-ok t\u00f6bbek k\u00f6z\u00f6tt az oper\u00e1ci\u00f3 nev\u00e9t, valamint annak kezdeti \u00e9s befejez\u00e9si id\u0151b\u00e9lyegeit jel\u00f6lik. A span-ok \u00e1tad\u00e1sa a Jaeger sz\u00e1m\u00e1ra sz\u00e1nt HTTP-k\u00e9r\u00e9s fejl\u00e9ceinek \u00e1tir\u00e1ny\u00edt\u00e1s\u00e1val val\u00f3sul meg a bej\u00f6v\u0151 k\u00e9r\u00e9sekr\u0151l a kimen\u0151 k\u00e9r\u00e9sekre. A haszn\u00e1lt programoz\u00e1si nyelvt\u0151l f\u00fcgg\u0151en ez n\u00e9mi m\u00f3dos\u00edt\u00e1st ig\u00e9nyelhet az alkalmaz\u00e1sok forr\u00e1sk\u00f3dj\u00e1ban. Az al\u00e1bbiakban egy Java k\u00f3d p\u00e9lda l\u00e1that\u00f3 (Spring Boot keretrendszer haszn\u00e1lat\u00e1val), amely B3 (Zipkin-st\u00edlus\u00fa) fejl\u00e9ceket ad hozz\u00e1 a k\u00e9r\u00e9sedhez a Spring konfigur\u00e1ci\u00f3s oszt\u00e1lyban:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/2314e2d156dc9b9fdb299af2dac01f66.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAz al\u00e1bbi fejl\u00e9cek be\u00e1ll\u00edt\u00e1sait haszn\u00e1lj\u00e1k:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/18f0a13af27665ec2d154ff4cff48157.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nHa Java-t haszn\u00e1lsz, akkor a k\u00f3dot nem kell m\u00f3dos\u00edtani, csak n\u00e9h\u00e1ny sort kell hozz\u00e1adni a POM-f\u00e1jlhoz, \u00e9s meg kell hat\u00e1rozni a k\u00f6rnyezeti v\u00e1ltoz\u00f3kat. \u00cdme, mit kell hozz\u00e1adni a POM.XML f\u00e1jlhoz a Jaeger Tracer Resolver integr\u00e1l\u00e1s\u00e1hoz:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/a63a634c2c22fc09a237cafc4873855d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA megfelel\u0151 k\u00f6rnyezeti v\u00e1ltoz\u00f3kat pedig a Dockerfile-ban kell megadni:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/7fe9046242d7e628342a6266e4a2f743.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMost m\u00e1r minden be van \u00e1ll\u00edtva, \u00e9s a mikroszolg\u00e1ltat\u00e1saink elkezdik gener\u00e1lni a nyomk\u00f6vet\u00e9si adatokat.<\/p>\n<h3>N\u00e9zz\u00fck meg nagy vonalakban<\/h3>\n<p>\nAz Istio egy egyszer\u0171 ir\u00e1ny\u00edt\u00f3pultot tartalmaz, amely a Grafana alapjaira \u00e9p\u00fcl. Amikor minden fel van \u00e1ll\u00edtva \u00e9s m\u0171k\u00f6dik a Red Hat OpenShift PaaS platformj\u00e1n (p\u00e9ld\u00e1nk szerint a Red Hat OpenShift \u00e9s a Kubernetes a minishift-en van telep\u00edtve), ezt a pultot a k\u00f6vetkez\u0151 parancs futtat\u00e1s\u00e1val ind\u00edthatjuk:<\/p>\n<pre><code class=\"plaintext\">nyisd meg \"$(minishift openshift service grafana -u)\/d\/1\/istio-dashboard?refresh=5&amp;ord;Id=1\"\n<\/code><\/pre>\n<p>\nA Grafana pult lehet\u0151v\u00e9 teszi a rendszer teljes\u00edtm\u00e9ny\u00e9nek gyors \u00e9rt\u00e9kel\u00e9s\u00e9t. A pult egy r\u00e9szlete az al\u00e1bbi k\u00e9pen l\u00e1that\u00f3:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/2c10cd23fd5166f437c2b3c1d50c6a18.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nItt l\u00e1that\u00f3, hogy a customer mikroszolg\u00e1ltat\u00e1s h\u00edvja a preference v1 mikroszolg\u00e1ltat\u00e1st, amely viszont a recommendation v1 \u00e9s v2 mikroszolg\u00e1ltat\u00e1sokat h\u00edvja. A Grafana panelen tal\u00e1lhat\u00f3 egy Dashboard Row blokk a magas szint\u0171 metrik\u00e1k, p\u00e9ld\u00e1ul a glob\u00e1lis k\u00e9r\u00e9sek sz\u00e1ma (Global Request Volume), a sikeres k\u00e9r\u00e9sek ar\u00e1nya (success rates) \u00e9s a 4xx hib\u00e1k megjelen\u00edt\u00e9s\u00e9re. Ezenk\u00edv\u00fcl itt van egy Server Mesh \u00e1br\u00e1zol\u00e1s, amely grafikonokat mutat minden szolg\u00e1ltat\u00e1s sz\u00e1m\u00e1ra, \u00e9s egy Services Row blokk, ahol r\u00e9szletes inform\u00e1ci\u00f3kat n\u00e9zhet\u00fcnk \u00e1t minden kont\u00e9nerr\u0151l, minden szolg\u00e1ltat\u00e1shoz.<\/p>\n<h3>Most n\u00e9zz\u00fcnk m\u00e9lyebbre<\/h3>\n<p>\nJ\u00f3l konfigur\u00e1lt Istio nyomk\u00f6vet\u00e9ssel, mondhatni, dobozb\u00f3l kiindulva m\u00e9lyebb elemz\u00e9sre van lehet\u0151s\u00e9g a rendszer teljes\u00edtm\u00e9ny\u00e9ben. A Jaeger UI-n bel\u00fcl megn\u00e9zhetj\u00fck a nyomvonalakat, \u00e9s l\u00e1thatjuk, mennyire messzire \u00e9s m\u00e9lyre ny\u00falnak, valamint vizu\u00e1lisan lokaliz\u00e1lhatjuk a teljes\u00edtm\u00e9ny sz\u0171k keresztmetszeteit. A Red Hat OpenShift haszn\u00e1latakor a minishift platformon a Jaeger UI elind\u00edt\u00e1s\u00e1hoz a k\u00f6vetkez\u0151 parancsot haszn\u00e1ljuk:<\/p>\n<pre><code class=\"plaintext\">minishift openshift service jaeger-query --in-browser\n<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/074fea646ad191f819a9a67a3f311c8f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMit mondhatunk a nyomk\u00f6vet\u00e9sr\u0151l ezen a k\u00e9perny\u0151k\u00e9pen:<\/p>\n<ul>\n<li>Ez 7 span-ra oszlik.<\/li>\n<li>A teljes v\u00e9grehajt\u00e1si id\u0151 6.99 ms.<\/li>\n<li>A recommendation mikroszolg\u00e1ltat\u00e1sra, amely a l\u00e1nc v\u00e9g\u00e9n tal\u00e1lhat\u00f3, 0.69 ms id\u0151t ford\u00edtunk.<\/li>\n<\/ul>\n<p>\nAz ilyen t\u00edpus\u00fa diagramok gyorsan seg\u00edtenek meg\u00e9rteni a helyzetet, amikor egyetlen, nem m\u0171k\u00f6d\u0151 szolg\u00e1ltat\u00e1s miatt a teljes rendszer teljes\u00edtm\u00e9nye szenved.<\/p>\n<p>Most most bonyol\u00edtsuk a feladatot, \u00e9s ind\u00edtsunk el k\u00e9t p\u00e9ld\u00e1nyt a recommendation:v2 mikroservice-b\u0151l az oc scale &#8212;replicas=2 deployment\/recommendation-v2 paranccsal. \u00cdme, milyen pod-jaink lesznek ezut\u00e1n:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/0ecb8d78d6967d0392de67be6553b870.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nHa most visszat\u00e9r\u00fcnk a Jaegerhez, \u00e9s kib\u0151v\u00edtj\u00fck a recommendation szolg\u00e1ltat\u00e1s span-j\u00e1t, l\u00e1thatjuk, hogy hova ir\u00e1ny\u00edtj\u00e1k a k\u00e9r\u00e9seket. Ezzel egyszer\u0171en lokaliz\u00e1lni tudjuk a lelassul\u00e1sokat egy adott pod szinten. A node_id mez\u0151re kell figyeln\u00fcnk:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/474da66c581692cd11070a1732ac5458.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Hova \u00e9s hogyan mennek el a k\u00e9r\u00e9sek<\/h3>\n<p>\nMost l\u00e9pj\u00fcnk a Prometheus fel\u00fclet\u00e9re, \u00e9s teljesen v\u00e1rhat\u00f3an ott l\u00e1tjuk, hogy a k\u00e9r\u00e9sek a recommendation m\u00e1sodik \u00e9s els\u0151 verzi\u00f3ja k\u00f6z\u00f6tt 2:1 ar\u00e1nyban oszlanak meg, szigor\u00faan a m\u0171k\u00f6d\u0151 podok sz\u00e1m\u00e1nak megfelel\u0151en. Ezen grafikon dinamikusan v\u00e1ltozni fog, amikor a podokat felfel\u00e9 vagy lefel\u00e9 sk\u00e1l\u00e1zzuk, ami k\u00fcl\u00f6n\u00f6sen hasznos lesz a Canary Deployment sor\u00e1n (a k\u00f6vetkez\u0151 alkalommal r\u00e9szletesebben megvizsg\u00e1ljuk ezt a telep\u00edt\u00e9si s\u00e9m\u00e1t).<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/c080fffd2398b0a2eac3e63665bdb0a7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Mindez csak most kezd\u0151dik<\/h3>\n<p>\nVal\u00f3j\u00e1ban ma csak egy kicsit \u00e9rintett\u00fck a Jaeger, Grafana \u00e9s Prometheus ter\u00e9n rejl\u0151 \u00e9rt\u00e9kes inform\u00e1ci\u00f3k t\u00e1rh\u00e1z\u00e1t. Ez volt a c\u00e9lunk \u2013 hogy elir\u00e1ny\u00edtsunk az \u00f6sszes sz\u00fcks\u00e9ges helyre \u00e9s bepillant\u00e1st ny\u00fajtsunk az Istio lehet\u0151s\u00e9geibe.<\/p>\n<p>Ne feledj\u00e9tek, hogy mindez m\u00e1r be van \u00e9p\u00edtve az Isti\u00f3ba. Bizonyos programoz\u00e1si nyelvek (p\u00e9ld\u00e1ul Java) \u00e9s keretrendszerek (p\u00e9ld\u00e1ul Spring Boot) haszn\u00e1lat\u00e1val mindez megval\u00f3s\u00edthat\u00f3 \u00fagy, hogy az alkalmaz\u00e1sok k\u00f3dj\u00e1t gyakorlatilag nem kell \u00e9rinteni. Igen, a k\u00f3dot kiss\u00e9 m\u00f3dos\u00edtani kell, ha m\u00e1s nyelveket haszn\u00e1ltok, els\u0151sorban a Nodejs vagy C# eset\u00e9ben. De mivel a nyomon k\u00f6vethet\u0151s\u00e9g (\u00e9rtsd: \u201etracing\u201d) elengedhetetlen a megb\u00edzhat\u00f3 felh\u0151alap\u00fa rendszerek l\u00e9trehoz\u00e1s\u00e1hoz, \u00fagyis m\u00f3dos\u00edtanotok kell a k\u00f3dot, f\u00fcggetlen\u00fcl att\u00f3l, hogy van-e Isti\u00f3tok vagy sem. Mi\u00e9rt ne fektetn\u00e9tek a f\u00e1radoz\u00e1saitokba t\u00f6bb \u00e9rtelmet?<\/p>\n<p>Legal\u00e1bb az\u00e9rt, hogy 100%-os bizonyoss\u00e1ggal mindig v\u00e1laszolhassatok a \u201ehol van?\u201d \u00e9s \u201emilyen gyorsan?\u201d k\u00e9rd\u00e9sekre.<\/p>\n<h3>K\u00e1osz m\u00e9rn\u00f6ks\u00e9g Istio-val: \u00edgy volt tervezve<\/h3>\n<p><\/p>\n<h3>A dolgok \u00f6sszet\u00f6r\u00e9s\u00e9nek k\u00e9pess\u00e9ge seg\u00edt abban, hogy ne t\u00f6rjenek el.<\/h3>\n<p>\nA szoftver tesztel\u00e9se nemcsak bonyolult, hanem fontos is. Ugyanakkor a helyess\u00e9gi tesztel\u00e9s (p\u00e9ld\u00e1ul hogy a f\u00fcggv\u00e9ny helyes eredm\u00e9nyt ad-e) egy dolog, m\u00edg a megb\u00edzhatatlan h\u00e1l\u00f3zati k\u00f6r\u00fclm\u00e9nyek k\u00f6z\u00f6tt val\u00f3 tesztel\u00e9s egy eg\u00e9szen m\u00e1s feladat (gyakran \u00fagy gondolj\u00e1k, hogy a h\u00e1l\u00f3zat mindig probl\u00e9mamentesen m\u0171k\u00f6dik, \u00e9s ez a nyolc t\u00e9ved\u00e9s egyik legels\u0151je a megosztott sz\u00e1m\u00edt\u00e1sokr\u00f3l). Az egyik neh\u00e9zs\u00e9g a probl\u00e9ma megold\u00e1s\u00e1ban az, hogy mik\u00e9nt lehet szimul\u00e1lni a rendszert \u00e9rint\u0151 hib\u00e1kat vagy sz\u00e1nd\u00e9kosan bevezetni azokat, a \u00fagynevezett fault injection r\u00e9v\u00e9n. Ezt megtehetj\u00fck az alkalmaz\u00e1s forr\u00e1sk\u00f3dj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1val. De ekkor m\u00e1r nem az eredeti k\u00f3dot tesztelj\u00fck, hanem annak egy olyan verzi\u00f3j\u00e1t, amely sz\u00e1nd\u00e9kosan szimul\u00e1lja a hib\u00e1kat. Ennek k\u00f6vetkezt\u00e9ben kock\u00e1zatot v\u00e1llaltok, amely a fault injection hal\u00e1los \u00f6lel\u00e9s\u00e9be sodorhat, \u00e9s geekes bugokkal \u2013 olyan hib\u00e1kkal \u2013 tal\u00e1lkozhattok, amelyek elt\u0171nnek, ha megpr\u00f3b\u00e1lj\u00e1tok \u0151ket felfedezni.<\/p>\n<p>Most pedig megmutatjuk, hogyan seg\u00edt az Istio megbirk\u00f3zni ezekkel a neh\u00e9zs\u00e9gekkel gyorsan \u00e9s egyszer\u0171en.<\/p>\n<h3>Hogyan n\u00e9z ki minden, amikor minden rendben van.<\/h3>\n<p>\nTekints\u00fcnk egy k\u00f6vetkez\u0151 forgat\u00f3k\u00f6nyvet: van k\u00e9t podunk a recommendation mikroszolg\u00e1ltat\u00e1sunkhoz, amelyet az Istio \u00fatmutat\u00f3j\u00e1b\u00f3l vett\u00fcnk. Az egyik pod a v1 c\u00edmk\u00e9t viseli, a m\u00e1sik pedig a v2-t. Mint l\u00e1tjuk, minden eddig t\u00f6k\u00e9letesen m\u0171k\u00f6dik:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/c50387b7cfd12298cfab8123f13b2ca4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(Egy\u00e9bk\u00e9nt a jobb oldali sz\u00e1m csup\u00e1n a h\u00edv\u00e1sok sz\u00e1ml\u00e1l\u00f3ja minden podhoz.)<\/p>\n<p>De h\u00e1t nek\u00fcnk nem \u00e9ppen ez kell, igaz? Nos, pr\u00f3b\u00e1ljuk meg mindent t\u00f6nkretenni an\u00e9lk\u00fcl, hogy a forr\u00e1sk\u00f3dot meg\u00e9rinten\u00e9nk.<\/p>\n<h3>Mikroszolg\u00e1ltat\u00e1s le\u00e1ll\u00e1sok okoz\u00e1sa<\/h3>\n<p>\n\u00cdme egy yaml f\u00e1jl az Istio forgalomir\u00e1ny\u00edt\u00e1si szab\u00e1lyhoz, amely f\u00e9lid\u0151ben hib\u00e1t gener\u00e1l (hiba) <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hu\/server\/dts-los-angeles\/\"   title=\"a szerver\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3597\">a szerver<\/a> 503):<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/8fb3ed7f16ed7fd1a57b27dfc3bfd2da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nVegye figyelembe, hogy kifejezetten megadjuk, hogy f\u00e9lid\u0151ben 503-as hib\u00e1t kell visszaadni.<\/p>\n<p>\u00cdme, hogyan fog kin\u00e9zni a curl parancs ciklusban fut\u00f3 k\u00e9perny\u0151k\u00e9pe, miut\u00e1n aktiv\u00e1ljuk ezt a szab\u00e1lyt, hogy hib\u00e1kat szimul\u00e1ljunk. Ahogy l\u00e1tjuk, a k\u00e9r\u00e9sek fele 503-as hib\u00e1t ad vissza, f\u00fcggetlen\u00fcl att\u00f3l, hogy melyik pod-ra \u2013 v1 vagy v2 \u2013 ir\u00e1ny\u00edtj\u00e1k \u0151ket.<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/3d9760cf5abc7480ad3aab826c274766.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA norm\u00e1l m\u0171k\u00f6d\u00e9s helyre\u00e1ll\u00edt\u00e1s\u00e1hoz elegend\u0151 elt\u00e1vol\u00edtani ezt a szab\u00e1lyt, jelen esetben az istioctl delete routerule recommendation-503 -n tutorial parancs seg\u00edts\u00e9g\u00e9vel. Ebben az esetben a Tutorial a Red Hat OpenShift projekt neve, ahol az Istio oktat\u00f3nk fut.<\/p>\n<h3>Mesters\u00e9ges k\u00e9sleltet\u00e9sek bevezet\u00e9se<\/h3>\n<p>\nA mesters\u00e9ges 503-as hib\u00e1k seg\u00edtenek tesztelni a rendszert a hib\u00e1kkal szembeni ellen\u00e1ll\u00e1sra, de a k\u00e9sleltet\u00e9sek el\u0151rejelz\u00e9s\u00e9nek \u00e9s kezel\u00e9s\u00e9nek k\u00e9pess\u00e9ge m\u00e9g leny\u0171g\u00f6z\u0151bb kell, hogy legyen. Val\u00f3j\u00e1ban a k\u00e9sleltet\u00e9sek a val\u00f3 \u00e9letben gyakrabban el\u0151fordulnak, mint a hib\u00e1k. Egy lassan m\u0171k\u00f6d\u0151 mikroszolg\u00e1ltat\u00e1s az a mag, amely az eg\u00e9sz rendszert szenved\u00e9sre k\u00e9nyszer\u00edti. Az Istio seg\u00edts\u00e9g\u00e9vel tesztelheti a k\u00e9sleltet\u00e9sek kezel\u00e9s\u00e9re vonatkoz\u00f3 k\u00f3dot an\u00e9lk\u00fcl, hogy b\u00e1rmilyen v\u00e1ltoztat\u00e1st v\u00e9gezne rajta. El\u0151sz\u00f6r megmutatjuk, hogyan lehet ezt megtenni mesters\u00e9gesen bevezetett h\u00e1l\u00f3zati k\u00e9sleltet\u00e9sek eset\u00e9n.<\/p>\n<p>Vegye figyelembe, hogy egy ilyen tesztel\u00e9s ut\u00e1n lehet, hogy sz\u00fcks\u00e9ge lehet (vagy szeretn\u00e9) jav\u00edtani a k\u00f3dj\u00e1t. A j\u00f3 h\u00edr az, hogy ebben az esetben proakt\u00edvan fog cselekedni, nem pedig reakt\u00edvan. \u00cdgy kell fel\u00e9p\u00edteni a fejleszt\u00e9si ciklust: k\u00f3dol\u00e1s-tesztel\u00e9s-visszajelz\u00e9s-k\u00f3dol\u00e1s-tesztel\u00e9s\u2026<\/p>\n<p>\u00cdme egy szab\u00e1ly, amely\u2026 De tudja mit? Az Istio olyan egyszer\u0171, \u00e9s ez a yaml f\u00e1jl olyan \u00e9rthet\u0151, hogy minden ebben a p\u00e9ld\u00e1ban mag\u00e1\u00e9rt besz\u00e9l, csak n\u00e9zzen r\u00e1:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/e077e891cbccc66ebc4d4c7b67a0f1ec.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA f\u00e9l esetben 7 m\u00e1sodperces k\u00e9s\u00e9st tapasztalunk. Ez nem ugyanaz, mintha a forr\u00e1sk\u00f3dba a sleep parancsot \u00edrn\u00e1nk, mivel az Istio val\u00f3ban 7 m\u00e1sodpercre k\u00e9slelteti a k\u00e9r\u00e9st. Mivel az Istio t\u00e1mogatja a Jaeger nyomk\u00f6vet\u00e9st, ez a k\u00e9s\u00e9s j\u00f3l l\u00e1that\u00f3 a Jaeger felhaszn\u00e1l\u00f3i fel\u00fclet\u00e9n, amint az az al\u00e1bbi k\u00e9perny\u0151fot\u00f3n is l\u00e1that\u00f3. Figyelj\u00fck meg a hossz\u00fa k\u00e9r\u00e9st a diagram jobb fels\u0151 sark\u00e1ban - a hossza 7,02 m\u00e1sodperc:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/97a7b33fb7e0455973c7fd1b2aefadf3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEz a forgat\u00f3k\u00f6nyv lehet\u0151v\u00e9 teszi a k\u00f3d tesztel\u00e9s\u00e9t h\u00e1l\u00f3zati k\u00e9sleltet\u00e9si k\u00f6r\u00fclm\u00e9nyek k\u00f6z\u00f6tt. Nyilv\u00e1nval\u00f3, hogy ennek a szab\u00e1lynak az elt\u00e1vol\u00edt\u00e1s\u00e1val megsz\u00fcntetj\u00fck a mesters\u00e9ges k\u00e9s\u00e9st. Ism\u00e9telj\u00fck meg, de most is mindezt an\u00e9lk\u00fcl tett\u00fck, hogy a forr\u00e1sk\u00f3dot megv\u00e1ltoztattuk volna.<\/p>\n<h3>Ne h\u00e1tr\u00e1lj \u00e9s neAdd fel<\/h3>\n<p>\nAz Istio egy m\u00e1sik hasznos funkci\u00f3ja a kaotikus m\u00e9rn\u00f6ks\u00e9ghez, hogy bizonyos sz\u00e1m\u00fa alkalommal \u00fajrak\u00eds\u00e9rletezik egy szolg\u00e1ltat\u00e1ssal. A l\u00e9nyeg az, hogy ne hagyjuk abba a pr\u00f3b\u00e1lkoz\u00e1st, amikor az els\u0151 k\u00e9r\u00e9s 503-as hib\u00e1val v\u00e9gz\u0151dik - \u00e9s tal\u00e1n a N-edszer siker\u00fclni fog. Lehet, hogy a szolg\u00e1ltat\u00e1s csak r\u00f6vid id\u0151re nem el\u00e9rhet\u0151 valami okb\u00f3l. Igen, ezt az okot meg kell tal\u00e1lni \u00e9s megsz\u00fcntetni. De ezt k\u00e9s\u0151bb, most pr\u00f3b\u00e1ljuk meg biztos\u00edtani, hogy a rendszer tov\u00e1bbra is m\u0171k\u00f6dj\u00f6n.<\/p>\n<p>Teh\u00e1t azt szeretn\u00e9nk, hogy a szolg\u00e1ltat\u00e1s olykor 503-as hib\u00e1t adjon, \u00e9s az Istio ezt k\u00f6vet\u0151en pr\u00f3b\u00e1lkozzon \u00fajra a kapcsolattal. Itt egy\u00e9rtelm\u0171en sz\u00fcks\u00e9g van egy m\u00f3dra a 503-as hiba gener\u00e1l\u00e1s\u00e1ra an\u00e9lk\u00fcl, hogy a k\u00f3dot megv\u00e1ltoztatn\u00e1nk...<\/p>\n<p>V\u00e1rj, v\u00e1rj! Ezt most csin\u00e1ltuk.<\/p>\n<p>Ez a f\u00e1jl biztos\u00edtja, hogy a recommendation-v2 szolg\u00e1ltat\u00e1s a k\u00e9r\u00e9sek fel\u00e9ben 503-as hib\u00e1t adjon:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/f446528f9c968e40cc2cf318cf0acde9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEgy\u00e9rtelm\u0171, hogy a k\u00e9r\u00e9sek egy r\u00e9sze sikertelen lesz:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/f998513746604beda241b8d6de2ed727.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMost pedig aktiv\u00e1ljuk az Istio Retry funkci\u00f3j\u00e1t:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/32e210b6ecbf4c1ecf121ee73e64ba35.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEz a routing szab\u00e1ly h\u00e1rom \u00fajrapr\u00f3b\u00e1lkoz\u00e1st v\u00e9gez k\u00e9t m\u00e1sodperces intervallummal, \u00e9s cs\u00f6kkentenie kell (ide\u00e1lis esetben pedig teljesen el kell t\u00fcntetnie) a 503-as hib\u00e1kat:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/7f9711c52949072b823399e59141cb64.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00d6sszefoglalva: el\u00e9rt\u00fck, hogy az Istio, egyr\u00e9szt, 503-as hib\u00e1t gener\u00e1l a k\u00e9relmek fel\u00e9ben. M\u00e1sr\u00e9szt pedig ugyanaz az Istio h\u00e1rom alkalommal \u00fajra pr\u00f3b\u00e1lkozik a szolg\u00e1ltat\u00e1shoz val\u00f3 kapcsol\u00f3d\u00e1ssal a 503-as hiba el\u0151fordul\u00e1sa eset\u00e9n. Ennek eredm\u00e9nyek\u00e9nt minden nagyon j\u00f3l m\u0171k\u00f6dik. \u00cdgy az Retry funkci\u00f3 haszn\u00e1lat\u00e1val betartottuk az \u00edg\u00e9ret\u00fcnket, hogy ne h\u00e1tr\u00e1ljunk meg \u00e9s ne add fel.<\/p>\n<p>Igen, ism\u00e9t siker\u00fclt ezt megtenn\u00fcnk, an\u00e9lk\u00fcl, hogy a k\u00f3dot megv\u00e1ltoztattuk volna. Minden, amire sz\u00fcks\u00e9g\u00fcnk volt, az k\u00e9t Istio routing szab\u00e1ly:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/c21a1cfd2d78ae4145a57d1cefcc6c59.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Hogyan ne cserben hagyjuk a felhaszn\u00e1l\u00f3t, vagy mi\u00e9rt ne v\u00e1rjanak heten egyet<\/h3>\n<p>\nMost m\u00e1r megford\u00edtjuk a helyzetet, \u00e9s megn\u00e9zz\u00fck azt a forgat\u00f3k\u00f6nyvet, amikor nem \u00e9rdemes h\u00e1tr\u00e1lni vagy feladni, csak egy meghat\u00e1rozott ideig. Ezut\u00e1n egyszer\u0171en abba kell hagynunk a k\u00e9r\u00e9s feldolgoz\u00e1s\u00e1t, hogy ne k\u00e9nyszer\u00edts\u00fck az embereket v\u00e1rakozni egyetlen, lass\u00fa szolg\u00e1ltat\u00e1s miatt. M\u00e1s szavakkal, nem fogjuk megv\u00e9deni a vesz\u00edtett poz\u00edci\u00f3t, hanem visszal\u00e9p\u00fcnk egy tartal\u00e9k vonalra, hogy ne terhelj\u00fck meg a weboldal felhaszn\u00e1l\u00f3j\u00e1t, \u00e9s ne k\u00e9nyszer\u00edts\u00fck a tudatlans\u00e1g t\u00fcz\u00e9n feszengeni.<\/p>\n<p>Az Istio-ban be\u00e1ll\u00edthatjuk a k\u00e9r\u00e9s v\u00e9grehajt\u00e1s\u00e1nak id\u0151t\u00fall\u00e9p\u00e9s\u00e9t. Ha a szolg\u00e1ltat\u00e1s t\u00fall\u00e9pi ezt az id\u0151t\u00fall\u00e9p\u00e9st, akkor 504-es hib\u00e1t (Gateway Timeout) ad vissza \u2013 ez mind az Istio konfigur\u00e1ci\u00f3n kereszt\u00fcl t\u00f6rt\u00e9nik. De be kell majd illeszten\u00fcnk a szolg\u00e1ltat\u00e1s forr\u00e1sk\u00f3dj\u00e1ba egy sleep parancsot (majd term\u00e9szetesen \u00fajra kell \u00e9p\u00edten\u00fcnk \u00e9s redeploy-olnunk), hogy szimul\u00e1ljuk a szolg\u00e1ltat\u00e1s lass\u00fa m\u0171k\u00f6d\u00e9s\u00e9t. Sajnos m\u00e1sk\u00e9pp nem megy.<\/p>\n<p>Teh\u00e1t, beillesztett\u00fck a h\u00e1rom m\u00e1sodperces sleep parancsot a recommendation v2 szolg\u00e1ltat\u00e1s k\u00f3dj\u00e1ba, \u00fajra\u00e9p\u00edtett\u00fck a megfelel\u0151 k\u00e9pet, \u00e9s redeploy-oltuk a kont\u00e9nert, most pedig be\u00e1ll\u00edtunk egy id\u0151t\u00fall\u00e9p\u00e9st a k\u00f6vetkez\u0151 Istio \u00fatvonalhoz\u00e1si szab\u00e1ly seg\u00edts\u00e9g\u00e9vel:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/c03fc452b98dd875a8a7d3ac561893ca.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA fenti k\u00e9perny\u0151k\u00e9pen l\u00e1that\u00f3, hogy le\u00e1ll\u00edtjuk a kapcsolatfelv\u00e9teli k\u00eds\u00e9rleteket a recommendation szolg\u00e1ltat\u00e1ssal, ha egy m\u00e1sodpercen bel\u00fcl nem kapunk v\u00e1laszt, vagyis m\u00e9g miel\u0151tt 504-es hiba l\u00e9pne fel. E szab\u00e1ly alkalmaz\u00e1sa ut\u00e1n (\u00e9s a recommendation:v2 szolg\u00e1ltat\u00e1s k\u00f3dj\u00e1ba h\u00e1rom m\u00e1sodperces sleep parancs hozz\u00e1ad\u00e1sa ut\u00e1n) a k\u00f6vetkez\u0151t kapjuk:<\/p>\n<p><img decoding=\"async\" alt=\"Nyomk\u00f6vet\u00e9s \u00e9s monitoroz\u00e1s az Isti\u00f3ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve\" src=\"\/wp-content\/uploads\/2020\/01\/ed6e80052c67254718b1fde2bd873e71.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIsm\u00e9telj\u00fck meg, de az id\u0151t\u00fall\u00e9p\u00e9st meg lehet hat\u00e1rozni an\u00e9lk\u00fcl, hogy a forr\u00e1sk\u00f3dot m\u00f3dos\u00edtan\u00e1nk. \u00c9s a plusz b\u00f3nusz itt az, hogy most m\u00f3dos\u00edthatja a k\u00f3dj\u00e1t, hogy reag\u00e1ljon az id\u0151t\u00fall\u00e9p\u00e9sre, \u00e9s k\u00f6nnyen tesztelheti ezeket a fejleszt\u00e9seket az Istio seg\u00edts\u00e9g\u00e9vel.<\/p>\n<h3>Most pedig mindent egy\u00fctt<\/h3>\n<p>\nEgy kis k\u00e1osz bevezet\u00e9se az Istio seg\u00edts\u00e9g\u00e9vel remek m\u00f3dja a k\u00f3dja \u00e9s a rendszer megb\u00edzhat\u00f3s\u00e1g\u00e1nak tesztel\u00e9s\u00e9re. A fallback, bulkhead \u00e9s circuit breaker sablonok, a mesters\u00e9ges hib\u00e1k \u00e9s k\u00e9sleltet\u00e9sek l\u00e9trehoz\u00e1s\u00e1nak mechanizmusai, valamint az \u00fajrah\u00edv\u00e1sok \u00e9s id\u0151t\u00fall\u00e9p\u00e9sek rendk\u00edv\u00fcl hasznosak lesznek a hibamentes felh\u0151alap\u00fa rendszerek l\u00e9trehoz\u00e1sakor. A Kubernetes \u00e9s a Red Hat OpenShift kombin\u00e1ci\u00f3j\u00e1val ezek az eszk\u00f6z\u00f6k biztons\u00e1gosan seg\u00edtik a j\u00f6v\u0151 megkezd\u00e9s\u00e9t.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/485136\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0410 \u0435\u0441\u043b\u0438 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0435\u0441\u0442\u044c \u2013 \u0437\u043d\u0430\u0447\u0438\u0442 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438. \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Red Hat OpenShift (\u0438 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Kubernetes), \u0442\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0441\u043e\u0444\u0442\u0443 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u043f\u043e\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-55700","post","type-post","status-publish","format-standard","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\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\" \/>\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\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti\" \/>\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\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432 Istio: \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti\" \/>\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=\"2020-01-25T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:50+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\udd47Nyomoz\u00e1s \u00e9s monitoring az Istio-ban: mikroszolg\u00e1ltat\u00e1sok \u00e9s a bizonytalans\u00e1g elve | ProHoster","description":"A Heisenberg-f\u00e9le bizonytalans\u00e1gi elv azt mondja, hogy egy objektum helyzet\u00e9t \u00e9s sebess\u00e9g\u00e9t egyszerre nem lehet m\u00e9rni. Ha az objektum mozog, akkor nincsen pontos helye.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","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\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432 Istio: \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 | ProHoster","og:description":"\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0435\u0440\u0433\u0430 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/trassirovka-i-monitoring-v-istio-mikroservisy-i-printsip-neopredelennosti","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":"2020-01-25T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55700","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:38:32","updated":"2026-02-22 15:29:16","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\/55700","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=55700"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/55700\/revisions"}],"predecessor-version":[{"id":162124,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/55700\/revisions\/162124"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=55700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=55700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=55700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}