Deployment

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Deployment è un termine della lingua inglese utilizzato in informatica, in particolare nel software, con diverse accezioni specifiche ma con il concetto generico di effettuazione di una distribuzione software. Il deployment del software è l'insieme delle attività che rendono un sistema software disponibile per l'utilizzo.[1]

Descrizione[modifica | modifica wikitesto]

Applicazioni e sistemi software[modifica | modifica wikitesto]

Il significato più comune del termine "deployment"[2] in informatica è distribuzione, ovvero la consegna o rilascio al cliente, con relativa installazione, configurazione e messa in funzione o esercizio, di un'applicazione o di un sistema software tipicamente all'interno di un sistema informatico aziendale (es. rete di computer aziendale). Lo si può di fatto considerare come una fase del ciclo di vita del software, la quale conclude lo sviluppo e il relativo collaudo e dà inizio alla manutenzione. Tipicamente questa operazione è appannaggio dei cosiddetti sistemisti applicativi[3].

Quando si installa, configura e avvia un sistema operativo (ad esempio Windows Server 2022) su una macchina server, si esegue un deployment. Nel caso di software non specifico (sistemi operativi, applicazioni di uso domestico, ecc.) il deployment è la distribuzione[4] di immagini, pacchetti di aggiornamento, nuove versioni, ecc.

Il termine deployment è usato a volte al posto del termine delivery: sebbene i due concetti siano simili, non possono essere totalmente sovrapposti. Deployment è la procedura operativa che consente di giungere alla delivery (consegna). Poiché l'impatto potenziale dell'installazione può essere traumatico per un'azienda abituata a precedenti sistemi, si hanno varie possibili modalità di installazione o deployment del software:

  • L'installazione diretta, in cui si disattiva il vecchio sistema e si sostituisce col nuovo appena creato. Se tale sostituzione presenta dei problemi non previsti in fase di sviluppo, non esiste backup dei vecchi programmi, il che causa enormi problemi. Tale soluzione è adottata soltanto in assenza di alternative valide.
  • L'installazione parallela, in cui il lavoro previsto per il nuovo sistema è distribuito in parti uguali su di esso e su quello obsoleto, in modo da far fronte a un eventuale problema del nuovo utilizzando temporaneamente il vecchio. Quando il nuovo sistema raggiunge un discreto livello di affidabilità, sostituisce totalmente il vecchio.
  • L'installazione scaglionata, in cui il nuovo sistema è introdotto per gradi, man mano che vengono risolti gli errori riscontrati; esso sostituisce il vecchio secondo varie fasi. Adottando tale soluzione, eventuali problemi avranno conseguenze meno disastrose, interessando soltanto una singola fase. Svantaggio di questo tipo di installazione sono i tempi molto lunghi.
  • L'installazione pilota, in cui il nuovo sistema viene utilizzato soltanto per una piccola parte delle attività aziendali e, se regolarmente funzionante, viene esteso a tutta l'azienda. In caso di problemi essi risulteranno ristretti soltanto a quella parte di attività che adotta il nuovo sistema, senza pregiudicare l'intera attività aziendale.

Superata l'installazione e la fase di avviamento, il programma fornirà all'azienda un servizio efficiente e regolare, richiedendo comunque manutenzione, durante la quale vengono risolti i problemi riscontrati e introdotti cambiamenti funzionali atti a migliorare le prestazioni dei programmi. Con la diffusione della fruizione di sistemi in modalità SaaS il concetto di deployment è cambiato, dato che non c'è nulla da installare e in questo caso dunque si può parlare di configurazione dell'erogazione del servizio.

Configurazione[modifica | modifica wikitesto]

Diretta conseguenza di questo ambito è l'uso di deployment per indicare la procedura di configurazione avanzata (quindi operazioni più complesse richieste da un semplice setup), specie se si eseguono comandi da terminale o ricorrendo a servizi infrastrutturali, comunque eseguendo una procedura centralizzata. In pratica, si tratta di operazioni di avviamento cioè installazione/configurazione (sia sistemistiche che applicative), attuate per rendere utilizzabile e funzionante un sistema (potrebbe anche essere un firmware o un ambiente di pre-avvio). Posto che nei manuali tradotti dall'inglese e anche nel gergo informatico non è quasi mai tradotto (si trova scritto anche "deploy"[5]), si potrebbe usare il termine italiano allestimento.

Spesso, l'amministratore di dominio (sistemista di rete) sceglie di impostare il deployment di un'applicazione in maniera silente, cioè totalmente trasparente per gli utenti, che così si ritrovano il programma o il servizio senza dover eseguire alcuna operazione dal proprio dispositivo di rete.

Modellizzazione[modifica | modifica wikitesto]

In molti approcci alla modellizzazione del software o di altri sistemi, incluso quello di UML, il termine "deployment" viene usato per indicare quella parte di un modello che specifica come le funzioni del sistema, descritte altrove nel modello in termini astratti, siano messe in corrispondenza con oggetti concreti (componenti software o hardware).

Provisioning[modifica | modifica wikitesto]

Altro termine dell'inglese informatico, contiguo a deployment, è provisioning (lett. "erogazione", "fornitura", "approvvigionamento") usato con il significato di "avviare ed erogare" un sistema IT[6].

Un altro significato è quello relativo alle procedure di creazione e manutenzione degli accessi (con o senza credenziali), per gruppi e/o account già inseriti nel dominio, delle informazioni agli utenti, ai servizi e alle macchine (propagazione e diffusione dei permessi). Il de-provisioning è il processo inverso, ovvero la riduzione o eliminazione dei permessi di accesso alle applicazioni o ai servizi. Ad esempio Microsoft[7] utilizza la parola "provisioning" per intendere il processo di creazione di impostazioni per distribuire (in parole povere: implementare da remoto o centralmente) una determinata configurazione software a macchine di un dominio oppure anche a un dispositivo per uso domestico.

Nei sistemi operativi o nelle applicazioni o nelle soluzioni in cloud il provisioning è la distribuzione "in massa" di rilasci, aggiornamenti, evoluzioni, patch, fix ecc.

In ambito hardware il provisioning è la procedura di adeguamento di risorse (di calcolo, di memoria, di connettività, di monitoraggio), in particolare l'incremento, secondo le necessità dei sistemi.

Provisioning è usato anche in telecomunicazione con significati analoghi (lo usano ad esempio i provider o i produttori di dispositivi per indicare che una carta SIM non è stata individuata e registrata sulla rete cellulare).

Ogni componente del sistema IT può essere sottoposto a provisioning, che è una fase del deployment. La configurazione (fine tuning) è un'operazione tipica della fase di provisioning.

Note[modifica | modifica wikitesto]

  1. ^ Pressman, Roger S., author., Software engineering : a practitioner's approach, ISBN 978-1-260-54800-6, OCLC 1156320874. URL consultato il 13 aprile 2022.
  2. ^ Lett. "distribuzione", "diffusione", "percorso". In parole povere, è l'installazione/configurazione ma in ambito professionale (applicativo o sistemistico). Essendo il deployment un processo costituito da più fasi, articolate in diverse operazioni, non esiste in italiano un termine esattamente corrispondente alla parola dell'inglese informatico. In pratica, è un'installazione complessa e specialistica.
  3. ^ Nel caso applicativo lo stato deployed può essere tradotto in "rilasciato" (che, in pratica, significa "collaudato, configurato e funzionante", cioè validato), sebbene l'inglese informatico usi anche released con una sfumatura diversa (rilascio commerciale, non tecnico).
  4. ^ Microsoft, ad esempio, usa il termine "distribuzione" come traduzione di deployment per questi casi.
  5. ^ Deploy è il verbo relativo al sostantativo deployment.
  6. ^ https://www.redhat.com/it/topics/automation/what-is-provisioning
  7. ^ https://docs.microsoft.com/it-it/windows/configuration/provisioning-packages/provisioning-packages

Voci correlate[modifica | modifica wikitesto]