Skip to main content
Version: v3

Introduction

What is odo?

odo is a fast, iterative and straightforward CLI tool for developers who write, build, and deploy applications on Kubernetes.

We abstract the complex concepts of Kubernetes so you can focus on one thing: code.

Choose your favourite framework and odo will deploy it fast and often to your container orchestrator cluster.

odo is focused on inner loop development as well as tooling that would help users transition to the outer loop.

Brendan Burns, one of the co-founders of Kubernetes, said in the book Kubernetes Patterns:

It (Kubernetes) is the foundation on which applications will be built, and it provides a large library of APIs and tools for building these applications, but it does little to provide the application or container developer with any hints or guidance for how these various pieces can be combined into a complete, reliable system that satisfies their business needs and goals.

odo satisfies that need by making Kubernetes development super easy for application developers and cloud engineers.

What is "inner loop" and "outer loop"?

The inner loop consists of local coding, building, running, and testing the application -- all activities that you, as a developer, can control.

The outer loop consists of the larger team processes that your code flows through on its way to the cluster: code reviews, integration tests, security and compliance, and so on.

The inner loop could happen mostly on your laptop. The outer loop happens on shared servers and runs in containers, and is often automated with continuous integration/continuous delivery (CI/CD) pipelines.

Usually, a code commit to source control is the transition point between the inner and outer loops.

(Source)

Why should I use odo?

You should use odo if:

  • You love frameworks such as Node.js, Spring Boot or dotNet
  • Your application is intended to run in a Kubernetes-like infrastructure
  • You don't want to spend time fighting with DevOps and learning Kubernetes in order to deploy to your enterprise infrastructure

If you are an application developer wishing to deploy to Kubernetes easily, then odo is for you.

How is odo different from kubectl and oc?

Both kubectl and oc require deep understanding of Kubernetes and OpenShift concepts.

odo is different as it focuses on application developers and cloud engineers. Both kubectl and oc are DevOps oriented tools and help in deploying applications to and maintaining a Kubernetes cluster provided you know Kubernetes well.

odo is not meant to:

  • Maintain a production Kubernetes cluster
  • Perform sysadmin tasks against a Kubernetes cluster