Prima dei provider cloud e dei servizi gestiti, i database dovevano essere installati localmente e un'installazione su larga scala poteva comportare l'installazione di molte infrastrutture e il mantenimento di diversi DBA. Con l'avvento dei Cloud provider, i database locali sono migrati nel Cloud e i requisiti dell'infrastruttura locale sono stati ridotti se non eliminati. I provider cloud come Amazon Web Services (AWS) e Oracle Cloud Platform forniscono servizi gestiti per i sistemi di database relazionali di uso comune Oracle Database e MySQL database, che sono classificati rispettivamente al 1° e al 2° posto da DBEngines.com. AWS supporta anche altri database, inclusi il database PostgreSQL e il database SQL Server. AWS fornisce supporto per un database NoSQL proprietario chiamato DynamoDB.
In questo articolo, discuteremo dei database disponibili sui provider di servizi cloud AWS e Oracle Cloud Platform. Indipendentemente dal provider Cloud utilizzato, alcune funzionalità sono comuni a tutti i database dei provider Cloud:servizio gestito, funzionalità scalabili, affidabili, sicure e di collaborazione. Questo articolo ha le seguenti sezioni e sottosezioni:
- Banche dati su Amazon Web Services (AWS)
- RDS
- DynamoDB
- Spostamento verso il rosso
- Cache elastica
- Banche dati su Oracle Cloud Platform
- Database Oracle
- Database MySQL
- Database Oracle NoSQL
- Conclusione
Banche dati su Amazon Web Services (AWS)
Amazon Web Services (AWS) fornisce servizi gestiti in diverse categorie:
- Servizio di database relazionali (RDS) per database relazionali
- DynamoDB per database NoSQL
- Redshift per database analitici basati su query (data warehouse)
- ElasticCache per la cache in memoria
RDS
Il Relational Database Service è un servizio gestito su cloud per i database relazionali di uso comune—database Oracle, database MySQL, SQL Server, PostgreSQL, MariaDB e Aurora, come mostrato nella Figura 1.
Figura 1: Database ospitati su RDS
Ciò che rende RDS un'alternativa migliore ai database locali è che offre capacità variabile, automazione delle attività DBA, hardware fornito sul cloud e backup automatici del database e patch. I database RDS forniscono ambienti di produzione e sviluppo/test. I database RDS sono completamente integrati con gli altri servizi AWS, come S3, IAM, CloudWatch, Database Migration Service e CloudTrail. S3 viene utilizzato per l'archiviazione di backup e snapshot, utilizzati per il backup e il ripristino di un database. IAM è per la gestione degli accessi. CloudWatch è per il monitoraggio e la registrazione. CloudTrail serve per il controllo delle chiamate API. Database Migration Service serve per la migrazione di database:migrare un database locale nel Cloud o migrare tra database diversi nel Cloud. RDS offre la possibilità di distribuire un database su più zone di disponibilità.
Le diverse edizioni dei database commerciali Oracle e SQL Server sono disponibili su RDS. Aurora è un database ad alte prestazioni completamente compatibile con i database MySQL e PostgreSQL e offre i seguenti vantaggi:
- Alto throughput (5x MySQL e 3x PostgreSQL)
- Archiviazione SSD con scalabilità automatica (fino a 64 TB) a tolleranza di errore
- Repliche di lettura multiple per bassa latenza e failover automatico
- Tollerante ai guasti. I guasti del disco vengono riparati senza perdita di servizio.
- Alta disponibilità
- Backup incrementali e ripristino point-in-time
- Isolamento di rete (VPC), autorizzazioni a livello di risorsa tramite IAM e crittografia per proteggere i database
I database RDS forniscono un Endpoint, come per il database PostgreSQL su RDS mostrato nella Figura 2, per l'accesso con i client SQL di uso comune.
Figura 2: Database PostgreSQL su RDS
DynamoDB
DynamoDB è un database NoSQL con modello di dati flessibile che fornisce bassa latenza (millisecondo a una cifra), ridimensionamento automatico della capacità di lettura e scrittura con la possibilità di ottenere capacità riservata, indici secondari globali per query efficienti su qualsiasi campo (attributo) in una tabella, e integrazione con CloudWatch per il monitoraggio e la registrazione. Se il tempo di risposta è relativamente più alto, ovvero in microsecondi, è disponibile il servizio DynamoDB Accelerator (DAX) per ridurre il tempo di risposta per dati eventualmente coerenti. Una tabella DynamoDB è mostrata nella Figura 3.
Figura 3: Tabella DynamoDB
Spostamento verso il rosso
Redshift è un database (data warehouse) per OLAP (elaborazione analitica online) di dati strutturati su scala petabyte archiviati in dischi locali utilizzando gli standard SQL con la possibilità di estendere le query a dati non strutturati su scala exabyte archiviati in S3 utilizzando Redshift Spectrum. Formati di dati aperti come CSV, TSV, Parquet, Sequence e RCFile possono essere utilizzati con Redshift Spectrum. Redshift offre le stesse funzionalità dei servizi gestiti della maggior parte dei servizi AWS come scalabilità, tolleranza agli errori, backup automatici, crittografia, integrazione per monitoraggio e registrazione con CloudWatch e isolamento della rete con VPC. Redshift fornisce driver ODBC e JDBC personalizzati oltre ai driver ODBC e JDBC PostgreSQL standard per l'accesso utilizzando i client SQL di uso comune. È possibile accedere a un cluster Redshift in un endpoint fornito, mostrato per un cluster Redshift nella Figura 4.
Figura 4: Cluster di spostamento verso il rosso
Cache elastica
Amazon ElasticCache è una cache in memoria distribuita nel cloud. Sono disponibili due opzioni del motore del cluster per un cluster ElasticCache, ElasticCache for Redis e Memcached. ElasticCache for Redis è un archivio di strutture dati in memoria che può essere utilizzato come database, cache e broker di messaggi. Memcache è una cache di oggetti di memoria distribuita ad alte prestazioni progettata per rendere più veloci le applicazioni Web dinamiche. Sono disponibili diverse opzioni di tipo di nodo progettate per una cache, come mostrato nella Figura 5.
Figura 5: Tipi di nodi della cache
I nodi riservati sono disponibili per un ElasticCache. I backup automatici e la notifica SNS sono disponibili con ElasticCache. I client del cluster con memcached ElasticCache sono disponibili per diverse lingue:.NET, Java e PHP. Il client PHP è disponibile per diverse versioni di PHP che vanno da PHP 5.3 a PHP 7.0. Un database ElasticCache è mostrato nella Figura 6.
Figura 6: Redis ElasticCache
Database su Oracle Cloud Platform
Oracle Cloud Services Platform include Oracle Database Cloud Service per Oracle Database e Oracle MySQL Cloud Service per database MySQL. Gli Oracle Cloud Services sono raggruppati in diverse categorie proprio come i servizi AWS. Tuttavia, Oracle Database Cloud Service è per i database Oracle IaaS Cloud Services è per l'infrastruttura richiesta per eseguire i database nel cloud.
Database Oracle
Oracle Database on the Cloud è disponibile in più edizioni rispetto a un database autonomo, come mostrato nella Figura 7.
Figura 7: Edizioni Oracle Database su Cloud
Per creare Oracle Database on the Cloud, fare clic su Crea servizio nel dashboard di Oracle Database Cloud Service, come mostrato nella Figura 8.
Figura 8: Creazione di un servizio Oracle Database Cloud
Le edizioni del database supportate sono 11g R2, 12c R1 e 12c R2, come mostrato nella Figura 9.
Figura 9: Edizioni Oracle Database
Se si utilizza 12c, per impostazione predefinita viene creato un database collegabile, per il quale è necessario configurare un nome PDB (vedere la Figura 10). Per Backup e ripristino, le opzioni disponibili sono:Disco, Cloud, Disco e cloud e Nessuno.
Figura 10: Configurazione di un servizio Oracle Database 12c incluso un PDB
Un servizio Oracle Database Cloud è mostrato nel dashboard in Figura 11.
Figura 11: Servizio Oracle Database Cloud
Viene creato un IP pubblico per Oracle Database, come mostrato nella Figura 12.
Figura 12: IP pubblico per Oracle Database Cloud Service
Le risorse del database includono le OCPU, la memoria e l'archiviazione, anch'esse elencate nella Figura 12. Le OCPU, la memoria e l'archiviazione non sono configurabili individualmente, ma è necessario selezionare una forma di calcolo con impostazioni preselezionate per le risorse. Un database può essere ridimensionato verso l'alto o verso il basso, come mostrato dall'opzione Ridimensionamento verso l'alto/verso il basso nella Figura 13.
Figura 13: Scala su/giù
È possibile selezionare una forma di calcolo nella finestra di dialogo Scala su/giù, come mostrato nella Figura 14.
Figura 14: Selezione di una forma di calcolo
Le metriche di monitoraggio sono disponibili per un servizio di database, come mostrato nella Figura 15.
Figura 15: Metriche di monitoraggio
Database MySQL
La creazione di un servizio di database MySQL su Oracle Cloud è simile alla creazione di un servizio di database Oracle. Le impostazioni di configurazione del database MySQL che devono essere fornite includono un nome del servizio (come mostrato nella Figura 16), una forma di calcolo, un archivio di database utilizzabile (GB), un utente di amministrazione (root per impostazione predefinita), una password di amministrazione, il nome dello schema del database e Backup e configurazione di ripristino.
Figura 16: Creazione di un servizio di database MySQL
Vengono creati un descrittore Connect e un IP pubblico per un servizio di database MySQL, come mostrato nella Figura 17.
Figura 17: Servizio di database MySQL in Oracle Cloud
Database Oracle NoSQL
Oracle Cloud Service fornirà anche un servizio gestito per il database Oracle NoSQL, le cui caratteristiche principali includono disponibilità elevata, transazioni, query parallele, archiviazione e query dei dati a bassa latenza e supporto API per diversi linguaggi client tra cui C, Java e Node. Oracle NoSQL on the Cloud fornisce un modello di dati flessibile con supporto per Key-Value, Tables e JSON per l'archiviazione. Il servizio Oracle NoSQL Cloud fornisce uno schema applicativo dinamico ed è altamente performante utilizzando l'indicizzazione basata sui valori, che indicizza i tipi semplici e complessi (mappe e array) per risultati di query efficienti e indici coerenti, che sono indici locali condivisi. L'amministrazione di Oracle NoSQL sul cloud è semplificata utilizzando il bilanciamento del carico automatizzato per un accesso efficiente ai dati in un cluster. La gestione del cluster include il ridimensionamento e gli aggiornamenti in sequenza. Il servizio Oracle NoSQL Database Cloud è "in arrivo".
Conclusione
In questo articolo, abbiamo esplorato i servizi di database forniti da AWS e Oracle Cloud Platform. I database su AWS e Oracle Cloud sono servizi gestiti con funzionalità che non sono realizzabili in un servizio di database locale su scala relativamente piccola.