Working as one team, the Bernhardt IT department and experts from the jStart Emerging Technologies and IBM Cloud teams employed two means to achieve new levels of scalability and adaptability. For a more flexible architecture, the joint team replaced the monolithic back-end application with a microservices architecture and application programming interface (API) infrastructure running in a hybrid cloud environment. To accelerate ongoing development and maintenance, the team adopted the DevOps model of application development.
In one sense, the IBM and Bernhardt team enhanced the back-end architecture by breaking it and scattering the pieces. Where they’d previously had one application of multiple administrative processes, they establishednine microservices corresponding to those processes. Then they integrated the microservices through APIs across a hybrid environment of cloud and locally hosted platforms. With APIs serving to connect and share data between the processes, the now-separate parts can still function as a unified application but without the performance-limiting dependencies of the old architecture. Now, when one process experiences a bottleneck or outage, the others will still function independently, and the team can focus on the particular issue without worrying about affecting other processes. According to Griffith, “The microservices architecture provided the uptime and flexibility we needed to meet the demands of our users and customers.”
The hybrid cloud environment further supports performance by allowing Bernhardt to base each service on the platform that lends the greatest capabilities to that particular function. For example, several Virtual Showroom APIs and microservices are built on IBM WebSphere® Application Server Liberty Core software and run on the IBM Cloud public platform. The content management microservice, which includes official product and showroom information, runs in the IBM Cloud infrastructure and is supported by an IBM Cloudant® NoSQL database service running on the IBM Cloud platform. And Apache Spark open-source analytics software runs in a high-performance cluster of IBM Power Systems™ servers hosted in a local IBM facility.
Moving forward, as Bernhardt rolls out new services for other business areas, and as business requirements and performance demands inevitably change, the company can port individual services between cloud and on-premises platforms as needed. For example, to accommodate the peak workloads of the High Point Market, the team may employ a Docker container to move the content management service from the cloud to a local network of dedicated computing resources.
For Bernhardt, APIs are both the connections holding together the microservices architecture and the links to innovation. Because they are language-agnostic, they facilitate integrations with a wide range of services, meaning Bernhardt can incorporate new functionality into business applications with relative ease. For example, the team enhanced the Virtual Showroom solution with two non-IBM services available through the IBM Cloud platform third-party catalog: SendGrid software, for automated emails about product orders, and Redis software, to allow business users a single sign-on (SSO) to the entire Virtual Showroom environment. Other APIs allow the company to combine Apache Spark analytics software with Internet of Things (IoT) capabilities to gain a clear understanding of how foot traffic moves through the furniture showroom and how often people see or miss particular products. “We’re using these APIs to tap into new capabilities and give the business a new level of insight,” says Griffith. “And they’re making changes on the fly that improve the bottom line.”
To take greatest advantage of the more flexible, modifiable architecture, the Bernhardt and IBM team promote software-development efficiency by using the DevOps model. “DevOps is smaller cycles, quicker feedback,” says Griffith, “and it’s increased our speed and accuracy in terms of developing solutions that meet the business’s needs.” The team uses IBM Cloud DevOps Services to facilitate user feedback and collaboration, accelerate development and test cycles, and automate deployments. As feedback on application performance and functionality rolls in constantly from sales staff and other business users, the team collects “user stories” in the IBM Cloud DevOps Services collaboration forum. It then defines the specific improvements needed and breaks those down into a series of development tasks aligned to the relevant microservices. It can perform updates to the different microservices in parallel, and IBM Cloud DevOps Services makes moving updated code from development to testing to production simple drag-and-drop tasks.
After Bernhardt used the Virtual Showroom solution for three consecutive High Point Markets, the IT team defined a user story that would result in the largest innovative feature added to the app to date. Sellers wanted a way for potential customers to explore more options on products than they could see on the showroom floor. What if customers wanted to see how a certain chair frame looked in a different finish or fabric? What if they wanted to see how two separate pieces looked together in a room? The team entered these scenarios into the IBM Cloud DevOps Services forum, determined the development requirements and went from there. At the next High Point Market, Bernhardt sellers used a Signature Seating feature of the larger app to help customers assemble custom furniture pieces and view them in virtual room settings.