• Blog

Vagrant e Docker supporto allo sviluppo di applicazioni

In passato la fase di set-up e/o di start-up di un progetto in sviluppo richiedeva notevole impegno e tempo. Tipicamente una volta terminata la fase progettuale di un’applicazione ed una volta individuate le risorse da impiegare per il suo funzionamento,eranecessarioconfigurare un ambiente capace di mettere a disposizione queste risorse.Immaginando un’applicazione molto sempliceil cui obiettivo è di storicizzare informazioni e di fornirne una visualizzazione attraverso una pagina web, gli elementi indispensabili all’interno dell’ambiente ospiterà l’applicazione, saranno la presenza di un DBMS ela presenza di un web container.

Questo comunemente si traduceva nella configurazione, nel migliore dei casi, di un server (dedicato allo sviluppo) oppure nell’installazione di queste risorse sulla stessa macchina dello sviluppatore. Tutto ciò portava all’installazione di un DBMS, un web container ed, eventualmente, una serie di attività di configurazione delle macchine di destinazione. Ovviamente all’interno di una software house il numero di progetti è molteplice perciò quanto detto precedentemente doveva essere ripetuto per ogni progetto in sviluppo.

Ipotizzando inoltre che ad ogni applicazione in sviluppo sia necessario un ambiente fisico dedicato, si presentava un problema di costi, dovuto all’acquisto di più elaboratori, di spazio occupato da essi e di manutenzione di ogni macchina. Tutto questo si aggiungeva alle problematiche di configurazione.

Una soluzione che ha permesso una notevole riduzione del numero di server dedicati e conseguentemente di risorse è stata l’introduzione delle macchine virtuali. Per macchina virtuale si intende un software che simula il comportamento di una macchina fisica attraverso un processo di virtualizzazione. Questo comporta che all’interno di una macchina fisica possono essere messe in esecuzione più macchine virtuale e quindi più ambienti a cui destinare più applicativi. Risolte le problematiche delle macchine fisiche, sostituite da quelle virtuali,permanevano le problematiche dovute alla configurazione. Il problema venne spostato, se prima eradi configurazione delle macchine fisiche successivamente divenne di configurazione delle macchine virtuali. Nel corso del tempo si è cercato di risolvere parte di questi problemi condividendo, attraverso il web, macchine virtuali parzialmente configurate ma le personalizzazioni richiedevano comunque del tempo.

 

 

 

Tool per la semplificazione della gestione degli ambienti virtuali e della configurazione

Negli ultimi anni sono nati tool che hanno permesso un notevole passo in avanti. Questi tool semplificano non solo la reperibilità, ma anche la gestione degli ambienti virtuali e la messa in funzione. I due principali strumenti che consentono la gestione di questi ambienti, seppur con approcci profondamente diversi, sono Vagrant e Docker. Entrambi i tool permettono una gestione veloce e snella degli ambienti di sviluppo. Attraverso repository condivisi, è possibile trovare ambienti pre-configurati già pronti all’uso. Le modalità con cui questi due strumenti consentano la gestione di questi ambienti è profondamente diversa.

Vagrant sfrutta a pieno la virtualizzazione, ogni ambiente creato corrisponde ad una macchina virtuale gestita dall’hypervisor (detto anche virtual machine monitor). Le molteplici macchine virtuali gestite da Vagrant restano separate ed inoltre la natura di ognuno di essi può essere diversa. Gli svantaggi della virtualizzazione sono legati alle performance. Ogni macchina virtuale avrà risorse dedicate,  l’hypervisor per poter gestire contemporaneamente ognuna di esse potrebbe consumare tutte le risorse della macchina fisica. Nell’immagine sottostante possiamo vedere l’architettura della virtualizzazione. La macchina fisica con il suo sistema operativo (host OS) ospita il virtual machine monitor, all’interno del VM monitor sarà possibile definire gli ambienti virtuali ospiti (guest OS). Vagrant, in questa architettura, si colloca tra il sistema operativo della macchina fisica e il virtual machine monitor, migliorando la gestione di ognuna di esse.

 

 

 

Docker sfrutta la “containerizzazione” ovvero utilizza le funzionalità di isolamento delle risorse del kernel Linux (come ad esempio cgroups e namespace) per consentire a container diversi di coesistere in maniera indipendente sulla stessa istanza Linux. Per questa sua caratteristica viene definita un’applicazione light-weight. L’architettura di questo approccio è riportata nell’immagine sottostante. Docker sfrutta le funzionalità del kernel creando container separati ed indipendenti. Le performance della containerizzazione di Docker sono migliori rispetto al processo di virtualizzazione di Vagrant, in quanto Docker non utilizzando un hypervisor sfrutta direttamente le risorse della macchina fisica.

 

 

 

Mentre Vagrant può essere eseguito solo da terminale di comando, Docker possiede anche un’interfaccia grafica che rende molto più veloce l’installazione e la gestione dei moduli. Per approfondire i due tool vi rimandiamo ai rispettivi articoli.

A questo punto sorge l’annosa questione: è meglio utilizzare la virtualizzazione o la containerizzazione? Per poter rispondere a questa domanda è necessario analizzare attentamente il contesto in cui si opera in quanto la scelta dipende da una serie di fattori tipici dell’ambito IT: prestazionali, di scalabilità, di affidabilità, di sicurezza, sui sistemi esistenti e costi da sostenere; giusto per citarne alcuni.

Nel dettaglio guardiamo alcuni degli aspetti fondamentali:

Latenza – applicazioni con una bassa soglia di tolleranza per la latenza hanno risultati migliori con l’uso dell’ambiente fisico e quindi sui container.

Capacità  - Le macchina virtuali sono strutturate sull’ottimizzazione dei sistemi di carico. In caso in cui applicazioni containerizzate non consumano tutta la capacità sul box fisico, le macchine virtuali potrebbero offrire benefici maggiori.

Ambienti misti – La containerizzazione esegue un’istanza solo di sistema operativo. Se si vuole interagire con sistemi operativi diversi la virtualizzazione lo consente.

Coesistenza – Alcuni sistemi hanno carichi di lavoro che non consentono di condividere il kernel quindi è necessario isolarli interamente. La virtualizzazione fornisce un isolamento dei singoli sistemi.

Licenze - L’utilizzo della containerizzazione riduce i costi dovuti alle licenze per acquisto di un hypervisor e del sistema operativo su cui l’hypervisor si poggia.

 

La decisione finale quindi può avvenire a valle di tante considerazioni e vincoli legati al contesto.

Social dashbord: quando la gestione dei social network si fa semplice

Il mondo dei social network è sempre più presente non solo nella nostra vita quotidiana ma anche nelle strategie di comunicazione aziendale. Dal report “Digital in 2017” di  We Are Social sappiamo infatti che metà della popolazione è ormai connessa a internet e in media, almeno noi italiani, trascorriamo due ore al giorno sui social media. Con l’avvento dei social network è stato quindi inevitabile un cambiamento di rotta nel mondo della comunicazione digitale. 

“Non è la più intelligente delle specie quella che sopravvive; non è nemmeno la più forte; la specie che sopravvive è quella che è in grado di adattarsi e di adeguarsi meglio ai cambiamenti”

A detta di Charles Darwin, vien da sé che se la società cambia, le aziende devono fare altrettanto e hanno subito cavalcato l’onda dei social network, strumenti ad oggi indispensabili per creare strategie marketing ad hoc. 

 

 

Come i social network aiutano le aziende? 

Vendere sì, ma per le aziende la comunicazione sui social network non deve portare solo a questo. 

  • Comunicare sui social vuol dire farsi conoscere da un ampio pubblico e veicolare rapidamente il traffico a siti web corporate. 

 

  • I social network hanno, soprattutto, lo scopo di mettere in contatto tra loro migliaia di utenti, creando perciò in ottica business innumerevoli possibilità di creare relazioni con gli utenti, farsi apprezzare e sviluppare strategie in ottica awareness ed engagement.

 

  • Quando poi la comunicazione è ben fatta e ad essere offerti sono prodotti o servizi di qualità, ecco che il passaparola online si diffonde a macchia d’olio creandoci una buona reputazione online. Per questo motivo comunicare nel modo migliore è indispensabile per raggiungere gli obiettivi di business.

 

Gestire tutti i social non è semplice: un aiuto dalla social dashboard

Ma non poche volte le aziende si trovano a dover fare i conti con quale tipo di contenuti pubblicare, con quale stile e soprattutto a quale target mirare. Spesso fallire in una pianificazione di una strategia vuol dire pianificare al meglio un fallimento. Un’efficiente strategia è fatta di step l’uno propedeutico all’altro, iniziando dall’ascolto della rete.  

Benchmark e monitoring sono attività quotidiane indispensabili. Ma operare giornalmente un ascolto della rete e un monitoraggio online, specie quando i social network da gestire sono tanti, non sempre è possibile. 

Un grande aiuto arriva dalla social dashbord: prodotta da Key-Biz, Wave On Web permette infatti di ridurre i tempi e la quantità di lavoro dando al tempo stesso la possibilità di tenere sott’occhio anche le attività che svolgono i competitor sui social. Principalmente Wave On Web assiste l’utente in attività di:

  • Competitive benchmark: scoprire come si comportano i competitor in rete è fondamentale per organizzare una conseguente strategia vincente

 

  • Measure: monitorare in modo automatico tutti i KPI impostati risulta estremamente utile per avere una panoramica dell’andamento della propria attività sui social 

 

  • Report: esportare facilmente tutti i dati su fogli PDF o Excel aiuta a tagliare quelle tempistiche dedicate alla preparazione di report manuali.

Tutto questo si traduce quindi in meno tempo perso a organizzare i risultati di diverse piattaforme e più tempo speso per creare contenuti e aprirsi a nuove idee per il proprio business. Vi sembra poco?

 

Lego Serious Play: problem solving ed engagement costruiti mattone su mattone

 

“The LEGO® SERIOUS PLAY® method is a facilitated meeting, communication and problem-solving process in which participants are led through a series of questions, probing deeper and deeper into the subject”

La metodologia LEGO® SERIOUSPLAY® (LSP), sempre più comune all’interno sia di grandi che di piccole aziende, è considerato infatti un approccio innovativo al ragionamento, alla comunicazione e alla risoluzione (in 3D) di un problema, migliorando a sua volta le performance di business.

Questa tecnica di facilitazione nasce negli Anni Novanta nel quartier generale della LEGO proprio per favorire l’innovazione del business interno e agevolare i processi decisionali. Ben presto, una volta appresi i primi effetti positivi di questa tecnica, si sviluppa anche al di fuori dell’azienda ideatrice soprattutto quando, nel 2010, Lego rende disponibili i set LSP sullo shop online dell’azienda.

 

Le fasi LEGO® SERIOUSPLAY®: entra in gioco il facilitatore certificato

Il principale vantaggio di LSP è quello di riuscire a raggiungere un elevato engagement delle persone, senza sottovalutare la capacità di riuscire a far comunicare in maniera orizzontale, dirigenti, manager e dipendenti che mettono in gioco (è proprio il caso di dirlo!) la propria immaginazione e creatività.

È infatti proprio attraverso il “gioco serio” che si riesce a dar forma a questioni manageriali legate agli obiettivi  a cui l’azienda aspira. Come tale, questo metodo è basato su un’ampia ricerca che comprende business, sviluppo organizzativo, psicologia e apprendimento, i cui risultati sono direttamente proporzionali alla qualità di facilitazione.

Per questo motivo è indispensabile che la conduzione del processo sia guidato da un facilitatore certificato LEGO® SERIOUSPLAY® per ognuna delle quattro fasi di sviluppo del metodo: 

 

  • Question: in cui viene presentato ai partecipanti un problema da risolvere, connesso direttamente all’obiettivo che si vuole raggiungere

 

  • Build: in questa fase i partecipanti riportano in una struttura creata con i materiali Lego ciò che hanno compreso e la loro risposta al problema

 

  • Sharing: ciascun partecipante condivide la rappresentazione del proprio modello con i presenti. In questa fase ciascun modello prende quindi un significato attribuito dal costruttore stesso

 

  • Reflecting:  nella fase conclusiva del processo emergono le riflessioni su quanto detto ed esposto da ciascun partecipante

Un metodo innovativo quindi per dar voce ai dipendenti in modo realmente costruttivo, creando relazioni, connessioni e dialogo tra le persone mattone su mattone, ovviamente colorato e firmato Lego! 

Key-Biz, 10 anni di innovazione e di successi: nel 2017 ripartiamo dal blog

 

Key-Biz è un’azienda informatica giovane e dinamica nata nel 2007 con uno spirito di innovazione che l’ha portata verso una sempre maggior espansione nel settore dell’ICT. Innovare con entusiasmo è difatti lo slogan che ha guidato il successo di Key-Biz in tutti questi anni, portandola ad acquisire un numero sempre maggiore di clienti e partnership.

L’entusiasmo di ogni dipendente Key-Biz si racconta attraverso il lavoro di ogni giorno, dove la passione per ciò che si fa si traduce in sempre nuovi progetti innovativi, portati avanti con professionalità, grinta e nuovi modelli di business.

 

 

Partecipare, connettersi e condividere

A 10 anni dal suo inizio Key-Biz investe sulla nascita di un suo blog. Il motivo di questa scelta? Key-Biz vuole avvicinarsi ancor di più alle persone offrendo nuovi contenuti trasmettendo al tempo stesso ciò gli sta a cuore: la passione per il lavoro che svolge ogni giorno. Negli ultimi mesi Key-Biz ha investito molto anche sui social network, aprendosi ancora di più al mondo di Facebook, Twitter e LinkedIn, creando in questo modo un ponte con i propri fan/follower con un proprio linguaggio.

Con l’apertura del blog Key-Biz, si apre una nuova finestra online sul mondo dell’innovazione e delle Telecomunicazioni con un occhio di riguardo ai giovani, attivissimi nel settore dell’ICT. Il blog vuole focalizzarsi sulle ultime novità legate alle metodologie di sviluppo software e sviluppo app ma senza tralasciare le notizie legate alle Tecnologie IoT e le loro applicazioni.

Orgogliosi del nostro lavoro vogliamo condividerlo, è per questo che abbiamo pensato a connetterci con voi pubblicando, da oggi in poi, i nostri sviluppi tradotti in nuovi prodotti e servizi.

Benvenuti allora cari lettori,

“Old ways don’t open new doors”, 2017:  Key-Biz apre nuove porte, oggi lo fa col suo blog!