What does it mean for the application developer to run an application in Kubernetes? What does it mean for the application developer to run an application in Kubernetes? kubernetes kubernetes

What does it mean for the application developer to run an application in Kubernetes?


No, the point of Kubernetes is that your app doesn't have to be 'aware' of it. (Mesos has more of a "apps need to know about us" philosophy.)

In Kubernetes, each pod just starts up and listens on a port. The app doesn't register it's presence, or even tell what version it is. When it needs to talk to another service, it uses DNS (or even a fixed service IP) to find LB for that downstream service.

Typically application developers don't prioritize infrastructure-related concerns when designing an application

In general, there are only two things to worry about:

1) Make your service stateless, so you push the state out to the edges (Databases and/or clients). This allows Kubernetes to 'scale' your app by running more copies. Stateful services are nearly impossible to scale.

2) Break up your app into multiple "microservices" so you can scale the "product view" function without scaling the "customer login" function.

3) Optional: Head towards 12factor apps.