---
name: codeengine-learning-path
title: Learning paths for Code Engine
description: Find your path to accomplish what you want with IBM Cloud&reg; Code Engine.
last-updated: 2026-07-08
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/codeengine?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Learning paths for Code Engine
{: #learning-paths}

Find your path to accomplish what you want with IBM Cloud&reg; Code Engine.
{: shortdesc}

## Plan your deployments
{: #lp-plan-deployments}

Before you start, [learn about Code Engine and some common terms](https://cloud.ibm.com/docs/codeengine?topic=codeengine-about&format=markdown).

Then, decide whether you want to deploy an application, create a job, or run a function by reading [planning for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-plan-codeengine&format=markdown).

You can even try out our [application tutorial](https://cloud.ibm.com/docs/codeengine?topic=codeengine-deploy-app-tutorial&format=markdown), our [job tutorial](https://cloud.ibm.com/docs/codeengine?topic=codeengine-run-job-tutorial&format=markdown), or our [function tutorial](https://cloud.ibm.com/docs/codeengine?topic=codeengine-fun-tutorial&format=markdown).

## Install the tools
{: #lp-install-tools}

If you plan to use the CLI, you must [install it](https://cloud.ibm.com/docs/codeengine?topic=codeengine-install-cli&format=markdown). As you work with your Code Engine workloads, refer to the [CLI command reference](https://cloud.ibm.com/docs/codeengine?topic=codeengine-cli&format=markdown) and track CLI version updates with the [CLI change log](https://cloud.ibm.com/docs/codeengine?topic=codeengine-cli_versions&format=markdown). You can also [access the IBM Cloud Shell](https://cloud.ibm.com/docs/codeengine?topic=codeengine-install-cli&format=markdown#cloud-shell) in your web browser.

If you do not want to use the CLI, you can [work from the console](https://cloud.ibm.com/codeengine/overview){: external}.

## Create your first project
{: #lp-set-environment}

To get started with Code Engine, [create a project](https://cloud.ibm.com/docs/codeengine?topic=codeengine-manage-project&format=markdown) to contain your entities. You can also [set access policies](https://cloud.ibm.com/docs/codeengine?topic=codeengine-iam&format=markdown) for your project.

Need help? Check out [troubleshooting tips for projects](https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-project&format=markdown). If you need more help, try [getting support](https://cloud.ibm.com/docs/codeengine?topic=codeengine-get-support&format=markdown).

## Develop your application, job, or function
{: #lp-develop-app-job}

Code Engine deploys applications and runs jobs that are bundled into container images. If you do not have a container image, you can build and deploy your code from within Code Engine.

Code Engine runs functions as code bundles. If you do not have a code bundle, you can build and run your function from within Code Engine.

### Do you have source code or a container image for your application or job?
{: #lp-develop-app-job-source-code-image}

I have a container image.

- If your image is stored in a [container registry](https://cloud.ibm.com/docs/codeengine?topic=codeengine-add-registry&format=markdown) that you have access to, then you are ready to deploy.
- If your image is in a private registry, either in a different Container Registry account or in private registry such as Docker Hub, you must [set up access](https://cloud.ibm.com/docs/codeengine?topic=codeengine-add-registry&format=markdown).

Then, you are ready to [deploy your application](#lp-deploy-app), [run your job](#lp-run-job), or [run your function](#lp-run-fun).

I have source code.

- Find out what advantages are available when you [build your image with Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-faqs&format=markdown#dockerbld-cebuild).
- [Plan for your build](https://cloud.ibm.com/docs/codeengine?topic=codeengine-plan-build&format=markdown).
- You can also find [tips for creating a Dockerfile](https://cloud.ibm.com/docs/codeengine?topic=codeengine-dockerfile&format=markdown).
- If your source code is in a private repository, [set up access](https://cloud.ibm.com/docs/codeengine?topic=codeengine-code-repositories&format=markdown).
- Optionally, set up an IBM Cloud Container Registry namespace to hold your built image. If the Container Registry namespace is in a different account, [set up access](https://cloud.ibm.com/docs/codeengine?topic=codeengine-add-registry&format=markdown). If you do not set up access to your IBM Cloud Container Registry namespace, access is created automatically for you.

- [Build your source code](https://cloud.ibm.com/docs/codeengine?topic=codeengine-plan-build&format=markdown#build-method).

Need help? Check out [troubleshooting tips for builds](https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build&format=markdown). If you need more help, try [getting support](https://cloud.ibm.com/docs/codeengine?topic=codeengine-get-support&format=markdown).

## Deploy your application
{: #lp-deploy-app}

To get started, read [plan a container image for Code Engine applications](https://cloud.ibm.com/docs/codeengine?topic=codeengine-application-workloads&format=markdown#deploy-app-containerimage) and [Application workloads](https://cloud.ibm.com/docs/codeengine?topic=codeengine-ceapplications&format=markdown).

### How does your application scale?
{: #lp-deploy-app-how-app-scale}

 See [Configuring application scaling](https://cloud.ibm.com/docs/codeengine?topic=codeengine-app-scale&format=markdown).

### Do yo want to customize your application?
{: #lp-deploy-app-customize-app}

- Does your application require a project endpoint? See [Deploying your app with a project endpoint](https://cloud.ibm.com/docs/codeengine?topic=codeengine-application-workloads&format=markdown#app-endpoint-projectonly).
- Does your application require a private endpoint? See [Deploying your app with a private endpoint](https://cloud.ibm.com/docs/codeengine?topic=codeengine-application-workloads&format=markdown#app-endpoint-private).
- How much CPU and memory does your application need? See [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo&format=markdown).
- Do you have commands and arguments to add to your application? See [Deploying your app with commands and arguments](https://cloud.ibm.com/docs/codeengine?topic=codeengine-application-workloads&format=markdown#deploy-app-cmd-args).
- Want to define environment variables for your application? Find out how with [Working with environment variables](https://cloud.ibm.com/docs/codeengine?topic=codeengine-envvar&format=markdown).
- Does your application take advantage of configmaps or secrets? Take a look at [Working with secrets](https://cloud.ibm.com/docs/codeengine?topic=codeengine-secret&format=markdown) or [Working with configmaps](https://cloud.ibm.com/docs/codeengine?topic=codeengine-configmap&format=markdown).
- Do you want to deploy your app in a toolchain? See [Integrating Code Engine workloads with Continuous Delivery](https://cloud.ibm.com/docs/codeengine?topic=codeengine-toolchain-ce&format=markdown).
- Do you want to use Terraform to deploy your app? Find out more with [Setting up Terraform for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-terraform-setup-ce&format=markdown).

### Are you ready to deploy?
{: #lp-deploy-app-ready-to-deploy}

- [Deploy application workloads from a public repository](https://cloud.ibm.com/docs/codeengine?topic=codeengine-deploy-app&format=markdown).
- [Deploy application workloads from images in Container Registry](https://cloud.ibm.com/docs/codeengine?topic=codeengine-deploy-app-crimage&format=markdown).
- [Deploy application workloads from images in a private repository](https://cloud.ibm.com/docs/codeengine?topic=codeengine-deploy-app-private&format=markdown).

Make your [**app highly available**](https://cloud.ibm.com/docs/codeengine?topic=codeengine-deploy-multiple-regions&format=markdown) by deploying it in multiple regions.

### Do you want to add more customizations?
{: #lp-deploy-app-add-customizations}

- Want to integrate with other IBM Cloud services? See [Integrating IBM Cloud services with service binding](https://cloud.ibm.com/docs/codeengine?topic=codeengine-service-binding&format=markdown).
- Want to connect an event producer to your application? See [Subscribing to event producers](https://cloud.ibm.com/docs/codeengine?topic=codeengine-subscribing-events&format=markdown).

### Are you ready to access your application?
{: #lp-deploy-app-ready-to-access-app}

- [Access the application](https://cloud.ibm.com/docs/codeengine?topic=codeengine-access-service&format=markdown).
- You can also [create a custom domain mapping](https://cloud.ibm.com/docs/codeengine?topic=codeengine-domain-mappings&format=markdown) for your app.

Each **update of an application** configuration property creates a new revision of the application.
- Find information to [update your app](https://cloud.ibm.com/docs/codeengine?topic=codeengine-update-app&format=markdown).

You can use Iter8 to [validate your application code and latency](https://cloud.ibm.com/docs/codeengine?topic=codeengine-slovalidationtut&format=markdown) and then determine if your revision is ready to use or if you must roll back to a more stable version.

Need help? Check out [troubleshooting tips for applications](https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-apps&format=markdown). If you need more help, try [getting support](https://cloud.ibm.com/docs/codeengine?topic=codeengine-get-support&format=markdown).

## Run your job
{: #lp-run-job}

To get started, read [plan a container image for Code Engine jobs](https://cloud.ibm.com/docs/codeengine?topic=codeengine-job-plan&format=markdown#job-containerimage) and [Batch job workloads](https://cloud.ibm.com/docs/codeengine?topic=codeengine-cebatchjobs&format=markdown).

### Do you want to create a job definition?
{: #lp-run-job-create-job-definition}

By creating a job definition, you can more easily run your job multiple times based on your configuration.

- [Create a job from a public repository](https://cloud.ibm.com/docs/codeengine?topic=codeengine-create-job&format=markdown).
- [Create a job from images in Container Registry](https://cloud.ibm.com/docs/codeengine?topic=codeengine-create-job-crimage&format=markdown).
- [Create a job from images in a private repository](https://cloud.ibm.com/docs/codeengine?topic=codeengine-create-job-private&format=markdown).

### Do you want to run a job without first creating a definition?
{: #lp-run-job_run-job-without-definition}

With the CLI, you can submit a job run without first creating a job configuration. You can specify the same configuration options on the `jobrun submit` and `jobrun resubmit` commands that are available with the `job create` command.

- [Run a job with the CLI without first creating a job configuration](https://cloud.ibm.com/docs/codeengine?topic=codeengine-run-job&format=markdown#run-job-cli-withoutjobconfig).

### Do you want to customize your job?
{: #lp-run-job-customize-job}

- How much CPU and memory does your job need? See [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo&format=markdown).
- Do you have commands and arguments to add to your job? See [Deploying your application with commands and arguments](https://cloud.ibm.com/docs/codeengine?topic=codeengine-application-workloads&format=markdown#deploy-app-cmd-args).
- Want to define environment variables for your job? Find out how with [Working with environment variables](https://cloud.ibm.com/docs/codeengine?topic=codeengine-envvar&format=markdown).
- Does your job take advantage of configmaps or secrets? Take a look at [Working with secrets](https://cloud.ibm.com/docs/codeengine?topic=codeengine-secret&format=markdown) or [Working with configmaps](https://cloud.ibm.com/docs/codeengine?topic=codeengine-configmap&format=markdown).
- Do you want to deploy your app in a toolchain? See [Integrating Code Engine workloads with Continuous Delivery](https://cloud.ibm.com/docs/codeengine?topic=codeengine-toolchain-ce&format=markdown).
- Do you want to use Terraform to deploy your app? Find out more with [Setting up Terraform for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-terraform-setup-ce&format=markdown).

Code Engine supports **Lithops** for running jobs. See [running jobs with Lithops framework](https://cloud.ibm.com/docs/codeengine?topic=codeengine-lithops&format=markdown).

### Are you ready to create and run your job?
{: #lp-run-job_ready-to-create-run-job}

You can run your job directly or create a job definition and run your job based on that configuration.

- To run a job directly, see [Run a job with the CLI without first creating a job configuration](https://cloud.ibm.com/docs/codeengine?topic=codeengine-run-job&format=markdown#run-job-cli-withoutjobconfig).
- To run a job from a job definition, see [run a job](https://cloud.ibm.com/docs/codeengine?topic=codeengine-run-job&format=markdown).

### Do you want to add more customizations?
{: #lp-run-job-add-customizations}

- Want to integrate with other IBM Cloud services? See [Integrating IBM Cloud services with service binding](https://cloud.ibm.com/docs/codeengine?topic=codeengine-service-binding&format=markdown).
- Want to connect an event producer to your job? See [Subscribing to event producers](https://cloud.ibm.com/docs/codeengine?topic=codeengine-subscribing-events&format=markdown).

Need help? Check out [troubleshooting tips for jobs](https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-job&format=markdown). If you need more help, try [getting support](https://cloud.ibm.com/docs/codeengine?topic=codeengine-get-support&format=markdown).

## Run your Function
{: #lp-run-fun}

To get started, read [Working with Functions](https://cloud.ibm.com/docs/codeengine?topic=codeengine-fun-work&format=markdown) and [Function workloads](https://cloud.ibm.com/docs/codeengine?topic=codeengine-cefunctions&format=markdown).

Functions use a *managed runtime*. Find out more at [Runtimes](https://cloud.ibm.com/docs/codeengine?topic=codeengine-fun-runtime&format=markdown).

### Do you want to customize your function?
{: #lp-run-fun-customize}

- How much CPU and memory does your function need? See [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo&format=markdown).
- Want to define environment variables for your function? Find out how with [Working with environment variables](https://cloud.ibm.com/docs/codeengine?topic=codeengine-envvar&format=markdown).
- Does your function take advantage of configmaps or secrets? Take a look at [Working with secrets](https://cloud.ibm.com/docs/codeengine?topic=codeengine-secret&format=markdown) or [Working with configmaps](https://cloud.ibm.com/docs/codeengine?topic=codeengine-configmap&format=markdown).

### Are you ready to deploy?
{: #lp-run-fun-ready-to-deploy}

- [Creating Function workloads with inline code](https://cloud.ibm.com/docs/codeengine?topic=codeengine-fun-create-inlinecode&format=markdown).
- [Creating Function workloads with repository source code](https://cloud.ibm.com/docs/codeengine?topic=codeengine-fun-create-repo&format=markdown).
- [Creating Function workloads from local source code](https://cloud.ibm.com/docs/codeengine?topic=codeengine-fun-create-local&format=markdown).

### Do you want to add more customizations?
{: #lp-run-fun-add-customizations}

- Want to integrate with other IBM Cloud services? See [Integrating IBM Cloud services with service binding](https://cloud.ibm.com/docs/codeengine?topic=codeengine-service-binding&format=markdown).

## Log and monitor your workloads
{: #lp-log-mon}

Logging can help you troubleshoot your applications, jobs, and functions. See [Viewing logs](https://cloud.ibm.com/docs/codeengine?topic=codeengine-logging&format=markdown).

You can also [view, manage, and audit](https://cloud.ibm.com/docs/codeengine?topic=codeengine-at_events&format=markdown) user-initiated activities that occur in your Code Engine project.

Finally, analyze performance metrics by collecting information with [IBM Cloud Monitoring](https://cloud.ibm.com/docs/codeengine?topic=codeengine-monitor&format=markdown). You can create [custom dashboards to monitor Code Engine workloads](https://cloud.ibm.com/docs/codeengine?topic=codeengine-monitor-custom&format=markdown).

## Migrate your workloads
{: #lp-migrate}

If you are moving from a different service to Code Engine, there are several topics that can help you.

- [Getting started with your migration from Heroku to Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-heroku-migrate&format=markdown).
- [Getting started with your migration from Cloud Foundry to Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-migrate-cf-ce-getstart&format=markdown).