Con le istanze Spot di Amazon EC2, risparmiamo facilmente l'85-90% dei costi. Questa efficienza si traduce nella possibilità di sperimentare con un margine inferiore di rischi e, in definitiva, di sviluppare prodotti di qualità superiore per i nostri clienti. 
Joe Gardner Architetto principale del cloud

Fondata nel 1976, National Instruments (NI) collabora con ingegneri e scienziati per fornire risposte alle domande più complesse. NI offre loro delle soluzioni tecnologiche avanzate progettate per migliorare la produttività e velocizzare l’innovazione in campi che spaziano dalle tecnologie sanitarie al mobile computing e la ricerca aerospaziale. Più di 35.000 clienti di NI hanno immesso centinaia di prodotti sul mercato, i quali hanno permesso di superare innumerevoli limiti tecnologici. Con sede ad Austin (Texas), NI vanta circa 7.400 impiegati sparsi in quasi 50 paesi in tutto il mondo. Nel 2015, la compagnia ha guadagnato 1,23 miliardi di dollari e reinvestito il 16% della cifra in ricerca e sviluppo.  

Tra le tecnologie che NI offre ai suoi clienti vi è LabVIEW, un ambiente di sviluppo per software per la creazione di applicazioni personalizzate. Il modulo FPGA di LabVIEW estende LabVIEW e permette agli ingegneri di realizzare tecnologie sofisticate per i Field Programmable Gate Array (FPGA, chip ri-programmabili in silicio) all’interno delle proprie applicazioni. Un FPGA deve essere compilato prima di poter essere distribuito, richiedendo agli ingegneri di attuare un processo di compilazione dispendioso dal punto di vista delle risorse e del tempo impiegato, effettuato su una macchina configurata con notevoli risorse hardware e i pacchetti software necessari.

Nel passato, i team di sviluppo di NI testavano le funzionalità dei prodotti come questi nei loro ambienti locali. Con la crescita della compagnia sono state necessarie più infrastrutture. Allo stesso tempo, gli FPGA progettati stavano diventando sempre più complessi e richiedevano una capacità di calcolo maggiore. Per ridurre i costi e migliorare le tempistiche del processo di sviluppo, il team di LabVIEW di NI ha cominciato a raccogliere informazioni sul cloud computing. “I transistor stanno diventando sempre più piccoli e disponiamo di più gate programmabili, il che significa che i dispositivi stanno diventando più grandi e complessi, e richiedono una forza di calcolo maggiore per completare la compilazione”, dice Joe Gardner, architetto principale del cloud presso NI.  

Dopo aver considerato varie opzioni, il team FPGA nel 2010 ha esteso il proprio modulo offrendo un servizio di compilazione del FPGA ospitato su istanze on-demand di Amazon Elastic Compute Cloud (Amazon EC2). Il team FPGA utilizza AWS anche per il proprio processo di sviluppo e i test interni. Il team FPGA ha scelto AWS per le sue funzionalità di ridimensionamento automatico, per il controllo che offre agli sviluppatori e per le istanze Spot di Amazon EC2. Tutto ciò ha permesso all’azienda di ridurre i costi relativi alla computazione in modo significativo durante i test delle nuove funzionalità dei prodotti.

Con AWS Auto Scaling, NI può gestire le risorse di AWS EC2 per rispondere a maggiori carichi di lavoro dei clienti. “In precedenza, disponevamo di un processo di ridimensionamento locale che, tuttavia, richiedeva dai 5 ai 30 minuti per poter aggiungere più risorse per supportare carichi di lavoro aggiuntivi”, afferma Gardner. “Con AWS, è possibile farlo in meno di cinque minuti, cosa che offre un enorme vantaggio perché i nostri clienti non devono aspettare per il provisioning di ulteriori capacità”.

Il team FPGA ha scelto AWS anche per la semplicità di utilizzo che offre agli sviluppatori. “AWS è più semplice rispetto agli altri ambienti cloud, offre maggior controllo e non ci obbliga ad applicare aggiornamenti che entrerebbero in conflitto con la compatibilità delle soluzioni”, afferma Gardner. “Inoltre, AWS è semplice da utilizzare, il che significa che possiamo creare dei prodotti senza dover, per esempio, assumere un esperto Hadoop o IoT. Invece, possiamo sfruttare i talenti che già abbiamo in azienda”.

Probabilmente, l’aspetto più importante è che il team FPGA ha compreso di poter risparmiare in modo drastico gestendo le istanze Spot di Amazon EC2 durante le fasi di sviluppo e test, così da poter equilibrare richiesta e risorse permettendo agli utenti di proporre un offerta per le capacità di calcolo di Amazon EC2 di riserva. “I risparmi sono notevoli”, spiega Gardner. “Per esempio, con le istanze Spot, testare uno dei nostri prodotti ci costa circa 500 dollari. Se lo avessimo fatto attraverso l’on-demand processing, ci sarebbe costato dieci volte di più, cioè 5000 dollari”.

Nell’agosto 2014, NI ha utilizzato AWS anche per il team di sviluppo del software di LabVIEW, il quale ora utilizza le istanze Spot di Amazon EC2 per elaborare i carichi di lavoro in eccesso relativi ai test quando l’infrastruttura locale ha raggiunto il massimo della capacità di elaborazione. “Il numero di test da effettuare aumentava e il team di sviluppo di LabVIEW non disponeva delle risorse di calcolo necessarie per completarli”, afferma Gardner. “Si sono rivolti a noi perché sapevano che abbiamo esperienza nel cloud e, in una settimana, hanno cominciato a eseguire i test in eccesso sul cloud”.

Oltre alle istanze Spot di Amazon EC2, NI utilizza diversi altri servizi AWS tra cui Amazon Simple Storage Service (Amazon S3) per lo storage di oggetti ad alta disponibilità; Amazon Relational Database Service (Amazon RDS) e il suo database relazionale; Amazon DynamoDB come database NoSQL veloce e flessibile; e Amazon Route 53 come servizio Web scalabile per il sistema dei nomi di dominio (DNS, Domain Name, System) sul cloud. NI utilizza inoltre AWS CloudFormation, per offrire ai propri sviluppatori un modo semplice per creare e gestire le risorse dei relativi servizi AWS, e AWS CloudTrail, il quale tiene traccia delle chiamate API e fornisce una cronologia dei file di registro.

Con il modello tariffario delle istanze Spot di Amazon, NI può eseguire i carichi di lavoro interni a una frazione del costo dell’on-demand processing, risparmiando decine di migliaia di dollari durante i test delle funzionalità dei propri prodotti. “Con le istanze Spot di Amazon EC2, risparmiamo facilmente l'85-90% dei costi”, afferma Gardner. “Una tale efficienza si traduce nella possibilità di sperimentare con un margine inferiore di rischi e, in definitiva, di sviluppare prodotti di qualità superiore per i nostri clienti”.

NI ha anche risparmiato sui costi necessari per realizzare un’infrastruttura locale più grande. Per esempio, il team LabVIEW ha utilizzato le istanze Spot di Amazon EC2 per eseguire più di 30.000 ore per eseguire i build dei test ogni mese. Per gestire una tale mole di lavoro in locale si sarebbe dovuto raddoppiare le dimensioni dell’infrastruttura interna del team per un costo di 1 milione di dollari da spendere in hardware e costi di manutenzione. Grazie all’utilizzo di AWS, NI è stato in grado di ricalibrare le risorse in modo rapido per soddisfare il fabbisogno corrente, evitando gli ulteriori aumenti dell'organico e i ritardi nell'approvvigionamento che sono associati con l’espansione di un'infrastruttura locale.

Inoltre, eseguire i carichi di lavoro di sviluppo e test su AWS ha permesso a NI di diventare più agile. Poiché i carichi di lavoro dei test variano significativamente durante il ciclo di vita dello sviluppo di un software, NI ha potuto evitare i costi associati con i server non utilizzati durante i periodi in cui vengono eseguiti meno test. Invece, quando la compagnia necessita di maggiori capacità, può ridimensionare le risorse in modo da rispondere all’aumento nella richiesta, ottenendo le capacità di calcolo necessarie per analizzare rapidamente le nuove funzionalità e rilasciarle ai clienti. Per esempio, per poter sviluppare una delle sue funzionalità, il team FPGA aveva bisogno di completare un processo di test comprensivo che includeva più di 900 compilazioni. Se il team avesse condotto tale procedura su un solo server locale, l’intero processo avrebbe richiesto più di tre settimane. Ma grazie alle istanze Spot di Amazon EC2 e la parallelizzazione, il team è stato in grado di completare i test in meno di 10 ore a un costo inferiore di 50 dollari per esecuzione. “Con l’utilizzo di AWS abbiamo ridotto le tempistiche dei cicli di sviluppo, risparmiando diversi mesi”, afferma Gardner. “Se ho bisogno di più server, posso accedervi senza che mi vengano poste domande”.

NI è quindi in grado di offrire una tale agilità anche ai suoi clienti. Poiché il loro FPGA Compile Cloud Service è eseguito interamente su AWS, gli ingegneri possono utilizzare il servizio quando necessario senza dover spendere centinaia di dollari per degli hardware proprietari. “In precedenza, i nostri clienti avrebbero potuto spendere dai 5.000 ai 10.000 dollari per compilare i server di cui avevano bisogno, per poi lasciarli inutilizzati pochi mesi dopo”, ci racconta Gardner. “Poiché le compilazioni sono un processo da tutto o niente, AWS è la soluzione perfetta per quello che facciamo”.

Dal momento che NI continua a crescere, la compagnia sta pianificando di espandere l’utilizzo di AWS ai propri ambienti di sviluppo. Inoltre, sta prendendo in considerazione di utilizzare ulteriori servizi AWS come AWS IoT e Amazon QuickSight per creare nuovi prodotti per i propri clienti. “AWS ci ha permesso di sperimentare di più”, afferma Gardner. “Ci offre una vasta gamma di strumenti da adoperare e ci permette di velocizzare lo sviluppo e la distribuzione di nuovi prodotti, un aspetto fondamentale per il successo della nostra compagnia”.

Per maggiori informazioni su come AWS può supportare i processi di sviluppo e test, visita la pagina dei dettagli su Sviluppo e Test.