{"id":85697,"date":"2020-06-18T13:42:52","date_gmt":"2020-06-18T11:42:52","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/chto-takoe-service-mesh"},"modified":"2020-06-18T13:42:52","modified_gmt":"2020-06-18T11:42:52","slug":"chto-takoe-service-mesh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/chto-takoe-service-mesh","title":{"rendered":"Cos'\u00e8 un Service Mesh?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>E ciao di nuovo!.. In vista dell'inizio del corso <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/UNlX\/\">\u00abArchitetto Software\u00bb<\/a><\/noindex> abbiamo preparato un'altra traduzione utile.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"Cos&#039;\u00e8 un Service Mesh?\" src=\"\/wp-content\/uploads\/2020\/06\/afc53e48443ce4a402b6b1cba1184e6c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n Il Service Mesh \u00e8 un livello infrastrutturale configurabile con bassa latenza, necessario per gestire un grande volume di comunicazioni interprocesso in rete tra le interfacce di programmazione delle applicazioni (API). Il Service Mesh garantisce comunicazioni rapide, affidabili e sicure tra servizi containerizzati e frequentemente efimeri dell'infrastruttura delle applicazioni. Il Service Mesh offre funzionalit\u00e0 come la scoperta dei servizi, il bilanciamento del carico, la crittografia, la trasparenza, il tracciamento, l'autenticazione e l'autorizzazione, insieme al supporto per il modello di spegnimento automatico (<i>circuit breaker<\/i>).<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n Il Service Mesh viene solitamente implementato fornendo a ogni istanza di servizio un'istanza di proxy, chiamata <i>Sidecar. Il Sidecar<\/i> gestisce le comunicazioni tra i servizi, esegue monitoraggio e risolve problemi di sicurezza, ovvero tutto ci\u00f2 che pu\u00f2 essere astratto dai singoli servizi. In questo modo, gli sviluppatori possono scrivere, mantenere e gestire il codice dell'applicazione nei servizi, mentre gli amministratori di sistema possono lavorare con il Service Mesh e avviare l'applicazione.<\/p>\n<p>Istio di Google, IBM e Lyft \u00e8 attualmente la pi\u00f9 nota architettura Service Mesh. Kubernetes, originariamente sviluppato da Google, \u00e8 ora l'unico framework per l'orchestrazione dei container supportato da Istio. I fornitori stanno cercando di creare versioni commerciali supportate di Istio. \u00c8 interessante vedere cosa potranno portare di nuovo al progetto open source.<\/p>\n<p>Tuttavia, Istio non \u00e8 l'unica opzione, poich\u00e9 altre implementazioni di Service Mesh sono in fase di sviluppo. Il modello <code>sidecar proxy<\/code> \u00e8 l'implementazione pi\u00f9 popolare, come pu\u00f2 essere visto nei progetti di Buoyant, HashiCorp, Solo.io e altri. Esistono anche architetture alternative: il toolkit tecnologico di Netflix \u00e8 uno degli approcci, dove la funzionalit\u00e0 del Service Mesh viene realizzata attraverso librerie come Ribbon, Hysterix, Eureka, Archaius, oltre a piattaforme come Azure Service Fabric.<\/p>\n<p>Il Service Mesh ha anche una propria terminologia per i componenti-servizi e le funzioni:<\/p>\n<ul>\n<li><b>Framework per l'orchestrazione dei container<\/b>. Con l'aumento del numero di container all'interno dell'infrastruttura dell'applicazione, sorge la necessit\u00e0 di uno strumento separato per monitorare e gestire i container: il framework di orchestrazione dei container. Kubernetes ha occupato questa nicchia in modo cos\u00ec forte che anche i suoi principali concorrenti, Docker Swarm e Mesosphere DC\/OS, offrono come alternativa integrazioni con Kubernetes.<\/li>\n<li><b>Servizi e istanze (pod Kubernetes)<\/b>. Un'istanza \u00e8 una singola copia in esecuzione di un microservizio. A volte un'istanza corrisponde a un solo container. In Kubernetes, un'istanza \u00e8 costituita da un piccolo gruppo di container indipendenti, chiamato pod. I client raramente si rivolgono direttamente a un'istanza o a un pod; pi\u00f9 frequentemente si rivolgono a un servizio, che rappresenta un insieme di istanze o pod identici, scalabili e resilienti (repliche).<\/li>\n<li><b>Sidecar Proxy<\/b>. Il Sidecar Proxy lavora con un'istanza o un pod. La funzione del Sidecar Proxy \u00e8 di instradare o fare il proxy del traffico in arrivo dal container con cui lavora e del traffico di ritorno. Il Sidecar interagisce con altri Sidecar Proxy ed \u00e8 gestito dal framework di orchestrazione. Molte implementazioni del Service Mesh usano il Sidecar Proxy per intercettare e gestire tutto il traffico in entrata e in uscita di un'istanza o di un pod.<\/li>\n<li><b>Scoperta dei servizi<\/b>. Quando un'istanza deve interagire con un altro servizio, deve trovare (scoprire) un'istanza funzionante e disponibile dell'altro servizio. In genere, l'istanza effettua la ricerca tramite DNS. Il framework di orchestrazione dei container mantiene un elenco di istanze pronte a ricevere richieste e fornisce un'interfaccia per le query DNS.<\/li>\n<li><b>Il bilanciamento del carico<\/b>. La maggior parte dei framework di orchestrazione dei container offre bilanciamento del carico a livello 4 (di trasporto). Il Service Mesh implementa un bilanciamento del carico pi\u00f9 complesso a livello 7 (applicativo), ricco di algoritmi e pi\u00f9 efficace nella gestione del traffico. I parametri di bilanciamento del carico possono essere modificati tramite API, consentendo di orchestrare distribuzioni blue-green o canary.<\/li>\n<li><b>Crittografia<\/b>Il Service Mesh pu\u00f2 crittografare e decrittografare le richieste e le risposte, sollevando questo onere dai servizi. Il Service Mesh pu\u00f2 anche migliorare le prestazioni dando priorit\u00e0 o riutilizzando connessioni persistenti esistenti, riducendo la necessit\u00e0 di costose computazioni per stabilire nuove connessioni. La realizzazione pi\u00f9 comune della crittografia del traffico \u00e8 <i>mutual TLS (mTLS)<\/i>, dove l'infrastruttura a chiave pubblica (PKI) genera e distribuisce certificati e chiavi per utilizzarli nel Sidecar Proxy.<\/li>\n<li><b>Autenticazione e autorizzazione<\/b>. Il Service Mesh pu\u00f2 autorizzare e autenticare richieste fatte dall'esterno o dall'interno dell'applicazione, inviando solo richieste validate alle istanze.<\/li>\n<li><b>Supporto per il pattern di spegnimento automatico<\/b>. Il Service Mesh supporta <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/blog\/microservices-reference-architecture-nginx-circuit-breaker-pattern\/\">il pattern di spegnimento automatico<\/a><\/noindex>, che isola le istanze non sane e poi le reintegra gradualmente nel pool delle istanze sane quando necessario.<\/li>\n<\/ul>\n<p>\nQuella parte dell'applicazione Service Mesh che gestisce il traffico di rete tra le istanze si chiama <i>Data Plane<\/i>. La creazione e il deployment della configurazione, che gestisce il comportamento <i>Data Plane<\/i>, avviene tramite un <i>Control Plane<\/i>. <i>Control Plane<\/i> che generalmente include o \u00e8 progettato per connettersi a API, CLI o GUI per gestire l'applicazione.<\/p>\n<p><img decoding=\"async\" alt=\"Cos&#039;\u00e8 un Service Mesh?\" src=\"\/wp-content\/uploads\/2020\/06\/130fe71904f72a76dfe8e8dbc405e498.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Il Control Plane nel Service Mesh distribuisce la configurazione tra Sidecar Proxy e Data Plane.<\/i><\/p>\n<p>Spesso, l'architettura del Service Mesh viene applicata per affrontare compiti operativi complessi utilizzando container e microservizi. I pionieri in questo campo <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/blog\/introduction-to-microservices\/\">microservizi<\/a><\/noindex> includono aziende come Lyft, Netflix e Twitter, che offrono servizi funzionanti a milioni di utenti in tutto il mondo. (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/blog\/microservices-at-netflix-architectural-best-practices\/\">Qui puoi trovare una descrizione dettagliata di alcune sfide architettoniche affrontate da Netflix<\/a><\/noindex>). Per compiti applicativi meno esigenti, probabilmente sar\u00e0 sufficiente un'architettura pi\u00f9 semplice.<\/p>\n<p>L'architettura del Service Mesh difficilmente sar\u00e0 mai la risposta a tutte le questioni relative al funzionamento e alla consegna delle applicazioni. Architetti e sviluppatori hanno un enorme arsenale di strumenti, e solo uno di essi \u00e8 il martello, il quale deve affrontare solo una delle molteplici sfide \u2013 battere chiodi. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/blog\/introducing-the-nginx-microservices-reference-architecture\/\">Microservices Reference Architecture di NGINX<\/a><\/noindex>, ad esempio, include diversi modelli che offrono uno spettro continuo di approcci per affrontare le sfide tramite microservizi.<\/p>\n<p>Gli elementi che si combinano nell'architettura del Service Mesh, come NGINX, contenitori, Kubernetes e microservizi come approccio architetturale, possono essere utilizzati in modo altrettanto produttivo anche in implementazioni senza Service Mesh. Ad esempio, Istio \u00e8 stato progettato come un'architettura completa di Service Mesh, ma la modularit\u00e0 implica che gli sviluppatori possono scegliere e applicare solo i componenti tecnologici di cui hanno realmente bisogno. Tenendo presente ci\u00f2, \u00e8 necessario sviluppare una chiara comprensione del concetto di Service Mesh, anche se non si \u00e8 certi di riuscire mai a implementarlo completamente in un'applicazione.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/UNlX\/\">Monoliti modulari e DDD<\/a><\/noindex><\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/506916\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418 \u0441\u043d\u043e\u0432\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435!.. \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u041f\u041e\u00bb \u043c\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434. Service Mesh \u2013 \u044d\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043c\u0435\u0436\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (API). Service Mesh \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0443\u044e, \u043d\u0430\u0434\u0451\u0436\u043d\u0443\u044e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0447\u0430\u0441\u0442\u043e \u044d\u0444\u0435\u043c\u0435\u0440\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":85698,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-85697","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=\"\u0418 \u0441\u043d\u043e\u0432\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435!..\" \/>\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\/it\/blog\/administrirovanie\/chto-takoe-service-mesh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Service Mesh? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418 \u0441\u043d\u043e\u0432\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435!..\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/chto-takoe-service-mesh\" \/>\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-06-18T11:42:52+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-18T11:42:52+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\udd47Che cos'\u00e8 il Service Mesh? | ProHoster","description":"E di nuovo, ciao!..","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/chto-takoe-service-mesh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Service Mesh? | ProHoster","og:description":"\u0418 \u0441\u043d\u043e\u0432\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435!..","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/chto-takoe-service-mesh","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-06-18T11:42:52+00:00","article:modified_time":"2020-06-18T11:42:52+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"85697","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 14:32:46","updated":"2022-09-28 09:55:06","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/85697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=85697"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/85697\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/85698"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=85697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=85697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=85697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}