Impulse Logic: Deploy Cloud Native Predictive Inventory Optimization on Oracle Cloud

As post-pandemic consumers shift their spending from home goods to travel, retailers are finding themselves sitting on large inventories of products that nobody wants to buy.

To help retailers quickly respond to changing consumer tastes, Impulse Logic has created a cloud native predictive inventory optimization application that runs on Oracle Cloud Infrastructure (OCI).

Founded in 2006, Impulse Logic develops store optimization software for the retail, grocery, home improvement, and consumer electronics industries. Impulse Logic offers a predictive analytics engine (SLiQ) for detecting and exposing inventory risks, and for performing needs analysis on a per-store basis. These capabilities enable retailers to monitor margin performance, meet return-on-inventory targets, and swiftly restore inventory for point-of-sale (PoS) purchases.

While similar on premises systems can take upwards of six months to implement, SLiQ can be deployed within 75 days, without disrupting the inventory management system. SLIQ also integrates with retail management systems (RMS), such as Oracle Retail Merchandising Cloud Services, Blue Yonder, and SAP.

After deploying its platform at some of the largest grocery retailers in the UK and Middle East, Impulse Logic modernized its SLiQ application from a monolithic application to a cloud native application using Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) clusters on OCI. This makes the application more scalable and more resilient to large spikes in demand, accommodating Impulse Logic's expanding customer base. Each new onboarded customer typically has a large number of retail stores and the product must be ready to go-live at all locations in a short amount of time. Impulse Logic has simplified and offloaded much of its infrastructure and database management to OCI, leveraging managed services such as OKE and Oracle Autonomous Transaction Processing.

Since moving its SLiQ application to OCI, Impulse Logic is able to help its customers:

  • Predict inventory targets with greater accuracy
  • Reduce labor costs by 40%
  • Lift projected profits by greater than 4% of store sales

Architecture

Impulse Logic's architecture begins with the Merchandise IQ service (MiQ), which is typically deployed as an appliance within a retailer's firewall, enabling it to extract real-time data from multiple sources.

When deployed on-premises at the retailer, MiQ collects inventory data at certain intervals. As inventory at the retail store is being updated, MiQ extracts shopper demand data, but does not include personal identity information, credit card information, or retailer personnel data. MiQ integrates the federation of disparate data feeds from multiple application silos. There are 10 to 13 separate data sources, read in their native format and normalized for SLiQ execution. MiQ functions without changing the existing legacy systems or requiring any preprocessing of data.

When MiQ is deployed in Oracle Cloud Infrastructure (OCI), the customer first sends the data set to Oracle Cloud Infrastructure Object Storage. The MiQ instance in OCI then extracts the data, and sends it to SLiQ for processing. Whether deployed on-premises, or in OCI, MiQ uses REST APIs to send data to SLiQ. The upload to object storage is HTTPS encrypted.

SLiQ's microservices are used for data transformation, web and mobile applications, user services, store services, product services, and more. The machine learning capabilities for training and prediction are developed in Python. After receiving the data sets that are extracted by MiQ, SLiQ loads this data into an Oracle Autonomous Transaction Processing (ATP-S) for machine learning analysis. The machine learning capability trains the model, predicts inventory events, and then sends recommendations back to the retail employees to access the results via mobile devices. The retail employees are provided with actionable insights, such as which shelves to stock and when to restock them, minimizing the time products sit in the stockroom or warehouse.

During the implementation period, Impulse Logic works with retailers to apply parameters and define retailer-specific functionality. SLiQ uses these parameters and functions to train and predict SLiQ's machine learning capabilities, providing retailers with recommendations to optimize their inventory.

The following diagram illustrates the data flow through this reference architecture.



impulse-logic-data-flow-oracle.zip

Using Oracle Autonomous Transaction Processing, Impulse Logic has simplified its operations and maintenance due to the Autonomous Database's self-driving, self-securing, and self-repairing capabilities. With the Oracle Container Engine for Kubernetes (OKE), Impulse Logic has transformed SLiQ into a cloud native application, allowing them to add additional capabilities without affecting existing components of the application. They can continue to improve the machine learning capabilities, introduce new training models, and reduce testing and implementation times with a cloud native application developed through OKE.

The following diagram illustrates this reference architecture.



impulse-logic-oci-architecture-oracle.zip

Impulse Logic has planned a roadmap to future state of their architecture including enhancements and additional services:

  • Adding a secondary region due to the critical nature of the application
  • Refactoring SLiQ into a multitenant application
  • Creating multiple schemas in the Autonomous Database to segment customer data without having to create and maintain multiple databases
  • Using Oracle Cloud Infrastructure Events and Oracle Functions in conjunction with Impulse Logic’s MiQ application to create a serverless platform, allowing them to scale and run their application without having to manage infrastructure
  • Leveraging OCI's native security services, such as Web Application Firewall (WAF), Data Safe, Vault, Policies, Auditing, and Logging
  • Provisioning Oracle API Gateway to expose and manage REST APIs for external data access. This will allow a public endpoint where customers can securely query their data in ATP-S
  • Replicating the Autonomous Database to a standby database, using Oracle Data Guard
  • Storing backups at an alternate location, using Oracle Cloud Infrastructure Object Storage cross region replication
  • Monitoring resource health and usage using Oracle Cloud Infrastructure Monitoring and Oracle Cloud Infrastructure Notifications
  • Federating Oracle Cloud Infrastructure Identity and Access Management (IAM) with Azure Active Directory (AD) allowing for a single sign-on experience where customers can use their Azure AD credentials to access SLiQ

The following diagram illustrates future enhancements to this reference architecture.



impulse-logic-oci-architecture-future-oracle.zip

The architecture has the following components:

  • Tenancy

    A tenancy is a secure and isolated partition that Oracle sets up within Oracle Cloud when you sign up for Oracle Cloud Infrastructure. You can create, organize, and administer your resources in Oracle Cloud within your tenancy. A tenancy is synonymous with a company or organization. Usually, a company will have a single tenancy and reflect its organizational structure within that tenancy. A single tenancy is usually associated with a single subscription, and a single subscription usually only has one tenancy.

  • Region

    An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).

  • Compartment

    Compartments are cross-region logical partitions within an Oracle Cloud Infrastructure tenancy. Use compartments to organize your resources in Oracle Cloud, control access to the resources, and set usage quotas. To control access to the resources in a given compartment, you define policies that specify who can access the resources and what actions they can perform.

  • Availability domain

    Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains don’t share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain is unlikely to affect the other availability domains in the region.

  • Virtual cloud network (VCN) and subnets

    A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you complete control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.

  • Security list

    For each subnet, you can create security rules that specify the source, destination, and type of traffic that must be allowed in and out of the subnet.

  • Route table

    Virtual route tables contain rules to route traffic from subnets to destinations outside a VCN, typically through gateways.

  • Internet gateway

    The internet gateway allows traffic between the public subnets in a VCN and the public internet.

  • Dynamic routing gateway (DRG)

    The DRG is a virtual router that provides a path for private network traffic between VCNs in the same region, between a VCN and a network outside the region, such as a VCN in another Oracle Cloud Infrastructure region, an on-premises network, or a network in another cloud provider.

  • Service gateway

    The service gateway provides access from a VCN to other services, such as Oracle Cloud Infrastructure Object Storage. The traffic from the VCN to the Oracle service travels over the Oracle network fabric and never traverses the internet.

  • Site-to-Site VPN

    Site-to-Site VPN provides IPSec VPN connectivity between your on-premises network and VCNs in Oracle Cloud Infrastructure. The IPSec protocol suite encrypts IP traffic before the packets are transferred from the source to the destination and decrypts the traffic when it arrives.

  • Load balancer

    The Oracle Cloud Infrastructure Load Balancing service provides automated traffic distribution from a single entry point to multiple servers in the back end.

  • Bastion service

    Oracle Cloud Infrastructure Bastion provides restricted and time-limited secure access to resources that don't have public endpoints and that require strict resource access controls, such as bare metal and virtual machines, Oracle MySQL Database Service, Autonomous Transaction Processing (ATP), Oracle Container Engine for Kubernetes (OKE), and any other resource that allows Secure Shell Protocol (SSH) access. With Oracle Cloud Infrastructure Bastion service, you can enable access to private hosts without deploying and maintaining a jump host. In addition, you gain improved security posture with identity-based permissions and a centralized, audited, and time-bound SSH session. Oracle Cloud Infrastructure Bastion removes the need for a public IP for bastion access, eliminating the hassle and potential attack surface when providing remote access.

  • Object storage

    Object storage provides quick access to large amounts of structured and unstructured data of any content type, including database backups, analytic data, and rich content such as images and videos. You can safely and securely store and then retrieve data directly from the internet or from within the cloud platform. You can seamlessly scale storage without experiencing any degradation in performance or service reliability. Use standard storage for "hot" storage that you need to access quickly, immediately, and frequently. Use archive storage for "cold" storage that you retain for long periods of time and seldom or rarely access.

  • Registry

    Oracle Cloud Infrastructure Registry is an Oracle-managed registry that enables you to simplify your development-to-production workflow. Registry makes it easy for you to store, share, and manage development artifacts, like Docker images. The highly available and scalable architecture of Oracle Cloud Infrastructure ensures that you can deploy and manage your applications reliably.

  • Identity and Access Management (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) is the access control plane for Oracle Cloud Infrastructure (OCI) and Oracle Cloud Applications. The IAM API and the user interface enable you to manage identity domains and the resources within the identity domain. Each OCI IAM identity domain represents a standalone identity and access management solution or a different user population.

  • Autonomous Database

    Oracle Cloud Infrastructure Autonomous Database is a fully managed, preconfigured database environments that you can use for transaction processing and data warehousing workloads. You do not need to configure or manage any hardware, or install any software. Oracle Cloud Infrastructure handles creating the database, as well as backing up, patching, upgrading, and tuning the database.

  • Autonomous Transaction Processing

    Oracle Autonomous Transaction Processing is a self-driving, self-securing, self-repairing database service that is optimized for transaction processing workloads. You do not need to configure or manage any hardware, or install any software. Oracle Cloud Infrastructure handles creating the database, as well as backing up, patching, upgrading, and tuning the database.

Get Featured in Built and Deployed

Want to show off what you built on Oracle Cloud Infrastructure? Care to share your lessons learned, best practices, and reference architectures with our global community of cloud architects? Let us help you get started.

  1. Download the template (PPTX)

    Illustrate your own reference architecture by dragging and dropping the icons into the sample wireframe.

  2. Watch the architecture tutorial

    Get step by step instructions on how to create a reference architecture.

  3. Submit your diagram

    Send us an email with your diagram. Our cloud architects will review your diagram and contact you to discuss your architecture.

Acknowledgments

  • Authors: Robert Huie, Jay Lakumb, Wei Han, Steven Riley, Sasha Banks-Louie
  • Contributor: Robert Lies