What is the Ops Platform?

The Ops Platform is a tool that helps software development teams automate their processes. Most software teams struggle to achieve DevOps best practices because typical DevOps approaches are not tailored to their existing unique developer experience. By gradually Opifying your processes, one at a time, your team can achieve DevOps goals without the need for rewrites or technical changes. The Ops platform gives you DevOps best practices by working with your current stack, not by changing it.

⏩ Dive Head-First Into Ops?

The Ops Platform starts when you build your first Op.

What is An Op?

  • An Op is one developer workflow β€” packaged to run on the Ops Platform.
  • An Op is easy to share with your team β€” even non-technical people can run it.
  • An Op is updated by your team β€” and then everyone else on your team is auto-updated.
  • An Op provides built-in features, like Secrets Management and Delivery Metrics.
  • An Op can be run from the Command Line and from Slack.
  • An Op brings DevOps to Slack: the place where your team collaborates.

An Op is the Basic Building Block of the Ops Platform

Opifying your DevOps starts by creating one Op, but the full value of the platform is realized when you've created many Ops that work together.

After your DevOps has been fully Opified:

  • You will get Delivery Metrics on all of your processes giving actionable DevOps insight.
  • You will onboard new teammates in a day, not a month.
  • You will always know what automations are running where, when, and by who.
  • Junior developers will be able to perform what would otherwise be complex DevOps tasks.
  • Introducing new DevOps processes will happen faster and they will be more reliable.

The Most Popular Ops Use Cases

Ops are so flexible that any unique developer workflow β€” specific to your team β€” can be Opified. However, there are some Ops that are popular and apply broadly.

Common use cases that companies use today:

  • Setup a New Kubernetes Cluster
    • Adopting k8s can be daunting. This Op is a guided setup with on-the-rails best practices.
  • Deployment
    • Triggering interactive deployments from Slack provides transparency and avoids manual error.
  • Provision a Testing Database
    • This repeatable task is made easy for new hires or Jr. Devs.
  • Generate a Custom Analytics Report
    • Surface custom data to stakeholders in Slack without heavy-duty reporting software.

Can you think of the first Op you'd like to build?

Example: Deployment Op

A popular use of the Platform is to Opify deployment. Your team might have a set of deployment scripts that are run each time you want to deploy new software to one of your environments.

You could Opify these deployment scripts in a few different ways, but one way would be to start with an Op scaffold. This scaffold provides a place where you could copy your existing source files. Let's see how this would be done.

Start by creating an Op scaffold using the ops init command.

For example, in your MacOS Terminal:

% ops init     ## create a scaffold Op
% ls -1a       ## show the scaffold files
.
..
.dockerignore
.npmignore
Dockerfile
index.js       ## your source code could go here
ops.yml
package.json

Put your current deployment code in the index.js file. This example uses NodeJS, but we also support many other languages like Bash, Python, and Golang.

Next, import the Ops SDK into your code.

import { sdk } from '@cto.ai/sdk'

With the Ops SDK imported, you can start replacing your program's input and output calls with calls to the Ops Platform. If your current deployment script allows you to specify a target environment, like staging or production, you could replace the part where you gather this input with a call to one of the Ops SDK input prompts. This simplifies the input process and makes it work on both the Command Line and Slack.

const { platform } = await ux.prompt({
        type: "list",
        name: "target_environment",
        message: "Which environment would you like to deploy to?",
        choices: ["staging", "production"],
        default: "staging"
    })

When the Op is run from Slack, a Slack-native dropdown is presented to the user for this input.

When the Op is run from the Command Line, an equivalent selection list is presented on the Command Line.

The Ops SDK also standardizes output. For example, a print message:

ux.print("Deployment Successful!")    // presents different UI for Slack vs. CLI

Using SDK functions for common tasks is what allows the platform to run from various environments, like Slack and the CLI. It's also how power features like Secrets Management can be so portable and convenient.

Once Opified, your deployment workflow can be shared with anyone on your team and then they can immediately run it from Slack or the CLI β€” no installation.

An Op is much more than a typical DevOps script.

To recap, here are some of the benefits that come built-in to every Op:

  • Delivery Metrics
    • Discover the who, what, where, when, and how your deployments work.
  • Simplicity
    • Tricky parts of your script can be simplified with our common DevOps idioms.
    • Secrets Management will save you the headache of key distribution and rotation.
  • AutoUpdates
    • Everyone will always be on the latest version of your Op β€” no upgrading worries.
  • Unblock Your Team
    • Your velocity won't be bottle-necked by overworked gatekeepers.
  • Serverless
    • Your Op runs on the CTO.ai cloud, so there is no hassle to maintain DevOps servers.

Ok, I understand what Ops do, but what is the tech behind Ops?

Ops are based on Docker. An Op is a containerized program that imports and uses the Ops SDK. You can write your containerized program in the language of your choice and then call out to the Ops SDK to use the enhanced DevOps features of the Platform.

Later, when you run your Op from Slack, your containerized code runs on the CTO.ai cloud and starts an interactive session with your Slack Channel. Based on how you programmed your Op, you can now interactively control your program from Slack. Slack becomes your team's "Shared Command Line" β€” DevOps moves to where your team collaborates.

Ops are stored in the CTO.ai Ops Registry. They can be private to your team, or you can publish them open source.

The Ops SDK currently supports NodeJS, Python, Golang, and Bash.

By programming with the DevOps features of the Ops SDK, your adoption of DevOps best practices is accelerated.

Ops provide the benefits of Docker, and also much more

Ops help with many problems that benefit from containerization, while also providing:

  1. Team Management.
  2. Version Management.
  3. Secrets Management.
  4. Simplified development using our SDK that supports common DevOps tasks.
  5. Tracking & Delivery Metrics.
  6. Portability β€” write once, run in Slack & CLI.

Summary

The Ops Platform is a tool that helps software development teams automate their processes. It works with your current stack, rather than changing it, by Opifying one DevOps workflow at a time. The more workflows you Opify, the more powerful the platform-wide features become β€” features like Delivery Metrics.

Ops provide the same benefits as software containerization but, in addition, are designed to accelerate your adoption of DevOps best practices. They are not just portable in where they run β€” they also provide portable SDKs that allow you to control the same interactive workflows from different environments like Slack and the Command Line.

By gradually Opifying your processes one at a time, your team can achieve DevOps goals without the need for rewrites, tech migrations, or heavy-duty adoption of new paradigms. The Ops platform gives you DevOps best practices by working with your current stack, not by changing it.

Thanks for learning about the Ops Platform!

Can you think of the first Op you'd like to build?

Where do I go next?

If you want to get started using Ops, try our Getting Started page.

If you have a random question, drop-in to our Slack community.

To browse technical documentation, take a look at our SDKs.

Curious how we pulled off the Secrets Management feature? Check out the Secrets page!

Frequently Asked Questions

Why wouldn't I use Ops?

The nature of the platform means that Ops are compatible with any kind of developer workflow that can be containerized. Ops also integrate well into all cloud services that expose an API. However, the Ops CLI does not support Windows at this time.

How much does it cost?

We've released the Slack Ops Beta, and we are very eager for your feedback. During Beta, our team wants to get involved with how you use the Ops Platform. Join the Slack Ops Beta while it's still free to use!

Get Started now with the Ops Platform.