Nextmv is an end-to-end platform for solving optimization problems – from developing and testing custom models to deploying them to production. You can build models locally with a guided CLI experience then ship your decision apps to Nextmv Cloud in a few commands.
Eliminating common model deployment issues
We hear about deployment challenges every day from operations teams – and have experienced them first hand. Here are the top three roadblocks that we we’ve tackled head on:
Infrastructure setup and maintenance. We take care of every aspect of infrastructure for you. You can deploy your custom decision model to production without having to worry about setting up servers or scaling resources.
Version management. Build a release process that makes sense for your organization. Once you’ve created an app from your custom model, you can manage the versions and instances to ensure a smooth dev pipeline from testing through to production.
Integration into existing systems. Your decision app is accessible via HTTP endpoints that are unique to your custom model. This means that you can easily integrate it with your existing services like order management systems and front-end applications.
Your custom decision app on Nextmv Cloud
How does Nextmv Cloud work behind-the-scenes? What does an app look like exactly? Let’s dive in.
An app holds everything you need to solve your business problem including the executable binary of the model as well as run history, testing results, and more. When you create and publish your app (with a few simple commands), you now have an instance and version hosted on Nextmv Cloud.
An application version represents a specific executable binary – allowing you to explicitly manage behavior throughout the app management process. An application instance is a representation of a version and optional configuration that you want to use in a specific context. For instance, you can create different instances of a pizza delivery app for individual regions (like NYC or Philadelphia). By specifying an instance for NYC and another for Philadelphia, you can use different optimization logic per city as well as easily isolate and analyze runs from one region. Instances also allow you to quickly roll back to a previous version if you have a production issue with a new release.
Nextmv Cloud hosts this service and handles all the calls to your app’s unique endpoint, ensuring that you always have the resources required to run your app and find solutions quickly.
Creating dev-friendly deployment pipelines
Traditional optimization model deployment can include translation uncertainty and cross-your-fingers moments. So when changes need to be made, it's easy to understand why teams get hesitant to push updates and postpone improvements. Many of us have thought, “The existing model is probably good enough. There’s room for improvement, but is it worth the headache?”
We’re here to change that experience so you can build, test, and deploy custom optimization models like you would any other software. We’ve structured the app deployment workflow to provide flexibility in the way you choose to build your pipeline.
Pipeline with two optimization models
The simplest form of deployment is a manual process that’s straightforward: it separates the model you’re working on from the model that is being used in production. Once you’re satisfied with the model in development, you simply promote the application from the Nextmv CLI, which creates a versioned default instance to use for your production runs.
This is a great starting point for a proof of concept or for smaller operations. While there’s limited separation in this approach, using versions and instances still allows you to roll back the version assigned to your production instance if needed.
Pipeline with multiple optimization apps
If your organization follows a formal release process that supports continuous integration, your pipeline likely has multiple stages reflecting increasing levels of stability. Along the way, there are both automated and manual steps like unit tests, integration tests, and other checks to ensure quality and performance haven’t degraded.
The Nextmv platform allows you to easily follow this same process when deploying your decision models to production. One approach is to create applications that reflect each stage. Each stage is set up to build the code and push/promote the resulting binary to its stage application. A new version is then assigned to an application instance. You can then run tests against the stage to ensure that the application behaves as expected. The use of applications to represent development stages within an account provides a level of separation between environments – decreasing the likelihood of inadvertent operations that affect production.
Pipeline with multiple accounts
A pipeline with accounts differs from a pipeline with apps in that each stage application has a dedicated Nextmv account. This approach provides the same benefits as noted above with an additional level of security benefits since access to accounts at each stage can be managed separately. For example, access to the production account can be locked down to only on-call operators. You can then invite your teammates to your workspace in the Nextmv console so you can collaborate on the stage you’re responsible for together in real time.
Get started today
Want to tinker with a custom model locally? Download our dev tools for free and iterate on your machine until you’re ready to start running and testing your model remotely.