Capitolo 4. Modelli Cloud Native
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
Il progresso è possibile solo se ci alleniamo a pensare ai programmi senza considerarli come pezzi di codice eseguibile.1
Edsger W. Dijkstra, agosto 1979
Nel 1991, mentre era ancora alla Sun Microsystems, L Peter Deutsch2 formulò il documento Fallacies of Distributed Computing, che elenca alcune delle false ipotesi che i programmatori nuovi (e non) alle applicazioni distribuite spesso fanno:
-
La rete è affidabile: gli switch si guastano, i router non sono configurati correttamente.
-
La latenza è pari a zero: ci vuole tempo per spostare i dati attraverso una rete.
-
La larghezza di banda è infinita: una rete può gestire solo una certa quantità di dati alla volta.
-
La rete è sicura: non condividere i segreti in chiaro; cripta tutto.
-
La topologia non cambia: i server e i servizi vanno e vengono
-
C'è un solo amministratore: più amministratori portano a soluzioni eterogenee
-
Il costo del trasporto è pari a zero: spostare i dati costa tempo e denaro
-
La rete è omogenea: ogni rete è (a volte molto) diversa dall'altra.
Se posso essere così audace, vorrei aggiungere anche un nono punto:
-
I servizi sono affidabili: i servizi da cui dipendi possono fallire in qualsiasi momento.
In questo capitolo presenterò una selezione di pattern idiomatici - paradigmi di sviluppo testati e collaudati - progettati per ...