This blog was co-authored by myself and Simon Darken. Once a year, PagerDuty’s SREs get together for a three-day, in-person offsite. With the team spread...by Dave Bresci
December 5, 2018
The battle between e-commerce and retail companies is converging as more retailers like Walmart look to augment their brick and mortar presence with an online presence, and more e-commerce companies like Amazon establish an offline presence. To support this two-way expansion, retailers and e-commerce companies are looking to deliver outstanding omnichannel customer experiences.
Customers expect a seamless experience across all channels, be it in-store, on the website, in a mobile app, or on social media. Some of the leading retail brands in the world have caught this trend, and there are numerous success stories. Below are some of our favorite examples of brands that provide great omnichannel retail experiences:
To support experiences across these channels, it takes a deep and well-integrated backend, coupled with consistent frontend interfaces. But this is much easier said than done. It means giving up legacy infrastructure, tooling, and development processes and moving to a modern DevOps approach to build retail applications. Customers constantly want new features and experiences, and those frequent updates must be deployed in ways that maximize agility and accuracy without compromising stability. This is essential to create a seamless, unified experience across digital and physical channels. With thousands of daily interactions, things are bound to break, and popular brands are prone to cyber-attacks. You need a robust system to support millions of users, and you need to ensure the system is highly available and secure. This is no small task.
Starting from the infrastructure layer, let’s move up to the application stack and understand what DevOps teams need to keep in mind when building omnichannel retail apps.
Mobile is the most important medium when considering omnichannel retail. It’s the most personal and powerful channel to reach customers. You allow them to interact with your business and buy at their convenience, wherever they are. Yet, most retail apps come from a client-server model that worked in the past, but can’t support today’s modern consumers. To build apps for multiple devices and mobile operating systems, you need to leverage cloud technologies. Throwing a couple of cloud tools into your legacy stack won’t deliver the goods. Whether you want to run your app in cloud servers like AWS EC2, store data in block storage like AWS S3, use a cloud-based testing platform like Sauce Labs, or a cloud-native monitoring tool like Prometheus, you need to go all-in with the cloud — or at least start the transition.
Microservices is the approach of decomposing your single monolithic app into smaller services that are developed and managed by small, cross-functional teams. This type of composable system ensures you can release new features faster. Additionally, if one service fails, it doesn’t take the whole system down with it. However, the move to microservices should happen one step at a time. Separate a couple of functions on their own, and then a few more after the first batch is stable. Microservices apps are harder to manage, but only if you use a traditional toolset. Fortunately, container technologies like Docker and Kubernetes are making microservices management easier.
Moving to the cloud is just the start. Even within the cloud, it’s important to run your apps in containers. As you move to a microservices model, the overhead of a hardware hypervisor and separate OS for every server instance will weigh down your app’s performance. To scale a microservices app, you need to package code in containers. Containerization brings with it a whole new set of tools. For example, you’ll need to leverage an orchestrator like Kubernetes to manage those thousands of containers. Fortunately, the tooling around containers has matured quickly over the past year, and today, many world-class apps use containers to run reliably and safely in production. The industry is consolidating around standards like the ones approved by the cloud-native computing foundation (CNCF).
Beyond code, the way you manage your data makes a big difference in what your applications can do, and how fast they perform. To enable many retail-specific features like real-time product search, recommendation engines, and pricing models, you need the power of a distributed full-text querying engine like Elasticsearch. This will let you perform real-time analysis of your data. Retail apps completely depend on data to perform vital tasks like customer segmentation, customized marketing campaigns and keep stock of inventory in real time. With automatic failover, sharing of data, and powerful search queries, a tool like Elasticsearch can truly modernize retail app experiences.
A modern microservices-based, container-driven system has a lot of moving parts, and these parts sometimes fail at an alarming rate. The DevOps mantra of “fail fast, fail forward” means you need to be able to respond quickly and address these failures. Both performance and security are top concerns for omnichannel retail apps. Cybercriminals are drawn to apps that have a large number of users, and retail apps are known to have billions of records of highly valued and sensitive user data like names, addresses, and credit card information. To manage system failures and cyber-attacks, you need an incident management system that centralizes data points and engages the right responders on issues in real-time.
In a large DevOps team, important notifications can get lost, so you need a routing system to ensure the right message reaches the right person. Because of growing infrastructure complexity, and large quantities of data it needs to process, you need a solution that leverages machine learning to make sense of data and help people focus on what matters. An incident management tool for omnichannel retail should be able to centralize and correlate monitoring, ticketing, and other data sources across your end-to-end system. A state-of-the-art incident management platform enables you to identify suspicious patterns and get the right people on them before they escalate into full-blown incidents.
Omnichannel retail is not simple, and it takes persistence over several years to architect the perfect system. However, the methods and tools mentioned here will give DevOps teams a headstart in their transition to providing an omnichannel experience. Whether it’s moving to the cloud, leveraging microservices, adopting containers, distributing data stores, or proactively managing incidents, the next generation of computing technologies are available today. All your retail business needs is a DevOps team that’s ready to take the plunge.
Interested in learning more about digital transformation in retail? Check out our ebook, Impact of Downtime on Retailers and learn why retailers must deliver a seamless omnichannel experience to stay ahead of the competition.