Deployment

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.

DescrizioneModifica

Applicazioni e sistemi softwareModifica

Il significato più comune del termine "deployment"[1] in informatica è distribuzione ovvero la consegna o rilascio al cliente, con relativa installazione, configurazione e messa in funzione o esercizio, di una 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[2].

Nel caso di software non specifico (sistemi operativi, applicazioni di uso domestico, ecc.) il deployment è la distribuzione[3] 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, causando 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 ad 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 funzionante regolarmente, 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 avviamento, il programma fornirà all'azienda un servizio efficiente e regolare, richiedendo comunque manutenzione, durante la quale vengono risolti i problemi riscontrati ed 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.

ConfigurazioneModifica

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 eseguite da terminale comandi o ricorrendo a servizi infrastrutturali, comunque eseguendo una procedura centralizzata. In pratica, 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"[4]), si potrebbe usare il termine italiano allestimento.

Spesso, l'amministratore di dominio (sistemista di rete) scegli 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.

ModellizzazioneModifica

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).

ProvisioningModifica

Altro termine dell'inglese informatico, contiguo a deployment, è provisioning (lett. "erogazione", "fornitura", "approvvigionamento) usato quando si vuole significare "avviare ed erogare" un sistema IT[5]. Un altro significato è quello relativo alle procedure di creazione e manutenzione degli accessi (con o senza credenziali) delle informazioni agli utenti, ai servizi e alle macchine (propagazione e diffusione dei diritti). Nei sistemi operativi o nelle applicazioni il provisioning è la distribuzione di aggiornamenti, evoluzioni, ecc.

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.

NoteModifica

  1. ^ Lett. "distribuzione", "diffusione", "percorso". In parole povere, è l'installazione/configurazione ma in ambito professionale (applicativo o sistemistico). Essendo il deployment una fase costituita da diverse operazioni, non esiste in italiano un termine esattamente corrispondente alla parola dell'inglese informatico.
  2. ^ 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).
  3. ^ Microsoft, ad esempio, usa il termine "distribuzione" come traduzione di deployment per questi casi.
  4. ^ Deploy è il verbo relativo al sostantativo deployment.
  5. ^ https://www.redhat.com/it/topics/automation/what-is-provisioning

Voci correlateModifica