Ocado Technology and Openstack - Why this is a perfect partnership
Ocado is the world’s largest online-only grocery retailer, but behind the scenes there is a vast array of technologies including robotics, big data, public and private cloud, app development and machine learning, which together power our grand-scale retail operations.
In-House Development Requirements
Since the inception of Ocado Technology, we’ve learned that simply using off-the-shelf third party solutions won’t suffice when it comes to our complex requirements and scale. In order to address our unique and hard-to-solve real-world problems, we’ve been growing our in-house development capabilities and resources. We need to maintain and support our unique, cutting-edge infrastructure which is rapidly growing. As part of this, we need to educate the general development community within Ocado Technology on how to best use the infrastructure available to them.
To support such a rich environment, we adopted a strategy of developing solutions that are simple and scalable. We started from the simplest premise: how are the early adopters and lab environments aiming to solve the growing compute and storage challenges? And cloud - either public, private or a mix - seemed to be the answer. More specifically, in our warehouse environment, a private cloud solution for warehouse systems and applications seemed to be the answer for us. We then started looking for a private cloud solution to respond to our requirements.
Choosing the Right Private Cloud Infrastructure
We gathered all the requirements, and realised OpenStack provided the best option for our infrastructure needs.
To ensure the best utilisation of resources, the full supportability of our entire stack of solutions and adherence to overall best practices, we had a very centralised l IT function. Given the real-time operation nature of the business, nothing but co-location with the warehouse would ensure the required levels of performance and availability. When things are actually moving in the real world, a tenth of a second is way too much time for the control system to respond. When all our processes are moving so rapidly, ‘normal’ speed seems slow-motion.
We quickly found that, as the development teams required more flexibility to be able to quickly test and deploy their new applications, we had to look at CD/CI processes. The business had a range of hard problems to solve; for example, Ocado already had a number of highly-automated warehouses the size of several football pitches filled with moving parts such as conveyors and cranes. These first-generation warehouses help us process, pick and pack customer orders, averaging 50-70 items, in less than two hours. However, in our next generation warehouses, we have used a robotic system to successfully reduce picking time to around 5 minutes, while still maintaining the very high standards Ocado and its customers expect.
A central IT function ensures consistency.Having a completely cloud-like infrastructure gives central IT speed and agility benefits, and provides access to resources and tools, empowering the development teams to quickly deliver the applications and functions the business needs. Offering Ocado Smart Platform to other grocers around the world also presented us with a unique challenge: being able to deploy new warehouses in a timely and reproducible fashion around the world, from Sweden and France to Canada and the United States. To achieve this efficiently and cost-effectively, all of the supporting infrastructure had to be fully orchestrated and that process to build it had to be fully automated.
The Solution for Always-On Optimisation
We evaluated several solutions and considered our best options given our stringent environment: the ability to create exact scheduling policies, the ability to look and change “under the hood”, the ability to manage and extend the solution in whatever way fitted best our environment was paramount; but also the ability to give the application development teams the tools and resources they required to do what they needed. Long gone had to be the days where central IT was an absolute requirement to deploy and use resources. This means the development teams now have the ability to use up resources as they deem fit.
A good internal cloud also helps isolate software development teams from the underlying complexity of servers, hardware, network and general infrastructure necessary to run an application. It is very interesting to have a very elastic underlying infrastructure that can grow - when have you ever seen an application reducing its footprint? - just as and when it’s needed. Adding more resources has to be as transparent as possible and the OpenStack solution enables us to provide that. That isolation also allows us to have a very familiar interface in any location, independently of the basic infrastructure changes.
To be able to deliver the best possible solution we were also required to adopt a very agile development methodology approach within the infrastructure department. This meant that we decided to start from a small core, making sure that it was executed well and remained very stable, before beginning the process of growing and expanding it. We started with the smallest core of services we needed to deliver a fully featured and functional cloud and its deployment was fully automated. To ensure the platform is always the best possible option to deliver our service, we continuously work very closely with our “internal customers” - software development teams that will use our internal cloud solution as a central and fundamental tool in our warehouses. To enable quick adaptation and replication of the solution, all infrastructure was delivered as code, and most of the time changes are simple config changes. Having several sites has meant part of the challenge is for a small core team to maintain an ever growing infrastructure.
This technology now underpins all of our Ocado Smart Platform warehouse systems, meaning an optimal solution is absolutely essential for the future of the business. We are happy in the knowledge that we have created just such a solution, but nevertheless, will always be looking for ways in which we can improve our current systems.
By Luis Periquito Infrastructure Platform Engineering Team Lead at Ocado Technology