SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
La nostra infrastruttura di produzione
Un’esperienza concreta in un contesto di produzione
Filippo Bosi
fbosi
@imolainformatica.it
Vincenzo Laudizio
vlaudizio
@imolainformatica.it
Gabriele Morlini
gmorlini
@imolainformatica.it
2
Situazione precedente
• Quantitàconsiderevoledi risorse non dedicateai servizi
• Staticitàdell’infrastruttura
• Backup voluminosi
• Non riproducibilità
• Dilatazionedei tempi
• Attivitàmanuali
Produzione
Imola
Enterprise Management
Tools
Virtualization Layer
VM
Servizio X
VM
Servizio Y
...
VM
Servizio Z
VM
Reverse Proxy
Limiti:
3
Attività ed Obiettivi
Outsourcing dell’infrastruttura di
produzione
• Presidio 24/7
• Affidabilità
• Prestazioni
• Sicurezza
Transitorio senza soluzione di
continuità
Abbattimento dei costi di esercizio
Svecchiamento Tecnologico
Indipendenza dal fornitore
dell’infrastruttura
• Cloud first
Opensource
Disaster Recovery
Backup in-house
4
Svecchiamento Tecnologico
Problematiche riscontrate:
• Eterogeneità delle VM e vincoli
• Mismatch tra l’installato e le immagini
pubbliche
• Migrazione dei dati
• Processo di rilascio
• Governo e monitoraggio
Migrazione a Container (N Stack tecnologici differenti):
• Estendibilità & Versionamento
• Più efficienti rispetto VM
• Maggiore densità
• Flessibilità & Elasticità
5
Principi
• Stack isolati ed Autocontenuti → Suddivisione netta programma da dati (stato)
• Upgrade di versione automatici → Vincoli su Applicazione e Processo
• Affidabilitàe DR dei servizi piuttosto che ridondanza → Facile replicare ambiente
Terminologia:
Stack → insieme di componenti che
permettono erogazione servizio
Stato:
• Parametri di configurazione delle
Componenti
• Dati dell'applicazione
➢ Unico per stack (e ambiente)
Vincoli:
▪ Applicazione in grado di aggiornare la
propria base dati in maniera automatica
▪ Processo (Sistema) in grado di gestire
eventuali cambi di configurazione:
▪ Immagini parametriche
▪ Inclusione automatismi
▪ Possibilità di fare cloni e snapshot
6
Gestione e Orchestrazione
Perchè Rancher:
• Effort minimo per definizione di uno stack
(docker-compose)
• Semplifica:
• Gestione rete
• Accesso e monitoraggio container
• API Rest «pronte all’uso»
Orchestratore infrastrutturale
• Versione 1.6
Architettura Master-Slave
Concetti ed Astrazioni:
• environment:raggruppamenti di risorse
• service: unità di deploy -> un container
• stack: un gruppo di servizi ( tramite docker-
compose)
• catalog: repository di stack pronti all’uso
• gli application stacks
• gli infrastructure services
7
Definizione Stack – Docker Compose
Descrive:
▪ Versione servizi
▪ Dipendenze tra servizi
▪ Parametri di configurazione
servizi
▪ Legame Volumi (stato)dei servizi
e volumi su Host
https://docs.docker.com/compose/
Possibile utilizzo in Locale e Remoto (tramite Rancher)
Isolamento di rete fra stack applicativi distinti
Agent
docker-compose.yml
services:
tcp 80 tcp 5432
/var/opt/gitlab
Volumes
/etc/gitlab
postgres
gitlab
/var/lib/
postgresql/data
link
VM
Master
Datacenter
Imola
IaaS (X)
11
Gestione Stato
→ OpenZFS
• Creazione Snapshot
• Cloni da Snapshot
• Trasferimento di Snapshot
• Disaccoppiamentofra datasete
device
• Supporta crittografia
Esigenza:
• Ottimizzazione spazio disco
• File System Sicuro e Versatile
Agent
dev dev
...dataset dataset
zpool
/var/opt/gitlab
volumes:
/etc/gitlab
postgres
gitlab
/var/lib/
postgresql/data
link
Stack
ZFS
12
ZnapZend 1
• Tool per l’automazione di
procedure ZFS
• Creazione Snapshot
• Invio remoto
• Retention policy (locale &
remota)
Backup
Esigenza
Backup remoto
non invasivo
1 https://github.com/oetiker/znapzend
Agent dev dev
...dataset dataset
zpool
/var/opt/gitlab
volumes:
/etc/gitlab
postgres
gitlab
/var/lib/
postgresql/data
link
ZFS
VM
dev dev
...dataset dataset
zpool
ZFS
DataCenter
Imola
IaaS (X)
DataCenter
R&D Imola
dev dev
...dataset dataset
zpool
ZFS
•Intervallo di creazione Snapshot
•Destinazioni remote
•Retention policy (locale & remoto)
13
VM
Master
Datacenter
Imola
Agent
Stack
tcp 80
Volumes
postgres
redmine
link
IaaS (X)
rancher-compose rancher-compose
Agent
Stack
tcp 80
Volumes
postgres
redmine
link
docker-compose.yml
Versionamento
• Git (Codice)
• Registry Gitlab (Artefatti)
Build & Delivery Servizi
• Jenkins e Gitlab CI/CD (Automazione)
• Docker e Pipeline (Riproducibilità)
Build & Delivery Infrastrutturale
• Ansible (Riproducibilità)
Gestione Ambienti
• Outsourcing+ DR (Produzione)
• Imola/Outsoucing(Test)
• Locale (Sviluppo)
Processo & Servizi a supporto
14
Build & Delivery Infrastrutturale - Ansible
VM
VM
...
VM
IaaS (X) IaaS (Y)
DataCenter
Imola
Mgmt
Node
Playbooks
Host
Inventory
RANCHER
Agent
RANCHER
Agent
RANCHER
Master
RANCHER
Agent
RANCHER
Agent
RANCHER
Agent
Playbook Ansible per:
• Setup Docker-engine
• Setup e configurazione Rancher
• Ruoli
Limite: Prima configurazione manuale
✓ IaaS (Utenze/Chiavi per accesso ssh)
✓ Nodo di Gestione Ansible con visibilità di rete
totale
15
Esposizione su internet - Proxy
Reverse Proxy a Container
➢ Unico punto di accesso Internet per Nodo /
DataCenter / Region
➢ Terminatore SSL
+PLUS nel processo di Automazione
➢ Utilizzo di Rancher Active Proxy 1
• Reverse Proxy su base NGINX
• Analisi Dinamica dei Servizi per la
costruzione della tabella di routing
• Utilizzo delle label associate ai servizi per
indicare i virtual host
Agent
Stack
tcp 80 tcp 5432
link
Stack
tcp 443
Volumes
rap
/etc/nginx/certs
tcp 443
https://git.imolinfo.it
git.imolinfo.it
1 https://github.com/adi90x/rancher-active-proxy
16
Esposizione su internet – Sistema di nomi
CloudFlare DNS
➢ Esposizione di API per il governo
remoto del DNS
+PLUS nel processo di Automazione
➢ Utilizzo del Servizio CloudFlare DNS
fornito dal Catalog di Rancher1
• Analisi Dinamica dei Servizi per la
registrazione dei record su DNS
• Label dei Servizi
per indicare il dominio
1 https://github.com/rancher/community-catalog
Agent
Stack
tcp 80 tcp 5432
link
Stack
tcp 443
Volumes
rap
/etc/nginx/certs
tcp 443
git.imolinfo.it
https://git.imolinfo.it
«resolve»
git.imolinfo.it
81.208.42.178
«access»
Stack
«bind»
2
1 3
git.imolinfo.it :=81.208.42.178
17
Disaster Recovery
Allineamento tramite ZnapZend
Volumi allineati a ultimo snapshot
Switch DNS
Cloudflare
Agent dev dev
...dataset dataset
zpool
/var/opt/gitlab
volumes:
/etc/gitlab
postgres
gitlab
/var/lib/
postgresql/data
link
ZFS
Datacenter
ImolaIaaS (X)
VM
Agent
dev dev
...dataset dataset
zpool
/var/opt/gitlab
Volumes
/etc/gitlab
postgres
gitlab
/var/lib/
postgresql/data
link
Stack
ZFS
18
Monitoraggio
Risorse Servizi
http
Spazio
disco
Cpu … Alert Mail SMS …
...
RANCHERAgent
Agent
...
RANCHERAgent
Agent
IaaS (X) IaaS (Y)
Datacenter
Imola
VM
Server
...
RANCHERAgent
Agent
VM
... ...
......
19
Migrazione
• Completare per tutti servizi esistenti
• Utilizzo diversi Datacenter
• Migrazione non invasiva del
Rancher Master
• Automazione configurazione di
rete
Architettura
• Gestione centralizzata log ed eventi
• Test automatici dei servizi
• Centralizzazione configurazioni ZFS
• Block device distribuito e storage
distribuito
Sicurezza
• Analisi di sicurezza proattiva
• Crittografia su ZFS
What’s Next
Grazie
Domande?
www.twitter.com/imolinfo
www.facebook.com/imolinfo
www.linkedin.com/company/imola-informatica
Imola Informatica S.P.A.· via Selice 66/a · Imola (BO)
www.imolainformatica.it - blog.imolainformatica.it

Contenu connexe

Tendances

Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304VMUG IT
 
Architettura VoIP con FreeSWITCH + gazzurbo
Architettura VoIP con FreeSWITCH + gazzurboArchitettura VoIP con FreeSWITCH + gazzurbo
Architettura VoIP con FreeSWITCH + gazzurboAlessandro Antani
 
Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...
Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...
Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...VMUG IT
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio CodeRoberto Messora
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?VMUG IT
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentalsmvetro
 
Smau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'ItriSmau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'ItriSMAU
 
Meetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e KubernetesMeetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e Kubernetesdotnetcode
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiwalk2talk srl
 
#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1Andrea Mauro
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzionegiacomos
 

Tendances (15)

Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304
 
Architettura VoIP con FreeSWITCH + gazzurbo
Architettura VoIP con FreeSWITCH + gazzurboArchitettura VoIP con FreeSWITCH + gazzurbo
Architettura VoIP con FreeSWITCH + gazzurbo
 
Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...
Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...
Dai tradizionali SAN e NAS allo Storage VM-aware: come Clouditalia ha evoluto...
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentals
 
Smau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'ItriSmau Milano 2016 - Seeweb, Marco d'Itri
Smau Milano 2016 - Seeweb, Marco d'Itri
 
Apcamp
ApcampApcamp
Apcamp
 
Meetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e KubernetesMeetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e Kubernetes
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
 
Domino Backup, Restore E Disaster Recovery
Domino Backup, Restore E Disaster RecoveryDomino Backup, Restore E Disaster Recovery
Domino Backup, Restore E Disaster Recovery
 
#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1
 
Docker
Docker Docker
Docker
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzione
 

Similaire à La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS

Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaYashi Italia
 
Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Giuliano Latini
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiAndrea Dottor
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1Alfonso Martino
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Meet Magento Italy
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsMikhail Zakharenko
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
 
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma SoftlayerServiceCloud - Esprinet
 
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud ComputingCloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computingfestival ICT 2016
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalGiuliano Latini
 

Similaire à La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS (20)

Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazione
 
Servizio di Connettività d'Ateneo - Network and services provisioning automation
Servizio di Connettività d'Ateneo - Network and services provisioning automationServizio di Connettività d'Ateneo - Network and services provisioning automation
Servizio di Connettività d'Ateneo - Network and services provisioning automation
 
Fmdp Total System Monitor
Fmdp Total System MonitorFmdp Total System Monitor
Fmdp Total System Monitor
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costs
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
 
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
 
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud ComputingCloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
Cloud Computing reale: le basi, il presente ed il futuro del Cloud Computing
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposal
 

La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS

  • 1. La nostra infrastruttura di produzione Un’esperienza concreta in un contesto di produzione Filippo Bosi fbosi @imolainformatica.it Vincenzo Laudizio vlaudizio @imolainformatica.it Gabriele Morlini gmorlini @imolainformatica.it
  • 2. 2 Situazione precedente • Quantitàconsiderevoledi risorse non dedicateai servizi • Staticitàdell’infrastruttura • Backup voluminosi • Non riproducibilità • Dilatazionedei tempi • Attivitàmanuali Produzione Imola Enterprise Management Tools Virtualization Layer VM Servizio X VM Servizio Y ... VM Servizio Z VM Reverse Proxy Limiti:
  • 3. 3 Attività ed Obiettivi Outsourcing dell’infrastruttura di produzione • Presidio 24/7 • Affidabilità • Prestazioni • Sicurezza Transitorio senza soluzione di continuità Abbattimento dei costi di esercizio Svecchiamento Tecnologico Indipendenza dal fornitore dell’infrastruttura • Cloud first Opensource Disaster Recovery Backup in-house
  • 4. 4 Svecchiamento Tecnologico Problematiche riscontrate: • Eterogeneità delle VM e vincoli • Mismatch tra l’installato e le immagini pubbliche • Migrazione dei dati • Processo di rilascio • Governo e monitoraggio Migrazione a Container (N Stack tecnologici differenti): • Estendibilità & Versionamento • Più efficienti rispetto VM • Maggiore densità • Flessibilità & Elasticità
  • 5. 5 Principi • Stack isolati ed Autocontenuti → Suddivisione netta programma da dati (stato) • Upgrade di versione automatici → Vincoli su Applicazione e Processo • Affidabilitàe DR dei servizi piuttosto che ridondanza → Facile replicare ambiente Terminologia: Stack → insieme di componenti che permettono erogazione servizio Stato: • Parametri di configurazione delle Componenti • Dati dell'applicazione ➢ Unico per stack (e ambiente) Vincoli: ▪ Applicazione in grado di aggiornare la propria base dati in maniera automatica ▪ Processo (Sistema) in grado di gestire eventuali cambi di configurazione: ▪ Immagini parametriche ▪ Inclusione automatismi ▪ Possibilità di fare cloni e snapshot
  • 6. 6 Gestione e Orchestrazione Perchè Rancher: • Effort minimo per definizione di uno stack (docker-compose) • Semplifica: • Gestione rete • Accesso e monitoraggio container • API Rest «pronte all’uso» Orchestratore infrastrutturale • Versione 1.6 Architettura Master-Slave Concetti ed Astrazioni: • environment:raggruppamenti di risorse • service: unità di deploy -> un container • stack: un gruppo di servizi ( tramite docker- compose) • catalog: repository di stack pronti all’uso • gli application stacks • gli infrastructure services
  • 7. 7 Definizione Stack – Docker Compose Descrive: ▪ Versione servizi ▪ Dipendenze tra servizi ▪ Parametri di configurazione servizi ▪ Legame Volumi (stato)dei servizi e volumi su Host https://docs.docker.com/compose/ Possibile utilizzo in Locale e Remoto (tramite Rancher) Isolamento di rete fra stack applicativi distinti Agent docker-compose.yml services: tcp 80 tcp 5432 /var/opt/gitlab Volumes /etc/gitlab postgres gitlab /var/lib/ postgresql/data link VM Master Datacenter Imola IaaS (X)
  • 8. 11 Gestione Stato → OpenZFS • Creazione Snapshot • Cloni da Snapshot • Trasferimento di Snapshot • Disaccoppiamentofra datasete device • Supporta crittografia Esigenza: • Ottimizzazione spazio disco • File System Sicuro e Versatile Agent dev dev ...dataset dataset zpool /var/opt/gitlab volumes: /etc/gitlab postgres gitlab /var/lib/ postgresql/data link Stack ZFS
  • 9. 12 ZnapZend 1 • Tool per l’automazione di procedure ZFS • Creazione Snapshot • Invio remoto • Retention policy (locale & remota) Backup Esigenza Backup remoto non invasivo 1 https://github.com/oetiker/znapzend Agent dev dev ...dataset dataset zpool /var/opt/gitlab volumes: /etc/gitlab postgres gitlab /var/lib/ postgresql/data link ZFS VM dev dev ...dataset dataset zpool ZFS DataCenter Imola IaaS (X) DataCenter R&D Imola dev dev ...dataset dataset zpool ZFS •Intervallo di creazione Snapshot •Destinazioni remote •Retention policy (locale & remoto)
  • 10. 13 VM Master Datacenter Imola Agent Stack tcp 80 Volumes postgres redmine link IaaS (X) rancher-compose rancher-compose Agent Stack tcp 80 Volumes postgres redmine link docker-compose.yml Versionamento • Git (Codice) • Registry Gitlab (Artefatti) Build & Delivery Servizi • Jenkins e Gitlab CI/CD (Automazione) • Docker e Pipeline (Riproducibilità) Build & Delivery Infrastrutturale • Ansible (Riproducibilità) Gestione Ambienti • Outsourcing+ DR (Produzione) • Imola/Outsoucing(Test) • Locale (Sviluppo) Processo & Servizi a supporto
  • 11. 14 Build & Delivery Infrastrutturale - Ansible VM VM ... VM IaaS (X) IaaS (Y) DataCenter Imola Mgmt Node Playbooks Host Inventory RANCHER Agent RANCHER Agent RANCHER Master RANCHER Agent RANCHER Agent RANCHER Agent Playbook Ansible per: • Setup Docker-engine • Setup e configurazione Rancher • Ruoli Limite: Prima configurazione manuale ✓ IaaS (Utenze/Chiavi per accesso ssh) ✓ Nodo di Gestione Ansible con visibilità di rete totale
  • 12. 15 Esposizione su internet - Proxy Reverse Proxy a Container ➢ Unico punto di accesso Internet per Nodo / DataCenter / Region ➢ Terminatore SSL +PLUS nel processo di Automazione ➢ Utilizzo di Rancher Active Proxy 1 • Reverse Proxy su base NGINX • Analisi Dinamica dei Servizi per la costruzione della tabella di routing • Utilizzo delle label associate ai servizi per indicare i virtual host Agent Stack tcp 80 tcp 5432 link Stack tcp 443 Volumes rap /etc/nginx/certs tcp 443 https://git.imolinfo.it git.imolinfo.it 1 https://github.com/adi90x/rancher-active-proxy
  • 13. 16 Esposizione su internet – Sistema di nomi CloudFlare DNS ➢ Esposizione di API per il governo remoto del DNS +PLUS nel processo di Automazione ➢ Utilizzo del Servizio CloudFlare DNS fornito dal Catalog di Rancher1 • Analisi Dinamica dei Servizi per la registrazione dei record su DNS • Label dei Servizi per indicare il dominio 1 https://github.com/rancher/community-catalog Agent Stack tcp 80 tcp 5432 link Stack tcp 443 Volumes rap /etc/nginx/certs tcp 443 git.imolinfo.it https://git.imolinfo.it «resolve» git.imolinfo.it 81.208.42.178 «access» Stack «bind» 2 1 3 git.imolinfo.it :=81.208.42.178
  • 14. 17 Disaster Recovery Allineamento tramite ZnapZend Volumi allineati a ultimo snapshot Switch DNS Cloudflare Agent dev dev ...dataset dataset zpool /var/opt/gitlab volumes: /etc/gitlab postgres gitlab /var/lib/ postgresql/data link ZFS Datacenter ImolaIaaS (X) VM Agent dev dev ...dataset dataset zpool /var/opt/gitlab Volumes /etc/gitlab postgres gitlab /var/lib/ postgresql/data link Stack ZFS
  • 15. 18 Monitoraggio Risorse Servizi http Spazio disco Cpu … Alert Mail SMS … ... RANCHERAgent Agent ... RANCHERAgent Agent IaaS (X) IaaS (Y) Datacenter Imola VM Server ... RANCHERAgent Agent VM ... ... ......
  • 16. 19 Migrazione • Completare per tutti servizi esistenti • Utilizzo diversi Datacenter • Migrazione non invasiva del Rancher Master • Automazione configurazione di rete Architettura • Gestione centralizzata log ed eventi • Test automatici dei servizi • Centralizzazione configurazioni ZFS • Block device distribuito e storage distribuito Sicurezza • Analisi di sicurezza proattiva • Crittografia su ZFS What’s Next
  • 18. www.twitter.com/imolinfo www.facebook.com/imolinfo www.linkedin.com/company/imola-informatica Imola Informatica S.P.A.· via Selice 66/a · Imola (BO) www.imolainformatica.it - blog.imolainformatica.it