By 2018, the company’s TIBCO BusinessWorks 5 software needed upgrading. Metcash had around 90 processes and over 300 interfaces tied to the ESB that was used to transform and deliver messages between multiple ERPs, warehouse management systems, master data systems, and reporting systems. Plus, it was very tightly coupled to databases that were also overly engineered and far too complex to maintain.
To add to the challenges, the small IT team was increasingly being asked by the business to take on and support complex initiatives. These programs and requests — new pricing, promotions and deals for customers, a new ordering portal, a customer and supplier MDM solution, and others—were crucial to business growth, and the aging infrastructure couldn't handle these new digital initiatives.
Transformation
Metcash adopted a hybrid cloud solution using TIBCO Connect solutions to simplify and modernize application integration. With a cloud-ready platform, it would have the flexibility to deploy the same code in containers either on-premises or in the cloud.
To deliver the new capabilities, Metcash established a unified team comprising a small number of Metcash staff and local and offshore TIBCO Professional Services personnel. This team allowed Metcash to expand in an agile way using agile Scrum methodology to deliver new services in two-week sprints.
By late 2019, the team had removed the tight coupling within the ESB, added continuous integration and delivery (CI/CD), and adopted cloud-native and microservice development patterns based on TIBCO BusinessWorks Container Edition, TIBCO Managed File Transfer, and TIBCO Messaging software that handles more than one million messages per day.
Importantly, the team realized it didn't need to replace all the integrations at once. Instead, they used the "strangler pattern" to incrementally transform monolithic applications into microservices by replacing a particular functionality with a new service. Once the new functionality is ready, the old component is strangled.
This approach is being used for all new digital projects such as online shopping. At the same time, Metcash is midway through a massive multi-year effort to replace its ERP and finance platforms, a project with inflexible deadlines due to financial reporting requirements. To make the deadline, it will deliver integrations over multiple platforms, including on-premises, private cloud, and Microsoft Azure. In the first phase the company has successfully delivered five services per sprint, producing over 70 interfaces in only seven months. In the next phase, the team expects to deliver 10+ new services per sprint, producing more than 200+ interfaces in just 10 months!
Benefits
With its new hybrid deployment combining Metcash's legacy architecture and the modern capabilities of cloud, microservices, and containers, the company is adding new customers and suppliers faster and offering them more services with less downtime.
Thanks to easier development and reduced defects, the unified development team is delivering new integrations at about half the cost and 20% faster than before.
Metcash integration manager Wayne Routledge said: "Metcash is starting to see all the benefits that containerisation gives. This includes improved resourcing through efficiency and density as well as isolating the containers from each other, so one process will not affect others."
The containerised approach enables Metcash to do more with less by providing more efficient use of computer infrastructure, more flexibility to innovate, and less downtime for customers.
Developer efficiency: Metcash is able to split services into different containers so developers can work independently, and when confident the service is working, merge their work. The company has seen major benefits from the use of devOps and continuous integration/continuous development automation supported by its newer TIBCO products.
Innovation and faster delivery: Routledge continued: "Containers can also give us the ability to change how we do deployments to utilize blue/green or canary deployments, reducing the effect on our customers. Canary deployments stand up one or two containers and offer them on a limited basis. If it breaks, we’ve only upset a few people. If it’s good, we spread it out to other containers."
Using containers, the company can quickly deploy new or upgraded applications and seamlessly shift traffic to those new apps with no interruption to customers. This is critical because Metcash has thousands of suppliers and retailers who each may want something different. Thanks to TIBCO, developers can quickly build something new for one customer and then offer it to others. And they don't have to worry so much about changing things, because every time they change something they have "4,000 people to talk to," said Routledge.
Resilience: Thanks to containerisation, if the team does deploy a bit of bad code in one container, it doesn't bring down the whole system. And if one container does go down, others can pick up the slack. Containerised services are simpler to fix and manage.
Scalability, performance, cost savings: Containerisation also provides immense and smooth scalability for better handling of peak loads. Routledge observed, "[The company is] doing 120% more work. Load doesn't come at 2:00 a.m. when we have plenty of computing resources. It comes in the morning or late afternoon. Containerisation lets us handle this." The base load is managed in the private cloud and transferred to another provider when needed. Metcash can scale up or down as needed to better control costs.
Platform iIndependence: Containers allow Metcash to be platform agnostic. If something catastrophic happens with one of its providers, the company can move its private cloud or leverage other public cloud providers and recover effectively.