Che cos'è la distribuzione software?
- 3 minuti
La distribuzione software include tutte le attività che rendono disponibile un sistema software per l'uso. Il processo di distribuzione generale è costituito da diverse attività correlate, con possibili transizioni tra di esse. Ogni sistema software è unico, quindi la distribuzione è un processo generale che deve essere personalizzato in base a requisiti o caratteristiche specifiche.
Alcuni usano i termini "distribuzione" e "installazione" in modo intercambiabile, ma l'installazione del software è solo una parte del processo di distribuzione. La distribuzione comporta più di quanto inizialmente previsto. Le attività di distribuzione possono includere:
- "Montaggio su rack e impilamento di un server."
- Distribuzione di un componente software aggiornato in tale server.
- Uso di elementi quali script e infrastruttura come codice.
- Addirittura muoversi per l'ufficio con un'unità USB per installare manualmente il software sui computer.
La distribuzione manuale del software richiede un utilizzo intensivo del lavoro e non offre scalabilità ottimale. L'automazione rende più semplice e conveniente garantire la coerenza quando si implementa un nuovo software o si aggiorna quello esistente all'interno di un'organizzazione.
Questo percorso di apprendimento è incentrato su come distribuire al meglio il software per l'affidabilità. Questo modulo affronta non solo la distribuzione del software, ma anche quella dell'infrastruttura cloud. Eventuali riferimenti alla distribuzione di un servizio o di una soluzione possono indicare la distribuzione di software, infrastruttura cloud, configurazione e tutti gli elementi necessari per rendere un sistema software disponibile per l'uso in modo affidabile.
Scenario: distribuzione epica
Il termine epico significa "grande, monumentale o vasto", ma nel contesto di questa discussione, non è una buona cosa. Jez Humble e David Farley usano il termine nel loro libro Consegna Continua: Rilasci di software affidabili tramite automazione di build, test e deployment perché rappresenta un'impresa enorme (e altamente dirompente). Ecco un esempio di come si verifica in genere:
- Un'organizzazione sviluppa un'applicazione per le vendite. Questa applicazione viene aggiornata esattamente due volte all'anno.
- Durante questi aggiornamenti, vengono distribuite tutte le nuove funzionalità, le correzioni di bug (di piccole e grandi dimensioni) e gli aggiornamenti delle dipendenze.
- La prima distribuzione dell'anno è pianificata per il fine settimana della Festa del lavoro, mentre la seconda è prevista per il fine settimana dopo il giorno del Ringraziamento.
- Ogni aggiornamento è una situazione del tipo "tutti in campo". Il team dell'applicazione, il team di supporto, il team di infrastruttura e la gestione sono tutti coinvolti nella distribuzione.
- I servizi risultano temporaneamente offline mentre è in corso la distribuzione.
- La storia ha dimostrato che la distribuzione si accompagna sempre a problemi, progettazione su richiesta, risoluzione dei problemi e modifiche di gestione della configurazione.
- Raramente va bene e, al suo completamento, in genere risulta assemblata in un modo non riproducibile.
Questa non è una buona situazione di implementazione. Il metodo di distribuzione epica è un'intensa attività manuale che presenta una serie di problemi:
- È complessa.
- È stressante.
- È rischiosa.
- È lenta.
- Non è riproducibile a causa della complessità di tutti i passaggi.
- Spesso richiede il coinvolgimento di diversi esperti per completare la distribuzione.
Poiché questo processo è lungo e difficile, deve essere pianificato in momenti che minimizzano l'interruzione della produttività degli utenti, il che significa orari che potrebbero risultare scomodi per il team di distribuzione, come i fine settimana e le festività.
È possibile che i membri del team si sentano sotto pressione per completare la colossale operazione entro i tempi previsti, cosa che potrebbe indurli a commettere errori di configurazione. Inoltre, i tempi prolungati tra una distribuzione e l'altra possono far dimenticare come vanno esattamente le cose.
Il dilemma della distribuzione
La distribuzione del software è un'attività complessa, e quando si "accumulano" più modifiche essenziali, correzioni e aggiunte di funzionalità in un'unica distribuzione, si aumenta la complessità e di conseguenza la probabilità che si verifichi un errore. Inoltre, in caso di problemi, questa complessità rende ancora più difficile tenere traccia esattamente di ciò che ha causato il problema.
Questa complessità può anche creare problemi per gli utenti finali, in quanto potrebbero dover imparare a gestire tutte le nuove funzionalità e le modifiche in una sola volta, per non parlare dei bug introdotti dalla complessità della distribuzione epica.
Ci dovrebbe essere un modo migliore, e c'è. La buona notizia è che la strategia di distribuzione epica tradizionale non è l'unica opzione. Si apprenderà un modo migliore per eseguire questo processo nell'unità successiva.
Verificare le conoscenze
Commenti e suggerimenti
Questa pagina è stata utile?
No
Serve aiuto con questo argomento?
Provare a usare Ask Learn per chiarire o guidare l'utente in questo argomento?