DevOps, agile and NoSQL deliver the goods for UPS i-Parcel

Scalability and flexibility are essential when managing international parcel delivery, explains VP technology Yursil Kidwai

When global package delivery firm UPS bought startup i-Parcel two years ago it did so to increase its capabilities in international e-commerce. i-Parcel provided a logistics platform that had been adopted by vendors in 100 countries, providing a local language site, fraud protection, local pricing including customs duties and taxes, multiple currencies and low cost delivery through interfaces with dozens of different delivery firms and carriers.

UPS was prepared to put a considerable investment into its new acquisition because the existing international operations system at i-Parcel was holed below the waterline and sinking under the weight of increasing demand. Operated largely by a third party, it was based on Visual Basic 6 and Microsoft SQL Server, monolithic, hosted on a single server, unable to scale easily or to cope with peaks in demand, and prone to downtime. It was "fundamentally broken", according to i-Parcel vice-president technology Yursil Kidwai.

In large-scale logistics "every second counts", he said. "If you're delivering many thousands of parcels a one second delay per parcel soon adds up."

Tasked with developing a new operations system, Kidwai's team was unable to communicate with the people managing the existing setup because of legal issues concerning the intellectual property of the third-party provider.

"We had to build the new operations system from scratch," he said. "We brought with us our commitment to agile development and adopting new technologies and they gave us a long leash to continue to be able to innovate at speed."

The new system is built on .Net and written mainly in C#. The underlying database is MongoDB and Redis is used for high speed caching. There are cloud components based on Microsoft Azure Webjobs and the system is comprised of microservices, small independent software services that each do a single task. The team retains a strong focus on DevOps and agile methodologies.

SQL Server is still used for "very tabular data" such as processing invoices and accounting, but it was ruled out early on for handling the data associated with tracking and managing the parcels.

"We needed to be able to do dynamic queries. We didn't know what we needed to query on upfront so we wanted a flexible database and we needed a flexible schema and regional redundancy, and MongoDB checked all those boxes," Kidwai said, explaining the choice of database. "It had the best enterprise support of the NoSQL databases we looked at," he added.

Of his team of 50 two are engaged full-time in DevOps.

"Using all these technologies has allowed us to bring the product to market much faster than we would have otherwise. Having a DevOps team has allowed us to deploy multiple times a day without fear of downtime and it's helped us target performance."

The team was able to deliver a minimum viable product in less than three months and is now processing tens of thousands of parcels every day from seven facilities across the world. Adding a new facility to the system is simplicity itself.

"We can now launch a new facility with our software in less than a day," explained Kidwai. UPS views international parcel delivery as a big growth area but there are many complications in delivering a reliable cross-border service at the right price. Kidwai is confident that the firm will continue to build on his team's initial successes.

"There are lots of problems to solve, and we're solving quite a few of them," he said.

Computing's DevOps Summit 2016 will be held in central London on 5 July. Attendance is free to qualifying end users.