Trabajando como un solo equipo, el departamento de TI de BernHardt y los expertos de jStart Emerging Technologies e IBM Cloud emplearon dos medios para lograr nuevos niveles de escalabilidad y adaptabilidad. Para una arquitectura más flexible, el equipo conjunto reemplazó la aplicación de back-end monolítica con una arquitectura de microservicios y una infraestructura de interfaz de programación de aplicaciones (API) que se ejecuta en un entorno de nube híbrida. Para acelerar el desarrollo y el mantenimiento continuos, el equipo adoptó el modelo DevOps del desarrollo de aplicaciones.
En cierto sentido, el equipo de IBM y Bernhardt mejoró la arquitectura de back-end al romperla y dispersar las piezas. Donde anteriormente tenían una aplicación de varios procesos administrativos, establecieron nueve microservicios correspondientes a esos procesos. Luego integraron los microservicios a través de las API en un entorno híbrido de plataformas alojadas localmente y en la nube. Con las API que sirven para conectar y compartir datos entre los procesos, las partes ahora separadas aún pueden funcionar como una aplicación unificada pero sin las dependencias que limitan el rendimiento de la arquitectura anterior. Ahora, cuando un proceso experimenta un cuello de botella o una interrupción, los demás seguirán funcionando de forma independiente, y el equipo puede centrarse en el problema en particular sin preocuparse por afectar a otros procesos. Griffith asegura: "La arquitectura de microservicios proporcionó el tiempo de actividad y la flexibilidad que necesitábamos para satisfacer las demandas de nuestros usuarios y clientes".
El entorno de nube híbrida respalda aún más el rendimiento al permitir que Bernhardt base cada servicio en la plataforma que otorga las mayores capacidades a esa función en particular. Por ejemplo, varias API y microservicios de Virtual Showroom se basan en el software IBM WebSphere® Application Server Liberty Core y se ejecutan en la plataforma pública IBM Cloud. El microservicio de gestión de contenido, que incluye información oficial sobre productos y salas de exposición, se ejecuta en la infraestructura IBM Cloud y es compatible con un servicio de base de datos IBM Cloudant® NoSQL que se ejecuta en la plataforma IBM Cloud. Y el software de análisis de código abierto Apache Spark se ejecuta en un clúster de alto rendimiento de servidores IBM Power Systems™ alojados en una instalación local de IBM.
En el futuro, a medida que Bernhardt implemente nuevos servicios para otras áreas de negocio, y a medida que los requisitos comerciales y las demandas de rendimiento cambien inevitablemente, la compañía puede portar servicios individuales entre plataformas en la nube y locales según sea necesario. Por ejemplo, para acomodar las cargas de trabajo máximas del High Point Market, el equipo puede emplear un contenedor Docker para mover el servicio de administración de contenido de la nube a una red local de recursos informáticos dedicados.
Para BernHardt, las API son las conexiones que mantienen juntas la arquitectura de microservicios y los enlaces a la innovación. Al ser independientes del idioma, facilitan la integración con una amplia gama de servicios, lo que significa que Bernhardt puede incorporar nuevas funciones a las aplicaciones empresariales con relativa facilidad. Por ejemplo, el equipo mejoró la solución Virtual Showroom con dos servicios que no son de IBM disponibles a través del catálogo de terceros de la plataforma IBM Cloud: el software SendGrid, para correos electrónicos automatizados sobre pedidos de productos, y el software Redis, para permitir a los usuarios empresariales un inicio de sesión único (SSO) en todo el entorno de Virtual Showroom. Otras API permiten a la empresa combinar el software de análisis Apache Spark con las capacidades de Internet de las cosas (IoT) para comprender claramente cómo se mueve el tráfico a través de la sala de exposición de muebles y con qué frecuencia las personas ven o echan de menos determinados productos. "Utilizamos estas API para aprovechar nuevas capacidades y dar al negocio un nuevo nivel de información", dice Griffith. "Y están haciendo cambios sobre la marcha que mejoran los resultados".
Para aprovechar al máximo la arquitectura más flexible y modificable, el equipo de Bernhardt e IBM promueve la eficiencia del desarrollo de software utilizando el modelo DevOps. "DevOps son ciclos más pequeños, retroalimentación más rápida", dice Griffith, "y ha aumentado nuestra velocidad y precisión en términos de desarrollo de soluciones que satisfacen las necesidades del negocio". El equipo utiliza IBM Cloud DevOps Services para facilitar el feedback y la colaboración de los usuarios, acelerar los ciclos de prueba y desarrollo y automatizar las implementaciones. A medida que el feedback sobre el rendimiento y la funcionalidad de las aplicaciones llega constantemente del personal de ventas y otros usuarios empresariales, el equipo recopila "historias de usuarios" en el foro de colaboración de IBM Cloud DevOps Services. A continuación, define las mejoras específicas necesarias y las divide en una serie de tareas de desarrollo alineadas con los microservicios relevantes. Puede realizar actualizaciones de los diferentes microservicios en paralelo, e IBM Cloud DevOps Services hace que mover el código actualizado desde el desarrollo hasta las pruebas y la producción sea una tarea sencilla de arrastrar y soltar.
Después de que Bernhardt utilizara la solución Virtual Showroom durante tres High Point Markets consecutivos, el equipo de TI definió una historia de usuario que daría como resultado la mayor característica innovadora añadida a la aplicación hasta la fecha. Los vendedores querían que los clientes potenciales pudieran exploraran más opciones de productos de las que podían ver en la sala de exposición. ¿Qué pasaría si los clientes quisieran ver el aspecto de un determinado marco de silla en un acabado o tela diferente? ¿Y si quisieran ver cómo quedan dos piezas separadas en una habitación? El equipo introdujo estos escenarios en el foro de IBM Cloud DevOps Services, determinó los requisitos de desarrollo y partió de allí. En el siguiente High Point Market, los vendedores de Bernhardt utilizaron una función Signature Seating de la aplicación más grande para ayudar a los clientes a combinar muebles personalizados y verlos en entornos de sala virtual.