On Sainsbury’s move and use of AWS, serverless, and DevOps:
“Our relationship with AWS really kicked off at the point we decided to take our groceries online business and rebuild it in the cloud. This was effectively taking a WebSphere e-commerce monolith with an Oracle RAC database, and moving it, and modularising it, and putting it into AWS,” Sainsbury’s CIO Phil Jordan told the audience.
“That movement of RAC to RDS and that big database migration was all done using AWS services, and now we have a fully fledged cloud-native-ish service that runs groceries online across all of our business. Today, we run about 80 per cent of our groceries online with EC2, and 20 per cent is serverless.”
In total, the company migrated more than 7TB of data into the cloud. As a result, or so Jordan claimed, the mart spends 30 per cent less on infrastructure, and regularly sees a 70-80 per cent improvement in performance of interactions on the website and batch processing. So far, there’s been no “major” outages, said the CIO, without defining “major”.
Moving to the cloud has also helped Sainsbury’s into the warm infinity-looped embrace of DevOps. The company has moved from five to six releases per year to multiple releases per day, said the CIO.
Check out their talk, scrub in to about 24:10.
Related, the Sainsbury’s tech blog is pretty good.
And, from elsewhere and unrelated to Sainsbury’s, some clearer notion that “serverless” forces an event-driven architecture:
So why can’t we just write an event-driven system for our corporate infrastructure? Our world, is event-driven, and generally, we reduce the complexity of our systems by just defining events. “When there’s an access to the FTP service of upload … do this …”, “When there’s an access on a column on a database … do this “. In an IoT world, with billions of disparate devices, it is the only way to go. And if we are to create truly citizen-focused systems, we need to define the events which trigger. How many organisations could crisply define the operation of their infrastructure and all the interactions that happen?
Rather than just defining a server running Exchange, we could have some code which triggers on “When Bob logs-in open up his mail box”, or “When Alice changes the marks for her students, send an update to the exams office”. This is a world where the complexity of servers moves us towards “The Cloud” as a computation resource. In this way we write rules based on events and enact them in the Cloud. There’s no concept of running Exchange or Web servers.