<p>I am looking for a (more or less scientific) document/presentation that explains why the developers of the &quot;Kubernbetes language&quot; made the choice to fragment an application definition (for instance) in multiple yaml files instead of writing a single yaml file with all the details of the application deployment (all deployments, volumes, ...)?</p>
<p>I imagine that this has something to do with reusability, maintainability and readability but it would be nice to have a more structured argumentation (I think of a conference paper or presentation in a conference such as kubcon or dockercon)</p>
<p>Thanks,</p>
<p>Abdelghani</p>

<p>First things first, Kubernetes does not have its own language, most used language is YAML, but you could work with JSON, or even XML if this were supported. YAML is more human readable and portable across several programming languages.
Kubernetes is complex because we want to do complex things. It simply makes things more manageable if we split the deployment in several YAML files, as programmers use different files for different purposes. And, when a modification occurs you only kubectl apply a 'tiny' file.
Why they actually chose YAML and separated files was influenced by Google's Borg system, which Kubernetes grabbed a lot of concepts from.</p>
