Skip to main content
Version: v2

Concepts of odo

odo abstracts Kubernetes concepts into a developer friendly terminology; in this document, we will take a look at the following terminologies:


An application in odo is a classic application developed with a cloud-native approach that is used to perform a particular task.

Examples of applications: Online Video Streaming, Hotel Reservation System, Online Shopping.


In the cloud-native architecture, an application is a collection of small, independent, and loosely coupled components; a odo component is one of these components.

Examples of components: API Backend, Web Frontend, Payment Backend.


A project helps achieve multi-tenancy: several applications can be run in the same cluster by different teams in different projects.


Context is the directory on the system that contains the source code, tests, libraries and odo specific config files for a single component.


A URL exposes a component to be accessed from outside the cluster.


Storage is the persistent storage in the cluster: it persists the data across restarts and any rebuilds of a component.


Service is an external application that a component can connect to or depend on to gain a additional functionality.

Example of services: PostgreSQL, MySQL, Redis, RabbitMQ.


Devfile is a portable YAML file containing the definition of a component and its related URLs, storages and services. Visit for more information on devfiles.