Using Cloud, Multitenancy, and Microservices to Deliver Rapid Value to Warehouses
Think back in time 20 years to what enterprise software was like pre-SaaS. Releases were slow. Even basic new features took 6-12 months for vendors to implement, deliver, and deploy. Internal IT groups had to be involved with not only the initial deployments, but with every upgrade as well. Hardware had to be procured. Storage was limited in size, and increasing storage meant more IT involvement and more procurement of hardware. SaaS solved these issues.
Unfortunately, warehouse software missed the SaaS revolution and has been stuck in a 1990s paradigm of on prem software. The results have meant slow delivery of new features, security breaches, an inability to respond to changing market demands in a timely manner, and an inability to store the volumes of data needed to truly optimize operations. In short, on-prem leads to frustrated operations teams. For example, what happens when COVID-19 comes along and causes fundamental changes in how a building operates, but it takes months to update the software running the building? Or, how do operators make intelligent decisions when their systems can only store a few weeks worth of data, not even enough to remember the last peak season much less enough to see how peak seasons have trended over the last several years.
At CognitOps, we want to be a different type of software company, one that’s hyper-focused on quickly delivering business value. When a customer requests a critical new feature, we want to be able to iterate quickly, often getting an initial version into the customer’s hands within days. When a customer asks us how much data we keep, we don’t want to give an answer of weeks, or months, or even years. We want to keep all of the data. Period.
We have three secret weapons (at least secret in the warehouse software space) that allow us to be this different type of software company: Cloud, Multitenancy, and Microservices.
CognitOps runs in Google Cloud Platform (GCP). GCP provides advantages such as protection by the world-class Google security team, the ability to rapidly scale up hardware as demand increases, monitoring, logging, and built-in services such as databases, Kubernetes for managing microservices, and AI platforms. Because we control the GCP production environment, we can deploy new features at our own rapid pace, with no need to wait on customer IT groups. There’s no longer a need to package a bunch of features into a 6- or 12-month release cycle and then send engineers across the country to deploy on prem. As a feature is finished and properly tested, we can simply push it into our cloud environment, and customers see immediate benefit, often within days of their initial request.
For storage, GCP offers Google Cloud Storage (GCS), which allows us cheap, virtually unlimited storage for only a few pennies per gigabyte per month. We can keep the most recent, most active data live in our databases, while archiving older data to GCS where it’s available to our data science team for literally only a few dollars a month per warehouse. This ability to retain all the data allows our data science team to find operational optimizations that just wouldn’t be possible without cloud storage.
In GCP, we run a single version of our software that hosts all of our customers. Of course, we have to be incredibly focused on security to make sure that customer data is kept secure, but this multi-tenant solution allows us to deliver value rapidly. When we release a new feature or a bug fix, we only have a single system to update, and every customer is on the exact same version of our code. Features and bug fixes for one customer are immediately available to all. Contrast that with a more traditional single-tenant approach where each customer has their own deployment that has to be upgraded individually, each customer is on a different version of the software, and likely each customer is on a different branch of the code. Multi-tenant systems are much easier to manage, saving lots of time that can be better spent solving your warehouse problems. That’s a win-win for everybody.
At CognitOps, our software does not run as a large monolith, but rather runs as a large network of small microservices. There are two benefits of microservices. First, any given feature typically affects only a small number of microservices. So deploying that feature to production only involves rolling restarts of a few microservices, which is way less disruptive than redeploying a large monolith. Because modifying, testing, and redeploying microservices is so lightweight, we can release changes to production literally every day, sometimes multiple times per day.
Second, microservices allow us to scale up our development team by breaking the team into a number of smaller teams, each responsible for a subset of the microservices. Rather than having a lot of developers spending lots of time trying to come to consensus about how to modify a monolith, we have small efficient teams with lots of autonomy over their subset of microservices. That efficiency allows us to deliver you value more quickly.
At CognitOps, we’re very focused on modern software development practices that allow us to deliver value quickly, and cloud computing, multitenancy, and microservices are the keys. If you’d like to see a demo of what CognitOps can do for you, contact us at firstname.lastname@example.org.