Overview

What is The Ops Platform?

The mission of The Ops Platform is to help every development team easily create their own unique developer experiences (see: DevEx or DX) by making DevOps automation accessible to everyone.

The Ops Platform is a set of tools which will allow anyone to automate complex or repetitive development tasks in the form of Commands or Workflows which can then easily be distributed to other developers as an "Op" via The Ops CLI. Ops can be run in the command-line or as Slack Ops in any Slack client--even on mobile.

In the Ops Platform, a Command is a unit level operation, such as "Create one m5.xlarge EC2 instance", while a Workflow is a chain of Commands that tackles larger tasks, such as "Create a new production environment" or "Setup a new Kubernetes cluster".

Once you have created a Command or Workflow, you can then turn it into an Op. Ops can easily be shared with your team members so that they can also benefit from the automation.

How Do I Get Started Quickly?

  • 🚀Sign up: ❯ npm install -g '@cto.ai/ops' && ops account:signup
  • 🏃Try it out: ❯ ops run @cto.ai/hello-world
  • 🔍See what's available: ❯ ops search
  • 📩Invite your team ❯ ops team:create -n my-team && ops team:invite
  • 👉Join our Slack Community to get help or share your ideas.
  • 📧If you have questions - email us anytime!

You can also read our Getting Started page (which includes information about our Slack Ops features), or check out this getting started video:

How is The Ops Platform for Teams?

Every user that joins The Ops Platform automatically has a personal team, which is chosen by their username (@username). Adding other users to your personal team is optional. You may prefer to use this as a personal workspace where you can privately test out ideas for Commands and Workflows before sharing them on other teams. Any user can create additional teams (as long as they use a unique team name) and invite users to this new team.

This allows team members who join the same workspace to:

  • share published Ops with others in the workspace
  • share configurations and secret credentials (coming soon!)

How do I use The Ops Platform?

The Ops CLI (@cto.ai/ops) is the primary method that you will use for creating, building, publishing and running Ops.

Commands can be written in any language, but we specifically built The Ops SDK (@cto.ai/sdk) in JavaScript to make it easy for everyone (the SDK can be used with other languages). The SDK also helps you create a interactive experience and unlock valuable platform features such as:

  • who is the current user?
  • what teams are they are part of?
  • what permissions do they have (coming soon!)

Workflows are written in YAML and follow a syntax that is very common to most CI/CD environments, making them very simple to configure. This makes it easy to use existing commands and combine them into multiple steps of a workflow.

How do I find an Op to run?

To find Ops in the public registry run:

ops search

To find Ops in your team registry run:

ops list

How do I run an Op?

Running an Op which has been published publicly is as simple as running:

ops run @cto.ai/hello-world

Note the @team/name syntax which executes from the global registry namespace. The @team represents the team and name is the name of the public Op on the team. This allows you to run an Op published by another team on the platform.

If you have published the Op privately to your team, you can omit the @team, like so:

ops run hello-world

If this is the first time that you are running this Op, it will automatically be synchronized to your system.

Once this happens you will then be able to run the Op offline if it does not require external API calls and you do not delete the images associated with the Op. When running an Op, it may prompt you for input or interact with your local and/or remote systems in order to help you complete the task for which it was built.

How do I create an Op?

Any repository or source code can become an Op if the following two files are added:

  • ops.yml
  • Dockerfile

These files can be created by the user, or through The Ops CLI by running:

ops init

This will create code scaffolding to help you get started with your Op.

Details on the functionality of each scaffold file is available on the Configuring Ops page.

Can an Op run anywhere?

Great question. Currently, Ops can run in the command-line or any Slack client.

Using our secrets feature, keys and other secrets can be securely requested from the CTO.ai website to pass into ops account:signin to trigger Ops to run on behalf of a member of that team. This enables the Ops to be triggered inside of other toolsets, such as a CI/CD pipeline, or allow people to trigger Ops inside of cloud based machines in their infrastructure. This means you will also be able to trigger an Op from system events that may happen outside of CTO.ai.

The possibilities are endless.

More about the tools...

The Ops CLI (@cto.ai/ops)

Use the Ops CLI to:

  • search our community registry
  • search your team's registry
  • search your local working directory
  • scaffold out a new Op
  • build and run your Ops
  • publish and share Ops
  • manage your user account
  • manage your teams

The Ops SDK (@cto.ai/sdk)

The SDK is an optional package that accelerates the Command development process and enables integration with extended features of The Ops Platform. It includes two modules, ux and sdk:

const { ux, sdk } = require("@cto.ai/sdk")

The ux module is a collection of command-line utilities that help you build your own professional CLI in no time. It includes the following components:

  • prompts
  • auto complete
  • spinners & progress bars
  • date pickers, colors & links
  • tree & table layouts, and more very soon...

The sdk module is a set of tools that allow you to:

  • manage state and config for your teams and users
  • access the file-system on your user's host machine
  • track events and analytics for your Op users

The CTO.ai Slack App

In addition to the command-line, Ops can run as Slack Ops in any Slack client. You can read more about our Slack features in the Slack Ops section.