3 ms·
Hello HN! Author of Blueboat here. Blueboat was originally named rusty-workers and used the Isolate model for workload isolation, similar to Cloudflare Workers
by losfair 5y ago
Hello HN! Author of Blueboat here.
Blueboat was originally named rusty-workers and used the Isolate model for workload isolation, similar to Cloudflare Workers. Later I changed to use process-based isolation because it seems that a shared-process multi-tenant system is overly complex for self-hosting users like myself to operate (automatically applying security patches within hours, sophisticated scheduling strategy to prevent ill-behaving applications from crashing the process, auditing each dependency for memory safety issues, etc.).
Blueboat is not yet optimized for global-scale operation but it is definitely the goal. Things not implemented include: custom TLS termination (which enables 0ms cold start), HTTP routing, and a single dashboard to operate the entire system.
Currently, the user needs to set up their own infrastructure for deploying Blueboat globally:
- Cross-region replicated S3-compatible storage for distributing code and config.
- Kafka instance at each region for log collection and task scheduling.
- A way to route traffic to a nearby location (usually DNS / Anycast).
- Log aggregator (I use ClickHouse for this).
- mathiasrw 5y agoThis this is awesome. Thank you for creating Blueboat. Have you had any thoughts about how much rebuild it would take to support Deno javascript?
- dare_falcon 5y agoThere are a metric tonne of use cases for enterprises to deploy their own serverless environments under their own control vs a cloud provider, for the very reason that only a fraction of compute is being processed at the edge vs VPC. Congrats on your milestone.
- mnutt 5y agoFirst off, this is really cool. I have been hoping for something like this for a while. Given that the Isolate model has already been developed, have you considered a hybrid isolate/process model, where workers created by a single user could be packed into a process via Isolates, but the process boundary protected different users from each other?