SortaSecret: a Rust and DevOps example
SortaSecret.com is a simple replacement for the now defunct Google Mailhide. It was implemented as a way to fix some broken functionality on websites I run. The functionality is just simple enough to be easy to explain and talk about, and just complex enough to demonstrate some aspects of cloud development and deployment.
SortaSecret is written in Rust with actix-web. It is deployed in the Amazon cloud using Gitlab CI, Docker, Kubernetes, and FP Complete's standard set of monitoring, alerting, and log aggregation tools.
As stated, this isn't a particularly complicated service. But it's good enough to demonstrate best practices and teach some skills. This page is a centralized explanation of what this service is for other blog posts to link to, and a collection of all related blog posts.
Rust teaching topics include
- Command line parsing with
- Testing with QuickCheck
- Simple web server with
- The double-clone trick
- Partial function application, or why
- Writing an async handler in
- Ownership and
- Where to store secrets
- Local machine storage, or lack thereof
- Building, testing, and Dockerizing
- Deploying to Kubernetes
- Load balancing and SSL