Smetti di Perdere Tempo con le Attività di Routine, Lasci che il DataSunrise Resource Manager Faccia Questo Lavoro
Si è mai chiesto quanto possa essere dispendioso in termini di tempo lavorare con una GUI? Immagini quanta fatica e tempo possa richiedere riprodurre una semplice infrastruttura su diversi computer: premere gli stessi pulsanti più volte, guardare gli stessi schermi, impostare gli stessi parametri… Tutti questi processi vengono ripetuti continuamente, a volte portando a errori umani. Concorda che a volte vorrebbe solo copiare e incollare le impostazioni per eliminare tutta questa routine.
Fortunatamente, esiste una tale tecnologia. Si chiama Infrastructure as Code (o a volte un framework programmabile). Più che copiare e incollare personalizzazioni, questo approccio automatizza la gestione dell’infrastruttura utilizzando tecniche di sviluppo software, colmando efficacemente il divario tra la scrittura di applicazioni e la creazione di ambienti per quelle applicazioni.
Il lavoro su questa tecnica si basa sull’uso di file di configurazione che contengono codice che descrive l’infrastruttura. Tutta la funzionalità per la creazione di risorse applicative è disponibile allo stesso modo, ma ora non è più necessario passare da uno schermo di impostazioni all’altro, basta descriverle tramite codice. Questo apre grandi opportunità:
- Automazione – basta importare il modello e l’applicazione distribuirà tutte le risorse per Lei. Questo fa risparmiare molto tempo e sforzi, e riduce la superficie per errori umani.
- Riproduzione elastica – può distribuire l’infrastruttura su qualsiasi numero di macchine usando lo stesso set di codice.
- Carichi i Suoi modelli nel Sistema di Controllo delle Versioni, come Git, SVN, ecc. – conoscerà sempre la storia delle modifiche e potrà ripristinare versioni precedenti.
- Gestisca le risorse comodamente – come un gruppo, non individualmente, e definisca dipendenze tra risorse per distribuirle nell’ordine corretto.
Il DataSunrise Resource Manager è una funzionalità che Le consente di gestire la Sua struttura DataSunrise secondo il principio “Infrastructure as code”. Fornisce tutte le stesse capacità di un’interfaccia grafica, permettendoLe di distribuire, modificare e eliminare le risorse dell’infrastruttura DataSunrise.
Modelli
La funzionalità principale del Resource Manager è fornita lavorando con modelli. Un modello è un file JSON dichiarativo (in futuro sarà possibile lavorare in XML) contenente informazioni sul gruppo di risorse distribuite. Questo file sembra un documento con codice che viene processato dall’API.
Il codice del modello può essere scritto manualmente o esportato da un’istanza DataSunrise esistente con infrastruttura preconfigurata. In ogni caso, può modificare liberamente i valori dei parametri, riconfigurando l’infrastruttura secondo le Sue necessità di sicurezza.
Di seguito è riportato un esempio del codice per un modello di creazione di una regola di audit:
{ "DSTemplateVersion" : "2020-03-10", "ExternalResources" : { "Instance_4" : { "Properties" : { "DatabaseType" : "MySQL", "InstanceName" : "Test database" }, "Type" : "Instance" } }, "Mappings" : {"LocalServerID": "1",}, "Parameters" : { "Password_instance" : { "Description" : "", "Type" : "String" }, }, "Resources" : { "AuditRule_17" : { "DependsOn" : "Interface_4", "Properties" : { "Action" : "Default", "ApplySelectForWhereAndJoin" : "True", "ApplySelectWithoutFrom" : "True", "AuditDestinationDatabase" : "Database", "BlockCounterLimit" : "0", "BlockCounterPeriod" : "0", "BlockingMessage" : "", "BlockingType" : "None", "CefGroup" : "0", "ChainType" : "Audit", "CheckNextRule" : "False", "Comment" : "", "DataFilter" : "", "DataFilterIsRegexp" : "True", "DepersonalizeQueries" : "False", "DmlDeleteEnabled" : "True", "DmlExcludes" : [], "DmlFilter" : [ { "DatabaseName" : "[[database]]", "DatabaseNameIsRegexp" : "False", "ObjectName" : "actor", "ObjectNameIsRegexp" : "False", "ObjectsItemFilter" : [], "ObjectType" : "Table", "SchemaName" : "sakila", "SchemaNameIsRegexp" : "False" } ], "DmlInsertEnabled" : "True", "DmlSelectEnabled" : "True", "DmlUpdateEnabled" : "True", "Enable" : "True", "ExcludeObjectGroups" : [], "FileParams" : "", "FilterType" : "ObjectBased", "FuncCallEnabled" : "False", "FuncExcludes" : [], "FuncFilter" : [], "IncludeObjectGroups" : [], "Instance" : { "Ref" : "Instance_4" }, "LimitCountType" : "ByOperations", "LimitCountValue" : "0", "LimitEnable" : "False", "LimitFilterType" : "ByRule", "LimitPeriodType" : "Hour", "MaxRowsCount" : "DefaultRowsCount", "Name" : "Audit_rule", "Priority" : "17", "RowLimit" : "0", "SaveDataBindings" : "True", "SaveOnlyFirst" : "False", "SaveReturnedData" : "False", "SaveToEventMonitor" : "True", "Schedule" : "0", "SessionCriteria" : { "criteria" : [], "filterType" : "AND", "operatorType" : "complex" }, "Subscribers" : [], "Tags" : [], "UseFunctionDDL" : "False", "UserBlockingPeriod" : "0", "UserBlockingType" : "NoBlock", "UseViewDDL" : "False", "WhoBlock" : "UserAndHost" }, "Type" : "AuditRule" } } }
ExternalResources
Contiene riferimenti a oggetti esterni che esistono al di fuori del modello DataSunrise e non sono controllati da esso, ma nel contesto dei quali il framework esportato nel modello ha lavorato. Quando questi oggetti vengono renderizzati in un altro DataSunrise prima che il modello venga distribuito, l’infrastruttura distribuita funzionerà anche senza modificare le impostazioni.
In questo caso, questa sezione descrive l’istanza esistente di Test database, l’infrastruttura della quale è esportata nel modello.
Mappings
Questa sezione contiene le costanti del modello e consente di impostarne il valore. Può fare riferimento a questi valori utilizzando la funzione Ref per evitare la ripetizione di specifiche valore nel codice. Questo migliora la leggibilità del modello e riduce il numero di possibili errori.
"Mappings" : {"LocalServerID": "1",}
Questa sezione contiene l’ID del server locale. Cambiando il valore di questa costante, non sarà necessario perdere tempo per riscrivere questo valore in tutto il modello, è sufficiente cambiarlo in questa sezione.
Parameters
Questa sezione dichiara gli attributi delle risorse da distribuire con valori predefiniti. Serve anche per evitare ripetizioni nel modello, ma a differenza delle costanti della sezione Mappings, i valori dei parametri possono essere sovrascritti per diverse condizioni, ad esempio su un host diverso con un diverso IP. Qualsiasi attributo può essere preso come parametro e impostato esternamente durante la distribuzione di un modello.
"Parameters" : "Parameters" : { "Password_instance" : { "Description" : "", "Type" : "String" },
Nel nostro esempio, è specificato un tipo String per le password, e se il tipo di password dovesse essere diverso per una delle infrastrutture, può modificare questo valore manualmente o includendo un file JSON Parameters opzionale. Può anche memorizzare dati sensibili come password in questo file, così non dovrà scriverlo direttamente nel modello.
Può anche fare riferimento a questi parametri utilizzando la funzione “Ref”:
"Password" : { "Ref" : "Password_instance" },
Resources
La descrizione della regola di audit che viene distribuita inizia nella sezione Resources, che contiene una descrizione delle risorse importate. Questa sezione descrive tutte le risorse DataSunrise che Lei ha caricato nel modello. Queste stesse risorse verranno distribuite.
La sottosezione Properties descrive le caratteristiche applicate alla regola. Ad esempio, le richieste a cui dovrebbe rispondere la regola (Valori True degli argomenti ApplySelectForWhereAndJoin e ApplySelectWithoutFrom, che corrispondono alle richieste marcate in Filter Statements nella GUI per la creazione di una regola di audit). Il DmlFilter specifica la fonte di informazione che attiva la regola.
Così, quando questo modello viene distribuito, verrà creata una regola di audit che registra qualsiasi interazione con le informazioni nella tabella actor dello schema sakila. Per far funzionare il modello copiato in altre condizioni (ad esempio, un’altra fonte di dati per il monitoraggio), è sufficiente solo modificare i valori di alcuni argomenti, in questo caso – ObjectName e SchemaName.
Altri Modi per Distribuire Modelli
Può distribuire le risorse DataSunrise quando DataSunrise si avvia. Per farlo, deve arrestare il servizio DataSunrise Database Security nei Servizi di Windows, scrivere gli argomenti appropriati nei parametri di avvio e riavviare il servizio.
Il DataSunrise distribuirà tutta l’infrastruttura dal modello. Questo è utile se non vuole perdere tempo a distribuire le risorse utilizzando l’UI. Specificando il modello richiesto nei parametri di avvio, otterrà un’infrastruttura pronta all’uso.
Elenco degli argomenti per lavorare con i modelli nel servizio DataSunrise, nonché esempi del loro utilizzo:
- Percorso del file del modello:
TEMPLATE_PATH = “C: /Users/Tom/IaCTemplates/templatePeriodicTask.json”
- Percorso del file TemplateParams (opzionale):
TEMPLATE_PARAMS_PATH = “C:
/Users/Tom/IaCTemplates/paramsPostgreSql.json” - Cosa fare con l’infrastruttura (Action = InfrastructureName), scelga uno dei tre:
CREATE_INFRASTRUCTURE = deployment1 – Creare infrastruttura
UPDATE_INFRASTRUCTURE = deployment1 – Aggiornare infrastruttura (Aggiungere o rimuovere risorse in base alla differenza tra i modelli precedenti e attuali)
DELETE_INFRASTRUCTURE = deployment1 – Eliminare infrastruttura e tutte le risorse associate
L’esempio di argomenti di importazione:
UPDATE_INFRASTRUCTURE = deployment1 TEMPLATE_PATH = “C:/ Users/Tom/IaCTemplates/templatePeriodicTask.json” TEMPLATE_PARAMS_PATH = “C:/ Users/Tom/IaCostgostgles”
Argomenti richiesti per l’esportazione:
- Il percorso dove il modello verrà scaricato (opzionale, se non specificato, verrà scaricato accanto all’eseguibile):
EXPORT_INFRASTRUCTURE_PATH = “C:/Users/Tom/”
- Nome dell’infrastruttura:
EXPORT_INFRASTRUCTURE = deployment1
Conclusione
Usare il DataSunrise Resource Manager è una soluzione efficace per gestire le configurazioni DataSunrise. Lavorare con modelli Le consente di adattare l’infrastruttura esportata alle Sue esigenze modificando diversi valori e gestendo le risorse tramite codice. Questo approccio risparmia tempo e budget, liberandoLa dalla ripetizione dello stesso lavoro di routine.
Scopra di più sulla distribuzione dei modelli e la descrizione delle risorse nel Capitolo 12 della Guida Utente.