Technology-driven Ocado is a pioneer in the online grocery market and a household name. The company makes extensive use of internet of things (IoT), edge and cloud-based computing and robotics, and it recently invested in autonomous kerbside delivery.
Its fulfilment and logistics service, Ocado Smart Platform, is used by Morrisons in the UK and other grocers around the world. Ocado also has a strategic partnership with Marks & Spencer and is actively expanding globally.
James Donkin has worked at Ocado for 16 years. As the chief technology officer (CTO) of Ocado Technology, he oversees a team of 1,000 software engineers and hardware developers.
Donkin’s first role at Ocado was in route planning. At the time, Ocado ran a lot of packaged software, which he says “wasn’t tailored to us”. The company wanted all its software to work in an integrated fashion but, as Donkin points out, this is hard to do if the organisation runs separate off-the-shelf products.
A multicloud architecture
Over the past few years, Ocado has switched to a cloud-based architecture supported by multiple providers. It now develops its own software and hardware and uses services from Amazon Web Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure, where appropriate, to provide the IT it needs to run the business.
“We have a multicloud strategy. Each cloud is used for what it does best,” says Donkin. For instance, Ocado has a long history of working with Google. It started with Google’s office productivity applications. Over time, he says, the use of GCP has become “super transformational”.
Instead of developing its own microservices and web applications, Ocado deploys its applications on AWS. GCP is used for data analytics. Data is passed from the AWS applications to GCP via a message bus.
When considering the storage of data and the journey the data needs to take, Donkin says: “Data starts on-site at a robot arm or on a grid. We want data to end up in the cloud because there is a lot of overhead in the maintenance of on-site systems. We don’t want people to have to swap out specialist devices.”
Whether it is for the control of an autonomous delivery vehicle or a robot picker in an Ocado customer fulfilment centre, for Donkin, any tech at the edge should be a white box that can simply be unplugged and replaced, without requiring any specialist skills. “The default is to have stored data in the cloud, unless there are latency or bandwidth restrictions,” he says.
AWS hosts Ocado’s microservices that are siloed and controlled by application programming interfaces (APIs). Donkin says Amazon’s Kinesis serverless streaming data service is used to push data onto Google, where Google BigQuery is then used for data analytics and forecasting.
“The aim for a data flow is to land in BigQuery, which then builds a model that can be pushed back to AWS or an edge computing device,” says Donkin.
Real time in the cloud
Ocado started with almost nothing hosted in the cloud. The machine control systems in its customer fulfilment centres were hosted on-site. “These big brain control systems were on-premise,” says Donkin. “We didn’t think we could do real-time control in the cloud, but over the past year, we’ve had a lot of success with cloud control.”
A few years back, when Donkin visited Mobile World Congress, he was impressed by a demo where the control for two robot arms juggling balls was achieved over a 5G mobile network into the public cloud. For Donkin, the demo showed that real-time control of machines was possible over a 5G cloud connection.
“We didn’t think we could do real-time control in the cloud, but over the past year, we’ve had a lot of success with cloud control”
James Donkin, Ocado Technology
From a data storage and analytics perspective, such advancements raise a number of interesting questions about where data needs to live. As Donkin points out, there are a lot of developments taking place at the edge, to enable edge-based data processing.
For instance, the robots at Ocado make use of video analytics, but Donkin notes that a pipeline is required to lower the amount of video stored.
“You don’t want to catch every motion of every robot,” he says. “You need to figure out what is useful. If it is possible to model normal operations, these activities do not require capturing. Then, only the data feed of unusual activities requires streaming to the cloud.”
Video heuristics to low cloud data
Donkin says a graphics processing unit (GPU) embedded in a video camera would be able to act as a front end to such a data processing pipeline. “If you stream all your video back to the cloud, it uses a lot of bandwidth. Heuristics can be used to capture data in a smart way,” he adds.
Having a GPU on the video camera would enable machine vision systems to run heuristics locally such that the camera can preprocess the video stream and is able to transmit data in a smart way. This is analogous to how a smart doorbell will only start recording video to the cloud after it detects motion or a doorbell press.
In theory, the relatively small volume of abnormal video activity collected can be transmitted from the edge device, over the LAN running the customer fulfilment centre, and uploaded to the cloud. Here, machine learning helps to improve the data model, which is then transmitted back to update the heuristics on the edge device.
Donkin sees the role of on-premise datacentres being “the squeezed middle” between the public cloud and processing at the edge. Developing cloud-native applications reduces the need to have an extensive team of in-house datacentre technicians. By using advanced analytics and machine learning in the cloud, along with intelligent edge devices, it is possible to reduce the volume of data that needs to be stored and processed on-premise.