odo abstracts Kubernetes concepts into a developer friendly terminology; in this document, we will take a look at these 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; an 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.
A 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.
A storage is a persistent storage in the cluster: it persists the data across restarts and rebuilds of a component.
A service is an external application that a component can connect to or depend on to gain an additional functionality.
Example of services: MySQL, Redis.
A devfile is a portable YAML file containing the definition of a component and its related URLs, storages and services. See Devfile to know more about devfile.