OCaml and Mirage now running on rumprun, including bare metal
In this technical retrospective (2015), @bcg1 shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE ★ 81 points
TOTAL DISCUSSIONS 10 comments
This will be extremely useful for running on very small devices (not all ARM boards have the virtualisation extensions that are needed to run Mirage unikernels as Xen VMs).
But it also looks like lots of progress has been made with cross-compilation support in the OCaml compiler too. At the moment, I compile my Xen unikernels on my Cubieboard, but it would be quicker to cross-compile to ARM on my laptop and just push the final VM image.
So rumprun allows you to run rump with the NetBSD lowlevel bits included getting a baremetal image where the highlevel parts target rump. Is that what this is and does that limit hardware support to NetBSD drivers and supported architectures?
Glad to see a hypervisor-generic way of doing unikernels is advancing. I never liked to tie in with Xen (or another hypervisor) when building an app as a unikernel.