Impulse Logic helps customers reduce labor costs by 40% with OCI
June 26, 2024 | 11 minute read
Authored by Kellsey Ruppel, principal product marketing director at Oracle.
Figure 1: Impulse Logic develops store optimization software for the retail, grocery, home improvement, and consumer electronics industries.
The gap between demand and supply in the retail industry contributes to hundreds of millions of dollars in lost sales annually. To address this problem, Impulse Logic’s store optimization software, SLiQ, provides a predictive analytics engine that detects and exposes inventory risk. The company originally deployed SLiQ at customers’ sites in an on-premises model. Implementations could take as long as six months to complete. Because of the radical peaks and valleys in sales within retail, the firm maintained data center capacity to serve customers during the highest periods of demand, which threatened its pricing model.
Consequently, Impulse Logic migrated development to Amazon Web Services (AWS) and began to offer the precursor to what is now its SLiQ as a software-as-a-service (SaaS) solution. However, as the global pandemic exacerbated retailers’ inventory distortion problems, company leaders recognized opportunities to expand the business beyond its primary market in the UK to other markets, especially the US and Middle East. New clients wanted to go live more rapidly, often in hundreds of locations simultaneously, so the SaaS model was ideal.
However, when Amazon became a direct competitor in the food and grocery sectors, Impulse Logic decided to evaluate other cloud platform providers that would help it not only deploy SLiQ more rapidly across global regions, but also maintain an optimal pricing structure for its clients.
Goals for cloud migration
Impulse Logic was looking to modernize its SLiQ application from a monolithic application to a cloud native application to make the application more scalable and more resilient to large spikes in demand, which would accommodate Impulse Logic's expanding customer base. Each new onboarded customer typically has many retail stores, and the product must be ready to go live at all locations in a short amount of time. Impulse Logic needed to simplify and offload much of its infrastructure and database management by leveraging managed services. Overall, Impulse Logic wanted to help its customers with the following processes:
- Predict inventory targets with greater accuracy
- Reduce labor costs
- Lift projected profits
Why Impulse Logic chose Oracle
Impulse Logic’s leadership evaluated IBM, Oracle Cloud Infrastructure (OCI), and the option to remain on AWS. The assessment of IBM determined that DB2 and related security capabilities were not ideal for Impulse Logic’s solutions. Microsoft Azure was also subsequently eliminated from consideration for scalability concerns of the SQL database at that time. Ultimately, the company’s leadership selected OCI based on multiple factors. Impulse Logic’s staff had a continuous history of using Oracle databases for both on-premises and AWS SaaS workloads. These experiences and the emerging availability of automated database maintenance capabilities in Oracle Autonomous Database were a big benefit. In addition, Oracle was willing to invest resources into the migration effort to support the successful migration of 3.5M lines of code from AWS to OCI in just over 30 days.
The final two key factors that determined the selection of OCI were the technical capabilities of OCI Kubernetes Engine (OKE) clusters and the superior performance and security capabilities associated with Oracle Autonomous Database for transaction processing and mixed workloads as a managed service. The near real-time transaction processing, when applied across hundreds of stores with multiple checkout lanes and digital purchase fulfilments, saw processing loads not dissimilar to online transaction processing, and it was here that OCI excelled.
“The capabilities of Oracle Container Engine for Kubernetes and Oracle Autonomous Database on OCI have enabled us to transform our SLiQ solution into a truly cloud native application,” says Les McNeill, founder of Impulse Logic. “This has streamlined development and customer deployments while also providing scalability and elasticity to support the highly fluctuating workloads of our clients.”
Suite of Oracle products used
OCI includes all the services needed to migrate, build, and run IT in the cloud, from existing enterprise workloads to new cloud native applications and data platforms. Impulse Logic used the following OCI services and technologies:
- Autonomous Database: OCI Autonomous Database is a fully managed, preconfigured database environments that you can use for transaction processing and data warehousing workloads. You don’t need to configure or manage any hardware or install any software. OCI handles creating, backing up, patching, upgrading, and tuning the database.
- OCI Kubernetes Engine (OKE): OCI Kubernetes Engine (OKE) is a managed Kubernetes service that simplifies the operations of enterprise-grade Kubernetes at scale. It reduces the time, cost, and effort needed to manage the complexities of the Kubernetes infrastructure. OKE lets you deploy Kubernetes clusters and ensure reliable operations for both the control plane and the worker nodes with automatic scaling, upgrades, and security patching. Additionally, OKE provides a fully serverless Kubernetes experience with virtual nodes.
- 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 don’t need to configure or manage any hardware or install any software. OCI handles creating the database, as well as backing up, patching, upgrading, and tuning the database.
- Tenancy: A tenancy is a secure and isolated partition that Oracle sets up within Oracle Cloud when you sign up for OCI. You can create, organize, and administer your resources in OCI 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 OCI 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 crossregion logical partitions within an OCI tenancy. Use compartments to organize your resources in OCI, control access to the resources, and set usage quotas. To control access to the resources in a 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 OCI region. Like traditional data center networks, VCNs give you complete control over your network environment. A VCN can have multiple nonoverlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which you can scope to a region or 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 OCI 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 OCI 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 OCI. 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 OCI Load Balancing service provides automated traffic distribution from a single entry point to multiple servers in the back end.
- Bastion service: OCI 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 (VMs), the Oracle MySQL Database service, Autonomous Transaction Processing, Oracle Container Engine for Kubernetes (OKE), and any other resource that allows Secure Shell Protocol (SSH) access. With OCI Bastion, you can enable access to private hosts without deploying and maintaining a jump host. You also gain improved security posture with identity-based permissions and a centralized, audited, and time-bound SSH session. OCI Bastion removes the need for a public IP for bastion access, eliminating the hassle and potential attack surface when providing remote access.
- Object Storage: OCI 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: OCI 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 OCI ensures that you can deploy and manage your applications reliably.
- Identity and Access Management (IAM): OCI IAM is the access control plane for 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.
Migration path
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 doesn’t include personal identity information, credit card information, or retailer personnel data. MiQ integrates the federation of disparate data feeds from multiple application silos with 10–13 separate data sources, read in their native format and normalized for SLiQ processing. MiQ functions without changing the existing legacy systems or requiring any preprocessing of data.
When MiQ is deployed in OCI, the customer first sends the data set to OCI 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 (ML) capabilities for training and prediction are developed in Python. After receiving the data sets that are extracted by MiQ, SLiQ loads this data into Oracle Autonomous Transaction Processing for ML analysis. The ML capability trains the model, predicts inventory events, and then sends recommendations back to the retail employees to access the results through 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 ML capabilities, providing retailers with recommendations to optimize their inventory.
The following diagram illustrates the data flow through this reference architecture:
Using Oracle Autonomous Transaction Processing, Impulse Logic has simplified its operations and maintenance because of the Autonomous Database's self-driving, self-securing, and self-repairing capabilities. With OKE, Impulse Logic has transformed SLiQ into a cloud native application, allowing them to add more capabilities without affecting existing components of the application. They can continue to improve the ML 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:
Results
Impulse Logic migrated all its SLiQ workloads to OCI. Oracle Autonomous Database for transaction processing and mixed workloads on OCI provided fully managed, preconfigured database environments that eliminated the need for the firm’s IT staff to configure hardware, manage hardware, or install software. OCI automatically creates databases, while also handling backup, upgrade, patching, and tuning activities.
With OKE, the company transformed SLiQ into a cloud native application. They can add more capabilities without affecting existing components of the application. New customers typically go live within 75 days and have reduced labor cosys by 40%. OCI’s elasticity and scalability automatically and transparently provisions resources in response to the large fluctuations in demand experienced by Impulse Logic’s customers. OCI’s Flexible Load Balancing distributes web requests across a fleet of servers or automatically routes traffic across fault domains, availability domains, or regions. This yields high availability and fault tolerance for SLiQ transactions.
Oracle’s extensive and expanding network of global cloud data center regions supports Impulse Logic’s business expansion plans. OCI offers uniform pricing across all global regions, enabling the firm to maintain a predictable, consistent, and optimal pricing structure for its clients worldwide.
The migration to OCI positively impacted Impulse Logic’s decision to move SLiQ from a monolithic application to a microservices architecture. Its stability on OCI facilitated a faster migration, which included all the automated intelligence and ML components moving into their own microservices.
Next steps
In the future, Impulse Logic’s leadership expects rising interest in supporting customers’ multicloud strategies. For example, one the company’s key European customers is fully deployed on Azure. In this account, SLiQ is deployed on OCI, with a continuous data interchange between the SLiQ deployment on OCI, with outcomes exposed to legacy systems on Azure. While not an absolute multicloud deployment , it illustrates OCI’s ease of integration and provides more validation of the decision to move to OCI as Oracle expands its multicloud capabilities.
For more information on Impulse Logic and Oracle Cloud Infrastructure, see the following resources: