You are on page 1of 7

Scopo del cloud provider?

Disponibilità della risorsa Il provider ha un impegno contrattuale


(Service Level Agreement) nei confronti del cliente.
In percentuale del servizio (e.g. 99,97% di impegno di minuti)
soddisfatti o rimborsati (24h di downtime in un anno)
In servizio maggiore di tipo 99,997% costa di più con un impegno di
downtime minore.
- Usare un server dentro una stanza (rischio incendio e
rotture)
I server per la virtualizzazione vanno dimensionati a picco, ( max
dell’uso stimato possibile) e ne vanno predisposti 2.
● In ridondanza di hardware (2 psu, 2 nic, 2 controller…)
● 2 firewall in ingresso
● 2 ups
- Oppure il cloud

Microservices e container
App e DB su macchine virtuali separate per garantire maggiore
sicurezza

● IAAS
○ (condizionamento, rete elettrica, sicurezza degli
ingressi)
○ Networking e Firewall
○ Hardware
○ Virtual Layer
● PAAS (DB as a Service), (Back-Up as a
Service),(DisasterRecovery as a Service)
○ OS
○ Software
● SAAS
○ Hosted App Software

La maggior parte delle applicazioni sfrutta i database,


Principio dell’ API first
● Web Api (Client Side: Front-end) che r/w su Database (Server
Side:Back-end) tramite HTTP/S che in output dà un JSON
Entity Framework ⇒ Object-relational model

Public Cloud ⇒ Servizi al pubblico


Private Cloud ⇒ Accesso solo agli utenti che decido
Hybrid Cloud ⇒ misto dei precedenti (e.g. Server Posta ; Exchange
Microsoft. Office 365; Word, Excel, Outlook…Licenze Pay per use
SAAS)
● Exchange veniva installato on premise adesso è cloud…
● Le configurazioni vanno migrate gradualmente con la finalità
di avere solo servizi su cloud (e.g non adatto a dispositivi
medicali, meglio on premise per cause perdita di
connessioni)

Region:
● identifica una regione geografica, l’insieme di data
center, interconnessi in fibra ottica proprietaria, (low
latency <0,1 sec) distanti 20/30 Km fra loro.
● Se si deve contenere i dati degli utenti, il GDPR chiede di
salvarli in una zona UE (preferibile più vicina al luogo di
raccolta, ma i servizi virtualizzati possono variare da
set di macchine ad un altro)
● il costo è diverso (elettrico, dimensioni del database)
● Euro-wise ⇒ pago sia le risorse che il traffico
(client-cloud) Il traffico in upload è FREE mentre il
traffico in download è a pagamento
● Fatturato il traffico tra zone differenti, mentre quello
intra-zona non è fatturato (importanza della scelta
della region)

Il cloud è disponibilità del dato non il backup

ALERT! ⇒ Oltrepassare una soglia deve attivare una notifica che


ci avvisa della situazione corrente , oppure in caso di extrema
ratio si può decidere di disattivarla

Quando la macchina virtuale è spenta viene comunque pagata (il


sistema operativo, lo storage e il networking)
Accensione temporizzata (a livello di hypervisor) → (e.g. 8am-8pm)
verrà assegnato un IP diverso.
Un IP statico costa tot €, oppure un DNS univoco in maniera
gratuita.

__________________________________________________________________________

Docker e Kubernetes (K8S)


Docker = software di containerizzazione
Kubernetes = orchestrator di container

I sistemi operativi guest sono fra loro isolati (Green:, Yellow:App


server, Red:Database server)
Overhead delle risorse (e.g. RAM)

L’ OS è installato sull’HW e il container si appoggia al sistema


operativo; il container engine è un sw che gestisce le risorse e le
mette a disposizione a richiesta
Vantaggi:
● Portabilità
● On-demand
○ Come ragiona un container?
■ Filesystem a strati, uno strato immutabile e uno di
r/w

LVC > linux virtualization container (nel kernel da 25 anni)

NEXT > Installare wsl (windows subsystem for linux)


Portare chiavetta con .exe di:
● docker
● visual studio code
○ estensione docker per code
● attivare wsl da servizi di windows

1. [VM] HW>Hypervisor ⇒ non scalabile (dimensionamento a


picco)
2. [CONTAINER] HW>O.S.> Container Engine ⇒ è scalabile
(dipende dall’uso delle app)
a. Un container con all’interno un servizio (microservizi)
i. posso spostare il container (Docker)
ii. e.g. ⇒ il metodo si accende solo all’occorrenza
Docker
Strato server → Docker deamon
Api rest
Client → a riga di comando
Gestione immagini
Container che si collegano
Immagini Docker (Classe) ⇒ modello
● non può essere modificata; è immutabile
Container (Oggetto) ⇒ istanza
I container possono sfruttare le funzionalità del sistema operativo
sottostante
● Modalità (bisogna sceglierne una delle due presenti):
○ Linux (appare switch to Windows Container)
○ Windows (WSL) (appare switch to Linux Container)
Registry container ⇒ il luogo repository dove risiedono le
immagini dei container ⇒ Docker Hub
● cache immagini ⇒ locale
○ fa una richiesta verso Docker Hub (default) e scarica
l’immagine (operazione di pull)
■ il container deve essere leggero (meno vulnerabile)
● i container sono volatili (perdita di dati)
:come si salvano i dati?
docker run hello-world = creo un container (immagine hello-world)
● pull di hello-world:latest (:latest = tag) da docker hub
● digest ⇒ verifica del file

Union file system ⇒ docker abbrevia i tempi di scarica delle


immagine che estensioni ha l’immagine?

Il comando CMD → docker run


1. pull (scarico l’immagine)
2. create (crea il container)
3. start (avvia il container)

Alpine (7Mb) si appoggia su wsl per eseguire i comandi


con il run
● docker :
○ copy ⇒ copiare file tra cartelle
○ build ⇒ crea un immagine dal file di configurazione
(Dockerfile) che gli diamo; è uno IAAC (infrastructure as
as code), può essere custom, gli diamo una porta in
ascolto
○ \ <backslash> esegue vari comandi di fila
■ il devops (sistemista che fa script di codice)

I layer delle immagini sono immutabili (sola lettura), il layer è


acceso al top
Quando il processo __main__(entry point o cmd) è concluso, si
chiude il container ⇒ Exited, finchè il main è attivo il container
rimane aperto

Kubernetes = orchestra i pod

THIS IS THE TOP : [un pod, un container un servizio]

Union Filesystem di docker

● Libro con argomento docker


○ Docker: sviluppare e rilasciare software tramite
container

Layer del container (r/w)


Layer di immagine (read only)

Avvio di istanza di uno stesso layer container


Comandi di docker:
● ps (tutti i container con lo stato attivo)
● ps -a (tutti anche se non attivi; Exited)
● docker run -- name hello_html_it hello_world
○ crea hello_html_it ⇒ crea container e lo avvia
● -d crea un container in background che contiene i logs da
un immagine specificata per leggere gli errori
● -i , -t (-it) docker run ubuntu -it /bin/bash
○ scarica, crea, avvia e entra nella shell root@_id__:/#
(status Running) in modalità interattiva
○ exit (esce dalla shell e chiude il container)
○ CTRL +P +Q esci dalla shell ma rimane attivo
○ docker attach <ID_Container> per rientrare nella shell
(prime 5 cifre o lettere)
■ i file devono essere salvati su un volume
persistente per essere disponibili agli utenti,
altrimenti il container una volta cancellato non
sarà possibile recuperare i dati
● docker rm (elimina il container ) --force (se è Running)
● docker start -i (riattiva con l’id)
● dentro la root il comando ls visualizza le cartelle
● flag -v al comando docker run con la specifica del percorso
tra container e cartella del S.O.
○ docker run -it -v C/Users/maggioli/Desktop/DV:/logs
ubuntu /bin/bash
■ cd logs (sposa il logs)
■ touch pippo.txt (crea file)

Data volume ⇒ ponte tra file system del container e il sistema


operativo sottostante (sia di rete che cloud)

Cartelle di condivisione di rete:


● nfs (linux)
● smb (windows)

Il processo con PID 1 è il main, che determina se concluso, la fine


del container

docker top ⇒ …

You might also like