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 PHP sample application.
Get a local version of the PHP Sample App by executing the following commands:
git clone https://github.com/okteto/php-getting-started
k8s.yml file contains the Kubernetes manifests of the PHP Sample App. Deploy a dev version of the application by executing:
kubectl apply -f k8s.yml
deployment.apps "hello-world" created
Open your browser and go to 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 HTTPS endpoint? This is because Okteto Cloud will automatically create them for you when you deploy your application. Cool no 😎?
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 PHP Sample Application we just deployed as our remote development environment. To do that, run the following command:
✓ Development environment activated
okteto up command starts a remote development environment, which means:
okteto/php:7. This image contains the required dev tools to build, test and run a PHP application.
All of this (and more) can be customized via the
okteto.ymlmanifest file. You can also use the file
.stignoreto skip files from file synchronization). This is useful to avoid synchronizing binaries, build artifacts, git metadata or the
To run the application, execute the command below in the remote shell:
php -S 0.0.0.0:8080
[Thu Dec 19 19:08:49 2019] PHP 7.4.1 Development Server (http://0.0.0.0:8080) started
index.php file in your favorite local IDE and modify the response message on line 2 to be Hello world from the cluster!. Save your changes.
Go back to the browser, and reload the page. Your code changes were instantly applied. No commit, build or push required 😎!
Okteto enables you to debug your applications directly from your favorite IDE. Let’s take a look at how that works with PHPStorm, one of the most popular IDEs for PHP development.
If you haven’t already, fire up PHP Storm and load this project there. Once the project is loaded, open
index.php and set a breakpoint in
line 2. click on the
Start Listen PHP Debug Connections button on the PhpStorm toolbar.
Go back to your browser and reload the page. The execution will automatically halt at the breakpoint.
If this is the first time you debug this application, the IDE will ask you to confirm the source mapping configuration. Verify the values and click
At this point, you are able to inspect the request object, the current values of everything, , the contents of
$_SERVER variable, etc… Just as you would do if you were debugging locally.
The development environment we are using in this sample is configured to automatically enable Xdebug, remote debugging and to set a reverse tunnel on port 9000. This allows you to take advantage of PHPStorm’s Zero Configuration Debugging to make debugging extremely simple.
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
kubectlin 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.