Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
NAT
I container possono:
- condividere lo stesso IP che appartiene all’host
- Ricevere un nuovo IP ciascuno 7 of 16
fi fi fi fi fi fi fi fi fi fi fi fi fi fi fi fi ffi fi
Oppure usare address translation, che permette a più computer di condividere lo stesso IP. Con i
Container inizia l’esecuzione,
container, il NAT software viene eseguito nel SO host. richiede
NAT software risponde assegnandogliene uno da un set riservato e privato di
indirizzo IP, il
indirizzi IP che non possono essere usati sull’internet. intercetta tutti i pacchetti
NAT
uscenti, e rimpiazza i singoli IP con l’IP dell’host OS., poi invia il pacchetto.
Quando arriva una risposta, NAT rimpiazza l’indirizzo host con l’indirizzo privato assegnato al
container, e inoltra la risposta a quel container.
Permette a più container di condividere un IP, allo stesso modo in cui un hotspot o wi permette
di farlo tra più dispositivi connessi.
Automated network con guration and operation
Con gurare e cientemente migliaia di switch e interconnessioni.
- Spanning tree protocol: data center fanno il broadcast di un pacchetto
- Standard routing protocols: Open shortest path rst, software de ned networking (speci ca
high level policies)
Virtual storage - 8
Un disco fornisce un’interfaccia basata sui blocchi, l’hardware può recuperare o salvare blocchi di
dati di dimensione ssa.
Modulo del SO chiamato le system che serve agli utenti e applicazioni per interrogarlo per
andare a creare o manipolare le (open, Close, read, write, seek).
Due tipi di sistemi di Storage remoto
- byte oriented remote le access: equipaggiare un server con un disco dove viene eseguito un
SO con un le system. Usare dei software in ciascun workstation per manipolare i le. Il SO
utente invia una richiesta al server che esegue operazioni sui le.
Uno dei primi sistemi per accessi al le system da remoto era NFS network le system,
diventato uno standard di rete. NFS integra i le remoti nello Storage locale utente, cioè alcune
cartelle locali corrispondono a quelle nel le system remoto.
- Block oriented remote disk access: diskless workstation, non hanno uno storage locale.
NAS
Network access workstation.
- host-based : ogni computer con un server software può diventarlo. È un computer con network
access, direttamente collegato con uno Storage locale e un software che gestisce le richieste
che arrivano dalla rete.
- Server-based : usano hardware server ad alta velocità, migliora l’host based.
NAS, l’hardware e software sono ottimizzati per alte performance, forniscono un le Storage
system scalabile remoto adatto ai data center.
Per migliorare la durabilità si può usare parallelismo e ridondanza -> RAID
Vantaggio: l’e ettivo le system risiede nel server NAS, quindi solo i le di dati passano nella rete,
il server mantiene i metadati (es: directories e inode)
Svantaggi: ogni OS de nisce un proprio tipo di le system, ogni NAS è naturalmente legato a un
particolare SO. L’utente quindi può usare solo SO che sono compatibili con NAS le system.
SAN
Vantaggi: lavora con qualunque SO. Integer per identi care i blocchi fa si che il mapping tra i
blocchi del client su un blocco del disco locale diventi molto e ciente.
Virtual disks
Mappa come usare i singoli blocchi di memoria da assegnare. Blocchi allocati a un’entità possono
anche essere su un singolo dico di un server o distribuiti su più server. 8 of 16
fi fi ffi
ff fi fi fi fi fi fi fi fi fi fi fi fi fi fi ffi fi fi fi fi fi fi fi fi
Automation - 9
Bisogno di automazione in un data center
- extreme scale. : un provider deve accogliere migliaia di utenti, alcuni individui, altri Enterprise,
che a loro volta possono rilasciare migliaia i container o VM
- Diverse services : un cloud data center provider fa scegliere i software e servizi da eseguire.
Run di migliaia di servizi di erenti allo stesso momento
- Constant change. : un provider deve gestire dinamicamente richieste di cambiamenti, con un
tempo di risposta pari al carico della modi ca. (Caso estremo: un nuovo tenant, vanno migrati
tutti i suoi dati)
- Human error. : molti problemi hanno questa causa
Es: deploy di una VM:
1. Scegliere un server dove eseguirla
2. Con gura hypervisor sul server per eseguire le VM
3. Assegna IP alla VM
4. Con gura network per inoltrare pacchetti alla VM (es: VXLAN)
5. Scegli un remote disk server e alloca Storage per la VM
6. Con gura hypervisor per inviare richieste dalla Vm allo Storage del server
Questo può essere automatizzato.
Cosa può essere automatizzato:
- creazione e rilascio di risorse virtuali
- Workload
- Ottimizzazioni
- Safety and recovery
- Software update and upgrade
Livelli di automazione
0. No automation
1. Preparazione e con gurazione
2. Monitoring e misurazioni
3. Analisi e trend Prediction
4. Identi cazoni di cause alla radice
5. Risoluzioni di problemi
Livello 3 e superiori possono usare ML. -> Alops Arti cial intelligence operations
Kubernetes tools per gestire rilasci di containerized software, controllare
: forniscono per
comunicazioni di rete tra containers. Assegnano di default un IP ad ogni gruppo di
container, Pod.
chiamato Permette a gruppi di container di comunicare ed eseguire microservizi,
anche se il container sta su più server.
Docker : usa un approccio con un layer virtuale che fa da bridge per le comunicazioni tra
container.
Orchestration, automated replication and parallelism - 10
Containers:
- rapid creation : I container hanno molto meno overhead e quindi ci vuole meno tempo per
crearli rispetto alle VM
- Short lifetime : una Vm rimane semi permanente una volta creata, un container è e mero. Un
container assomiglia a un processo: è creato quando serve, esegue un Application task e poi
esce. 9 of 16
fi
fi
fi fi fi ff fi fi ffi
- Replication : quando aumenta la richiesta per un servizio, più container per quel servizio
vengono creati ed eseguiti simultaneamente. Al contrario quando avviene una minor richiesta, i
container vengono terminati.
Orchestration ->. Sistema automatico che coordina sotto sistemi: con gura, rilascia, opera,
monitoraggio.
Orchestration
- scaling dinamico dei servizi : fa partire più copie di un container in esecuzione e controlla la
richiesta. Quando questa cresce incrementa le copie simultanee, quando decresce termina
quelle inutilizzate
- Coordinazione tra più server : rilascia copie di container su più server sici -> load balancing
- Resilience and automatic recovery : può fare il restart di container che hanno problemi
Container Orchestration System
Kubernetes (K8s) è un esempio di
Kubernetes
Gestiscono molti aspetti dei servizi in esecuzione.
- service naming and discovery : permette a un servizio di essere acceduto (da applicazioni)
attraverso un dominio e un IP (con gurati per essere globali, accedibili da app esterne al data
center)
- Load balancing : servizio non limitato un solo server sico, ma con elevato tra co, più copie
del container per un determinato servizio sono distribuite
- Storage orchestration
- Optimized container placement : quando si crea un servizio, vengono speci cati gruppi
nodi)
(cluster) di server (chiamati che Kubernetes può usare per eseguire container per quel
servizio.
- Automated recovery : Kubernetes automaticamente rimpiazza container che hanno errori e
non sono pronti per eseguire un servizio
- Automated rollouts and rollbacks : permette di fare il roll out di nuove versioni di un servizio
con una frequenza speci cata. Utente crea nuova versione dell’immagine del container e
chiede a Kubernetes di andare a rimpiazzare i container in esecuzione con la nuova versione.
Permette ai nuovi container di ereditare risorse dei vecchi container.
Kubernetes cluster model
Conceptual mode, chiari ca lo scopo complessivo del sistema Kubernetes.
Cluster: insieme di containers
descrive un con il software usato per creare, operare e accedervi.
Può aumentare o diminuire il numero dei container in base alle necessità.
Due tipi di Software nel container: proprietario
invocato dal per creare e operare container,
dall’utente
invocato per ottenere accesso al container.
Utenti accedono ai singoli container nel cluster, il proprietario usa il software per creare e operare
il cluster.
Kubernetes Pods
Paradigma microservizi: suddividere l’app in più pezzi autonomi eseguiti ciascuno in un
container, essi sono progettati per lavorare insieme (strettamente accoppiati) comunicando
attraverso la rete.
Pod la più piccola unità di
: si riferisce a un’applicazione, costituito da uno o più container. È
lavoro che può essere rilasciata da Kubernetes. Quando rilasciato, kubernets assegna tutti i
container nel pod nello stesso nodo.
Assegna un IP ad ogni Pod in esecuzione, ogni container nel pod condivide lo stesso indirizzo.
La comunicazione tra containers nel pod avviene con comunicazione di interfaccia di rete
localhost, come se fossero processi eseguiti nello stesso computer.
Kubernetes : nodes and control plane
Quando il proprietario crea un cluster speci ca quali nodi possono eseguirlo, e Kubernets
distribuisce i container nel cluster su questi nodi. 10 of 16
fi
fi fi fi fi fi fi fi ffi
Control plane : componenti software usati per creare ed operare containers
Master node : nodo dove viene eseguito il control plane
Kbernetes features
- replicas : il proprietario può speci care quante repliche di un pod possono esserci, per
controllare la scalabilità di un’applicazione
MapReduce Paradigm - 11
Cloud native vs conventional software
Bene ci cloud native:
- Migliore sicurezza
- Ridotti difetti software
- Migliori performance
- Aumento di scalabilità
- Maggiore a dabilità
Uso di data center servers per parallel processing
Usare parallelismo per risolvere problemi singoli:
- Partitioning: suddivisione di un problema in sotto problemi gestibili separatamente
- Parallel computation: processori lavorano simultaneamente a diverse parti del problema,
essendoci migliaia di processori, il tempo di esecuzione si riduce drasticamente
- Combination of results
Limiti:
- Alcuni problemi possono non essere facilmente divisi
- Un eccesso di granularità del problema diventa inutile
- Maggiore costo di risorse
- Competizione su database
- Overhead nella comunicazione
MapReduce paradigm
Rimpiazza lo step di combinazione dei risultati con un insieme di processori in parallelo, ognuno
che combina 1 k-esimo dei risultati.
Map: esecuzione della computazione nel primo set di processori
Shu e: redistribuzione dei dati in un secondo set di processori<