Why Your Container Isn't Portable

Session Category Other Open Source Sessions Audience Intermediate

Containers are supposed to solve "works on my machine."

They often do, right up until you move the application to a different environment.

A workload can have a Dockerfile, production container images, mature Helm charts, and years of Kubernetes experience behind it, and still require real engineering work before it will run somewhere new. The problem is not usually the container itself. It is the assumptions hidden around it.

Applications make assumptions about networking, identity, certificates, storage, CPU architecture, filesystem behavior, outbound connectivity, cloud services, and the platform they were originally built to run on. Helm charts can encode even more of those assumptions. Most of them stay invisible until the application leaves the environment where they were originally satisfied.

This talk explores the difference between a containerized application and a portable one, using patterns drawn from real application onboarding and platform integration work.

A major focus will be the distinction between configuration effort and engineering effort. Changing an endpoint, providing a secret, or supplying a certificate is configuration. Changing an application because it assumes internet access at startup, depends on a specific identity model, requires privileged execution, or cannot support a different trust model is engineering.

Attendees will learn how to recognize these portability smells earlier, ask better questions before migration work begins, and evaluate whether a target environment can be expressed through configuration the application already supports, or whether the application itself needs to change.

Containers make environments more reproducible.

Portability is something the application still has to earn.

About the Speaker

Profile picture for user mikeconrad

Mike Conrad

Platform Engineer at Defense Unicorns

Chattanooga, TN

I’m a Platform Engineer at Defense Unicorns, working primarily with software vendors that need to get their applications into more environments without rebuilding the way they develop and deliver software for each one.

A lot of my work sits at the intersection of Kubernetes, application architecture, and customer delivery. I work with engineering teams to understand how their applications are built, identify what needs to change to run successfully on a modern Kubernetes platform, and help turn that into something that can be deployed and operated consistently across different environments.

That often means containerizing applications, building and reviewing Helm charts, working through networking, storage, identity, security, and observability requirements, and troubleshooting the less obvious assumptions applications make about the infrastructure around them.

I’m a Kubestronaut and Microsoft Certified Azure Solutions Architect, with experience designing and operating production systems across Azure and AWS. My background is heavily rooted in Kubernetes, containers, GitOps, infrastructure automation, and platform engineering.

What I enjoy most is the practical side of platform engineering: working with application teams, vendors, and customers to bridge the gap between “it runs here” and “it can run reliably wherever it needs to.”

I also enjoy sharing what I learn through talks, videos, technical discussions, and hands-on examples.

Platinum Sponsors

Gold Sponsors

Bronze Sponsors

In Kind Sponsors