devops tutorial ultimate guide devops
Questa è una serie completa di tutorial DevOps di oltre 25 tutorial di testo e video che coprono tutti gli aspetti del DevOps come Cos'è DevOps, i principi DevOps e il suo Architect.
Elenco dei tutorial nella serie di formazione DevOps:
# 1) Introduzione a DevOps (Questo tutorial)
#Due) DevOps e test del software
Esercitazioni video DevOps:
# 3) Tutorial video 1: Background DevOps, definizione, valore, vantaggi, abitudini e best practice
- Parte 1 Blocco 1 - Demistificazione di DevOps
# 4) Video tutorial 2: Pratiche DevOps basate sui principi Agile, sul controllo del codice sorgente e sull'automazione DevOps
Questo video tutorial è diviso in 6 blocchi:
- Parte 2 Blocco 1 - DevOps Practice basata su Agile Manifesto
- Parte 2 Blocco 2 - Controllo del codice sorgente e della versione in DevOps
- Parte 2 Blocco 3 - Automazione in DevOps
- Parte 2 Blocco 4 - Piccoli incrementi di consegne in DevOps
- Parte 2 Blocco 5 - Collaborazione nei team DevOps
- Parte 2 Blocco 6 - Come sviluppare la collaborazione nei team DevOps
# 5) Esercitazione video 3: DevOps elabora integrazione continua, test continui e consegna continua
Questo video tutorial è diviso in 4 blocchi:
- Parte 3 Blocco 1 - Integrazione continua in DevOps
- Parte 3 Blocco 2 - Consegna continua in DevOps
- Parte 3 Blocco 3 - Distribuzione continua in DevOps
- Parte 3 Blocco 4 - Test continuo in DevOps
# 6) Video tutorial 4: Gestione della configurazione DevOps e monitoraggio live delle prestazioni delle applicazioni
Questo video tutorial è diviso in 3 blocchi:
- Parte 4 Blocco 1 - Gestione della configurazione nelle pratiche DevOps
- Parte 4 Blocco 2 - Gestione dei rilasci in DevOps
- Parte 4 Blocco 3 - Monitoraggio delle prestazioni delle applicazioni in DevOps
# 7) Video tutorial 5: Riassunto dell'intero corso.
- Parte 5 Blocco 1 - Riepilogo dei tutorial video DevOps
Tutorial di testo:
# 8) Shift Left Testing
# 9) Come migliorare la qualità del software utilizzando l'integrazione continua
# 10) Processo di consegna continuo
Strumenti DevOps:
#undici) Strumenti DevOps
# 12) Installazione e configurazione degli strumenti DevOps open source di uso comune
# 13) I migliori strumenti di integrazione continua
# 14) I migliori strumenti di consegna continua
Esercitazione su Microsoft VSTS:
#quindici) Microsoft VSTS parte 1
# 16) Microsoft VSTS parte 2
Strumenti AWS DevOps:
# 17) Strumenti AWS DevOps, parte 1 (CodeCommit)
# 18) Strumenti AWS DevOps Parte 2 (CodeBuild)
# 19) Strumenti AWS DevOps parte 3 (CodeDeploy)
#venti) Distribuzione di applicazioni Web .NET utilizzando AWS Elastic Beanstalk
Ansible per DevOps:
#ventuno) Ansible Parte 1: installazione e configurazione
# 22) Ansible Parte 2: Automazione delle attività tramite Playbook
# 2. 3) Ansible Parte 3: Ruoli Ansible e integrazione con Jenkins
# 24) Integrazione di Jenkins con selenio
# 25) Strumento di integrazione continua Hudson
# 26) Società di fornitori di servizi DevOps
# 27) Domande di intervista DevOps
Cominciamo con il primo tutorial di questa serie.
Cosa imparerai:
- Introduzione a DevOps
- Panoramica di Agile e DevOps
- DevOps riguarda solo gli strumenti?
- Componenti di DevOps
- Sommario
- Lettura consigliata
Introduzione a DevOps
DevOps non riguarda solo gli strumenti, ma include anche una serie di best practice che consentono di colmare il divario tra i team di sviluppo e operativi nelle aree di integrazione e distribuzione continue utilizzando un set integrato di strumenti per automatizzare la consegna del software.
html5 css3 domande e risposte dell'intervista
È fondamentale che gli sviluppatori comprendano il lato operativo e viceversa. Quindi l'obiettivo di DevOps è semplicemente quello di aiutare qualsiasi organizzazione nella velocità di consegna delle applicazioni agli utenti finali e consentire un feedback più rapido degli utenti finali che è la necessità di qualsiasi azienda oggi.
Panoramica di Agile e DevOps
Non c'è differenza tra Agile e DevOps. Invece, si completano a vicenda. Cominciamo osservando il modello Waterfall in cui tutti i requisiti sono congelati e la progettazione e lo sviluppo vengono eseguiti uno dopo l'altro fino a quando non è disponibile un prodotto stabile.
Quindi il problema qui è che se c'è un cambiamento nelle esigenze del cliente in questa fase, non c'è modo di includere e fornire le nuove esigenze.
Al fine di affrontare il problema dell'adattamento alle esigenze dei cambiamenti del cliente meglio che nel metodo a cascata, è stata adottata l'Agile. L'idea era quella di sviluppare un software in sprint più piccoli o iterazioni, diciamo circa 2 o 3 settimane, che aiutassero i team di sviluppo a lavorare sul feedback degli utenti finali e incorporare le modifiche nelle versioni più recenti.
Quindi i team di sviluppo e operativi devono essere agili nelle loro aree di lavoro eDevOpsè nato per consentire una migliore collaborazione tra di loro.
Agile introduce processi come XP, SCRUM ecc. E DevOps introduce pratiche come integrazione continua, consegna continua, test continuo e monitoraggio continuo che vedremo in dettaglio man mano che andremo avanti in questo tutorial.
DevOps riguarda solo gli strumenti?
In un certo senso, potresti sostenere che per implementare DevOps hai bisogno di strumenti. È vero, ma gli strumenti sono solo acceleratori.
Ma in realtà si tratta dei seguenti 3 aspetti:
Persone :È molto importante formare e disporre di un team di persone altamente motivato per poter comunicare e collaborare in modo efficace durante l'intero viaggio di cambiamento culturale.
Processi: Poiché stiamo parlando di cambiamento culturale per l'implementazione di DevOps, è assolutamente necessario disporre di pratiche e strategie che forniscano valore al cliente. Un modo corretto per farlo sarebbe eseguire una valutazione della maturità AS-IS, esaminare le lacune e proporre una tabella di marcia per l'attuazione di raccomandazioni appropriate.
Non parlerò in modo approfondito di come sono riuscito a fare queste valutazioni, ma sarò lieto di condividere qualsiasi contributo sulle stesse.
Utensili: Infine, si tratta di utilizzare gli acceleratori automatizzando il processo utilizzando gli strumenti DevOps standard disponibili oggi. Potrebbe essere Open-Source (Jenkins, Git ecc.), Commerciale (Microsoft TFS, VSTS, IBM Rational, Jira ecc.) O un mix di entrambi.
Componenti di DevOps
Spero che a questo punto tu abbia un'idea di cosa sia DevOps.
Diamo ora un'occhiata ai seguenti 4 componenti di DevOps che costituiscono il nucleo dal punto di vista dell'implementazione e anche le organizzazioni hanno sviluppato buoni framework di automazione attorno allo stesso offrendolo come servizio ai loro clienti.
- Integrazione continua
- Test continuo
- Consegna continua
- Monitoraggio continuo
Ho veramente creduto che se uno sviluppatore deve lavorare in questa modalità, dovrebbe esserci un elemento di esecuzione come un'attività o un difetto (in Agile può essere una parte della User Story) assegnato a lui per consentirgli di consegnare il lavoro all'interno il lasso di tempo dello sprint.
Quindi, anche prima che i passaggi sopra elencati possano essere implementati, questi compiti o difetti dello sviluppatore dovrebbero essere pianificati in uno Sprint. Quindi strumenti come JIRA, IBM Rational Team Concert, Microsoft TFS / VSTS ecc. Aiutano a creare i piani di rilascio / sprint agile.
Diamo ora un'occhiata a ciascuno di questi componenti in dettaglio.
# 1) Integrazione continua
In qualità di sviluppatore, lavori sulle attività o sui difetti assegnati e archivia il codice in un repository condiviso più volte al giorno. Allo stesso modo anche gli altri membri del team archiviano il codice nel repository condiviso.
Quindi integrerai effettivamente tutto il lavoro svolto dai membri del team in un server di build comune ed eseguirai una build automatizzata. L'esecuzione regolare di queste integrazioni e build automatizzate è denominata integrazione continua.
Questa pratica aiuta a rilevare i problemi molto presto e garantisce anche che tutti i moduli integrati funzionino come richiesto. Quindi, se non segui questo approccio, l'integrazione del lavoro del team potrebbe avvenire una volta al mese, il che potrebbe essere in ritardo per trovare e risolvere eventuali problemi di integrazione.
Esempio di flusso di lavoro di integrazione continua:
# 2) Consegna continua
La consegna continua è il passaggio successivo dopo l'integrazione continua. L'obiettivo della Continuous Delivery è di spingere l'applicazione incorporata in produzione il più rapidamente possibile. Durante questo processo, attraversa varie fasi del ciclo di vita della consegna, ad esempio QA, gestione temporanea, ambienti di produzione ecc.
Questo processo di distribuzione regolare delle applicazioni integrate in varie fasi è noto come Continuous Delivery.
La consegna continua aiuta a velocizzare il time-to-market rispetto ai metodi tradizionali, a ridurre i rischi, a ridurre i costi incoraggiando una maggiore automazione nel processo di rilascio e, soprattutto, ottenendo feedback più rapidi dagli utenti finali per produrre un prodotto di qualità.
Dalla mia esperienza, ho visto che questo processo funziona bene per qualsiasi tipo di sviluppo di applicazioni web.
Ho anche svolto una discreta quantità di valutazioni sulle implementazioni DevOps per organizzazioni nell'area di business dei semiconduttori, ma a causa della loro ciclo di rilascio questa area di Continuous Delivery non sembra adattarsi perché è più un processo a cascata che viene seguito e le distribuzioni vengono eseguite come e quando richiesto in un ambiente del cliente.
Esempio di flusso di lavoro di consegna continua:
Nel diagramma sopra, è possibile esaminare diversi ambienti disponibili e quindi questo provisioning dell'infrastruttura per gli ambienti può anche essere automatizzato durante questo processo di distribuzione continua.
# 3) Test continuo
Dalle due pratiche precedenti, siamo venuti a sapere che CI e CD aiutano a distribuire l'applicazione o le modifiche alla produzione. L'intero processo prevede una corretta convalida del codice e la sua integrazione con tutti i componenti coinvolti in esso per garantire che l'applicazione funzioni come previsto e sia priva di bug o difetti.
Quindi il test continuo è il processo di esecuzione di vari tipi di test automatizzati a partire dal processo CI fino al momento in cui l'applicazione viene finalmente distribuita alla produzione.
Puoi vedere dal diagramma precedente che nella fase di integrazione continua integriamo tutti gli sviluppatori che lavorano in un server di build comune e anche durante questa fase gli sviluppatori eseguono una certa quantità di unit test.
Una volta che queste integrazioni e questi test funzionano senza errori, solo l'applicazione o le modifiche vengono distribuite nell'ambiente QA dopo aver richiesto questi controlli di qualità e approvazioni.
Nell'ambiente QA, i test funzionali vengono eseguiti e di nuovo, in base alle approvazioni, verranno distribuiti nell'ambiente di staging che sarebbe alla pari come i sistemi di produzione e i test di accettazione eseguiti. Una volta completata questa attività, l'applicazione o le modifiche vengono finalmente implementate nei sistemi di produzione.
Quindi si può notare qui che il test continuo come attività inizia dalla fase CI stessa ed è un passaggio molto obbligatorio durante il processo di consegna continua.
Flusso di lavoro di test di esempio nel processo di consegna continua:
# 4) Monitoraggio continuo
Quando l'applicazione o le modifiche vengono distribuite nell'ambiente di produzione, il team operativo cercherà di monitorare l'applicazione e l'ambiente dal punto di vista del tempo di attività, della stabilità e della disponibilità. Questo processo è noto come monitoraggio continuo.
I team operativi avranno i propri software per monitorare l'ambiente, ma dovranno anche fare la loro parte per monitorare le applicazioni distribuite per eventuali problemi. Per questo, avrebbero bisogno di lavorare con i team di sviluppo per creare determinati strumenti per analizzare i problemi dell'applicazione.
Quindi i problemi di infrastruttura, ambiente e applicazioni sono tutto ciò che viene monitorato nel processo di monitoraggio continuo.
Sommario
In questo tutorial, siamo venuti a sapere in cosa consiste esattamente il processo DevOps, inclusi i vari componenti coinvolti. Questi componenti aiutano ad accelerare la consegna delle applicazioni e anche a risparmiare il time to market, che è la necessità del business oggi da un punto di vista competitivo.
Nella prossima serie di tutorial nel segmento DevOps, darai un'occhiata ai diversi video / probabili strumenti DevOps che i team possono utilizzare e anche all'implementazione di DevOps utilizzando determinati strumenti per on-premise e cloud.
unix comanda domande e risposte alle interviste per esperti
E come detto e fatto, ho trovato l'implementazione di DevOps entusiasmante, nel modo di guardare da un cambiamento organizzativo.
Il nostro prossimo tutorial ti spiegherà tutto su DevOps e test del software.
Lettura consigliata
- Tutorial approfonditi su Eclipse per principianti
- Consegna continua in DevOps
- Distribuzione continua in DevOps
- Tutorial sul test DevOps: in che modo DevOps influirà sui test di controllo qualità?
- Integrazione continua in DevOps
- Test continuo in DevOps
- Riepilogo dei tutorial video DevOps
- Tutorial di AWS CodeCommit per l'implementazione di DevOps nel cloud