Qual è la differenza tra orchestrazione e automazione?
Entrambi i termini implicano che le cose accadono senza il tuo intervento diretto. Ma il modo in cui si ottengono questi risultati e gli strumenti utilizzati per realizzarli sono diversi.
Per molto tempo, è sembrato che l'unica cosa che interessasse a un amministratore di sistema fosse l'automazione. Recentemente, però, il mantra sembra essere cambiato da automazione a orchestrazione, portando molti amministratori perplessi a chiedersi: "Qual è la differenza?"
La differenza tra automazione e orchestrazione sta principalmente nell'intento e negli strumenti. Tecnicamente, l'automazione può essere considerata un sottoinsieme dell'orchestrazione. Mentre l’orchestrazione suggerisce molte parti in movimento, l’automazione di solito si riferisce a un’attività singola o a un numero limitato di attività fortemente correlate. L'orchestrazione funziona a un livello superiore e si prevede che prenda decisioni in base al cambiamento delle condizioni e dei requisiti.
Tuttavia, questa visione non dovrebbe essere presa troppo alla lettera perché entrambi i termini, automazione e orchestrazione, hanno implicazioni quando vengono utilizzati. I risultati di entrambi sono funzionalmente gli stessi: le cose accadono senza il tuo intervento diretto. Ma il modo in cui si arriva a questi risultati e gli strumenti che si utilizzano per realizzarli sono diversi, o almeno i termini vengono utilizzati in modo diverso a seconda degli strumenti utilizzati.
Ad esempio, l'automazione di solito implica lo scripting, spesso in Bash o Python o simili, e spesso suggerisce di programmare che qualcosa accada in un momento preciso o in occasione di un evento specifico. Tuttavia, l'orchestrazione spesso inizia con un'applicazione creata appositamente per una serie di attività che possono verificarsi in modo irregolare, su richiesta o come risultato di un numero qualsiasi di eventi trigger e i risultati esatti possono anche dipendere da una serie di condizioni.
Processo decisionale e orchestrazione IT
L'automazione suggerisce che un amministratore di sistema ha inventato un sistema per far sì che un computer faccia qualcosa che normalmente dovrebbe essere fatto manualmente. Nell'automazione, l'amministratore di sistema ha già preso la maggior parte delle decisioni su ciò che deve essere fatto e tutto ciò che il computer deve fare è eseguire una "ricetta" di attività.
L'orchestrazione suggerisce che un amministratore di sistema ha impostato un sistema per fare qualcosa da solo sulla base di una serie di regole, parametri e osservazioni. Nell'orchestrazione, l'amministratore di sistema conosce il risultato finale desiderato ma lascia che sia il computer a decidere cosa fare.
Considera Ansible e Bash. Bash è un popolare linguaggio di shell e di scripting utilizzato dagli amministratori di sistema per realizzare praticamente tutto ciò che fanno durante una determinata giornata lavorativa. Automatizzare con Bash è semplice: invece di digitare i comandi in una sessione interattiva, li digiti in un documento di testo e salvi il file come script di shell. Bash esegue lo script della shell, eseguendo ciascun comando in successione. C'è spazio per alcune decisioni condizionali, ma di solito non sono più complesse di semplici istruzioni if-then, ognuna delle quali deve essere codificata nello script.
Ansible, invece, utilizza playbook in cui un amministratore di sistema descrive lo stato desiderato del computer. Elenca i requisiti che devono essere soddisfatti prima che Ansible possa considerare il lavoro svolto. Quando Ansible viene eseguito, l'azione viene eseguita in base allo stato corrente del computer rispetto allo stato desiderato, in base al sistema operativo del computer e così via. Un playbook non contiene comandi specifici, ma lascia invece tali decisioni allo stesso Ansible.
Naturalmente, è particolarmente rivelatore che Ansible venga definito uno strumento di automazione, non di orchestrazione. La differenza può essere sottile e i termini si sovrappongono sicuramente.
Orchestrazione e cloud
Supponiamo che tu debba convertire un tipo di file che viene regolarmente caricato sul tuo server dai tuoi utenti.
La soluzione manuale sarebbe quella di controllare ogni mattina una directory per i contenuti caricati, aprire il file e quindi salvarlo in un formato diverso. Questa soluzione è lenta, inefficiente e probabilmente potrebbe verificarsi solo una volta ogni 24 ore perché sei una persona impegnata.
[Leggi dopo: Come spiegare l'orchestrazione]
Potresti automatizzare l'attività. Se lo facessi, potresti scrivere uno script PHP o Node.js per rilevare quando un file è stato caricato. Lo script eseguirà la conversione e invierà un avviso o creerà una voce nel registro per confermare che la conversione è andata a buon fine. Potresti migliorare lo script nel tempo per consentire agli utenti di interagire con il processo di caricamento e conversione.
Se dovessi orchestrare il processo, potresti invece iniziare con un'applicazione. La tua app personalizzata sarà progettata per accettare e convertire file. Potresti eseguire l'applicazione in un contenitore sul tuo cloud e, utilizzando OpenShift, potresti avviare istanze aggiuntive della tua app quando il traffico o il carico di lavoro aumentano oltre una determinata soglia.
Automazione e orchestrazione dell'apprendimento
Non esiste una sola disciplina per l'automazione o l'orchestrazione. Si tratta di pratiche generali che vengono applicate a molti compiti diversi in molti settori diversi. Il primo passo verso l'apprendimento, tuttavia, è acquisire familiarità con la tecnologia che dovresti orchestrare e automatizzare. È difficile orchestrare (in sicurezza) il ridimensionamento di una serie di server Web se non si capisce come funziona un server Web, o quali porte devono essere aperte o chiuse, o cos'è una porta. In pratica, potresti non essere la persona che apre le porte o configura il server; potresti essere incaricato di amministrare OpenShift senza sapere o preoccuparti veramente di cosa c'è dentro un contenitore. Ma i concetti di base sono importanti perché si applicano ampiamente all'usabilità, alla risoluzione dei problemi e alla sicurezza.
È inoltre necessario acquisire familiarità con gli strumenti più comuni del mondo dell'orchestrazione e dell'automazione. Impara un po' di Bash, inizia a usare Git e progetta alcuni hook Git, impara un po' di Python, acquisisci dimestichezza con YAML e Ansible e prova Minikube, OKD e OpenShift.
L'orchestrazione e l'automazione sono competenze importanti, sia per rendere il tuo lavoro più efficiente sia come qualcosa da portare al tuo team. Investi oggi e domani farai il doppio.