Penso che provenire da un background di sviluppatori renderà in realtà un 'devops' in realtà più complicato, la tua domanda ha quasi 3 anni quindi sarebbe interessante sentire come stai trovando il viaggio, darò una risposta dal punto di vista di l'amministratore di sistema circa le applicazioni che hai menzionato sopra e, si spera, farà luce o fornirà una prospettiva non tecnica che spiegherà perché una persona (amministratore o sviluppatore) inizierebbe a considerare esattamente ciò che hai chiesto, ad esempio dagli sviluppatori prospettiva qual è la relazione tra x, y, z questi strumenti sono maggiori della somma delle loro parti?
In realtà penso che gli amministratori di sistema abbiano il sopravvento qui, la maggior parte delle applicazioni che menzioni nella tua domanda risolvono i "problemi" dell'amministratore e in tal modo forniscono un ambiente di data center più astratto, e questo a sua volta è più programmabile per gli sviluppatori e il nuovo " strategia di devops (leggi strategia / squadra, devops non è una persona). Quindi qual è la relazione con le app che menzioni? in che modo questo fornisce un approccio olistico al servizio IT?
OpenStack: uno strumento che ti consente di creare il tuo cloud privato, quindi paragonabile a qualcosa come AWS
Questo è quello che è, ma cosa fa? - il sistema operativo per lo più chiamato in modo appropriato era DOS - gestiva il tuo disco astrattando il BIOS, OpenStack gestisce il tuo data center e estrae la tua infrastruttura (IaaS - è Jargon per il sistema operativo del data center). Ora il data center ha un'API, una sintassi dei comandi e una GUI, OpenStack può guidare hypervisor, switch, router, firewall, reti di deposito, bilanciamento del carico, gli host della finestra mobile ecc .. OpenStack utilizza l'hardware produce 'plugin' o la particolare funzione può esistere esclusivamente nel software poiché il software ha definito qualcosao virtualizzazione delle funzioni di rete. Oltre a questo OpenStack e tutti gli altri cloud, è possibile orchestrare la propria infrastruttura leggendo gli script lanciati nel motore di orchestrazione o attivati in base a regole (ridimensionamento, ridimensionamento, ecc.). Quindi openstack è un gigantesco strato di astrazione, ad es. Non mi interessa quale switch ho, dammi una rete con questo comando o, costruiscimi un carico bilanciato complicato, HA, disponibile pubblicamente, ridimensionamento automatico, nome dominio registrato, archiviazione allegato thingy - con questo script che ho trovato su internet.
Docker: una "VM leggera", basata su alcuni concetti del kernel Linux, che può essere utilizzata per eseguire i processi in modo isolato, ad esempio in un ambiente di web hosting condiviso.
Docker è un altro livello di astrazione e come il cloud è una tecnologia dirompente, sta cambiando il settore perché risolve molti "problemi" operativi come dipendenze software, aggiornamenti, isolamento dei dati e pura portabilità. Java è diventato popolare a causa della portabilità del codice sorgente a cui gli sviluppatori non dovevano pensare, una JVM in esecuzione significava che il loro codice doveva essere eseguito sulla macchina da caffè fintanto che supportava Java. Docker risolve un problema simile, per eseguire la mia app è necessario un host docker, no, hai bisogno di questa versione di Python, di questo kernel, di questa distribuzione Linux e così via, l'app ovviamente ha ancora quelle dipendenze, ma all'host sottostante non importa e all'amministratore non importa cosa fai all'interno di un container isolato ( fino a un certo punto). Docker sta cambiando il paradigma dello sviluppo e delle operazioni, trattando un intero sistema operativo e i suoi servizi come un binario. possiamo ottenerli da un repository , eseguirne la versione, modificarli, eseguirli con parametri ecc.
Chef: uno strumento per impostare e configurare un sistema operativo, ad esempio all'interno di una VM.
Sì, e non dirompente come i primi due, Chef, burattino, ansible, salt, gestore delle operazioni del centro di sistema e una moltitudine di altre applicazioni in questo spazio offrono un modo per sviluppatori e amministratori di modellare implementazioni, aggiornamenti e altre azioni (configurazione cambiamenti), non sembra esserci alcun organismo di standard che guardi questi sforzi come nel caso del cloud . Ma non abbiamo a che fare con qualcosa di definitivo come l'infrastruttura, quindi è più doloroso apprenderli e non molto è trasferibile dall'uno all'altro.
Vagrant: dal mio punto di vista è automatizzare la creazione e la gestione di macchine virtuali: configurarle, avviarle e arrestarle. Questo può essere fatto usando una VM locale o remota, ad esempio su una piattaforma cloud.
Questo è quello strano nell'elenco delle app che menzioni, Vagrant è uno strumento per sviluppatori e un giocattolo per amministratori, puoi rapidamente creare un ambiente di sviluppo con Vagrant, ad esempio voglio sviluppare un'app Android, prendere un IDE da vagabondo, penso che presto verrà superato da Docker.
puoi darmi un consiglio su come iniziare a usare tutto questo (è abbastanza allo stesso tempo, e non so ancora da dove cominciare)?
Questo è il motivo per cui penso che gli amministratori abbiano il sopravvento, abbiamo dovuto fare la maggior parte di questo manualmente e sapere cosa può andare storto, manifestazioni di marionette, cloud computing e orchestrazione docker ci saranno più facili, gli sviluppatori si troveranno a prendere molte tangenti, quindi il mio il consiglio a tutti i potenziali devops è di essere prima un amministratore.