Da quando ho iniziato a lavorare con diverse applicazioni web in Linux Handbook e High On Cloud, il termine DevOps ha attirato la mia attenzione molte volte poiché è qualcosa che trattiamo specificamente in Linux Handbook.
Abbiamo trattato tutorial su molti strumenti relativi a DevOps, ma non abbiamo mai provato a esplorare in profondità il concetto reale. Poiché Linux Handbook è dedicato ai server Linux , dobbiamo anche esplorare il loro ruolo importante nel campo DevOps.
Ma prima di farlo, è essenziale capire cosa sia veramente DevOps. DevOps è una parola d'ordine estremamente popolare e ne troverai molteplici definizioni sul web. Ma sulla base delle mie esperienze, sono arrivato alla seguente definizione e ai pensieri conclusivi d'ora in poi. Questo è un tentativo di rivisitare le norme DevOps esistenti e di ripensarle sotto forma di un nuovo modello che propongo qui.
Cos'è DevOps?
DevOps è un processo di semplificazione continua per mantenere un delicato equilibrio tra funzionalità, usabilità e sicurezza di un'applicazione sia in termini di Sviluppo elopment e Op ziones .
Come assicurarlo?
Garantire che un'applicazione si evolva in modo efficiente pur essendo operativa è una sfida continua per i DevOps Engineers. Per fare ciò, i componenti più fondamentali di DevOps devono essere costantemente monitorati.
Ciclo di vita dello sviluppo delle applicazioni (ADLC)
Stai creando una nuova applicazione? Inizi proprio da qui!
Il ciclo di vita dello sviluppo delle applicazioni è la motivazione fondamentale alla base dello sviluppo di qualsiasi applicazione. A meno che il processo di sviluppo non sia attentamente e costantemente monitorato, non si può essere assolutamente sicuri del suo sviluppo impeccabile. Un'applicazione sarà sempre in ADLC fino a quando non sarà pronta per la produzione.
ADLC è un principio essenziale di ingegneria del software che consiste in sei fasi essenziali. Lo sviluppo di un'applicazione prevede i seguenti passaggi:
- Piano concettuale :dare forma all'idea centrale dell'applicazione.
- Programmazione :Questo è il momento in cui l'applicazione viene creata e sviluppata.
- Documentazione :Un'applicazione eccellente è inutile senza un'attenta documentazione (leggibile dall'uomo).
- Test per la garanzia della qualità :assicurarsi che il prodotto finale sia funzionale, utilizzabile e sicuro.
- Debug :I bug segnalati durante il test sono stati corretti.
- Rilascio di sviluppo :viene rilasciata la prima versione dell'applicazione.
Fino a quando ea meno che non sia disponibile una versione stabile, questo ciclo continuerà ad esistere. Una volta che un software viene rilasciato come versione stabile pronta per la produzione, non rientra più in ADLC. Alla fine rientra nel ciclo di vita dello sviluppo del sistema (SDLC).
Ciclo di vita dello sviluppo del sistema (SDLC)
Una parte della nostra community DevOps potrebbe affermare che sia ADLC che SDLC sono la stessa cosa. Ma nello scenario del mondo reale, quello che vedo è che ADLC e SDLC sono abbastanza diversi.
Il ciclo di vita dello sviluppo del sistema è la motivazione fondamentale dietro lo sviluppo e il funzionamento di un'applicazione. Implica lo sviluppo continuo dell'applicazione dopo il suo primo rilascio stabile e ne garantisce la continua operatività.
- Piano concettuale :Rivisitazione dell'idea centrale alla base dell'applicazione.
- Programmazione :Questo è il momento in cui l'applicazione viene ulteriormente sviluppata.
- Documentazione :aggiornamento continuo della documentazione leggibile dall'uomo.
- Test di nuove versioni per verificarne la qualità :assicurarsi che il nuovo prodotto finale sia funzionale, utilizzabile e sicuro.
- Debug :I bug segnalati durante il test sono stati corretti.
- Rilascio di sviluppo :per una nuova applicazione (in base alla versione o all'app stessa), una versione di sviluppo evolve nella sua prima versione stabile in questa fase.
- Rilascio stabile :l'ultima versione stabile viene rilasciata come prodotto con correzioni relative a bug/sicurezza insieme a nuove funzionalità.
- Distribuzione :il prodotto stabile viene distribuito su server.
- Manutenzione e monitoraggio :monitoraggio costante e periodico dei server e delle applicazioni che vengono eseguite su di essi.
Un modello aperto basato sulla community avrà sempre la manutenzione più agevole. L'ultimo passo del ciclo è veramente realizzabile solo con un modello Open Source. È il più grande fattore decisivo in termini di evoluzione di qualsiasi applicazione.
Un'applicazione che non ha ancora una versione stabile non può essere considerata completata. Non appena un'applicazione è completamente compilata, ADLC si evolve in SDLC. Perché?
- ADLC è puramente uno Sviluppatore Modello di sviluppo
- SDLC è sia uno Sviluppatore elopment e Op ziones Modello
Hai capito il mio punto ora? In ADLC, un'applicazione non è pronta per la produzione, motivo per cui sarebbe ancora in fase di sviluppo barebone. Pertanto, non possiamo chiamarlo DevOps. Solo quando viene rilasciata la prima versione stabile, si evolve in SDLC che è DevOps perché un'applicazione pronta per la produzione diventerà quindi continuamente operativa.
Come risulta dalle due sigle e dallo schema sopra, un'applicazione è molto diversa da un intero sistema. Una domanda non è che una parte di un processo sistemico completo. Questo è ciò che differenzia SDLC da ADLC. Quindi, ADLC è in realtà un sottoinsieme di SDLC.
SDLC deve essere continuamente orientato da noi come community, tenendo presente il delicato equilibrio tra funzionalità, usabilità e sicurezza.
Presentazione del nuovo triangolo DevOps
Questo diagramma non è mai lo stesso perché SDLC non è mai stazionario. È SDLC che viene continuamente orientato all'interno del triangolo dalla community sulla base del feedback continuo di sviluppatori, tester e utenti.
Tale processo di rotazione è in continua evoluzione in base ai requisiti dell'applicazione in fase di distribuzione. Questo modello in continua evoluzione nel mondo reale è il processo di DevOps.
Il punto in cui SDLC si trova all'interno del triangolo varierà sempre da un'applicazione all'altra. La posizione pivot dipende in realtà dalla natura dell'applicazione in fase di distribuzione mentre viene sviluppata tenendo d'occhio:
Funzionalità :La funzione principale dell'applicazione. Ad esempio, la possibilità di inviare messaggi tramite Rocket.Chat.
Usabilità :La facilità d'uso dell'applicazione. Ad esempio, come puoi inviare messaggi comodamente tramite Rocket.Chat.
Sicurezza :Grado di sicurezza dell'applicazione. Ad esempio, una correzione di bug che risolve una vulnerabilità di Rocket.Chat come questa.
Una comunità diversificata che sostiene un'applicazione Open Source deve mantenere sempre un delicato equilibrio tra funzionalità, usabilità e sicurezza.
Ma come effettivamente?
Umiltà sul posto di lavoro:massima precisione nel pivoting
Alla fine della giornata, sviluppatori, utenti e tester sono tutti umani. Che siano locali o virtuali, le culture e i luoghi di lavoro DevOps devono adottare la semplice idea di compassione. Un luogo di lavoro che pratica la gentilezza tra i colleghi è destinato a migliorare la produttività sia dell'ADLC che dell'SDLC!
Non si tratta solo di app Web, ma anche di persone. Sono loro che li creano, li distribuiscono e li mantengono continuamente. Questo è ciò che riguarda la community ed è per questo che DevOps è anche una cultura. La cultura DevOps riguarda la gestione non solo di un'app Web, ma anche delle persone che la rendono realtà.
Un approccio Open Source rende l'intero processo molto più realizzabile di uno proprietario. Questo è ciò che ho provato lavorando con questo sistema collettivo di persone, pratiche e tecnologia .
Non vedo l'ora di continuare a condividere i miei pensieri su questo genere attraverso una serie di articoli da seguire. Quello che ritengo è, che si tratti di una piccola, media o grande impresa, DevOps è applicabile ovunque, ma sotto forma di modelli personificati.
Questa è solo una piccola parte di ciò che sono ansioso di esplorare attraverso questa serie. Per favore condividi i tuoi pensieri nella sezione commenti qui sotto. Grazie per aver visitato il Manuale di Linux!