While new cloud native architectures are incredibly feature-rich, they can come with a high barrier to entry. Many getting started tutorials are pages long and can take forever to complete. But these always start with the first step of performing an installation. In the spirit of making the installation of Speedscale as simple as possible, we have designed a new interactive installer as part of the speedctl command line interface. The new installer will:

  • Automatically deploy the Speedscale operator on your cluster
  • Configure Speedscale sidecars to all the workloads in a namespace
  • Provide recommendations for cluster settings that need to be changed
  • Create docker manifests for use outside of Kubernetes

Here are some examples of the new installer in action.

Installing speedctl

The speedctl CLI tool lets you to interact with Speedscale resources locally and in the cloud. If you don’t already have an account, you can sign up for a Free Trial. An API key is required during setup. Install and setup is simple.

sh -c "$(curl -Lfs <https://downloads.speedscale.com/speedctl/install>)"

Enter your API key when prompted. More information available in the docs. If you already have it installed and just want to grab the latest then you can update like so:

speedctl update

Installer for Kubernetes

The interactive install wizard can communicate with your cluster to install the operator and instrument any existing workloads you already have running.

speedctl install

The installer will give you special instructions for different distributions of Kubernetes:

✔ Connected to Kubernetes cluster.
Choose one:
 [1] Amazon Elastic Kubernetes Service
 [2] Google Kubernetes Engine
 [3] DigitalOcean
 [4] MicroK8s
 [5] Microsoft Azure Kubernetes Service
 [6] minikube
 [7] Self hosted
 [8] Other / I don't know
 [q] Quit
▸ Which flavor of Kubernetes are you running? [q]: 2

For example, when running on GKE, it wants to know if this is an autopilot cluster because there are some additional steps. The idea here is to embed the documentation and best practices directly into the CLI. Follow the rest of the prompts to install the operator:

✔ Speedscale Operator Installed.

Now that the operator is installed, you can use the installer to put the sidecar on specific workloads in the cluster. Let’s say you have some workloads running in the default namespace.

Choose one:
 [1] default
 [2] kube-node-lease
 [3] kube-public
 [4] kube-system
 [5] speedscale
 [q] Quit
▸ Which namespace is your service running in? [q]: 1

Simply select the number where your workload is running, and all of the deployments will have a sidecar added, and the installer can even confirm that the traffic is being captured properly. If your application makes HTTPS calls using TLS, then it can automatically configure the environment to read the encrypted traffic. Pretty neat, huh?

Installer for Virtual Machines

Sometimes you may find yourself working in a non-Kubernetes environment (hey, it could happen). You can run the Speedscale components in containers directly on a virtual machine or even your own desktop. The installer will generate docker compose yaml files that you can easily edit or customize for your environment:

Choose one:
 [1] Kubernetes
 [2] Docker
 [3] Traditional server / VM
 [4] Other / I don't know
 [q] Quit
▸ What kind of infrastructure is your service running on? [q]: 3

Then you can select your exact use case:

We will create Docker Compose files you can use to record traffic from, and replay against, your service.
Choose one:
 [1] Capture traffic and forward to Speedscale Cloud
 [2] Create a Speedscale Responder to mimic an external endpoint locally
 [3] Replay recorded traffic from a Snapshot against my service locally
 [q] Quit
▸ What would you like to do? [q]: 1

This will create a docker compose file locally that you can run locally on your own desktop or any virtual machine that can run docker. This lets you move the traffic capture and replay capabilities to any non-Kubernetes environment. For example, running the traffic capture in dual proxy mode is as simple as:

$ docker compose -f speedscale-docker-capture.yaml up

Wrap-Up

Our new interactive installer makes it easier than ever to run Speedscale traffic capture and replay with a minimal number of steps. It supports Kubernetes (either cloud or desktop), Virtual Machines or even on your Desktop. Feel free to check out the latest features by updating your speedctl and as always please share feedback in our Slack Community.

About The Author