DBaaS con Docker: un caso di studio - Michelangelo Uberti, Marketing Analyst - Par-Tec S.p.A.
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Par-Tec e Red Hat: 10 anni di successi
Par-Tec è un software & infrastructure system integrator che si distingue per:
• la proposizione al mercato di servizi professionali altamente qualificati e soluzioni innovative
• il rispetto degli standard e l’adozione di tecnologie open source
L’avventura col cappello rosso è iniziata 10 anni fa con l’adozione del GFS, la
specializzazione su RHEL e l’evoluzione verso il middleware e la più recente Cloud
Infrastructure.
Il nostro attuale rapporto con Red Hat?
Red Hat Premier Business Partner con specializzazione Datacenter InfrastructureDB-as-a-Service: la semplicità del concept L’idea d el Cliente (correva l’anno 2012…) Offrire un servizio di database remoto che garantisse: • accesso via internet mediante strumenti e protocolli standard • condivisione multi-tenant delle risorse computazionali • gestione dell’infrastruttura centralizzata I macro-obiettivi d el p rogetto Semplicità Provisioning Accesso v ia console Fatturazione Orientato alla d’uso immediato web e client TCP Flat e Pay-per-use ( to be) vendita massiva
I possibili approcci: Single vs. Multi-instance
Single-instance Multi-instance
1 istanza : 1 VM n istanze : 1 VM
• Controllo completo di OS e DBMS. • Semplicità di gestione da parte dell’utilizzatore finale.
• Dimensionamento puntuale della VM. • Nessun onere relativo al patch mgmt, backup, etc.
• Estremamente personalizzabile dal • Tempi e costi di provisioning ridotti.
PRO
punto di vista applicativo. • Fruizione via web e client SQL compatibile.
• Adatto a chi dispone delle competenze • Fatturazione Flat e (in futuro) Pay-per-use.
interne. • Orientato alla vendita massiva.
• Inadatta ad utenti privi di competenze • Inadatto ad utenti che richiedono configurazioni fuori
sistemistiche. standard.
• Il servizio è più esposto a rischi di • Inizialmente non prevedeva configurazioni in HA e
CONTRO
sicurezza legati alla gestione da parte replica.
dell’utente finale.
• Richiede una VM per ogni Cliente.I possibili approcci: perché non usare Trove?
“ Trove is Database as a Service for OpenStack. It's designed to run entirely on
OpenStack, with the goal of allowing users to quickly and easily utilize the features
of a relational or non-relational database without the burden of handling complex
”
administrative tasks.
Perché reinventare l’acqua calda anziché scegliere Trove?
• Il nostro progetto è nato nell’estate del 2012, la prima release pubblica di Trove è stata rilasciata
in OpenStack Havana a fine 2013
• Trove richiede OpenStack (you don’t say?)
• Trove è progettato per erogare database single-tenant, perciò mantiene un rapporto 1:1 tra
machine instance e database instanceArchitettura di alto livello
Utente finale Operations e Marketing
DWH - REPORT
TCP HTTPS HTTPS
SQL CSV via SFTP
CUSTOMER ADMIN
PORTAL PORTAL BILLING
SQL
SQL
REST
DB HOST DB HOST DB HOST
SILVER GOLD PLATINUM
PLATFORM
ORCHESTRATOR
SANArchitettura di alto livello
Utente finale Operations e Marketing
Istanza 1
Istanza 2
Istanza 3
Istanza n
DWH - REPORT
TCP HTTPS HTTPS
SQL CSV via SFTP
CUSTOMER ADMIN Shared Mgmt
PORTAL PORTAL BILLING
libraries Agent
SQL
SQL
(OS)
REST
VM
DB HOST DB HOST DB HOST
SILVER GOLD PLATINUM Ogni VM esegue un container per ogni istanza
di MySQL e il nostro agent di mgmt che espone le
PLATFORM
ORCHESTRATOR
interfacce RESTful per l’amministrazione.
SANArchitettura di alto livello
Utente finale Operations e Marketing
DWH - REPORT
TCP HTTPS HTTPS Il Customer Portal consente all’utente finale di:
• gestire il proprio contratto
SQL CSV via SFTP
• connettersi al db da un’interfaccia web-based
CUSTOMER ADMIN
PORTAL PORTAL BILLING
L’Admin Portal è dedicato alla gestione della
SQL
SQL piattaforma da parte del Marketing e delle Operations.
REST
DB HOST DB HOST DB HOST
SILVER GOLD PLATINUM
PLATFORM
ORCHESTRATOR
SANArchitettura di alto livello
Utente finale Operations e Marketing
Il SQL Proxy consente all’utente cDWH - REPORT
onnettere i client e le
TCP HTTPS HTTPS
proprie applicazioni mediante
SQL
c onnessione SQL-compatibile.
CSV via SFTP
CUSTOMER L’obiettivo dADMIN
el wrapper è filtrare tutti i comandi amministrativi,
PORTAL PORTAL
proteggere l’utente da sé stesso e semplificare il rilascio di BILLING
nuove
SQL funzionalità.
SQL
REST
DB HOST DB HOST DB HOST
SILVER GOLD PLATINUM
PLATFORM
ORCHESTRATOR
SANArchitettura di alto livello
Utente finale Operations e Marketing
DWH - REPORT
TCP HTTPS HTTPS
SQL CSV via SFTP
CUSTOMER ADMIN
PORTAL PORTAL BILLING
SQL
SQL
Il DWH-Report è il database centralizzato che
contiene i dati di configurazione e tutte le metriche di
REST
funzionamento utilizzabili ai fini della fatturazione.
DB HOST DB HOST DB HOST
SILVER GOLD PLATINUM
Disporre di dati puntuali è utile a tutti:
PLATFORM
• il Marketing
ORCHESTRATORpuò progettare dei profili migliori
• l’utente può verificare l’adeguatezza del profilo scelto
SANArchitettura di alto livello
Utente finale Operations e Marketing
Il Platform Orchestrator è il punto di contatto tra i
sistemi di
DWH p-rovisioning
REPORT esterni e la piattaforma.
TCP HTTPS HTTPS
SQL CSV via SFTP
Trasforma ogni richiesta in una serie di comandi per gli
CUSTOMER ADMIN agent a bordo dei DB Host, istanzia nuovi container e
PORTAL PORTAL
nuovi DB Host. BILLING
SQL
SQL
REST
DB HOST DB HOST DB HOST
SILVER GOLD PLATINUM
PLATFORM
ORCHESTRATOR
SANFocus sul Management Agent
È la componente che traduce dei comandi di alto livello in task complessi eseguiti sui DB Host, ad es:
• Creazione di un nuovo container
• Riconfigurazione e dismissione di un container esistente
• Migrazione e upgrade di profilo
• Gestione del processo mysqld (start, stop, restart, etc.)
POST /dbaas/v1/instancecreate/
cgcreate –g memory,blkio,cpu,cpuset:gold
{
…
'user': 'mario.rossi',
mount /dev/mapper/dbdataXXXp1 /data/mariorossi-1
'profile': 'gold',
…
'port': '12345',
cgexec mysql_install_db –datadir /data/mariorossi-1
'wwid': 'disk-wwid',
…
}Orchestration at work
Orchestration at work
L’utente acquista il profilo Gold del DBaaS offerto dal provider.
Il suo contratto viaggia all’interno della catena di delivery.Orchestration at work
DBaaS P latform
La richiesta arriva al Platform Orchestrator della nostra piattaformaOrchestration at work
DBaaS P latform
L’Orchestrator interroga il DWH-Report per verificare la disponibilità di slot per il profilo GoldOrchestration at work
DBaaS P latform
Oops, gli slot Gold sono finiti!
Lancia una nuova VM di tipo Gold, la aggiunge al pool di DB Host e crea i nuovi slot sul DWH-ReportOrchestration at work
DBaaS P latform
Gli slot Gold sono disponibili!
Riserva uno slot, lancia il nuovo container sul DB Host di riferimento e aggiorna i dati sul DWH-ReportOrchestration at work
DBaaS P latform
Il Platform Orchestrator completa il task e restituisce le informazioni alla catena di delivery.
Alla fine del processo l’utente riceve una mail con IP, porta e credenziali d’accesso.Da cgroups a Docker
cgroups + selinux Docker
La limitazione delle risorse assegnate al L’istanza di MySQL viene eseguita in un
processo mysqld e la separazione del container dedicato, il quale gestisce
contesto di sicurezza era gestita mediante la nativamente la limitazione delle risorse e del
configurazione manuale di cgroups + selinux. namespace.
La versione di MySQL era identica per tutte le Potenzialmente, ogni istanza potrebbe usare
istanze all’interno della stessa VM. una diversa versione di MySQL.
VERSIONE 1 VERSIONE 2Da cgroups a Docker: un esempio concreto
cgroups + selinux Docker
cd /sys/fs/cgroup/memory/gold/ Docker run …
echo 1 > memory.oom_control --memory=1g
echo 10 > memory.swappiness --cgroup-parent=gold
echo 1000000000 > memory.limit_in_bytes --oom-kill-disable=true
… --memory-swappiness=10
chcon -R --reference /template/mariorossi-1 --name=mariorossi-1
/volume-path --user=mariorossi-1
… dbaas-gold …Le sfide principali (alcune delle tante…) • Gestione dei log delle istanze di database • Gestione della concorrenza nell’accesso all’I/O • Performance tuning di Linux e MySQL su istanze multiple, es:
Quale futuro?
cgroups + selinux Docker Whatelse?
VERSIONE 1 VERSIONE 2 VERSIONE 3
Ipotesi p er la v3:
• Fatturazione pay-per-use
• Scelta della versione di MySQL in fase di provisioning
• HA dei container, ad es. con Kubernetes e Atomic Host
• Snapshot autogestiti per gestire eventuali attività distruttive o backup
• Integrazione con Trove?Thank you
Michelangelo Uberti, Marketing Analyst
#osd2015Puoi anche leggere