Kubernetes has made it very easy to deploy applications to the cloud at a higher scale than ever, but the development practices have not evolved at the same speed as application deployment patterns.
Today, most developers try to either run parts of the infrastructure locally or just test these integrations directly in the cluster via CI jobs, or the docker build/redeploy cycle. It works, but this workflow is painful and incredibly slow.
okteto accelerates the development workflow of Kubernetes applications. You write your code locally and
okteto detects the changes and instantly updates your Kubernetes applications.
Okteto allows you to develop inside a container. When you run
okteto up your Kubernetes deployment is replaced by a development container that contains your development tools (e.g. maven and jdk, or npm, python, go compiler, debuggers, etc). This development container can be any docker image. The development container inherits the same secrets, configmaps, volumes or any other configuration value of the original Kubernetes deployment.
In addition to that,
okteto up will:
localhostor connect a remote debugger.
All of this (and more) can be configured via a simple YAML manifest.
The end result is that the remote cluster is seen by your IDE and tools as a local filesystem/environment. You keep writing your code on your local IDE and as soon as you save a file, the change goes to the development container, and your application instantly updates (taking advantage of any hot-reload mechanism you already have). This whole process happens in an instant. No docker images need to be created and no Kubernetes manifests need to be applied to the cluster.
okteto has several advantages when compared to more traditional development approaches:
oktetodecouples deployment from development. You can deploy your application with kubectl, Helm, a serverless framework, or even a CI pipeline and use
okteto upto develop it. This is especially useful for cloud-native applications where deployment pipelines are not trivial.
oktetoworks with any Kubernetes cluster, local or remote.
oktetois also available for macOS, Linux, and Windows.
All you need to get started is to install the Okteto CLI and have access to a Kubernetes cluster.
Okteto CLI works with any Kubernetes cluster. If it's your first time using it, we'd recommend you try it with the Okteto Platform for a complete holistic developer experience. If you want to try it out with any other K8s cluster, you can also check out this article as a guide.
We created a few guides to help you get started with
okteto and your favorite programming language.
Okteto is released into three channels: stable, beta, and dev. By default when okteto is installed the stable channel is used. If you need to access features not yet widely available you can install from the beta or dev channel. More info in the release documentation.
Follow @OktetoHQ on Twitter for important announcements.
We ❤️ contributions big or small. See our guide on how to get started.