Published on 01 October 2019

Solving the Laggy Human Shell Problem

Published on 01 October 2019

You tilt up in the morning and see that a new service has been added and it’s erroring. You ask your teammates if they have any idea what it is, and suddenly your Slack channel turns into a poor excuse for a shell:

Has this ever happened to you?

Two engineers discussing a problem across timezones

After lots of back and forth Dan gets a solution thanks to Han’s help. Mix in some timezone differences and misaligned lunch breaks and this could have taken hours.

The Laggy Human Shell

I call this the Laggy Human Shell problem: when two coworkers are communicating over text and asking each other to run commands, but keep missing each other, like ships passing in the night, with a 20 minute - 24 hour turnaround time on each message. It would be so much faster if you had access to their environment, but that’s not always possible if it’s a laptop or an external person’s machine.

To solve this problem, we built snapshots. Snapshots allow you to send a link to someone with a frozen “moment-in-time” version of the Tilt UI. In a snapshot you can drill in to specific services, see alerts, Kubernetes events, and everything else you can see in the Tilt UI!

With snapshots, Dan and Han’s laggy human shell session would have looked like this:

A snapshot link simplifies Dan and Han's conversation

Since a Tilt snapshot contains the state of your Kubernetes cluster, sending someone a Tilt snapshot allows them to asynchronously diagnose your problem, rather than waiting for both of you to have bandwidth at the same time.

Introducing Tilt Snapshots

A snapshot is a link that you can send to someone that will allow them to interactively explore your current Tilt state. This is useful for async debugging and adding context to bug reports. They look like pretty much just like Tilt, but frozen in time. Here’s an example:

https://cloud.tilt.dev/snapshot/AYSV59gLhM3GVMuuR28=

A screenshot of a snapshot

Sharing Snapshots

If you are running a recent version of Tilt, you’ll see ‘Create Snapshot’ in the Tilt web UI:

share snapshot

Clicking brings up a modal.

snapshot modal

You’ll need to create and link a TiltCloud account if you haven’t already.

link to TiltCloud

Once you’ve done that, just click “Get Link” and you should be presented with a URL like: https://cloud.tilt.dev/snapshot/AYSV59gLhM3GVMuuR28=.

Click the button that appeared to see the snapshot. Or you can take the generated link, post it in a Slack channel, bug report or on Twitter so anyone will be able to what you were seeing in Tilt when you ran in to an issue.

Managing Snapshots

You can view and delete all of the snapshots associated with your account on TiltCloud. Go to https://cloud.tilt.dev/snapshots (this is also linked from the bottom of the “Share Snapshot” window). This will display a list of all of your snapshots, with the ability to delete old snapshots.

snapshots list

Learn More

Can’t wait to enhance your productivity with snapshots? If you have the latest version of Tilt installed you can get started today! For more information, check out the snapshots documentation.

Related

Keep up with Developments in Microservice Development
 
 
 
Keep up with Developments in Microservice Development

Already have a Dockerfile and a Kubernetes config?

You’ll be able to setup Tilt in no time and start getting things done. Check out the docs! 

Having trouble developing your servers in Kubernetes?