liveBook · Manning

Language flexibility

As explained in Kubernetes for Developers

Language flexibility is the ability to deploy applications written in different programming languages and using different dependency versions on the same platform.

Language flexibility lets applications using different programming languages, library versions, operating systems, and package managers run on one container platform. Containers remove dependence on fixed deployment-system requirements, so teams can update packages without being trapped by outdated platform dependencies. section 1.1.1

Containers provide flexibility by isolating application environments:

  • Run different versions of Java or other dependencies without shared libraries causing configuration conflicts. section 1.1.1
  • Use different base operating systems and package managers, such as Ubuntu with APT or CentOS with RPM. section 1.1.1
  • Combine services maintained by separate teams, even when those services use different languages or dependencies. section 1.1.1

Mixed application stack

A single host can run several containers: one application may use Java and one dependency version, while another uses a different language, base OS, and package manager. Their isolated environments prevent one configuration from interfering with another. section 1.1.1

Figure 1.2 Four containers with different languages sharing a host
01-02

Compare how containers using different languages share one host while keeping their application environments separate. section 1.1.1

How Kubernetes for Developers covers it

How deep it goes
Explains dependency and operating-system isolation with practical examples, but stops short of container implementation details.
Examples
Uses Java versions, Ubuntu with APT, CentOS with RPM, and multiple language-specific containers sharing a host.
What you can do after
Apply it via containers to assemble services with independent languages, dependencies, operating systems, and package managers.
How it connects
Connects language flexibility to containers, dependency isolation, base operating systems, package managers, and microservices.

This explainer was generated by Manning's knowledge graph from the text of Kubernetes for Developers. The section links point to the parts of the book it draws on.