Your service runs on a managed runtime whose host and execution environment the provider patches — which software do you still patch?
answer
- the provider patched what it installed
- your artifact is the part it did not install
- code, bundled libraries, whatever you baked in
- nothing reports it — the platform looks healthy
- rebuild and redeploy is the only motion
basics
~20 sEverything you shipped: your own code, the third-party libraries bundled with it, and anything baked into the image or artifact you deployed. The provider patches what it installed, never what you put on top of it.
solid answer
~40 sA managed runtime patches the layers it installed — the host operating system and the execution environment your process runs inside. It does not reach into your artifact. Three things stay yours: your **own code**, the **third-party libraries your build pulled in and shipped**, and any **binaries or system packages you baked into the image** you handed over. The gap is easy to miss because nothing fails: the platform reports healthy, the provider's patch notes are current, and the vulnerable component sits inside a deployment artifact that nobody re-examines after it is running. Closing it means rebuilding and redeploying the artifact, which on a managed runtime is the only patching motion available to you.
go deeper
Remember the split: the provider patches the host and the execution environment, you patch what you deployed into it — your code and the libraries shipped alongside it.
Explain why the gap is silent: the provider's layers really are current, health checks say nothing about contents, and the artifact has no staleness event. Then say why rebuild is the only remedy.
Demonstrate the operational consequence: release cadence is patch latency, a pinned rebuild alone ships nothing new, and a long-lived deployment can be months behind with no platform signal.
Set the standard: a maximum artifact age per service class, who owns forcing a rebuild when nobody has a feature to ship, and how that duty is evidenced rather than assumed.
## What the tier actually covers A managed runtime is a hand-over of two layers. The provider takes the host operating system, which you cannot log into, and the execution environment your process runs inside, including its security fixes. In exchange it takes away host access. What it does **not** take is the thing you deployed, because that is the only part the provider did not install. ## The three layers still above the line - **Your own application code.** Obvious, and rarely the one that is missed. - **The third-party libraries your build resolved and bundled.** These entered the artifact at build time. To the platform they are indistinguishable from your code, because they are your code as far as the deployment boundary is concerned. - **Anything else baked into the artifact.** If you handed over an image rather than source, whatever system packages, tools and utilities you layered into it came from you. A provider patching its own base layers does not reach into the layers you added on top. ## Why the gap is invisible This is the shape of the failure that makes the question worth asking. Nothing signals it: 1. The provider's status and patch notes are current, because the layers it owns genuinely are patched. 2. The platform reports the deployment healthy, because health checks test whether the service responds, not what is inside it. 3. The artifact was built once and has been running unchanged ever since, so the moment it went stale has no event attached to it. 4. The team's mental model says "managed", and "managed" gets read as "somebody is watching all of it". A long-lived deployment on a managed runtime can therefore be simultaneously fully patched below the line and months behind above it, with no signal anywhere in the platform. ## What you do about it The only patching motion available above the line is **rebuild and redeploy**. There is no host to log into, no package manager to run against a live instance, and on many managed runtimes the filesystem the process sees is not durable anyway. That has a design consequence worth saying out loud: your deployment pipeline is the patch mechanism for everything above the line. If a rebuild is slow, manual or rare, then your patch latency for your own dependencies is slow, manual and rare, whatever the provider's cycle looks like. Two practical corollaries: - **Deployment frequency and patch latency are the same number.** A service redeployed weekly picks up a dependency fix in at most a week. A service that has not been rebuilt in a year is a year behind, on a platform advertised as managed. - **Rebuilding without re-resolving changes nothing.** If the build reproduces the exact same pinned set every time, a redeploy ships the same vulnerable component again. Something has to move the pins for the rebuild to carry a fix. ## Where this sits in the responsibility model It is the clearest illustration of the general rule: **the provider patches what it installed, and you patch what you shipped.** The tier changes which layers fall on which side of that sentence; it never changes the sentence. On a rented machine the guest system's packages are yours because you were handed the guest. On a managed runtime the guest is gone from your side of the line, but the artifact you supplied took its place. It also explains why "we use a managed runtime" is not an answer to "how do you handle vulnerable components". The two statements are about different sides of the line, and treating one as covering the other is the specific mistake this question exists to catch. ## How to answer it Name the two layers the provider took, name the three that remain, and then say the thing that makes it a real answer rather than a recitation: the failure is silent, and the only remedy is a rebuild, which makes your release cadence the real patch cadence for everything you shipped.
- Why does a deployment on a managed runtime have no in-place patching option for its own dependencies?There is no host to log into and, on many managed runtimes, the filesystem the process sees is not durable across restarts. The unit the provider accepts is the artifact, so changing what runs means producing a new artifact and deploying it. Rebuild is the patch mechanism.
- A team rebuilds and redeploys weekly but still ships the same vulnerable library — how?The build is fully pinned and nothing moves the pins, so every rebuild reproduces the same resolved set. A redeploy only carries a fix if the resolution step is allowed to pick up the newer version. Cadence without re-resolution changes the timestamp, not the contents.
saying these in an interview costs you the question
- Assumes the provider patches libraries bundled inside the deployed artifact
- Believes a healthy deployment means nothing inside it is outdated
- Thinks something in the platform will warn about a stale artifact
- Expects to patch in place on a runtime with no host access
- Treats a fully pinned rebuild as automatically picking up fixes