Deploy Day Flashcards
Sourcegraph
the code search tool we use at Lyft
lyftvenv
a command line tool that uses virtualenv (venv) to create an isolated Python environment for each project on your laptop. It allows you to run tests for your project.
Tilt
an open source tool used to build and orchestrate dependencies so you can run your services locally. It will start a browser UI dashboard that runs applications locally at Port 10350.
Submit Queue (SQ)
a set of GitHub extensions designed to improve development efficiency. It takes commands specifically through comments on pull request. The comment must be on the main pull request page i.e. https://github.com/lyft/favoriteemoji/pull/. Note that commands are not read from commit comments or inline comments on PR diffs.
Pre-Commit
manages hooks that call linters. Various errors it might catch include debug statements, extra spaces at the end of a line, and missing end-of-file returns. Pre-commit activates the linters when you commit your files to git with $ git commit or when you run $ pre-commit run –all-files.
Linters or Linting
the automated checking of your source code for programmatic and stylistic errors
Pytest
a Python unit testing framework. Generally you can run $ pytest tests/ to run all tests in the project
Runtime
stores configurations which get deployed to every host in the fleet. It contains settings and feature flags which are checked at runtime, i.e. while the app is running. Caution: Runtime causes some of the most expensive outages and incidents because it can change the behavior of the application without the code change itself.
DeployView
uses Autodeployer on the backend to safely manage and automate our deployments. This means we don’t need to manually monitor our deploys through the entire deploying process.
Acceptance Testing Framework
runs tests for you behind the scenes when your deployment rolls past staging and will block your deployment if the acceptance tests fail. Blocked deploys will cause the system to generate alerts.
Grafana
used as the primary visual tool for monitoring services’ health. Data can be viewed in staging or production mode. There are lots of great dashboards that can flesh out your overall monitoring strategy, or even allow you to debug an incident. You can monitor any sudden changes in the number of calls, response times, etc. in these graphs. There are four types of dashboards: default service dashboards, managed dashboards, deploy dashboards, and code health dashboards.
Kibana
tool for exploring and querying logs produced by a service. You can use it to look at the error logs to make sure there’s nothing wrong. Kibana is strongly typed, meaning the value types passed in the kv argument must be consistent for each unique key.
Lighthouse
cloud monitoring tool where you can create and monitor charts and alarms
Jenkins
an open source implementation of a “Continuous Integration” server written in Java that can be used as a self-hosted option automating the build cycle for any project.