Workflow Management OVHcloud

Strumento di automazione dell’infrastruttura basato su scenari

Le architetture implementate nel Cloud raramente sono statiche: cambiano e si adattano in base alle circostanze e alle esigenze aziendali. Per mantenere la qualità e l’efficacia durante l’intero ciclo di vita delle applicazioni, industrializzare queste evoluzioni diventa quindi una necessità. Con Workflow Management è possibile, ad esempio, automatizzare i backup, accendere e spegnere macchine in intervalli orari specifici e ancora ridimensionare un cluster nei periodi di maggiore carico.

Backup automatici

Data la loro importanza, i backup dovrebbero essere una delle prime considerazioni quando si pensa di automatizzare la propria infrastruttura. OVHcloud semplifica la realizzazione degli scenari di backup, rendendoli accessibili direttamente dallo Spazio Cliente.

Organizzatore di task

Il sistema può funzionare come uno scheduler, analogamente a cron negli ambienti Linux. Una volta definito il workflow (o scenario), il servizio si occupa della sua esecuzione, indipendentemente dal fatto che si tratti di una semplice chiamata API di pochi secondi o di una concatenazione logica di task che richiede diverse ore.

Attivazione condizionale di scenari

Sulla base del principio “if this, then that”, è possibile definire l’avvio di scenari e le condizioni di esecuzione. L’attivazione può dipendere da un orario o da una richiesta esterna (chiamata API), che avvia la verifica delle condizioni programmate.

Automatizzazione della complessità

Quando la complessità da gestire è elevata, gli scenari possono essere composti da numerosi task. Workflow Management organizza questa cascata di operazioni per distribuirne l’esecuzione e automatizzare così diverse centinaia di azioni, ad esempio processi di aggiornamento complessi.

Operazioni da riga di comando

Definire un workflow in un file YAML

...

  tasks:
    create_server:
      action: nova.servers_create
      input:
        name: <% $.vm_name %>
        image: <% $.image_ref %>
        flavor: <% $.flavor_ref %>
...
      on-success:
        - wait_for_instance
 
    wait_for_instance:
      action: nova.servers_find id={{ _.vm_id }} status='ACTIVE' action_region=<% $.region %>
...
      publish:
        vm_status: "{{ task().result.status }}"

Creare il workflow

openstack workflow create workflow.yaml

Programmare l’esecuzione

openstack cron trigger create --count 3 --pattern '*/2 * * * *' \
    trigger01 create_vm '{"vm_name": "foobar", \
    "image_ref": "Debian 9", "flavor_ref": "b2-30"}'

Funzionalità

API Mistral

Workflow Management si basa su un modulo ufficiale di OpenStack: Mistral. Questo strumento di orchestrazione supporta i linguaggi  YAQL e Jinja2.

Parallelizzazione di più workflow

Per accelerare l’esecuzione di alcuni scenari è possibile moltiplicare i “worker”, parallelizzando così i task.

Gestione delle dipendenze

La concatenazione di task può essere soggetta a regole di dipendenza, che ne assicurano la corretta esecuzione e la sincronizzazione prima di passare alla fase successiva.

Attivazione di chiamate HTTP/HTTPS esterne

Oltre a poter interagire con tutte le risorse OpenStack via API, Workflow Management è in grado di avviare chiamate verso l’esterno.

Pricing Public Cloud

Fatturazione Workflow Management

I workflow e le esecuzioni dei task sono gratuiti, le risorse Cloud generate (istanze, volumi...) vengono fatturate alla tariffa standard.