What is Nuon?
Nuon is a platform that allows B2B software creators to deploy and run their apps in thousands or millions of their customers' cloud accounts.
Nuon gives vendors an easy way to configure different parts of their application, such as helm charts, docker images, and terraform modules. Nuon does the heavy lifting to deploy these components into a customer's AWS account with a single click using Terraform.
Nuon's dashboard gives vendors the tools to update, change and operate their apps in the customer's cloud account. To maintain their app experience, vendors can change the types of software/infrastructure running in the customer's account.
When a vendor signs up for Nuon, the first thing they do is configure their Nuon app. Vendors can bring existing software/infra or configure a new app using Nuon from day 1.
Every software application comprises different parts — things like a frontend, a backend, and some AWS resources. With your Nuon app, we call these components. In Nuon, a component can be one of the following:
An externally built docker image (something that's in your ECR repo, or something from Docker hub) — (e.g., Sourcegraph or LaunchDarkly)
Nuon works for both mono repos and poly repos. To set up your Nuon app, link your GitHub and add your app's components.
Components were designed to work with your existing software. If our components don't meet your needs, you can always build a plugin to bridge the gap.
Once you have configured your app with Nuon, you can install it on each of your customer's AWS accounts with just a few clicks.
To create an install, your customer needs to give you an AWS IAM role that grants 1-time access to set up the Nuon install. Once a customer provides their IAM role ARN (eg: arn:aws:iam::243051249287:role/nuon-demo), the vendor creates an install with a single click.
For some applications, this step might require asking the customer for some configuration for the application, such as the following:
- API keys for accessing any third party from the installed app (Stripe, Twilio, etc.)
- Domain name for configuring a domain
- OAUTH keys to access something like a user's email
- AWS creds to access an internal system
Eventually, the vendor will be able to ping an API to create the install for their customer automatically. Even further down the road, we might make it possible for a vendor to create an install for their customers using terraform.
Once a vendor has a few customer cloud deployments, they start to have to think about things like:
- How do I make updates?
- How do I add new components?
- What if something stops working? How do I see logs, statuses, metrics etc.?
This part of the application lifecycle is called day-2. Nuon runs an agent in each install, which talks to a dedicated single-tenant server (more on this later).
As you add new components to your application and deploy them, they will automatically get deployed into each customer's installs. This means:
- If you update and deploy an existing component, it will get updated in the customer's install.
- If you create a new component and deploy it, it will get deployed to each existing install.
From there, we plan on the following in the next quarter:
- ability to see logs for a single component on an install
- ability to see the status of all components on an install
- ability to see the status of a single component, across all installs (maybe)
Eventually, we could integrate some of Nuon into the day 2 stack tools like Datadog, Grafana, Otel etc.