Skip to content

How it works

Omnistrate is a complete SaaS platform that allows you to build your SaaS in minutes, generates your control plane for you and your customers to access your SaaS and finally provides you with the management portal to operate your SaaS.

  • Build: If you are a new user trying to build your SaaS, start with the Build portal to build your SaaS. The build portal will convert your docker image into SaaS which can be accessed from the Access portal on release. More details, here

  • Access: If you are here to access one of your own existing services, please use the Access portal of the corresponding service to access your SaaS. More details, here

  • Operate: If you are here to operate one of the existing services that you have already built, please access the Operate portal to manage your SaaS. Operate portal is mainly used for day-2 operations by your devops/secops/finops teams from learning about the fleet health, exploring your inventory, patching the fleet, to getting visibility and insights into fleet. You can also evolve your service from tuning the customer experience, upgrading infrastructure, test your changes in a sandbox environment, and so on. More details, here

Build

Your SaaS is a collection of 1 or more service components. Each service component (also referred as resource) is a unit of functionality that can be run independently.

You can think of service component as a microservice with an optional image or infrastructure or configuration attached. To learn more about service component and what it entails, please see this page.

We provide multiple ways for you to build your SaaS. In the following section, we will go over each of those mechanism:

  • You can bring your own compose specification, see here
  • You can start from scratch on our API/CLI/UI, see here

Creating service from templates

If you already have a compose specification, you can directly import your specification into the platform and we will parse the specification to build an equivalent experience for your SaaS. To set it up using compose, please see this

Note that compose specification is just a way to quickly get started and is not a requirement to use the platform. You are welcome to use Omnistrate APIs/CLI/UI directly as well to build your SaaS. Once imported, you can review your SaaS on the Access portal.

If you are happy with your SaaS, you can show it to your customers otherwise you can continue to iterate through your SaaS and Omnistrate will automatically manage all of your SaaS versions.

Note

We have provided compose specification for some of the most common open source technologies. Feel free to leverage them or use them as examples to build your own.

If you need help with the compose specification for one of the open-source softwares, please send an email to support@omnistrate.com

Example

We will use a hello world example using MySQL. Here is a sample compose specification for reference:

version: '3'
services:
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_password_here
      MYSQL_DATABASE: your_database_name_here
      MYSQL_USER: your_username_here
      MYSQL_PASSWORD: your_password_here
    volumes:
      - ./data:/var/lib/mysql
    ports:
      - '3306:3306'

Create new service from Omnistrate API/CLI/UI

If you don’t have compose specification for your project or do not prefer to use that, you can directly use our UI to build your SaaS service by defining service plan, service components, images, infra, integrations and releasing them. Please see this page for more reference.

You can then view your SaaS on the Access portal. If you are happy with it, we also allow you to make your SaaS public with just 1-click and have your customers directly consume your SaaS from your own custom domain. If you want to make it live on cloud marketplaces as well, please follow this

Alternatively, you can also use our API or CLI to achieve the same if you prefer a programmatic way.

Access

After you have built your SaaS, Omnistrate will automatically build your control plane and start hosting it across clouds and regions.

Access portal is an interface (API/CLI/UI) to your custom control plane for your SaaS built and hosted by Omnistrate. It allows your customers to provision, scale, view resources along with other management operations. Omnistrate generates API/CLI/UI for your customers to talk to your control plane.

Note

Please note that for all the data access, your customers' directly interact with the software running in your account (Hosted mode) or in your customers' account (BYOA mode) unless Omnistrate Hosted mode is explicitly chosen to deploy in Omnistrate's account.

Note

By default, it can only be accessed by your account and to allow customers to use your SaaS, you will have to either:

  • mark your service public to make it available directly from the Omnistrate portal. Of course, you can bring your own custom domain and custom UI if you prefer
  • keep the service private and wrap up your control plane interfaces to build your own experiences on top

UI

Here is a UI generated for a demo MySQL SaaS mentioned here built with Omnistrate:

MySQL SaaS UI

CLI

Here is a CLI generated for a demo MySQL SaaS mentioned here built with Omnistrate:

kamal@kamal-Precision-T3610:$ ./mysql-saas-cli --help
./mysql-saas-cli is a command line client for the mysql-byoa API.

Usage:
    ./mysql-saas-cli [-host HOST][-url URL][-timeout SECONDS][-verbose|-v] SERVICE ENDPOINT [flags]

    -host HOST:  server host (default). valid values: default
    -url URL:    specify service URL overriding host URL (http://localhost:8080)
    -timeout:    maximum number of seconds to wait for response (30)
    -verbose|-v: print request and response details (false)

Commands:
    user-api signin
    delivery-model-byoa-dedicated-tier-db (create|delete|describe|failover|list|restart|start|stop|update)
    delivery-model-omnistrate-hosted-dedicated-tier-db (create|delete|describe|failover|list|restart|start|stop|update)

Additional help:
    ./mysql-saas-cli SERVICE [ENDPOINT] --help

Example:
    ./mysql-saas-cli user-api signin --username "Magni consectetur omnis voluptatem sit." --password "Sed nulla."
    ./mysql-saas-cli delivery-model-byoa-dedicated-tier-db create --body '{
          "cloud_provider": "Voluptas error ad inventore quo.",
          "region": "Autem fuga.",
          "requestParams": {
             "cloud_provider_account_config_id": "Dignissimos delectus eligendi nulla.",
             "mysqlDatabase": "Ducimus tenetur reiciendis eos ut.",
             "mysqlPassword": "Architecto qui at assumenda id dolores.",
             "mysqlRootPassword": "Pariatur expedita dicta aut magnam.",
             "mysqlUser": "Optio aut qui vitae debitis."
          }
       }' --token "Possimus excepturi eos qui."
    ./mysql-saas-cli delivery-model-omnistrate-hosted-dedicated-tier-db create --body '{
          "cloud_provider": "Eligendi ex odit doloremque eos distinctio.",
          "region": "Non qui quia suscipit non.",
          "requestParams": {
             "mysqlDatabase": "Et corporis quia aperiam.",
             "mysqlPassword": "Ut sit rem.",
             "mysqlRootPassword": "Quia voluptatem.",
             "mysqlUser": "Fuga doloribus dolorum sit autem occaecati ut."
          }
       }' --token "Molestiae velit et."

To use the above CLI, run the signin command to get the token:

kamal@kamal-Precision-T3610:$ ./mysql-saas-cli user-api signin --username "foo" --password "strongpassword"

{
    "Token": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTIwMDM5MzYsImlhdCI6MTY5MTkxNzUzNiwiaXNzIjoib21uaXN0cmF0ZS5jb20iLCJsYXN0TG9nb3V0Q291bnRlciI6Niwicm9sZSI6InJvb3QiLCJ0b2tlbklEIjoiZTE3Y2FmOTktZjBjNi00YmM3LWJkZTQtNjNmZTM2ZjU2OTYxIiwidXNlcklEIjoidXNlci0xOFpaRDZKQnJTIn0.4jOYLqCLNYB6MF51GjiXa-GJdd6HSZVC9HSqMh3C9nFi8U0KXXUeFNtRO8RzLLtYYOpv0iRr5LDD5ucbygZ7DQ"
}

You can then use the token to provision a MySQL cluster:

kamal@kamal-Precision-T3610:$ ./mysql-saas-cli delivery-model-omnistrate-hosted-dedicated-tier-db create --token "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTIwMDM5MzYsImlhdCI6MTY5MTkxNzUzNiwiaXNzIjoib21uaXN0cmF0ZS5jb20iLCJsYXN0TG9nb3V0Q291bnRlciI6Niwicm9sZSI6InJvb3QiLCJ0b2tlbklEIjoiZTE3Y2FmOTktZjBjNi00YmM3LWJkZTQtNjNmZTM2ZjU2OTYxIiwidXNlcklEIjoidXNlci0xOFpaRDZKQnJTIn0.4jOYLqCLNYB6MF51GjiXa-GJdd6HSZVC9HSqMh3C9nFi8U0KXXUeFNtRO8RzLLtYYOpv0iRr5LDD5ucbygZ7DQ" --body '{
          "cloud_provider": "aws",
          "region": "us-east-1",
          "requestParams": {
             "mysqlDatabase": "test",
             "mysqlPassword": "strongpassword",
             "mysqlRootPassword": "strongpassword",
             "mysqlUser": "test"
          }
       }'

{
    "ID": "instance-um60g2esx"
}

You can then list your MySQL clusters:

kamal@kamal-Precision-T3610:$ ./mysql-saas-cli delivery-model-omnistrate-hosted-dedicated-tier-db list --token "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTIwMDM5MzYsImlhdCI6MTY5MTkxNzUzNiwiaXNzIjoib21uaXN0cmF0ZS5jb20iLCJsYXN0TG9nb3V0Q291bnRlciI6Niwicm9sZSI6InJvb3QiLCJ0b2tlbklEIjoiZTE3Y2FmOTktZjBjNi00YmM3LWJkZTQtNjNmZTM2ZjU2OTYxIiwidXNlcklEIjoidXNlci0xOFpaRDZKQnJTIn0.4jOYLqCLNYB6MF51GjiXa-GJdd6HSZVC9HSqMh3C9nFi8U0KXXUeFNtRO8RzLLtYYOpv0iRr5LDD5ucbygZ7DQ"

{
    "Ids": [
        "instance-um60g2esx"
    ]
}

You can then delete your MySQL cluster:

kamal@kamal-Precision-T3610:/tmp$ ./mysql-saas-cli delivery-model-omnistrate-hosted-dedicated-tier-db delete -id "instance-um60g2esx" --token "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTIwMDM5MzYsImlhdCI6MTY5MTkxNzUzNiwiaXNzIjoib21uaXN0cmF0ZS5jb20iLCJsYXN0TG9nb3V0Q291bnRlciI6Niwicm9sZSI6InJvb3QiLCJ0b2tlbklEIjoiZTE3Y2FmOTktZjBjNi00YmM3LWJkZTQtNjNmZTM2ZjU2OTYxIiwidXNlcklEIjoidXNlci0xOFpaRDZKQnJTIn0.4jOYLqCLNYB6MF51GjiXa-GJdd6HSZVC9HSqMh3C9nFi8U0KXXUeFNtRO8RzLLtYYOpv0iRr5LDD5ucbygZ7DQ"

And finally you can describe to check the status:

kamal@kamal-Precision-T3610:$ ./mysql-saas-cli delivery-model-omnistrate-hosted-dedicated-tier-db describe -id "instance-um60g2esx" --token "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTIwMDM5MzYsImlhdCI6MTY5MTkxNzUzNiwiaXNzIjoib21uaXN0cmF0ZS5jb20iLCJsYXN0TG9nb3V0Q291bnRlciI6Niwicm9sZSI6InJvb3QiLCJ0b2tlbklEIjoiZTE3Y2FmOTktZjBjNi00YmM3LWJkZTQtNjNmZTM2ZjU2OTYxIiwidXNlcklEIjoidXNlci0xOFpaRDZKQnJTIn0.4jOYLqCLNYB6MF51GjiXa-GJdd6HSZVC9HSqMh3C9nFi8U0KXXUeFNtRO8RzLLtYYOpv0iRr5LDD5ucbygZ7DQ"

{
    "ID": "instance-um60g2esx",
    "CreatedAt": "2023-08-13 08:52:36.500827 +0000 UTC",
    "LastModified": null,
    "Status": "DELETING",
    "CloudProvider": "aws",
    "Region": "us-east-1",
    "ResultParams": {},
    "NetworkType": "PUBLIC"
}

In addition to this, you can scale, monitor, audit, define access control and perform other management operations.

Note

Please note that this CLI is an Omnistrate CLI to build and operate your SaaS, and have no correlation with the above CLI. As discussed above, we generate interfaces(API/CLI/UI) to your SaaS control plane built with Omnistrate.

API

Here is an API generated for an demo MySQL SaaS mentioned here built with Omnistrate:

MySQL SaaS UI

Operate

Building and providing access to your customers is the first step to launch your service and start monetizing your invention but it doesn’t end there. As part of managed services, you are expected to provide fully managed experience and you may have to worry about the following:

  • Availability - Omnistrate helps you recover from the infrastructure so that you can focus on making your software resilient. More specifically, Omnistrate helps recover from machine failures, network partitions, AZ failures, temporary process failures, process deadlatches, gray storage nodes out of the box. For more details, please see this
  • Operations - You may want to know fleet health, visibility into how your customer infrastructure is doing, inventory of your fleet, fleet insights. Omnistrate provides necessary views for you to operate and take necessary actions to enhance your service. For more details, please see this
  • Patching - As a service provider, you may have updates to your software that you want to rollout. Omnistrate allows you to define and manage software upgrades across the fleet. For more details, please see this
  • and, much more like continuous deployment, metering, scaling, compliance, access control, improve internal developer productivity

We also integrate with the SaaS applications of your choice for you to continue to use your favorite tooling. For more details, please see integrations

To get started with Omnistrate, see this

To learn more about Omnistrate Architecture, see this