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 simply bring your application, see here
- You can bring your own compose specification, see here
- You can bring your Operator, Helm charts, Kustomize charts
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/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/CTL/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 directly importing your application.
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 CTL to achieve the same if you prefer a programmatic way.
- For Omnistrate CTL, please see CTL Reference
- For Omnistrate API, please see API-Reference
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/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:
CTL¶
Omnistrate CTL is a command-line tool designed to help you build your Omnistrate SaaS effortlessly. It provides a convenient interface to interact with the Omnistrate platform and execute various operations on your services. If you already have a compose file ready, CTL is the recommended method for building your services.
./omnistrate-ctl
_ __ __
___ __ _ ___ (_)__ / /________ _/ /____
/ _ \/ ' \/ _ \/ (_-</ __/ __/ _ `/ __/ -_)
\___/_/_/_/_//_/_/___/\__/_/ \_,_/\__/\__/
Omnistrate ctl is a command line tool for creating,
deploying, and managing your Omnistrate SaaS.
Usage:
omnistrate-ctl [flags]
omnistrate-ctl [command]
Available Commands:
build Build service from a docker-compose file
completion Generate the autocompletion script for the specified shell
describe Describe service
help Help about any command
list List service
login Log in to Omnistrate platform
logout Logout from Omnistrate platform
remove Remove service from Omnistrate platform
Flags:
-h, --help help for omnistrate-ctl
Use "omnistrate-ctl [command] --help" for more information about a command.
To start using CTL, you first need to log in to the Omnistrate platform. You can do this by running either of the following command:
# Option 1: provide email and password as arguments
omnistrate-ctl login --email email --password password
# Option 2: store password in a file
cat ~/omnistrate_pass.txt | ./omnistrate-ctl login --email email --password-stdin
# Option 3: store password in an environment variable
echo $OMNISTRATE_PASSWORD | ./omnistrate-ctl login --email email --password-stdin
Before you can build a service, you need to have a docker-compose file that defines the service. The docker-compose file should include the service plan configuration in the x-omnistrate-service-plan
section. Here is an example of a docker-compose file with a hosted deployment type:
version: "3"
x-omnistrate-service-plan:
name: 'Your Service Plan Name'
tenancyType: 'OMNISTRATE_DEDICATED_TENANCY'
deployment:
hostedDeployment:
AwsAccountId: '0123456789'
AwsBootstrapRoleAccountArn: 'arn:aws:iam::0123456789:role/YOUR_AWS_BOOTSTRAP_ROLE'
services:
...
To build a service from a docker-compose file, use the build
command:
This command will create a new service named "Your Service Name" using the docker-compose file docker-compose.yaml
.
If the service is built successfully, you will see a message like this:
Service built successfully
Check the service plan result at https://omnistrate.cloud/product-tier/build?serviceId=s-lfuFlBuRlD&productTierId=pt-TcSiyeoXEA
Consume it at https://omnistrate.cloud/access?serviceId=s-lfuFlBuRlD&environmentId=se-hC4Z5oHUVd
If you want to release the service after building it, you can use the --release-as-preferred
or --release
flag in the build command.
To update the service with a new compose spec, use the same command as above with the updated compose spec file.
To list all the services you have created, use the list
command:
This command will display a list of all your services, along with their status and other details.
To get more detailed information about a specific service, use the describe
command:
Replace <service-id>
with the ID of the service you want to describe. This command will display detailed information about the specified service.
To remove a service from the Omnistrate platform, use the remove
command:
Replace <service-id>
with the ID of the service you want to remove. This command will remove the specified service from the platform.
For more details, please see this.
API¶
Here is an API generated for an demo MySQL SaaS mentioned here built with Omnistrate:
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