Getting Started on Okteto Cloud with Python

Okteto Cloud gives you free access to sandboxed Kubernetes namespaces, fully integrated with remote development capabilities. Develop your Kubernetes applications in Okteto Cloud and forget about slow and tedious local development forever.

This tutorial will show you how to create an account in Okteto Cloud and how to develop a Python sample application.

Prerequisites

Step 1: Deploy the Python Sample App

To get a local version of the sample application that you can then deploy to Okteto Cloud, execute the following commands in your local terminal:

1
2
$ git clone https://github.com/okteto/samples
$ cd samples/python

You now have a functioning git repository that contains a sample python application. In the manifest/ directory you also have the Kubernetes manifests needed to deploy the application.

Deploy the application by executing the command below:

1
$ kubectl apply -f manifests
1
2
deployment.apps/vote created
service/vote created

Your application is now ready! Open your browser and go the URL of the application. You can get the URL by logging into Okteto Cloud and clicking on the application’s endpoint.

Did you notice that you are accessing your application through an SSL endpoint? This is because Okteto Cloud will automatically create them for you when you deploy your application. Cool no 😎?

Step 2: Start your remote development environment

You can also use Okteto Cloud to develop your applications directly in Kubernetes, avoiding dependencies on local installations and developing in a much more production-like environment. We are going to use the dev version of the Go Sample Application we just deployed as our remote development environment. To do that, run the following command:

1
$ okteto up
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
✓  Development environment activated
✓ Files synchronized
Namespace: cindy
Name: vote
Forward: 8080 -> 8080

* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 245-101-759

The okteto up command starts a remote development environment which means:

  • Update your application container to automatically start the sample application in hot reload mode.
  • A file synchronization service is created to keep your changes up-to-date between your local filesystem and your application pods.

Open your browser and go to the URL of the application to test it.

Step 3: Develop your application in Okteto Cloud

Now things get more exciting. Open app.py in your favorite local IDE and modify the getOptions function with the following code, and save your file:

1
2
3
4
def getOptions():
optionA = 'Otters'
optionB = 'Dogs'
return optionA, optionB

Go back to the terminal and notice that flask already detected the code changes and reloaded your application.

1
2
3
4
5
...
* Detected change in '/src/app.py', reloading
* Restarting with stat
* Debugger is active!
* Debugger PIN: 778-756-428

Go back to the browser, and reload the page. Notice how your changes are instantly applied. No commit, build or push required 😎!

Next steps

Congratulations, you just developed your first Kubernetes application in Okteto Cloud 🚀.

Okteto lets you develop your application while taking advantage of other services running in Kubernetes. This way you can:

  • Reduce local setup and eliminate integration issues by developing the same way your application runs in production
  • Test your application as fast as you type code, without typing either docker or kubectl in your inner loop cycle
  • No more CPU cycles wasted in your machine. Hardware and network just limited by the power of the cloud

Okteto uses the okteto.yml file to determine the name of your development environment, the docker image to use and where to upload your code. Check the Okteto manifest docs to customize your development environments with your own dev tools, images, and dependencies to adapt Okteto to your own application.

Got questions? Join the conversation in our Kubernetes Slack channel! If you don’t have a Kubernetes slack account yet, sign up here. We’d love to hear from you.