Lavorando come un unico team, il reparto IT Bernhardt e gli esperti dei team JStart Emerging Technologies e IBM Cloud hanno impiegato due mezzi per raggiungere nuovi livelli di scalabilità e adattabilità. Per ottenere un'architettura più flessibile, il team congiunto ha sostituito l'applicazione di backend monolitica con un'architettura di microservizi e un'infrastruttura API (Application Programming Interface) in esecuzione in un ambiente cloud ibrido. Per accelerare lo sviluppo e la manutenzione, il team ha adottato il modello DevOps di sviluppo delle applicazioni.
In un certo senso, il team di esperti di IBM e Bernhardt ha migliorato l'architettura back-end frammentandola e disperdendone i pezzi. Dove prima c'era un'unica applicazione con più processi amministrativi, sono stati creati nove microservizi corrispondenti a tali processi. Il team ha quindi integrato i microservizi tramite API in un ambiente ibrido di cloud e piattaforme host locali. Grazie alle API che connettono e condividono i dati tra i processi, le parti ora separate possono ancora funzionare come un'applicazione unificata, ma senza le dipendenze che limitano le prestazioni della vecchia architettura. Ora, quando un processo subisce un collo di bottiglia o un'interruzione, gli altri continuano a funzionare in modo indipendente e il team può concentrarsi sul problema specifico senza preoccuparsi di influenzare altri processi. Secondo Griffith, «L'architettura di microservizi ha fornito la flessibilità e il tempo di attività necessari a soddisfare le esigenze dei nostri utenti e clienti».
L'ambiente cloud ibrido supporta ulteriormente le prestazioni consentendo a Bernhardt di basare ciascun servizio sulla piattaforma che offre le capacità migliori per quella particolare funzione. Ad esempio, diverse API e microservizi di Virtual Showroom sono basati sul software IBM® WebSphere Application Server Liberty Core ed eseguiti sulla piattaforma pubblica IBM Cloud. Il microservizio di gestione dei contenuti, che include informazioni ufficiali sul prodotto e sullo showroom, viene eseguito nell'infrastruttura IBM Cloud ed è supportato da un servizio di database IBM® Cloudant NoSQL in esecuzione sulla piattaforma IBM Cloud. Inoltre, il software di analytics open source Apache Spark viene eseguito in un cluster ad alte prestazioni di server IBM Power Systems™ in hosting su una struttura IBM locale.
In futuro, man mano che Bernhardt introdurrà nuovi servizi per altre aree aziendali, e man mano che i requisiti aziendali e le prestazioni richieste cambieranno inevitabilmente, l'azienda potrà trasferire i singoli servizi tra le piattaforme cloud e on-premise secondo necessità. Ad esempio, per soddisfare i carichi di lavoro più elevati dell'High Point Market, il team potrebbe utilizzare un contenitore Docker per spostare il servizio di gestione dei contenuti dal cloud a una rete locale di risorse di elaborazione dedicate.
Per Bernhardt, le API sono sia le connessioni che tengono insieme l'architettura di microservizi sia i collegamenti che consentono l'innovazione. Poiché sono indipendenti dal linguaggio di programmazione, facilitano le integrazioni con un'ampia gamma di servizi, consentendo a Bernhardt di incorporare nuove funzionalità nelle applicazioni aziendali con relativa facilità. Ad esempio, il team ha migliorato la soluzione Virtual Showroom con due servizi non IBM disponibili nel catalogo di terzi della piattaforma IBM Cloud: il software SendGrid, per l'invio automatico di e-mail sugli ordini dei prodotti, e il software Redis, per consentire agli utenti di business un single sign-on (SSO) all'intero ambiente del Virtual Showroom. Altre API consentono all'azienda di combinare il software di analytics Apache Spark con le funzionalità Internet of Things (IoT) per comprendere chiaramente come si muove il traffico di pedoni attraverso lo showroom di mobili e con quale frequenza le persone vedono o non vedono determinati prodotti. «Utilizziamo queste API per sfruttare nuove funzionalità e offrire all'azienda un nuovo livello di conoscenza», afferma Griffith. «Le modifiche rapide apportate, inoltre, consentono di migliorare i profitti».
Per trarre il massimo vantaggio da un'architettura più flessibile e modificabile, il team di esperti di Bernhardt e di IBM promuove l'efficienza dello sviluppo software utilizzando il modello DevOps. «DevOps significa cicli più piccoli e feedback più rapidi», afferma Griffith, «e ha aumentato la nostra velocità e precisione in termini di sviluppo di soluzioni che soddisfano le necessità del business». Il team utilizza IBM Cloud DevOps Services per agevolare il feedback e la collaborazione degli utenti, accelerare i cicli di sviluppo e di test e automatizzare le distribuzioni. Poiché il feedback sulle prestazioni e sulle funzionalità delle applicazioni arriva costantemente dal personale di vendita e da altri utenti di business, il team raccoglie i "rapporti utente" nel forum di collaborazione di IBM Cloud DevOps Services. Definisce quindi i miglioramenti specifici necessari e li suddivide in una serie di attività di sviluppo allineate ai microservizi pertinenti. È in grado di eseguire gli aggiornamenti dei diversi microservizi in parallelo e IBM Cloud DevOps Services consente di spostare il codice aggiornato dallo sviluppo ai test fino alla produzione con semplici operazioni di drag-and-drop.
Dopo che Bernhardt ha utilizzato la soluzione Virtual Showroom per tre High Point Market consecutivi, il team IT ha definito un rapporto utente che avrebbe portato alla più grande funzionalità innovativa aggiunta all'app fino a oggi. I venditori volevano un modo per consentire ai potenziali clienti di esplorare più opzioni sui prodotti rispetto a quelle che potevano vedere in showroom. E se i clienti volessero vedere l'aspetto di una certa struttura di una sedia con una finitura o un tessuto diverso? E se volessero vedere come si combinano due elementi separati in una stanza? Il team ha inserito questi scenari nel forum IBM Cloud DevOps Services, ha determinato i requisiti di sviluppo e ha proseguito da lì. Al successivo High Point Market, i venditori di Bernhardt hanno utilizzato la funzione Signature Seating dell'app più grande per aiutare i clienti ad assemblare mobili personalizzati e visualizzarli in ambienti virtuali.