Scenarii di usu di a rete di serviziu

Scenarii di usu di a rete di serviziu

Nota. transl.: L'autore di questu articulu (Luc Perkins) hè un avvucatu di sviluppatori in l'urganizazione CNCF, chì hè a casa di tali prughjetti Open Source cum'è Linkerd, SMI (Service Mesh Interface) è Kuma (per via, avete ancu dumandatu perchè Istio hè micca in questa lista? .). Una volta di pruvà à purtà à a cumunità DevOps una megliu comprensione di l'hype di moda chjamatu "maglia di serviziu", elenca 16 capacità caratteristiche chì tali soluzioni furniscenu.

oghji rete di serviziu ― unu di i temi più caldi in u campu di l'ingegneria di u software (è ghjustu!). Pensu chì sta tecnulugia hè incredibbilmente promettente è mi piacerebbe vede assai aduttatu (quandu hè sensu, sicuru). Tuttavia, hè sempre circundatu da un aura di misteru per a maiò parte di a ghjente. À u listessu tempu, ancu quelli chì ben cunnisciutu cun ellu, hè spessu difficiule di furmulà i so vantaghji è ciò chì hè esattamente (cumpresu u vostru veramente). In questu articulu pruvaraghju à curregà a situazione listendu diverse casi di usu "maglia di serviziu"*.

* Nota transl.: quì è più in l'articulu esattamente sta traduzzione ("serviziu mesh") serà utilizatu per u novu termu service mesh.

Ma prima vogliu fà uni pochi di cumenti:

  • Ùn aghju mai travagliatu cù e rete di serviziu o l'utilizanu fora di prughjetti iniziati per a mo propria educazione. Per d 'altra banda, eru quellu chì hà scrittu una mansa di documentazione per a rete di serviziu internu di Twitter in 2015 (ùn era ancu chjamatu "maglia di serviziu" allora) è hà participatu à u sviluppu di u situ web è a documentazione per Linkerd, cusì significa qualcosa.
  • A mo lista hè apprussimativa è incompleta. Ci ponu esse casi d'utilizazione scunnisciuti per mè, è prubabilmente e novi opzioni surghjeranu cù u tempu cum'è a tecnulugia si sviluppa è a so popularità cresce.
  • À u listessu tempu, micca ogni implementazione di rete di serviziu esistenti sustene tutti i casi d'usu elencati. Per quessa, e mo dichjarazioni cum'è "serviziu mesh can..." deve esse lettu cum'è "individuale, è forsi tutti l'implementazioni popular mesh service pò...".
  • L'ordine di l'esempii ùn face nisuna differenza.

Lista corta:

  • scuperta di serviziu;
  • criptografia;
  • l'autentificazione è l'autorizazione;
  • equilibriu di carica;
  • circuit breaking;
  • autoscaling;
  • dispiegamenti canarini;
  • implementazioni blu-verde;
  • cuntrollu di salute;
  • caduta di carica;
  • mirroring trafficu;
  • isulamentu;
  • limitazione di a tarifa di dumanda, tentativi è timeout;
  • telemetria;
  • auditu;
  • visualizazione.

1. Scuperta di serviziu

TL; DR: Cunnette à altri servizii nantu à a reta cù nomi simplici.

I servizii duveranu esse capaci di "truvà" automaticamente l'altri usendu nomi adatti - per esempiu, service.api.production, pets/staging o cassandra. L'ambienti di nuvola sò elastici, è un unicu nome pò ammuccià parechji casi di un serviziu. Hè chjaru chì in una tale situazione hè fisicamenti impussibile di codificà tutti l'indirizzi IP.

In più, quandu un serviziu trova un altru, deve esse capace di mandà richieste à quellu serviziu senza teme chì finiscinu à l'input di a so istanza rotta. In altri palori, a rete di serviziu deve monitorizà a salute di tutti i casi di serviziu è mantene a lista di l'ospiti cum'è aghjurnata pussibule.

Ogni mesh di serviziu implementa u mecanismu di scuperta di serviziu in modu diversu. À u mumentu, u modu più cumuni hè di delegate à prucessi esterni cum'è Kubernetes DNS. In u passatu in Twitter avemu usatu un sistema di nomi per questu scopu Finagle. Inoltre, a tecnulugia di a rete di serviziu permette à emergenze di meccanismi di nome persunalizati (ancu se ùn aghju micca vistu alcuna implementazione SM cù tali funziunalità).

2. Encryption

TL; DR: Eliminate u trafficu micca criptatu trà i servizii è rende stu prucessu automatizatu è scalabile.

Hè bellu di sapè chì l'attaccanti ùn ponu micca penetrà a vostra reta interna. Firewalls facenu un grande travagliu di questu. Ma chì succede se un pirate ùn entra? Puderà fà ciò ch'ellu vole cù u trafficu intra-serviziu ? Speremu chì questu ùn succede micca dopu tuttu. Per prevene stu scenariu, duvete implementà una rete di fiducia zero in quale tuttu u trafficu trà i servizii hè criptatu. A maiò parte di e maglie di serviziu muderni ghjunghjenu questu attraversu mutuale TLS (TLS mutuale, mTLS). In certi casi, mTLS travaglia in nuvuli interi è clusters (Pensu chì e cumunicazioni interplanetarie seranu un ghjornu disposti in modu simile).

Di sicuru, per a rete di serviziu mTLS facultativu. Ogni serviziu pò piglià a cura di u so propiu TLS, ma questu significa chì avete bisognu di truvà un modu per generà certificati, distribuziali à traversu l'ospiti di serviziu, è include u codice in l'applicazione chì caricarà questi certificati da i schedari. Iè, ùn vi scurdate di rinnuvà sti certificati à intervalli regulari. E rete di serviziu automatizanu mTLS cù sistemi cum'è SPIFFE, chì, à u turnu, automatizà u prucessu di emissione è rotazione di certificati.

3. Autentificazione è Authorization

TL; DR: Stabbilisce quale hè u richiedente è definisce ciò chì sò permessi di fà prima chì a dumanda ghjunghje ancu à u serviziu.

I servizii spessu volenu sapè chì esegue a dumanda (autentificazione), è utilizendu sta infurmazione, decide chì una determinata entità hè permessa di fà (autorizazione). In questu casu, u pronomi "chì" pò ammuccià:

  1. Altri servizii. Questu hè chjamatu "autentificazione" pari" Per esempiu, serviziu web vole accede à u serviziu db. A rete di serviziu generalmente risolve tali prublemi cù mTLS: i certificati in questu casu agiscenu cum'è l'identificatore necessariu.
  2. Certi utilizatori umani. Questu hè chjamatu "autentificazione" dumanda" Per esempiu, utilizatori haxor69 vole cumprà una nova lampada. E maglie di serviziu furnisce diversi miccanismi, per esempiu. Gettoni Web JSON.

    Parechji di noi avemu fattu questu in u codice di l'applicazione. Una dumanda entra, guardemu à traversu a tavula users, truvate l'utilizatore è paragunate a password, poi verificate a colonna permissions ecc. In u casu di una rete di serviziu, questu succede prima chì a dumanda ghjunghje ancu à u serviziu.

Una volta avemu stabilitu da quale vene a dumanda, avemu bisognu di determinà ciò chì sta entità hè permessa di fà. Alcune maglie di serviziu permettenu di stabilisce e pulitiche basiche (circa quale pò fà chì) cum'è schedarii YAML o in a linea di cummanda, mentre chì altri offrenu integrazione cù frameworks cum'è Open Policy Agent. L'ultimu scopu hè chì i vostri servizii accettanu ogni dumanda, assumendu in modu sicuru chì vene da una fonte di fiducia и sta azione hè permessa.

4. Equilibratu di carica

TL; DR: Distribuite a carica in istanze di serviziu secondu un mudellu specificu.

Un "Serviziu" in una sezione di serviziu hè assai spessu custituitu da parechje istanze identiche. Per esempiu, oghje u serviziu cache custituitu di 5 copie, è dumane u so numeru pò cresce à 11. Richieste mandate à cache, deve esse distribuitu in cunfurmità cù un scopu specificu. Per esempiu, minimizzà a latenza o maximizà a probabilità di ghjunghje à una istanza di travagliu. L'algoritmu più cumunimenti utilizatu hè Round-robin, ma ci sò assai altri - per esempiu, u metudu ponderatu. (pesatu) dumande (pudete selezziunà i miri preferiti), ring (anellu) l'hashing (utilizandu un hashing coherente in l'ospiti upstream) o u minimu metudu di dumanda (preferenza hè data à l'istanza cù u minimu di richieste).

L'equilibriu classicu anu altre funzioni, cum'è a caching HTTP è a prutezzione DDoS, ma ùn sò micca assai pertinenti per u trafficu est-ovest (vale à dì, per u trafficu chì scorri in un centru di dati - approx. transl.) (scopu tipicu di a rete di serviziu). Di sicuru, ùn hè micca necessariu d'utilizà una rete di serviziu per l'equilibriu di carica, ma permette di stabilisce è cuntrullà e pulitiche di equilibriu per ogni serviziu da una strata di cuntrollu centralizata, eliminendu cusì a necessità di eseguisce è cunfigurà equilibratori di carica separati in a pila di rete. .

5. Circuit breaking

TL; DR: Ferma u trafficu à u serviziu problematicu è cuntrolla i danni in i peggiori scenarii.

Se per una certa ragione, u serviziu ùn pò micca affruntà u trafficu, a rete di serviziu furnisce parechje opzioni per risolve stu prublema (altri seranu discututi in e sezzioni appropritate). U circuit breaking hè l'opzione più severa per disconnecting un serviziu da u trafficu. Tuttavia, per ellu stessu ùn hà micca sensu - un pianu di salvezza hè necessariu. A pressione posteriore pò esse furnita (contrapressione) à i servizii chì facenu richieste (ùn vi scurdate micca di cunfigurà a vostra rete di serviziu per questu!), O, per esempiu, culurite a pagina di statutu in rossu è reindirizzendu l'utilizatori à una altra versione di a pagina cù una "balena caduta" ("Twitter hè giù").

E rete di serviziu ùn solu permettenu di definisce quandu l'arrestu seguirà è chì questu seguitarà. In questu casu, "quandu" pò include qualsiasi cumminazzioni di paràmetri specificati: u numeru tutale di richieste per un certu periodu, u numeru di cunnessione parallele, richieste pendenti, tentativi attivi, etc.

Probabilmente ùn vulete micca abusu di circuit breaking, ma hè bellu di sapè chì avete un pianu di salvezza in casu d'emergenza.

6. Autoscaling

TL; DR: Aumentà o diminuite u numeru di istanze di serviziu secondu i criteri specificati.

E maglie di serviziu ùn sò micca pianificatori, perchè ùn sò micca compie scaling yourself. Tuttavia, ponu furnisce infurmazioni nantu à quale i pianificatori basanu e so decisioni. Siccomu e rete di serviziu anu accessu à tuttu u trafficu trà i servizii, anu una larga infurmazione nantu à ciò chì succede: quali servizii anu avutu prublemi, chì servizii sò assai ligeramente caricati (a capacità attribuita à elli hè persa), etc.

Per esempiu, Kubernetes scala i servizii basati nantu à l'usu di CPU è memoria di pods (vede u nostru rapportu "Autoscaling è gestione di risorse in Kubernetes"- ca. trad.), ma se decide di scala nantu à qualsiasi altra metrica (in u nostru casu, u trafficu ligatu), avete bisognu di una metrica speciale. Gestione cum'è què mostra cumu fà questu cun imbasciata, Istio и Prometheus, ma u prucessu stessu hè abbastanza cumplicatu. Vuleriamu chì a rete di serviziu simplificà questu permettendu solu di stabilisce cundizioni cum'è "aumentà u numeru di istanze di serviziu auth, se u numeru di richieste pendenti supera u limitu in un minutu.

7. Deployments canarini

TL; DR: Pruvate e funzioni novi o versioni di serviziu nantu à un subset di utilizatori.

Diciamu chì sviluppate un pruduttu SaaS è avete intenzione di lancià una nova versione fresca di questu. L'avete pruvatu in scena è hà travagliatu bè. Ma ci sò sempre certe preoccupazioni per u so cumpurtamentu in cundizioni reali. In altri palori, avete bisognu di pruvà a nova versione nantu à i prublemi veri senza risicà a fiducia di l'utilizatori. I dispiegamenti di Canary sò grandi per questu. Permettenu di dimustrà una nova funzione à un subset di utilizatori. Stu sottumessu pò esse cumpostu di l'utilizatori più fideli o quelli chì travaglianu cù a versione libera di u pruduttu, o l'utilizatori chì anu manifestatu u desideriu di esse "cobaia".

E maglie di serviziu implementanu questu permettendu di specificà i criteri chì determinanu quale vi vede quale versione di l'applicazione, è indirizzà u trafficu in cunseguenza. Tuttavia, nunda cambia per i servizii stessi. A versione 1.0 di u serviziu crede chì tutte e dumande venenu da l'utilizatori chì anu da vede, è a versione 1.1 crede u listessu per i so utilizatori. Intantu, pudete cambià u percentualità di u trafficu trà e versioni vechje è novi, redirecting un numeru crescente d'utilizatori à u novu si travaglia in modu stabile è i vostri "cobaie" dà u passu.

8. Impiegazioni blu-verde

TL; DR: Lanciate una nova funzione fresca, ma preparate à ripiglià immediatamente tuttu.

Significatu implementazioni blu-verde hè di sparghje un novu serviziu "blu", lanciatu in parallelu cù u vechju, "verde". Se tuttu va bè è u novu serviziu funziona bè, allora u vechju pò esse disattivatu gradualmente. (Alas, un ghjornu stu novu serviziu "blu" ripeterà u destinu di u "verde" è sparirà...) I dispiegamenti blu-verde sò diffirenti di quelli canarii in chì a nova funzione copre tutti in una volta utilizatori (micca parte); U puntu quì hè di avè un "portu sicuru" prontu in casu chì qualcosa va male.

E maglie di serviziu offrenu un modu assai cunvene per pruvà un serviziu "blu" è cambià istantaneamente à un travagliu "verde" in casu di prublemi. Per ùn dì micca u fattu chì in u caminu furnisce assai infurmazioni (vede "Telemetria" sottu) nantu à u travagliu di u "blu", chì aiuta à capisce s'ellu hè prontu per u funziunamentu cumpletu.

Nota. transl.: Pudete leghje più nantu à e diverse strategie di implementazione in Kubernetes (cumpresu u canarinu mintuatu, blu / verde è altri) in stu articulu.

9. Cunsigliu di salute

TL; DR: Mantene a traccia di quali istanze di serviziu sò funziunali è risponde à quelli chì ùn sò più funziunali.

Cuntrolla di salute (veru di salute) aiuta à decide se l'istanze di serviziu sò pronte per accettà è processà u trafficu. Per esempiu, in u casu di servizii HTTP, un cuntrollu di salute pò esse cum'è una dumanda GET à l'endpoint /health... Rispondi 200 OK significarà chì l'istanza hè sana, qualsiasi altru - chì ùn hè micca pronta per riceve u trafficu. E maglie di serviziu permettenu di specificà a manera in quale a funziunalità serà verificata è a freccia cù quale questu verificatu serà realizatu. Questa infurmazione pò esse aduprata per altri scopi - per esempiu, per equilibriu di carica è circuit breaking.

Cusì, a verificazione di a salute ùn hè micca un casu d'usu stand-alone, ma hè di solitu utilizatu per ottene altri scopi. Inoltre, secondu i risultati di i cuntrolli di salute, l'azzioni esterne à l'altri miri di rete di serviziu ponu esse dumandate: per esempiu, aghjurnà a pagina di statutu, creendu un prublema in GitHub, o compie un bigliettu JIRA. È a rete di serviziu offre un mecanismu convenientu per automatizà tuttu questu.

10. Scacciamentu di carica

TL; DR: Redirige u trafficu in risposta à un piccu tempurale in l'usu.

Se un certu serviziu hè sovraccaricatu cù u trafficu, pudete redirige temporaneamente una parte di stu trafficu à un altru locu (vale à dì, "dump", "trasferimentu" (cabane) ellu quì). Per esempiu, à un serviziu di salvezza o centru di dati, o à un permanente Pulsar tema. In u risultatu, u serviziu hà da cuntinuà à processà alcune richieste invece di crash è piantà di trasfurmà tuttu in tuttu. A liberazione di a carica hè preferibile à rompe u circuitu, ma ùn hè ancu cunsigliatu di abusà. Aiuta à prevene i fallimenti in cascata chì causanu un crash di i servizii downstream.

11. Parallelizazione di u trafficu / mirroring

TL; DR: Mandate una dumanda à parechji posti à una volta.

A volte ci hè bisognu di mandà una dumanda (o una certa selezzione di richieste) à parechji servizii à una volta. Un esempiu tipicu hè di mandà una parte di u trafficu di produzzione à un serviziu di staging. U servitore web principale di produzzione manda una dumanda à u serviziu downstream products.production è solu à ellu. È a rete di serviziu copia in modu intelligente sta dumanda è l'invia à products.staging, chì u servitore web ùn hè ancu cunuscenza.

Un altru casu d'usu di maglia di serviziu cunnessu chì pò esse implementatu nantu à a parallelizazione di u trafficu hè prova di regressione. Implica l'inviu di e stesse dumande à e diverse versioni di u serviziu è verificate se tutte e versioni si cumportanu uguali. Ùn aghju micca ancu scontru una implementazione di maglia di serviziu cù un sistema di prova di regressione integrata cum'è Diffy, ma l'idea stessa pari promettenti.

12. Insulation

TL; DR: Rompe a vostra rete di serviziu in mini-reti.

Hè cunnisciutu ancu cum'è segmentazioneL'isolamentu hè l'arti di dividisce una rete di serviziu in segmenti logicamente distinti chì ùn sanu nunda di l'altri. L'isolamentu hè un pocu cum'è a creazione di rete privata virtuale. A diferenza fundamentale hè chì pudete sempre gode di tutti i benefizii di una rete di serviziu (cum'è a scuperta di serviziu), ma cù una sicurità aghjuntu. Per esempiu, se un attaccu hè capaci di penetrà un serviziu in una subnet, ùn serà micca capaci di vede quale servizii sò in esecuzione in altre subnets o intercepte u so trafficu.

Inoltre, i beneficii ponu ancu esse organizzativi. Pudete vulete subnettà i vostri servizii basati nantu à a struttura di a vostra cumpagnia è alleviate i sviluppatori di a carica cognitiva di avè da mantene in mente tutta a rete di serviziu.

13. Request rate limiting, retry e timeouts

TL; DR: Ùn avete più bisognu di includà i compiti di gestione di e richieste in a vostra basa di codice.

Tutte queste cose puderianu esse cunsiderate casi d'usu separati, ma aghju decisu di cumminà per via di una caratteristica cumuna: ripiglià i travaglii di gestione di u ciclu di vita di a dumanda tipicamente trattati da e biblioteche di l'applicazioni. Sè sviluppate un servitore web in Ruby on Rails (micca integratu cù una rete di serviziu) chì face richieste à i servizii di backend via gRPC, l'applicazione duverà decide ciò chì fà se N richieste fallenu. Avete ancu avè da sapè quantu u trafficu di sti servizii seranu capaci di processà è hardcode sti paràmetri cù una biblioteca speciale. In più, l'applicazione duverà decide quandu hè u tempu di rinunzià è lascià a dumanda fizzle (basatu nantu à u timeout). È per cambià qualcunu di i paràmetri sopra, u servitore web duverà esse firmatu, ricunfiguratu è cuminciatu di novu.

Scaricamentu di sti travaglii in una rete di serviziu significa micca solu chì i sviluppatori di serviziu ùn anu micca bisognu di pensà à elli, ma ancu chì ponu esse visti in una manera più globale. Se si usa una catena cumplessa di servizii, dì A -> B -> C -> D -> E, u ciclu di vita tutale di a dumanda deve esse cunsideratu. Se u compitu hè di allargà i timeouts in u serviziu C, hè logicu per fà questu tuttu in una volta, è micca in parte: aghjurnà u codice di serviziu è aspittendu finu à chì a dumanda di pull hè accettata è u sistema CI implementa u serviziu aghjurnatu.

14. Telemetria

TL; DR: Cullate tutte l'infurmazioni necessarii (è micca abbastanza) da i servizii.

A telemetria hè un termu generale chì include metriche, traccia distribuita è logs. E rete di serviziu offrenu miccanismi per a cullizzioni è u trattamentu di tutti i trè tippi di dati. Hè quì chì e cose diventanu un pocu sfocate perchè u numeru di opzioni pussibuli hè troppu grande. Per cullà metriche ci hè Prometheus è altri arnesi chì ponu esse aduprati per cullà logs fluentd, Loki, Vector è altri. (per esempiu ClickHouse cù u nostru casa di legnu per K8s - ca. trad.), per a traccia distribuita ci hè Jaeger eccetera. Ogni maglia di serviziu pò sustene certi strumenti è micca altri. Serà interessante per vede se u prugettu pò Apertura Telemetria furnisce una certa cunvergenza.

In questu casu, u vantaghju di a tecnulugia di rete di serviziu hè chì i cuntenituri sidecar ponu, in principiu, cullà tutte e dati sopra da i so servizii. In altri palori, avete un sistema di cullizzioni di telemetria unicu à a vostra dispusizione, è a rete di serviziu pò processà tutte queste informazioni in diversi modi. Per esempiu:

  • tail logs da un certu serviziu in a CLI;
  • monitorà u voluminu di e dumande da u dashboard di a rete di serviziu;
  • raccoglie tracce distribuite è trasmette à un sistema cum'è Jaeger.

Attenzione, ghjudiziu subjective: In generale, a telemetria hè una zona in quale una forte interferenza da a rete di serviziu ùn hè micca desiderata. A cullizzioni di l'infurmazioni basi è u seguimentu nantu à a mosca alcune metriche d'oru cum'è a rata di successu di a dumanda è a latenza hè bella, ma speremu chì ùn vedemu micca emergenu pile di Frankenstein chì cercanu di rimpiazzà sistemi specializati, alcuni di i quali anu digià pruvatu è ben studiatu. .

15. Audit

TL; DR: Quelli chì si scurdanu di e lezioni di a storia sò cundannati à ripete.

Auditing hè l'arti di osservà avvenimenti impurtanti in un sistema. In u casu di una rete di serviziu, questu puderia significà u seguimentu di quale hà fattu dumande à punti finali specifichi per servizii specifichi, o quante volte hè accadutu un avvenimentu ligatu à a sicurità in l'ultimu mese.

Hè chjaru chì l'auditu hè assai strettamente ligatu à a telemetria. A diferenza hè chì a telemetria hè di solitu assuciata cù cose cum'è a produtividade è l'integrità tecnica, mentre chì l'auditu pò esse in relazione cù prublemi legali è altri chì vanu fora di l'esfera strettamente tecnica (per esempiu, u rispettu di u GDPR - u Regolamentu Generale di l'UE nantu à a prutezzione di dati).

16. Anteprima

TL; DR: Viva React.js - una fonte inesauribile di interfacce fantastiche.

Ci pò esse un termini megliu, ma ùn sò micca cunnisciutu. Vogliu dì solu una rappresentazione gràfica di una rete di serviziu o di alcuni di i so cumpunenti. Queste visualizazioni ponu include indicatori cum'è latenzi medii, informazioni di cunfigurazione sidecar, risultati di cuntrollu di salute è avvisi.

U travagliu in un ambiente orientatu à u serviziu implica una carica cognitiva assai più altu cumparatu à a Sua Maestà u Monolitu. Dunque, a pressione cognitiva deve esse ridutta à tutti i costi. Una interfaccia grafica simplice per una rete di serviziu cù a capacità di cliccà nantu à un buttone è ottene u risultatu desideratu puderia esse decisivu per a crescita di pupularità di sta tecnulugia.

Ùn sò micca stati inclusi in a lista

Originariamente intendeva include uni pochi di casi d'usu più in a lista, ma poi decisu di ùn fà. Eccu sò, cù i motivi di a mo decisione:

  • Centru multi-dati. In u mo parè, questu ùn hè micca tantu un casu d'usu cum'è un spaziu strettu è specificu di l'applicazione di e rete di serviziu o qualchì settore di funzioni cum'è a scuperta di serviziu.
  • Ingressu è uscita. Questu hè un spaziu cunnessu, ma aghju limitatu (forse artificialmente) à u casu d'usu di "traffico est-ovest". Ingressu è egressu meritanu un articulu separatu.

cunchiusioni

Hè tuttu per avà ! In novu, sta lista hè assai arbitraria è probabilmente incompleta. Se pensate chì aghju mancatu qualcosa o aghju sbagliatu qualcosa, per piacè cuntattatemi in Twitter (@luckerkins). Per piacè rispettate e regule di decenza.

PS da u traduttore

L'illustrazione di u titulu per l'articulu hè basatu annantu à una maghjina di l'articulu "Chì ghjè un Service Mesh (è quandu aduprà unu)?"(da Gregory MacKinnon). Mostra cumu alcune funziunalità da l'applicazioni (in verde) si sò spustate in una rete di serviziu chì furnisce interconnessioni trà elli (in blu).

Leghjite puru nant'à u nostru blog:

Source: www.habr.com