:_mod-docs-content-type: ASSEMBLY
[id="building-applications-overview"]
= Building applications overview
include::_attributes/common-attributes.adoc[]
:context: building-applications-overview

toc::[]

Using {product-title}, you can create, edit, delete, and manage applications using the web console or command line interface (CLI).

[id="working-on-a-project"]
== Working on a project

Using projects, you can organize and manage applications in isolation. You can manage the entire project lifecycle, including xref:../applications/projects/working-with-projects.adoc#working-with-projects[creating, viewing, and deleting a project] in {product-title}.

After you create the project, you can xref:../applications/projects/working-with-projects.adoc#odc-providing-project-permissions-using-developer-perspective_projects[grant or revoke access to a project] and xref:../applications/projects/working-with-projects.adoc#odc-customizing-available-cluster-roles-using-the-web-console_projects[manage cluster roles] for the users using the Developer perspective. You can also xref:../applications/projects/configuring-project-creation.adoc#configuring-project-creation[edit the project configuration resource] while creating a project template that is used for automatic provisioning of new projects.

ifndef::openshift-rosa,openshift-dedicated[]
Using the CLI, you can xref:../applications/projects/creating-project-other-user.adoc#creating-project-other-user[create a project as a different user] by impersonating a request to the {product-title} API. When you make a request to create a new project, the {product-title} uses an endpoint to provision the project according to a customizable template. As a cluster administrator, you can choose to xref:../applications/projects/configuring-project-creation.adoc#disabling-project-self-provisioning_configuring-project-creation[prevent an authenticated user group from self-provisioning new projects].
endif::openshift-rosa,openshift-dedicated[]
ifdef::openshift-rosa,openshift-dedicated[]
As a user with dedicated administrator permissions, you can choose to xref:../applications/projects/configuring-project-creation.adoc#disabling-project-self-provisioning_configuring-project-creation[prevent an authenticated user group from self-provisioning new projects].
endif::openshift-rosa,openshift-dedicated[]

[id="working-on-application"]
== Working on an application

[id="creating-application"]
=== Creating an application

To create applications, you must have created a project or have access to a project with the appropriate roles and permissions. You can create an application by using either xref:../applications/creating_applications/odc-creating-applications-using-developer-perspective.adoc#odc-creating-applications-using-developer-perspective[the Developer perspective in the web console], xref:../applications/creating_applications/creating-apps-from-installed-operators.adoc#creating-apps-from-installed-operators[installed Operators], or xref:../applications/creating_applications/creating-applications-using-cli.adoc#creating-applications-using-cli[the {oc-first}]. You can source the applications to be added to the project from Git, JAR files, devfiles, or the developer catalog.

You can also use components that include source or binary code, images, and templates to create an application by using the {oc-first}. With the {product-title} web console, you can create an application from an Operator installed by a cluster administrator.

[id="maintaining-application"]
=== Maintaining an application

After you create the application, you can use the web console to xref:../applications/odc-monitoring-project-and-application-metrics-using-developer-perspective.adoc#odc-monitoring-project-and-application-metrics-using-developer-perspective[monitor your project or application metrics]. You can also xref:../applications/odc-editing-applications.adoc#odc-editing-applications[edit] or xref:../applications/odc-deleting-applications.adoc#odc-deleting-applications[delete] the application using the web console.  

When the application is running, not all applications resources are used. As a cluster administrator, you can choose to xref:../applications/idling-applications.adoc#idling-applications[idle these scalable resources] to reduce resource consumption.

[id="deploying-application"]
=== Deploying an application
You can deploy your application using xref:../applications/deployments/what-deployments-are.adoc#what-deployments-are[`Deployment` or `DeploymentConfig`] objects and xref:../applications/deployments/managing-deployment-processes.adoc#deployment-operations[manage] them from the web console. You can create xref:../applications/deployments/deployment-strategies.adoc#deployment-strategies[deployment strategies] that help reduce downtime during a change or an upgrade to the application.

You can also use xref:../applications/working_with_helm_charts/understanding-helm.adoc#understanding-helm[Helm], a software package manager that simplifies deployment of applications and services to {product-title} clusters.

[id="redhat-marketplace"]
== Using the Red Hat Marketplace

The xref:../applications/red-hat-marketplace.adoc#red-hat-marketplace[Red Hat Marketplace] is an open cloud marketplace where you can discover and access certified software for container-based environments that run on public clouds and on-premises.
