DBaaS con Docker: un caso di studio - Michelangelo Uberti, Marketing Analyst - Par-Tec S.p.A.

Pagina creata da Enrico Bartoli
 
CONTINUA A LEGGERE
DBaaS con Docker: un caso di studio - Michelangelo Uberti, Marketing Analyst - Par-Tec S.p.A.
DBaaS  con  Docker:  un  caso  di  studio

Michelangelo  Uberti,  Marketing  Analyst

                                            #osd2015
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