Trabalhando como uma equipe, o departamento de TI da Bernhardt e especialistas das equipes jStart Emerging Technologies e IBM Cloud empregaram dois meios para alcançar novos níveis de escalabilidade e adaptabilidade. Para uma arquitetura mais flexível, a equipe conjunta substituiu o aplicativo de back-end monolítico por uma infraestrutura de arquitetura de microsserviços e de interface de programação de aplicativos (API) em execução em um ambiente de nuvem híbrida. Para acelerar o desenvolvimento e a manutenção contínuos, a equipe adotou o modelo de desenvolvimento de aplicativos DevOps.
Em certo sentido, a equipe da IBM e da Bernhardt aprimorou a arquitetura de back-end quebrando-a e espalhando as peças. Onde antes tinham uma aplicação de vários processos administrativos, eles estabeleceram nove microsserviços correspondentes a esses processos. Em seguida, integraram os microsserviços por meio de APIs em um ambiente híbrido de nuvem e plataformas hospedadas localmente. Com as APIs servindo para conectar e compartilhar dados entre os processos, as partes agora separadas ainda podem funcionar como um aplicativo unificado, mas sem as dependências limitadoras de desempenho da arquitetura antiga. Agora, quando um processo passa por um gargalo ou uma interrupção, os outros ainda funcionam de forma independente, e a equipe pode se concentrar no problema específico sem se preocupar em afetar outros processos. De acordo com Griffith, "A arquitetura de microsserviços forneceu o tempo de atividade e a flexibilidade de que precisávamos para atender às demandas de nossos usuários e clientes".
O ambiente de nuvem híbrida apoia ainda mais o desempenho, permitindo que Bernhardt baseie cada serviço na plataforma que oferece os maiores recursos para essa função específica. Por exemplo, várias APIs e microsserviços do Virtual Showroom são desenvolvidos no software IBM WebSphere® Application Server Liberty Core e executados na plataforma pública IBM Cloud. O microsserviço de gerenciamento de conteúdo, que inclui informações oficiais de produtos e showroom, é executado na infraestrutura do IBM Cloud e suportado por um serviço de banco de dados NoSQL do IBM Cloudant® executado na plataforma IBM Cloud. E o software de análise de código aberto Apache Spark é executado em um cluster de alto desempenho de servidores IBM Power Systems™ hospedados em uma instalação local da IBM.
No futuro, à medida que a Bernhardt lançar novos serviços para outras áreas de negócios e os requisitos de negócios e as demandas de desempenho mudam inevitavelmente, a empresa poderá portar serviços individuais entre plataformas locais e na nuvem, conforme a necessidade. Por exemplo, para acomodar os picos de carga de trabalho do High Point Market, a equipe pode empregar um contêiner Docker para mover o serviço de gerenciamento de conteúdo da nuvem para uma rede local de recursos de computação dedicados.
Para a Bernhardt, as APIs são as conexões que unem a arquitetura de microsserviços e os links para a inovação. Como são independentes de idiomas, facilitam as integrações com uma ampla gama de serviços, o que significa que Bernhardt pode incorporar novas funcionalidades em aplicativos empresariais com relativa facilidade. Por exemplo, a equipe aprimorou a solução Virtual Showroom com dois serviços não IBM disponíveis por meio do catálogo de terceiros da plataforma IBM Cloud: o software SendGrid, para e-mails automatizados sobre pedidos de produtos e o software Redis, para permitir aos usuários de negócios um logon único (SSO) em todo o ambiente do Virtual Showroom. Outras APIs permitem que a empresa combine o software de análise Apache Spark com os recursos da Internet das Coisas (IoT) para obter uma compreensão clara de como o tráfego de pessoas se move pelo showroom de móveis e com que frequência as pessoas veem ou perdem produtos específicos. "Estamos utilizando essas APIs para aproveitar novos recursos e dar aos negócios um novo nível de insight", diz Griffith. “E eles estão fazendo mudanças na hora que melhoram os resultados.”
Para tirar o maior proveito da arquitetura mais flexível e modificável, as equipes da Bernhardt e da IBM promovem a eficiência de desenvolvimento de software utilizando o modelo DevOps. "DevOps tem feedback mais rápido com ciclos menores", afirma Griffith, "e aumenta nossa velocidade e precisão em termos de desenvolvimento de soluções que atendam às necessidades da empresa". A equipe usa o IBM Cloud DevOps Services para facilitar o feedback e a colaboração do usuário, acelerar os ciclos de desenvolvimento e testes e automatizar as implementações. Enquanto os comentários sobre o desempenho e a funcionalidade do aplicativo são constantemente recebidos pela equipe de vendas e outros usuários corporativos, a equipe coleta "histórias de usuários" no fórum de colaboração do IBM Cloud DevOps Services. Em seguida, define as melhorias específicas necessárias e as divide em uma série de tarefas de desenvolvimento alinhadas aos microsserviços relevantes. Ele pode executar atualizações para os diferentes microsserviços em paralelo, e o IBM Cloud DevOps Services torna a movimentação de código atualizado do desenvolvimento para o teste para a produção tarefas simples de arrastar e soltar.
Depois que a Bernhardt usou a solução Virtual Showroom em três High Point Markets consecutivos, a equipe de TI definiu uma história de usuário que resultaria no maior recurso inovador adicionado ao aplicativo até o momento. Os vendedores queriam uma maneira de os clientes em potencial explorarem mais opções de produtos do que podiam ver no chão do showroom. E se os clientes quisessem ver a aparência de uma determinada estrutura de cadeira em um acabamento ou tecido diferente? E se eles quisessem ver como duas peças separadas ficariam juntas em um cômodo? A equipe inseriu esses cenários no fórum do IBM Cloud DevOps Services, determinou os requisitos de desenvolvimento e partiu daí. No próximo High Point Market, os vendedores da Bernhardt usaram um recurso Signature Seating do aplicativo maior para ajudar os clientes a montar peças de móveis personalizadas e visualizá-las em ambientes virtuais.