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 Infrastructure
DB-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 instance
Architettura 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 SAN
Architettura 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. SAN
Architettura 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 SAN
Architettura 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 SAN
Architettura 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 SAN
Architettura 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 SAN
Focus 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 piattaforma
Orchestration at work DBaaS P latform L’Orchestrator interroga il DWH-Report per verificare la disponibilità di slot per il profilo Gold
Orchestration 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-Report
Orchestration 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-Report
Orchestration 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 2
Da 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 #osd2015
Puoi anche leggere