techniek
Eén taak, één VM: hoe we CI-workloads isoleren
Waarom we CI-jobs niet in containers op een gedeelde kernel draaien, en wat dat ons kost.
{auteur} · {rol} · {datum} · {minuten} min leestijd
Een CI-runner voert willekeurige code uit vanuit uw repository met toegang tot uw geheimen. Containerisolatie op een gedeelde kernel is daarvoor geen voldoende grens, omdat een kernelkwetsbaarheid een kwetsbaarheid op het gebied van de tenantgrens is.
Wat wij doen
- Elke taak krijgt zijn eigen microVM met zijn eigen kernel
- De VM wordt vernietigd wanneer de taak eindigt – nooit hergebruikt, nooit gerecycled
- Schijven worden cryptografisch gewist in plaats van losgemaakt en teruggestuurd naar een pool
- Cacheobjecten worden per repository versleuteld, zodat een cachelezing geen tenants kan overschrijden
- Geen enkele operator heeft shell-toegang tot een actieve taak-VM
Wat het kost
Een microVM start langzamer op dan een container. We besteden veel technische inspanning aan warme zwembaden en het herstellen van momentopnamen om dat terug te brengen naar ongeveer drie seconden. Containers zouden gemakkelijker zijn en we denken dat de handel niet dichtbij is.
Je volgende build kan twee keer zo snel zijn, voor de halve prijs
Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.