TECHNOLOGY RADAR VOL.16 - Le nostre idee sulla tecnologia e sulle tendenze che daranno forma al futuro
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
TECHNOLOGY RADAR VOL.16 Le nostre idee sulla tecnologia e sulle tendenze che daranno forma al futuro thoughtworks.com/radar #TWTechRadar
HANNO CONTRIBUITO Il Technology Radar viene redatto dal ThoughtWorks Technology Advisory Board, che include: Rebecca Parsons (CTO) | Martin Fowler (Chief Scientist) | Badri Janakiraman | Bharani Subramaniam | Camilla Crispim Erik Doernenburg | Evan Bottcher | Fausto de la Torre | Hao Xu | Ian Cartwright James Lewis | Jonny LeRoy | Marco Valtas | Mike Mason | Neal Ford Rachel Laycock | Scott Shaw | Srihari Srinivasan | Zhamak Dehghani
CHE NOVITÀ CI SONO? Temi alla ribalta in questa edizione: INTERFACCE UTENTE COLLOQUIALI Capacità che alcuni anni fa sarebbero state molto ED ELABORAZIONE DEL costose da sviluppare, ora appaiono come piattaforme LINGUAGGIO NATURALE open source o SaaS. Sembra che le “guerre del cloud” si siano spostate dalla competizione sullo storage e la guarda il video (thght.works/ConUI) computazione, alle capacità cognitive, come si evince La conversazione, una nuova maniera di interagire con dalla volontà di aprire il sorgente di strumenti che solo le applicazioni, ha sconvolto l’ecosistema con strumenti poco tempo fa erano considerati fattori differenzianti, come Siri, Cortana e Allo, e poi si è spostata all’interno come Kubernetes e Mesos. delle case con dispositivi come Amazon Echo e Google Home. Tutti i big del settore competono in questa arena, insieme a interessanti operatori di nicchia che vale Costruire interfacce utente colloquiali e in linguaggio la pena di considerare. Anche se abbiamo ancora naturale presenta nuove sfide, ma ha anche ovvi delle riserve sulle implicazioni etiche e di privacy di benefici. Il team che ha progettato Echo ha questi servizi, vediamo grandi promesse nell’utilizzo volutamente omesso lo schermo, costringendosi così a di questi strumenti in maniere innovative. I nostri ripensare molte interazioni uomo-macchina. clienti stanno già investigando quali nuovi orizzonti si possano dischiudere, grazie alla combinazione di Il trend colloquiale non è limitato solo alla voce; da servizi di cognizione che sono ormai commodity, con la quando le app di messaging sono arrivate a dominare conoscenza e la comprensione della loro propria area sia sui telefoni che sul lavoro, vediamo che alle di business. conversazioni con gli esseri umani si affiancano i chatbot intelligenti. Quando queste piattaforme miglioreranno, impareranno a capire il contesto e L’ESPERIENZA DELLO l’intento delle conversazioni, rendendo le interazioni più SVILUPPATORE COME NUOVO realistiche e più convincenti. FATTORE DIFFERENZIANTE guarda il video (thght.works/DevExp) L’esplosione di interesse nel mercato e nei media in generale porta una corrispondente crescita La progettazione dell’esperienza utente è stata per anni dell’interesse degli sviluppatori per questa nuova un fattore chiave di differenziazione per le aziende di maniera di interagire con le macchine. prodotti tecnologici. Oggi sta avvenendo qualche cosa di simile, con al centro questa volta gli sviluppatori. La rapida crescita della gamma di strumenti a disposizione, INTELLIGENCE AS A SERVICE assieme alla difficoltà di trovare talento ingegneristico, portano ad una estrema attenzione all’esperienza degli guarda il video (thght.works/IntSer) sviluppatori stessi. Una nuova famiglia di piattaforme, che chiamiamo “intelligence as a service” è apparsa recentemente sulla Sempre più le organizzazioni valutano le offerte cloud scena. Queste piattaforme comprendono una grande basandosi su quanto queste riducano l’attrito con varietà di servizi sorprendentemente potenti, la funzione ingegneristica, trattano le API come un dall’elaborazione della voce alla comprensione del prodotto, creano nuovi team dedicati a migliorare la linguaggio naturale, al riconoscimento di immagini, e al produttività ingegneristica. In ThoughtWorks siamo deep learning. © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 3
sempre stati ossessionati dal promuovere pratiche Una definizione che ci piace è che le piattaforme ingegneristiche efficienti ed abbiamo spinto per l’utilizzo dovrebbero esporre API pronte all’uso in modalità di strumenti e piattaforme che possano rendere la vita self-service, facili da configurare e fornite di ambienti dello sviluppatore più facile. Pertanto ci fa molto piacere dedicati ai team di sviluppo; concetti questi in linea con vedere che l’industria nel suo complesso stia iniziando un’altro tema emergente, quello dell’esperienza ad intraprendere questa strada. sviluppatore come nuovo fattore differenziante. Ci aspettiamo di vedere ulteriori raffinamenti sia nella Tra le tecniche chiave ci piace citare: trattare definizione che nelle capacità offerte dalle piattaforme l’infrastruttura interna come un prodotto che deve nel prossimo futuro. essere in grado di competere per efficacia con le offerte di mercato, focalizzarsi sul self-service, capire l’ergonomia per lo sviluppatore delle API che si PYTHON OVUNQUE mettono a disposizione, confinare le applicazioni legacy guarda il video (thght.works/PerPyt) “in una scatola”, ed impegnarsi in una continua ricerca empatica per migliorare l’esperienza degli sviluppatori Python è un linguaggio che sempre più spesso appare che utilizzano gli strumenti loro offerti. in posti interessanti. La sua facilità d’uso e le solide basi che fornisce al calcolo matematico e scientifico hanno storicamente fatto di questo linguaggio uno dei L’ASCESA DELLE PIATTAFORME più adottati nelle comunità accademiche e scientifiche. guarda il video (thght.works/RiseOTP) La recente diffusione di applicazioni che utilizzano Intelligenza Artificiale, unitamente alla I temi del Radar emergono da osservazioni e maturità di Python 3, hanno contribuito a far conversazioni svolte durante il processo di selezione. guadagnare al linguaggio nuovi utilizzatori. Recentemente abbiamo notato un numero sempre maggiore di nuove entrate nel quadrante delle Questa edizione del Radar riporta alcune librerie Piattaforme. Pensiamo che ciò sia indicativo di una Python che hanno aiutato a far crescere l’ecosistema, tendenza più ampia nell’ecosistema dello sviluppo fra cui Scikitlearn nel dominio del machine learning, software. TensorFlow, Keras ed Airflow per la costruzione di grafi di flussi dati intelligenti e spaCy che implementa logiche Famose aziende della Silicon Valley hanno mostrato di processo del linguaggio naturale, da utilizzare nella come la costruzione di piattaforme facili da utilizzare costruzione di API per la gestione di interazioni possa portare notevoli benefici. Parte del loro successo colloquiali. Vediamo sempre più spesso Python deriva dalla capacità di trovare un bilanciamento avvicinare, all’interno delle organizzazioni, gli scienziati e ottimale fra incapsulamento e funzionalità offerte. gli ingegneri, riducendo i reciproci pregiudizi nei Sempre più il pensare a livello di “piattaforma” trova confronti degli strumenti favoriti dai due gruppi. spazio all’interno dell’ecosistema, a partire da funzionalità avanzate messe in luce nel Radar quali il Approcci architetturali quali microservizi e container linguaggio naturale, fino alle piattaforme infrastrutturali hanno reso più facile l’esecuzione di codice Python in come Amazon. ambienti di produzione. Gli ingegneri ora possono facilmente distribuire ed integrare codice Python Le aziende stanno iniziando a pensare in termini di specializzato, creato dagli scienziati, utilizzando API piattaforma quando espongono le proprie API, ormai agnostiche dal punto di vista sia del linguaggio che della ispirate a veri e propri prodotti. I team di sviluppo tecnologia sottostante. Questa fluidità rappresenta un pensano in termini di piattaforma da integrare ed gran passo in avanti verso la creazione di un esperienza sviluppatore da migliorare. Sembra che ecosistema coerente composto da ingegneri e l’industria stia finalmente trovando una ragionevole ricercatori, in contrasto con le pratiche ancora molto combinazione di pacchettizzazione, facilità d’uso ed presenti nell’industria, che vedono spesso la traduzione utilità. da linguaggi specializzati come R in altri linguaggi per gli ambienti di produzione. © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 4
A PROPOSITO DEL RADAR I ThoughtWorkers sono appassionati di tecnologia. La Il Radar cattura l’esito delle discussioni del Technology costruiamo, facciamo ricerca su di essa, la testiamo, ne Advisory Board in un formato che fornisce valore a un apriamo il sorgente, ne scriviamo e cerchiamo ampio spettro di stakeholder, dagli sviluppatori ai CTO. costantemente di migliorarla, per tutti. La nostra Il contenuto del Radar ne è un sommario conciso. missione è di essere i campioni dell’eccellenza nel software e di rivoluzionare l’IT. Creiamo e condividiamo Incoraggiamo chiunque a esplorare queste tecnologie il ThoughtWorks Technology Radar per supportare per avere maggiori dettagli. Il Radar ha un formato questa missione. Il Radar è creato dal ThoughtWorks grafico, e raggruppa gli elementi in tecniche, strumenti, Technology Advisory Board, un gruppo di leader piattaforme e linguaggi & framework. Quando elementi tecnologici senior in ThoughtWorks. I leader si del Radar potrebbero apparire in più di un quadrante, incontrano regolarmente per discutere la strategia scegliamo quello che ci sembra più appropriato. tecnologica globale per ThoughtWorks e i trend Raggruppiamo ulteriormente questi elementi in tecnologici che impattano la nostra industria in modo maniera da riflettere la nostra opinione corrente su di significativo. essi. Per maggiorni informazioni sul Radar, vedi thoughtworks.com/radar/faq IL RADAR A COLPO D’OCCHIO 1 ADOTTARE 2 PROVARE Siamo fortemente convinti Vale la pena di provare a usare che l’industria dovrebbe queste tecnologie. È importante adottare questi elementi. portarne in casa la conoscenza. Noi li usiamo nei nostri Vanno testare su progetti progetti. che possono permettersi di 1 2 3 4 accettarne il rischio. ADOTTARE ADOTTARE PROVARE VALUTARE EVITARE 3 VALUTARE 4 EVITARE Vale la pena di esplorare, Procedete a vostro con l’obiettivo di capire rischio. che impatto può avere sulla vostra azienda. 96 108 NUOVI O CAMBIATI Gli elementi che sono nuovi o che hanno avuto modifiche significative dall’ulttimo Radar sono rappresentati da triangoli, NON MODIFICATI mentre gli elementi che non si sono mossi sono rappresentati come cerchi. Il nostro Radar guarda avanti. Per fare spazio per i nuovi elementi, lasciamo sbiadire gli elementi che non sono cambiati di recente. Questo non è perché non siano validi, ma per limiti di spazio. © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 5
IL RADAR TECNICHE 23 ADOTTARE 1. Pipelines as code 22 PROVARE 2. API come prodotto 17 3. Disaccoppiare i segreti dal codice NUOVO 4. Conservare i dati sensibili nella UE 5. Legacy in una scatola NUOVO 21 6. Lightweight Architecture Decision Records 16 7. Progressive Web Applications NUOVO 8. Prototipare con InVision e Sketch NUOVO 15 9. Architetture serverless 14 VALUTARE 20 7 10. Client-directed query 13 11. Container security scanning 8 12. API colloquialmente consapevoli NUOVO 13. Differential privacy 14. Micro frontends 6 15. Platform engineering product teams NUOVO 9 19 16. Analisi sociale del codice NUOVO 12 17. Realtà virtuale al di là del codice 5 EVITARE 18. Una sola istanza di CI per tutti i team 19. Anemic REST 11 4 20. Big Data envy 21. Teatrino CI NUOVO 18 22. Ambienti di test di integrazione a livello aziendale NUOVO 23. Spec-based codegen NUOVO 3 10 1 PIATTAFORME 2 ADOTTARE EVITARE VALUTARE PROVARE ADOTTARE 24. HSTS 25. Linux Security Modules 32 33 PROVARE 34 26 26. Apache Mesos 24 35 27. Auth0 28. AWS Device Farm NUOVO 29. AWS Lambda 36 25 30. OpenTracing NUOVO 31. Unity beyond gaming 37 27 VALUTARE 32. .NET Core 38 28 33. Amazon API Gateway 34. api.ai NUOVO 39 35. Cassandra carefully 29 31 36. Comprensione delle immagini nel cloud NUOVO 40 30 37. DataStax Enterprise Graph NUOVO 53 42 38. Electron 41 39. Ethereum 43 40. Hyperledger NUOVO 41. IndiaStack 42. Kafka Streams NUOVO 44 45 43. Keycloak NUOVO 47 44. Mesosphere DCOS 45. Mosquitto NUOVO 48 46. Nuance Mix 46 49 50 47. OpenVR 51 48. PlatformIO NUOVO 49. Tango NUOVO 54 50. Voice platforms NUOVO 52 51. WebVR NUOVO 52. wit.ai EVITARE Nuovo o cambiato 53. CMS as a platform 54. Overambitious API gateways Non modificato © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 6
IL RADAR STRUMENTI ADOTTARE 55. fastlane 56. Grafana PROVARE 57. Airflow NUOVO 68 58. Cake and Fake NUOVO 66 67 69 59. Galen 60. HashiCorp Vault 61. Pa11y 70 62. Scikit-learn 63. Serverless Framework NUOVO 71 64. Talisman 59 65. Terraform 58 57 VALUTARE 72 66. Amazon Rekognition NUOVO 67. Android-x86 73 68. Bottled Water 69. Claudia NUOVO 70. Clojure.spec 60 61 71. InSpec NUOVO 74 72. Molecule NUOVO 73. Spacemacs NUOVO 62 74. spaCy NUOVO 75 75. Spinnaker NUOVO 76. Testinfra NUOVO 63 76 77. Yarn NUOVO 55 EVITARE 64 56 77 65 LINGUAGGI & FRAMEWORK ADOTTARE PROVARE VALUTARE EVITARE ADOTTARE 78. Ember.js 79. Python 3 81 89 103 80. ReactiveX 80 81. Redux 78 102 88 PROVARE 79 82. Avro NUOVO 83. Elixir 101 84. Enzyme 87 85. Hangfire NUOVO 100 86. Nightwatch NUOVO 87. Phoenix 85 88. Quick and Nimble 86 99 89. Vue.js 83 98 VALUTARE 90. Angular 2 NUOVO 82 91. Caffe NUOVO 92. DeepLearning.scala NUOVO 84 97 93. ECMAScript 2017 96 94. Instana NUOVO 95. JuMP 96. Keras NUOVO 94 95 97. Knet.jl NUOVO 93 104 98. Kotlin NUOVO 99. Physical Web 100. PostCSS NUOVO 91 92 101. Spring Cloud NUOVO 102. Three.js 90 103. WebRTC Nuovo o cambiato EVITARE Non modificato 104. AngularJS © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 7
TECNICHE TECNICHE ADOTTARE 23 1. Pipelines as code 22 PROVARE 2. API come prodotto 17 3. Disaccoppiare i segreti dal codice NUOVO 68 4. Conservare i dati sensibili nella UE 21 66 67 5. Legacy in una scatola NUOVO 16 6. Lightweight Architecture Decision Records 15 7. Progressive Web Applications NUOVO 8. Prototipare con InVision e Sketch NUOVO 14 20 9. Architetture serverless 7 59 13 58 8 57 VALUTARE 10. Client-directed query 6 9 11. Container security scanning 19 12. API colloquialmente consapevoli NUOVO 12 5 60 13. Differential privacy 14. Micro frontends 15. Platform engineering product teams NUOVO 11 4 16. Analisi sociale del codice NUOVO 17. Realtà virtuale al di là del codice 18 3 55 10 1 EVITARE 18. Una sola istanza di CI per tutti i team 56 2 19. Anemic REST 20. Big Data envy EVITARE VALUTARE PROVARE ADOTTARE ADOTTARE 21. Teatrino CI NUOVO 32 22. Ambienti di test di integrazione a livello aziendale NUOVO 33 23. Spec-based codegen NUOVO 34 26 80 35 24 78 79 36 25 37 27 Le aziende hanno largamente adottato le API (Application prenda le parti del cliente e spinga per un miglioramento 38 Programming Interface) come maniera di esporre continuo. Nella nostra esperienza, l’orientamento 28 al funzionalità di business a sviluppatori sia interni che prodotto è l’ingrediente 39 mancante che fa la differenza31 83 29 40 30 esterni. Le API promettono di poter sperimentare fra la solita 53 integrazione enterprise e un business agile, 42 82 rapidamente nuove idee di business, ricombinando costruito su una piattaforma 41 43 di API. insieme funzionalità di base. Ma che cosa differenzia un 44 45 API da un semplice servizio di enterprise integration? Una Nei precedenti numeri del Radar abbiamo47 citato differenza sta nel trattare le API COME PRODOTTO, strumenti come git-crypt e Blackbox che ci consentono 48 49 46 50 51 92 anche nei casi in cui il consumatore di questa API sia di salvare segreti in maniera sicura all’interno del codice 91 90 un sistema interno o un collega sviluppatore. I team sorgente. DISACCOPPIARE I SEGRETI DAL CODICE 52è 54 che realizzano API devono comprendere i bisogni il nostro modo di ricordare agli esperti di tecnologia dei loro clienti, per fare in modo che il prodotto sia che ci sono altre maniere di memorizzare i segreti. Per utile e conveniente. I test di usabilità e la ricerca UX Esempio, HashiCorp vault, i server di CI e gli strumenti possono portare a un miglior design e a una migliore di gestione della configurazione forniscono meccanismi comprensione di come la API viene usata; tutto ciò aiuta per memorizzare segreti che non sono collegati al ad arrivare a un modo di pensare orientato al prodotto codice sorgente di una applicazione. Sono percorribili per le API. Le API, come in generale i prodotti, devono entrambi gli approcci e vi raccomandiamo di usarne essere attivamente manutenute e supportate, e devono almeno uno nei vostri progetti. essere facili da usare. Dovrebbero avere un “owner”, che © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 8
I team che realizzano API devono 2015, sono applicazioni web che sfruttano i vantaggi delle ultime tecnologie per combinare il meglio delle comprendere i bisogni dei loro clienti, per applicazioni web e mobile. Usando un insieme di fare in modo che il prodotto sia utile e standard tecnologici aperti, come i service workers, gli conveniente. I test di usabilità e la ricerca UX app manifest, e le API di cache e push, possiamo creare possono portare a un miglior design e a una applicazioni che sono indipendenti dalla piattaforma migliore comprensione di come la API viene ed erogano una esperienza utente simile a una app. Ciò comporta un’equiparazione delle applicazioni web usata; tutto ciò aiuta ad arrivare a un modo e mobile ed aiuta gli sviluppatori di applicazioni mobili di pensare orientato al prodotto per le API. a raggiungere utenti fuori dal recinto degli app store. Si — API come prodotto pensino le PWA come dei siti web che sembrano app native. Lavorare con codice legacy, specialmente con grandi monoliti, è una delle esperienze più insoddisfacenti L’uso combinato di InVision e Sketch ha cambiato ed irritanti per gli sviluppatori. Sebbene mettiamo il modo in cui alcuni team affrontano lo sviluppo in guardia dall’estendere e mantenere attivamente di applicazioni web. Sebbene questi siano tool, ciò monoliti legacy, questi ultimi continuano a che in realtà rende questo elemento rilevante è la rappresentare delle dipendenze nel nostro ambiente, tecnica di PROTOTIPARE CON INVISION E SKETCH. e gli sviluppatori spesso sottostimano il costo ed Creare prototipi ricchi ed interattivi (cliccabili) come il tempo necessario per sviluppare rallentati da primo passo nell’implementazione dei comportamenti queste dipendenze. Per aiutare a ridurre l’attrito gli applicativi, sia di front end che di back end, permette sviluppatori hanno adottato immagini di macchine di velocizzare lo sviluppo e ridurre i ricicli nelle fasi virtuali, o immagini containerizzate con Docker per realizzative. L’utilizzo combinato di questi strumenti creare immagini immutabili di sistemi legacy e delle permette un buon bilanciamento tra l’elaborazione loro relative configurazioni. L’idea è di confinare il anticipata di dettagli visuali e la possibilità di catturare LEGACY IN UNA SCATOLA affinché gli sviluppatori feedback utente sull’esperienza interattiva. possano eseguirlo localmente, rimuovendo il vincolo della sua ricompilazione, riconfigurazione o Un approccio basato su ARCHITETTURE SERVERLESS condivisione di ambienti. In uno scenario ideale, i sostituisce le macchine virtuali in esecuzione per lunghi team che detengono un sistema legacy generano, periodi, con potenza di calcolo effimera, che appare attraverso le loro pipeline di build, la corrispondente su richiesta e scompare immediatamente dopo il suo immagine legacy in una scatola, così gli sviluppatori utilizzo. L’approccio serverless piace ai nostri team; per possono eseguire ed orchestrare tali immagini nelle le nostre esigenze funziona bene e lo consideriamo loro sandbox in modo più affidabile. Sebbene questo una valida scelta architetturale. Si noti che l’adozione approccio abbia ridotto il tempo complessivo impiegato dell’approccio severless non deve necessariamente da ogni singolo sviluppatore, ha avuto un successo essere tutto-o-niente: alcuni dei nostri team hanno limitato quando i team, che detengono le dipendenze rilasciato una nuova parte dei loro sistemi usando a valle, si sono dimostrati riluttanti nel creare immagini serverless, mantenendo un approccio architetturale “containerizzate” ad uso di altri. tradizionale per le altre parti. Sebbene AWS Lambda sia quasi sinonimo di serverless, tutti gli altri maggiori L’aumento delle PROGRESSIVE WEB APPLICATIONS fornitori di cloud propongono offerte simili, e (PWA) è l’ultimo tentativo di ristabilire il mobile web raccomandiamo di valutare anche operatori di nicchia come risposta alla “fatica da app” percepita dagli come webtask. utenti. Le PWA, proposte in origine da Google nel © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 9
Le tecnologie come Amazon Alexa, Google team di delivery di rilasciare e gestire i sistemi di propria competenza in modalità self-service, con una riduzione Voice e Siri hanno reso molto più semplice sia dei tempi di attesa che della complessità dello scrivere software per interazione vocale. stack. In questo caso l’enfasi è posta sugli strumenti Tuttavia, uno stile di interazione più di supporto e self-service basati su API; i team di discorsivo (vocale o testuale) può essere delivery rimangono responsabili per supportare ciò ancora difficile da realizzare con molte delle che rilasciano sulla piattaforma. Le organizzazioni interessate a considerare questa opzione devono porre API esistenti attenzione nel non creare involontariamente un team di — API colloquialmente consapevoli DevOps separato, né semplicemente rinominare come “piattaforma” la loro attuale struttura di operations. Le tecnologie come Amazon Alexa, Google Voice e Siri hanno reso molto più semplice scrivere software per L’ANALISI SOCIALE DEL CODICE migliora la nostra interazione vocale. Tuttavia, uno stile di interazione più comprensione della qualità del codice, arricchendo discorsivo (vocale o testuale) può essere ancora difficile l’analisi strutturale del codice con l’analisi del da realizzare con molte delle API esistenti, specialmente comportamento dello sviluppatore. Utilizza dati estratti quando si desideri uno stile di interazione stateful, dai sistemi di controllo di versione, come la frequenza dove la successiva interazione ha bisogno di essere e l’istante di una modifica, e la persona che la ha consapevole dell’intero contesto conversazionale. In eseguita. Si può scegliere di scriversi da soli gli script per questo stile di interazione ci piacerebbe, per esempio, analizzare tali dati, oppure utilizzare strumenti come chiedere i treni da Manchester a Glasgow e poi essere CodeScene. CodeScene può aiutare ad acquisire in grado di domandare “A che ora è la prima partenza?” una miglior comprensione dei sistemi software, senza dover fornire nuovamente il contesto della identificando punti critici e sottosistemi complessi e conversazione. Normalmente questo contesto sarebbe difficili da manutenere: dall’accoppiamento temporale presente nella risposta iniziale che abbiamo restituito fra sottosistemi distribuiti, alla proiezione della legge di ad un browser, ma nel caso delle interfacce vocali Conway nella organizzazione. Alla luce delle tendenze abbiamo bisogno di gestire tale contesto altrove. Le API tecnologiche come i sistemi distribuiti, i microservizi e COLLOQUIALMENTE CONSAPEVOLI possono essere i team distribuiti, crediamo che la dimensione sociale un esempio di backend for front-end in cui il front- del codice rivesta un ruolo vitale per la comprensione end è una piattaforma voce o chat. Questo tipo di API olistica della salute dei sistemi. può trattare le specificità di questo stile di interazione gestendo lo stato della conversazione, chiamando al L’idea della realtà virtuale è in giro da più di 50 anni, e tempo stesso servizi retrostanti per conto del front end con i successivi progressi nella tecnologia, molte idee vocale. sono state reclamizzate ed esplorate. Crediamo di aver ormai raggiunto un punto di non ritorno. L’anno L’adozione del cloud e di pratiche DevOps ha scorso sono arrivati sul mercato occhiali VR a prezzi aumentato la produttività dei team, che ora possono ragionevolmente accessibili per il consumatore, e le operare più rapidamente, avendo minori dipendenze schede grafiche di oggi sono sufficientemente potenti dai team centralizzati di operations ed infrastrutture. per creare delle vere esperienze di immersione. Questi Allo stesso tempo, questi cambiamenti possono occhiali sono per lo più destinate agli appassionati rappresentare un problema per quei team che di videogiochi, ma siamo convinti che apriranno le mancano delle competenze per gestire in maniera porte a molte possibilità per la REALTÀ VIRTUALE AL end-to-end una applicazione, il suo stack tecnologico DI LÀ DEI GIOCHI. I team che non hanno esperienza ed i suoi processi operativi. Alcune organizzazioni nella realizzazione di videogiochi faranno bene a non hanno affrontato questo tema creando dei PLATFORM sottovalutare l’impegno e le conoscenze necessarie per ENGINEERING PRODUCT TEAMS. Questi team creare buoni modelli 3D e texture convincenti. gestiscono una piattaforma interna, che permette ai © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 10
L’idea della realtà virtuale è in giro da più era necessario mantenere un ambiente completo per eseguire i cicli di test prima di rilasciare in produzione. di 50 anni, e con i successivi progressi nella Questi AMBIENTI DI TEST DI INTEGRAZIONE A tecnologia, molte idee sono state reclamizzate LIVELLO AZIENDALE, spesso chiamati System ed esplorate. Crediamo di aver ormai Integration & Testing (SIT) o Staging, oggi sono un raggiunto un punto di non ritorno. collo di bottiglia per la continuous delivery. Questi — Realtà virtuale al di là dei giochi ambienti sono fragili e costosi da mantenere, e spesso hanno componenti che richiedono una configurazione Siamo costretti a consigliare prudenza, un’altra volta, manuale da parte di un apposito team di gestione nei confronti della creazione di UNA SOLA ISTANZA dell’ambiente. Testare nell’ambiente di staging DI CI per tutti i team. Sebbene in teoria sia una bella fornisce un feedback lento e inaffidabile, e il lavoro idea consolidare e centralizzare l’infrastruttura di CI, di test eseguito in questo ambiente è un duplicato in pratica non vediamo una maturità sufficiente negli dei test che possono essere eseguiti sui componenti strumenti e nei prodotti in quest’ambito per conseguire isolati. Raccomandiamo che le organizzazioni creino i risultati desiderati. I team di sviluppo che devono incrementalmente una percorso indipendente di usare un’offerta di CI centralizzata hanno regolarmente delivery in produzione per i componenti più importanti. notevoli ritardi, che dipendono dal team centrale, Alcune tecniche utili sono: contract testing, decoupling per eseguire attività minori di configurazione, o per deployment from release, focus on mean time to risolvere problemi nell’infrastruttura condivisa e nel recovery e testing in production. tooling. In questa fase, continuiamo a raccomandare alle organizzazioni di limitare gli investimenti in Sfortunatamente, molti sviluppatori si centralizzazione alla sola definizione di pattern, linee limitano ad installare un server di CI guida e supporto, perché i team di sviluppo possano assumendo erroneamente di “fare CI” gestirsi da soli la propria infrastruttura di CI. quando, in realtà, non ne ottengono alcun Siamo da molto tempo sostenitori della continuous beneficio. Un tale “Teatrino CI” potrà anche integration (CI), e siamo stati pionieri nella realizzazione far contento qualcuno, ma fallirebbe di server di CI per eseguire build dei progetti qualsiasi test di certificazione CI credibile. automaticamente dopo un commit. Usati bene, questi — Teatrino CI programmi monitorano il ramo principale del progetto, sul quale gli sviluppatori contribuiscono codice quotidianamente. Il server di CI compila il progetto ed Ai tempi in cui SOAP dominava l’industria del software esegue test esaustivi per assicurare che l’intero sistema enterprise, la pratica di generare codice lato client dalle software sia sempre integrato in uno stato rilasciabile, specifiche WSDL era accettata e perfino incoraggiata. soddisfando perciò il principio di continuous delivery. Sfortunatamente, il codice risultante era spesso Sfortunatamente, molti sviluppatori si limitano ad complesso, non testabile, difficile da modificare e poco installare un server di CI assumendo erroneamente portabile fra differenti piattaforme. Con l’avvento di di “fare CI” quando, in realtà, non ne ottengono alcun REST, troviamo che sia meglio far evolvere i client con il beneficio. Cause di fallimento tipiche includono: pattern tolerant reader, per leggere ed elaborare solo eseguire CI su un ramo principale condiviso ma con i campi necessari. Recentemente abbiamo osservato rari commit, per cui l’integrazione non è veramente un ritorno allarmante alle vecchie abitudini, con continua; eseguire il build con una copertura scadente sviluppatori che generano codice dalle specifiche di API dei test, lasciando il build rosso per lunghi periodi; scritte con Swagger o RAML, una pratica che chiamiamo oppure eseguire CI su feature branch, che si traduce SPEC-BASED CODEGEN. Sebbene questi strumenti in continuous isolation. Un tale “TEATRINO CI” potrà siano molto utili per guidare la progettazione delle API e anche far contento qualcuno, ma fallirebbe qualsiasi per estrarre documentazione, mettiamo in guardia dalla test di certificazione CI credibile. facile scorciatoia di generare codice client da queste specifiche. I rischi sono che tale codice sia difficile da testare e manutenere. Quando i rilasci mensili o trimestrali che coinvolgevano l’intera azienda erano considerati una best practice, © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 11
68 21 66 67 16 15 14 20 7 59 13 58 8 57 PIATTAFORME 6 9 19 12 5 60 11 4 18 3 55 10 1 56 PIATTAFORME EVITARE VALUTARE PROVARE 2 ADOTTARE ADOTTARE ADOTTARE 32 24. HSTS 33 25. Linux Security Modules 34 26 80 35 24 78 PROVARE 79 26. Apache Mesos 36 25 27. Auth0 37 27 28. AWS Device Farm NUOVO 29. AWS Lambda 38 28 30. OpenTracing NUOVO 31. Unity beyond gaming 39 83 29 31 40 30 VALUTARE 53 42 82 32. .NET Core 41 33. Amazon API Gateway 43 34. api.ai NUOVO 35. Cassandra carefully 44 45 36. Comprensione delle immagini nel cloud NUOVO 47 37. DataStax Enterprise Graph NUOVO 48 38. Electron 46 49 50 51 92 39. Ethereum 91 40. Hyperledger NUOVO 90 54 41. IndiaStack 52 42. Kafka Streams NUOVO 43. Keycloak NUOVO 44. Mesosphere DCOS 45. Mosquitto NUOVO 46. Nuance Mix 47. OpenVR 48. PlatformIO NUOVO 49. Tango NUOVO 50. Voice platforms NUOVO 51. WebVR NUOVO 52. wit.ai EVITARE 53. CMS as a platform 54. Overambitious API gateways Il Principio del Privilegio Minimo ci incoraggia a imporre AMAZON API GATEWAY permette di pubblicare che i componenti software possano accedere solo alle API su Internet. Comprende i servizi tipici di un API risorse di cui hanno bisogno. Tuttavia, un processo Linux gateway, come la gestione del traffico, il monitoraggio, normalmente può fare tutto quello che può fare l’utente autenticazione e autorizzazione. I nostri team hanno che lo esegue, dall’aprire porte TCP arbitrarie al lanciare avuto esperienze positive nell’uso di questo servizio nuove shell. Il framework LINUX SECURITY MODULES come front end per AWS Lambda, per implementare (LSM) framework, che consente di inserire estensioni di architetture serverless. D’altra parte, abbiamo avuto sicurezza nel kernel, è stato usato per implementare il problemi quando l’abbiamo usato come API gateway Mandatory Access Control su Linux. SELinux e AppArmor di uso generale, come front end di servizi HTTP/HTTPS sono le più note e diffuse implementazioni compatibili su EC2. In questi casi, siamo stati frustrati dalla scarsa con LSM e sono distribuite con il kernel. Raccomandiamo interoperabilità con le VPC e dalla difficoltà di eseguire che i team imparino ad usare uno di questi framework l’autenticazione mediante client certificates. Per via di di sicurezza (ed è per questo che li abbiamo messi nella queste differenti esperienze, consigliamo ai team di cerchia “Adopt”). Questi framework aiutano i team a porsi sperimentare l’uso di AWS API Gateway con Lambda, domande su chi ha accesso a quali risorse su host condivisi, ma di prestare attenzione alla sua efficacia per l’uso più compresi i servizi in essi contenuti. Questo approccio generale. prudente alla gestione degli accessi aiuterà i team a rendere la sicurezza una parte integrante del loro ciclo di sviluppo. © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 12
L’enorme numero di dispositivi mobili rende quasi dello scrivente da un testo e gestisce il flusso di una impossibile per le aziende testare le proprie app conversazione. Recentemente acquisita da Google, mobili su tutti i dispositivi. Ma oggi c’è AWS DEVICE questa offerta di “comprensione-del-linguaggio-naturale FARM, un servizio di test per app che consente di as a service” è in concorrenza con altri attori in questo eseguire ed interagire con le app Android, iOS e web mercato come wit.ai e Amazon Lex. su di un’ampia gamma di dispositivi fisici che sono simultaneamente ospitati nel cloud. Durante ogni La comprensione delle immagini era un tempo un’arte singola esecuzione sono generati log dettagliati, grafici oscura che richiedeva un team di data scientist sul di prestazione ed istantanee delle videate, allo scopo di posto. Negli ultimi anni, invece, siamo arrivati molto fornire un riscontro sia generale che specifico per quel vicini alla soluzione di problemi come la classificazione e particolare dispositivo. Il servizio offre molta flessibilità, categorizzazione di immagini e volti, il confronto di volti, consentendo di alterare lo stato e la configurazione l’identificazione dei punti facciali ed il riconoscimento di ogni dispositivo al fine di riprodurre scenari di test facciale. La COMPRENSIONE DELLE IMMAGINI NEL molto specifici. I nostri team stanno usando AWS CLOUD fornisce accesso a funzionalità di machine- Device Farm per eseguire test end-to-end sui dispositivi learning per mezzo di servizi come Amazon Rekognition, maggiormente diffusi. Microsoft Computer Vision API e Google Cloud Vision API, che possono integrare applicazioni AR e qualsiasi Da quando si stanno sostituendo le altra cosa che comporti il tagging e la classificazione di foto. applicazioni monolitiche con ecosistemi più complessi basati su microservizi, tracciare Abbiamo ottenuto i primi successi con DATASTAX le richieste attraverso molteplici servizi sta ENTERPRISE GRAPH (DSE Graph) per trattare grandi diventando la norma. database di grafi. Basato su Cassandra, DSE Graph DSE Graph si colloca nell’ambito di grandi data set — OpenTracing dove Neo4j, il nostro preferito da molto tempo, inizia a mostrare alcuni limiti. Tale ordine di grandezza ha i suoi Da quando si stanno sostituendo le applicazioni compromessi; per esempio, si perdono le transazioni monolitiche con ecosistemi più complessi basati su ACID e l’indipendenza dallo schema di Neo4j; tuttavia, (micro)servizi, tracciare le richieste attraverso molteplici l’accesso alle tabelle di Cassandra sottostanti, servizi sta diventando la norma. Fortunatamente l’integrazione di Spark per lavori analitici e il potente OPENTRACING sta rapidamente affermandosi come linguaggio di query TinkerPop/Gremlin rendono questa lo standard de facto per il tracciamento distribuito. soluzione un’opzione che vale la pena considerare. Sviluppato da Uber, Apple, Yelp ed altri fra i maggiori attori, supporta più tracciatori come Zipkin, Instana, e Il clamore intorno ai blockchain e alle crittovalute Jaeger. Attualmente OpenTracing è implementato in sei sembra aver raggiunto l’apice, come si vede dal linguaggi: Go, JavaScript, Java, Python, Objective-C and diradarsi degli annunci un tempo torrenziali in C++, in maniera indipendente da un fornitore specifico. quest’area, e ci aspettiamo che alcuni dei progetti più speculativi si estinguano con il tempo. Uno dei Parallelamente alla recente ondata di chatbot blockchain, ETHEREUM, anche se non è il più popolare e piattaforme vocali, abbiamo osservato una fra i gli esperti di blockchain, viene usato in un numero proliferazione di strumenti e piattaforme come crescente di nuove iniziative. Ethereum è un blockchain API.AI, che forniscono un servizio che estrae l’intento © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 13
pubblico con un linguaggio di programmazione con poco o nessun codice. Pronto all’uso c’è il supporto incorporato, che permette agli sviluppatori di al single sign-on, al social login, ed ai protocolli standard scrivere “smart contracts”, che sono movimenti come OpenID Connect, OAuth2 e SAML.. algoritmici di “etere” (la crittovaluta di Ethereum), in risposta ad attività in corso sul blockchain. R3CEV, il MESOSPHERE DCOS è una piattaforma basata su consorzio che costruisce tecnologia blockchain per Mesos che astrae l’infrastruttura sottostante, per le banche, ha rilasciato i suoi primi proof of concept applicazioni containerizzate ed anche per quelle su Ethereum. Ethereum è stato usato per costruire applicazioni che non si desideri eseguire all’interno una organizzazione autonoma distribuita (DAO, di Docker. Per installazioni più modeste ciò potrebbe Distributed Autonomous Organization), una delle prime sembrare esagerato, ma stiamo iniziando ad osservare “corporation algoritmiche”, anche se un recente furto successi sia con la versione commerciale che con la di 150 milioni di dollari in “etere” prova che i blockchain versione open source. Ci piace particolarmente il fatto e le crittovalute sono ancora il Far West del mondo che agevoli la portabilità fra diversi fornitori di cloud e di tecnologico. hardware dedicato, e che per lavori containerizzati non vincoli ad un framework di orchestrazione di container. HYPERLEDGER è una piattaforma costruita Sebbene gli aggiornamenti possano essere un po’ attorno alle tecnologie blockchain che consiste di troppo complessi rispetto a come ci piacerebbe che un’implementazione blockchain, chiamata “Fabric”, e di fossero, l’intero stack si sta stabilizzando bene. altri tool associati. Trascurando il clamore che circonda blockchain, i nostri team hanno trovato facile iniziare ad Nella nostra esperienza con soluzioni Internet of usare questi tool. Al nostro entusiasmo per Hyperledger Things (IoT), in cui molti dispositivi comunicano l’uno si aggiunge anche il fatto che esso sia una piattaforma con l’altro e/o con un hub di dati centrale, il protocollo open source supportata da Linux Foundation. di connettività MQTT ha dato buona prova di sé. Abbiamo cominciato ad apprezzare anche l’MQTT KAFKA STREAMS è una libreria leggera per applicazioni broker MOSQUITTO. Non soddisfa tutte le esigenze, streaming. È stata disegnata con l’obiettivo di specialmente quelle di scalabilità, ma la sua natura semplificare la gestione dei processi basati su stream, compatta e la semplice installazione lo rendono ideale per avere un modello di programmazione facilmente per sviluppo e test. utilizzabile nella costruzione di servizi asincroni. È una opzione attraente nei casi in cui si voglia applicare il PLATFORMIO fornisce un ricco ecosistema per lo modello di programmazione basato su stream, senza sviluppo IoT attraverso processi di compilazione aggiungere la complessità della gestione di un cluster cross-platform, gestione delle librerie ed una buona (cosa di solito richiesta dai framework più completi integrazione con gli IDE esistenti. Il completamento del dedicati ai processi streaming). codice intelligente ed il code linter con un terminale ed un monitor di porta seriale in dotazione migliorano In un’architettura a microservizi o in una qualsiasi altra enormemente l’esperienza di sviluppo. PlatformIO architettura distribuita, una delle più comuni necessità organizza e mantiene anche migliaia di librerie e fornisce è la messa in sicurezza dei servizi o delle API attraverso una chiara gestione delle dipendenze con versionamento autenticazione e autorizzazione. Questo è l’ambito in cui semantico per semplificare lo sviluppo IoT. Abbiamo si colloca KEYCLOAK. Keycloak è una soluzione open iniziato ad usare PlatformIO in alcuni progetti IoT e ci source di gestione dell’identità e dell’accesso, che rende è veramente piaciuto per la sua semplicità ed ampio semplice mettere in sicurezza applicazioni e microservizi supporto di piattaforme and schede. © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 14
L’anno scorso la realtà aumentata (AR) e la realtà importanza. Ma è ancora troppo presto per credere agli mista (MR) sono entrate nella norma insieme alla annunci iperbolici, e ci aspettiamo che altri grandi attori realtà virtuale (VR), quest’ultima caratterizzata da una entrino sul mercato. barriera di ingresso relativamente più alta, sia a causa di requisiti hardware che dello sforzo di creazione di Stiamo già integrando UI conversazionali mondi virtuali. Inoltre Pokémon Go ha dimostrato che gli ordinari smartphone sono sufficienti per creare all’interno di prodotti e stiamo vedendo esperienze AR/MR convincenti. TANGO è una nuova l’impatto di questa nuova interazione nel tecnologia di sensori hardware per telefoni cellulari che modo in cui progettiamo le interfacce. migliora ulteriormente le possibilità per la AR/MR sui — Piattaforme vocali cellulari. Tango consente alle app di acquisire misure 3D dettagliate dell’ambiente circostante l’utente, cosicché WEBVR è una API JavaScript sperimentale che consente gli oggetti virtuali possano essere piazzati e resi sulla l’accesso a dispositivi di realtà virtuale attraverso il videocamera in modo più convincente. I primi cellulari browser. Ha conquistato il supporto della comunità con tecnologia Tango sono già disponibili. ed è disponibile in build giornaliere e anche in versioni stabili. Se stai progettando di costruire esperienze Le PIATTAFORME VOCALI come Amazon Alexa e VR nel browser, questo è un eccellente punto di Google Home stanno cavalcando la cresta dell’onda partenza. Questa tecnologia, insieme a strumenti promozionale; alcuni addirittura annunciano l’ubiquità complementari come Three.js, A-Frame, ReactVR, Argon. delle interfacce vocali conversazionali. Stiamo già js e Awe.js, porta l’esperienza della realtà aumentata integrando UI conversazionali all’interno di prodotti e nel browser. Il fiorire di strumenti in questo spazio, stiamo vedendo l’impatto di questa nuova interazione contemporaneamente agli standard della commissione nel modo in cui progettiamo le interfacce. Nello Internet, possono aiutare a promuovere una maggiore specifico, Alexa è stata costruita fin dall’inizio senza adozione di AR e VR. schermo e considera la UI conversazionale di primaria © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 15
STRUMENTI STRUMENTI ADOTTARE 23 55. fastlane 56. Grafana 22 17 PROVARE 57. Airflow NUOVO 68 21 66 67 58. Cake and Fake NUOVO 69 59. Galen 16 60. HashiCorp Vault 15 70 61. Pa11y 14 71 62. Scikit-learn 20 7 59 63. Serverless Framework NUOVO13 58 8 57 64. Talisman 72 65. Terraform 6 9 73 VALUTARE 19 66. Amazon Rekognition NUOVO 12 5 60 61 74 67. Android-x86 68. Bottled Water 69. Claudia NUOVO 11 4 62 75 70. Clojure.spec 18 63 71. InSpec NUOVO 76 72. Molecule NUOVO 3 55 10 1 73. Spacemacs NUOVO 64 56 77 74. spaCy NUOVO 2 65 75. Spinnaker NUOVO EVITARE 76. Testinfra NUOVOVALUTARE PROVARE ADOTTARE ADOTTARE PROVARE VALUTARE EVITARE 77. Yarn NUOVO 32 33 81 89 103 EVITARE 34 26 80 35 24 78 102 88 79 36 25 87 101 37 27 100 38 28 85 Gli sviluppatori di applicazioni web hanno gioco facile di dati. Airflow incoraggia pipeline 86 di dati 99 manutenibili, 39 83 quando si parla di semplificare 40 ed automatizzare 29 30 31 versionabili e testabili, trattando i grafi 98 diretti aciclici 53 diversi workflow di sviluppo;41possono 42 scegliere fra una (Direct 82 Acyclic Graphs, DAG) come codice. Abbiamo 84 97 varietà di soluzioni per automatizzare43 il loro processo di sfruttato questa configurazione 96 nei nostri progetti e rilascio. Quando si sviluppa su mobile, 44 invece, 45 abbiamo siamo stati in grado di94creare95 pipeline dinamiche che 47 due sistemi operativi con due diverse maniere di hanno prodotto workflow di dati chiari104 93 ed espliciti. Airflow 48 compilare, testare, distribuire, generare screenshot, 46 49 50 51 rende semplice 91 92 definire i vostri operatori ed esecutori, firmare e distribuire applicazioni. Per mitigare il ed estendere 90 la libreria cosicché soddisfi il livello di 54 52 problema, i nostri team hanno adottato FASTLANE per astrazione che meglio si adatta al vostro ambiente. automatizzare il processo di rilascio per applicazioni iOS e Android. Con semplici configurazioni e pipeline Per mitigare il problema, i nostri team multiple, possono ottenere la continuous delivery per lo hanno adottato fastlane per automatizzare sviluppo mobile. il processo di rilascio per applicazioni iOS e AIRFLOW è uno strumento per creare Android. programmaticamente, schedulare e monitorare pipeline — fastlane © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 16
MSBuild è stato il sistema di build principale GUID) per mantenere l’anonimità dei volti nei confronti di nell’ecosistema .NET fin dal suo debutto nel 2005; AWS, tenendo così conto dei problemi di privacy correlati tuttavia, ha sempre gli stessi punti deboli che abbiamo al riconoscimento facciale. segnalato in Maven. La comunità .NET ha cominciato a sviluppare alternative a MSBuild che sono più semplici La combinazione di AWS Lambda con Amazon API da manutenere e più flessibili, e possono evolvere in Gateway ha avuto un grosso impatto nella maniera di maniera più fluida al crescere delle dimensioni del distribuire servizi e API. Tuttavia, anche lavorando in progetto. Due di queste alternative sono CAKE E FAKE. serverless, la quantità di configurazioni necessarie per Cake usa un DSL scritto in C#, mentre Fake usa un DSL collegare insieme i pezzi non è banale. CLAUDIA è uno in F#. Entrambi hanno visto una crescita significativa nel strumento che automatizza l’installazione di funzioni corso dell’ultimo anno e si sono dimostrati una valida AWS Lambda scritte in JavaScript e della configurazione alternativa a MSBuild, per orchestrare i normali task di API Gateway associata. I default che fornisce sono compilazione in progetti .NET. convenienti, e i nostri team hanno trovato che permette di iniziare a lavorare velocemente con microservizi La comunità .NET ha cominciato a sviluppare basati su Lambda. alternative a MSBuild che sono più semplici Come può un’azienda concedere autonomia ai team di da manutenere e più flessibili, e possono sviluppo, e allo stesso tempo garantire che le soluzioni evolvere in maniera più fluida al crescere delle da loro consegnate siano sicure e in linea con gli dimensioni del progetto. standard? Come si può garantire che i server, una volta installati, restino sicuri e in linea con gli standard per — Cake e Fake tutta la durata della loro vita? Questi sono i problemi che INSPEC cerca di risolvere. InSpec è uno strumento SCIKIT-LEARN non è uno strumento nuovo (sta per di test dell’infrastruttura ispirato a Serverspec, ma con compiere dieci anni); quello che è nuovo è il tasso di differenze che lo rendono più utile per i professionisti adozione di strumenti e tecniche di machine learning della sicurezza, che hanno bisogno di garantire al di fuori dell’accademia e delle grandi aziende l’aderenza a uno standard di migliaia di server. I test tecnologiche. Scikit-learn fornisce un robusto insieme individuali possono essere combinati in profili di di modelli e un ricco insieme di funzionalità, e gioca sicurezza completi, ed eseguiti remotamente dalla un ruolo importante nel rendere concetti e capacità riga di comando. InSpec è utile durante lo sviluppo, di machine learning più accessibili a un pubblico più ma anche per testare l’infrastruttura di produzione ampio e spesso non specialista. in maniera continua, nella direzione della QA in produzione. Il popolare SERVERLESS FRAMEWORK fornisce strumenti per creare ed installare applicazioni MOLECULE aiuta nello sviluppo e nel test di ruoli serverless, usando principalmente AWS Lambda e di Ansible. Ci risparmia dal dover configurare altri servizi di AWS. Il Serverless Framework consente manualmente il nostro ambiente di test, perché di creare applicazioni in JavaScript, Python, Java e C#, costruisce un’impalcatura per eseguire i test dei e ha una comunità attiva che contribuisce plugin che ruoli di Ansible. Molecule si avvantaggia di Vagrant, estendono il framework. Il framework supporta anche Docker, e OpenStack per gestire macchine virtuali e il progetto OpenWhisk (nell’incubatore Apache) come container, e supporta Serverspec, Testinfra, o Goss alternativa ad AWS Lambda. per eseguire i test. La sequenza dei passi eseguiti di default comprende: gestione delle macchine virtuali, AMAZON REKOGNITION è uno degli strumenti cloud lint di codice Ansible, test di idempotenza e test di di analisi delle immagini che abbiamo menzionato altrove convergenza. Anche se è un progetto abbastanza in questo Radar. Quello che ci piace è che Amazon ha giovane, vediamo in Molecule un grande potenziale. adottato un approccio relativamente nuovo (usando le © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 17
Come qualsiasi fan di Emacs dirà, Emacs è più di un Google Cloud Platform, AWS e Pivotal Cloud Foundry. text editor; è una piattaforma per applicazioni basate Si può integrare Spinnaker con Jenkins per eseguire un su caratteri. Negli ultimi anni, c’è stata un’esplosione job di compilazione su Jenkins. A noi piace l’approccio di nuovi sviluppi su questa piattaforma, ma pensiamo opinionato di Spinnaker al rilascio di microservizi sul che SPACEMACS meriti un’attenzione speciale. cloud, tranne il fatto che le pipelines di Spinnaker sono Spacemacs fornisce un’introduzione alla piattaforma create con un’interfaccia utente e non possono essere Emacs, con una nuova interfaccia utente basata sulla configurate come codice. tastiera, i layer di customizzazione semplificati e una distribuzione curata di pacchetti Emacs. Uno degli Dato l’ampio utilizzo di strumenti per la gestione della obiettivi di questo progetto è di essere il meglio dei due infrastruttura, non deve sorprendere che il concetto di mondi, combinando l’interfaccia utente di Vim con la “infrastructure as code” abbia guadagnato molto spazio. riprogrammabilità interna di Emacs. Noi pensiamo che Questa tendenza porta con sé la necessità di testare gli strumenti di produttività dei programmatori siano automaticamente tale codice. TESTINFRA permette di un componente vitale dello sviluppo software efficace, testare lo stato dei server, sia che essi siano configurati e se è passato un po’ di tempo dall’ultima volta che hai manualmente che tramite strumenti quali Ansible, considerato Emacs, ti consigliamo di dare un’occhiata a Puppet and Docker. Testinfra è un plugin del test engine come Spacemacs ripensa questa classica piattaforma di Pytest e mira ad essere equivalente a Serverspec. sviluppo. Dato l’ampio utilizzo di strumenti per la SPACY è una libreria di Natural Language Processing gestione della infrastruttura, non deve (NLP) scritta in Python. È una libreria ad alta performance, pensata per l’uso in produzione, e sorprendere che il concetto di “infrastructure applica modelli NLP adatti all’elaborazione di testi as code” abbia guadagnato molto spazio. che contengano emoticon e segni di punteggiatura — Testinfra inconsistenti. A differenza di altri framework NLP, spaCy è una libreria che può essere inserita in un progetto YARN è un nuovo package manager che sostituisce e non una piattaforma; è destinata ad applicazioni in l’attuale workflow del client npm, rimanendo produzione, invece che all’addestramento di modelli per compatibile con il registry di npm. Utilizzando il client la ricerca. Si accompagna bene a TensorFlow e al resto npm è possibile ottenere strutture ad albero (sotto dell’ecosistema dell’Intelligenza Artificiale in Python. la directory node_modules) differenti a seconda Abbiamo usato spaCy in un contesto enterprise per dell’ordine in cui le dipendenze sono installate. costruire un motore di ricerca che accetta domande Questa natura non deterministica del client npm in linguaggio naturale ed aiuta gli utenti a prendere può causare problemi tipo “sulla mia macchina decisioni di business. funziona”. Yarn risolve questo problema spezzando l’installazione in più passi (risoluzione delle Netflix ha reso open source SPINNAKER, la sua dipendenze, scaricamento dei pacchetti e linking) piattaforma per la continuous delivery (CD) di ed utilizzando algoritmi deterministici e lock-files, in microservizi. In confronto ad altre piattaforme CI/CD, modo da garantire installazioni ripetibili. Noi abbiamo Spinnaker implementa la gestione di cluster e il rilascio inoltre rilevato, nei nostri ambienti di continuous sul cloud di immagini customizzate (es. AMI) come integration (CI), tempi di build molto più rapidi, resi caratteristica principale. Supporta di default l’installazione possibili dal caching dei pacchetti scaricati. e la gestione di cluster per diversi fornitori di cloud, come © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 18
68 21 66 67 69 16 15 70 14 71 20 7 59 13 58 8 57 72 LINGUAGGI & FRAMEWORK 6 9 73 19 12 5 60 61 74 62 75 11 4 18 63 76 3 55 10 1 64 56 65 77 2 LINGUAGGI EVITARE & FRAMEWORK VALUTARE PROVARE ADOTTARE ADOTTARE PROVARE VALUTARE EVITARE ADOTTARE 32 33 81 89 103 78. Ember.js 34 26 80 79. Python 3 35 24 78 102 80. ReactiveX 79 88 81. Redux 36 25 87 101 PROVARE 37 27 82. Avro NUOVO 100 83. Elixir 38 28 85 86 99 84. Enzyme 85. Hangfire NUOVO 39 83 29 31 98 86. Nightwatch NUOVO 40 30 53 87. Phoenix 42 82 88. Quick and Nimble 41 97 84 43 96 89. Vue.js 44 45 VALUTARE 94 95 47 104 90. Angular 2 NUOVO 93 91. Caffe NUOVO 48 49 46 50 92. DeepLearning.scala NUOVO 51 91 92 93. ECMAScript 2017 90 94. Instana NUOVO 54 52 95. JuMP 96. Keras NUOVO 97. Knet.jl NUOVO 98. Kotlin NUOVO 99. Physical Web 100. PostCSS NUOVO 101. Spring Cloud NUOVO 102. Three.js 103. WebRTC EVITARE 104. AngularJS PYTHON 3 ha introdotto molti elementi utili, che dati concorrenti ed appunto operazioni di I/O non tuttavia non sono retrocompatibili con Python 2.x. bloccanti. La libreria open source REACTIVEX fornisce Ha anche rimosso diverse componenti di Python 2.x una elegante astrazione di questi concetti, oltre che che erano state mantenute per retrocompatibilità, efficaci strumenti applicativi per gestirli, ed estende rendendo Python 3 più facile da imparare ed utilizzare, il pattern observable agli stream di eventi asincroni. oltre che complessivamente più coerente. La nostra Attorno a ReactiveX inoltre si è sviluppata una comunità esperienza nell’utilizzo di Python 3 negli ambiti di attiva di sviluppatori ed il numero di linguaggi supportati machine learning e sviluppo di applicazioni web mostra è in continua espansione (l’ultimo entrato è RxSwift). La che sia il linguaggio che la gran parte delle librerie libreria inoltre è integrata con le maggiori piattaforme a supporto sono maturati e sono pronti per essere mobile e desktop. adottati. Abbiamo risolto piccoli problemi in alcune librerie tramite fork e patch, oppure abbiamo evitato di La libreria open source ReactiveX fornisce usare librerie Python 2.x non più supportate. Il nostro una elegante astrazione di questi concetti: suggerimento per chi sviluppa in Python è quindi di utilizzare Python 3. thread safety, sincronizzazione, strutture dati concorrenti ed I/O non bloccante; fornisce I sistemi distribuiti spesso utilizzano multi-threading, efficaci strumenti applicativi ed estende il meccanismi di comunicazione basati su eventi e pattern observable agli stream di eventi I/O non bloccante al fine di migliorare l’efficienza complessiva. Queste tecniche di programmazione asincroni. comportano difficoltà quali: gestione dei thread a — ReactiveX basso livello, thread safety, sincronizzazione, strutture © ThoughtWorks, Inc. All Rights Reserved. TECHNOLOGY RADAR | 19
Puoi anche leggere