Web App Service verified

OneDeploy

OneDeploy is a direct way to publish files or packages into an Azure App Service app. Instead of setting up a full source-control deployment pipeline, you point deployment tooling at a ZIP, WAR, JAR, EAR, startup script, or individual file and App Service applies it to the target app or slot. It is useful for scripted releases, emergency fixes, migration cutovers, and repeatable build-agent deployments where the package has already been prepared, versioned, and tested. It also makes release ownership visible across environments.

Aliases
App Service OneDeploy, az webapp deploy, Kudu publish API, App Service package deployment, OneDeploy
Difficulty
intermediate
CLI mappings
6
Last verified
2026-05-17

Microsoft Learn

OneDeploy is the Azure App Service publish extension invoked through the Microsoft.Web sites extensions/onedeploy operation and surfaced by deployment tooling such as az webapp deploy. It sends a ZIP, WAR, JAR, EAR, startup script, or file package to an app or slot for publishing.

Microsoft Learn: Deploy files to Azure App Service2026-05-17

Technical context

Technically, OneDeploy sits in the App Service deployment path between build output and the app content location. It uses the App Service/Kudu publishing surface and can be triggered by Azure CLI, REST, PowerShell, or deployment tasks. The target scope is a web app or deployment slot under a subscription and resource group. It interacts with app settings, build automation flags, runtime stack, content share behavior, deployment logs, slot swaps, managed identity, networking controls, and Azure Resource Manager permissions. This context helps prevent wrong-target releases.

Why it matters

OneDeploy matters because many App Service outages begin with a package that reached the wrong app, skipped a build step, overwrote content unexpectedly, or restarted production during peak traffic. A clear understanding helps teams separate build pipeline responsibility from publish mechanism responsibility. It also makes rollback planning more realistic: operators can preserve a known package, deploy to a staging slot, check logs, and swap when ready. For learners, OneDeploy is a concrete example of how Azure deployment tooling maps local artifacts to running cloud applications. For businesses, it supports faster release automation while still requiring change control, artifact verification, and environment-specific safeguards. It also helps support teams link user incidents to specific release actions and artifacts.

Where you see it

Signals, screens, and Azure surfaces where this term usually becomes operational.

Signal 01

In Azure CLI output, az webapp deploy shows the target app, resource group, source package, deployment status, restart behavior, and publish-endpoint errors for incident timelines.

Signal 02

In App Service deployment logs or Kudu diagnostics, OneDeploy appears as package extraction, build automation, file copy, restart, and final deployment events for release review.

Signal 03

In release pipelines, OneDeploy is visible as a publish step consuming a prepared artifact, targeting an app or slot, and recording deployment evidence for cutover review.

When this becomes relevant

Specific situations where this term helps solve real Azure design, operations, migration, security, reliability, cost, or governance problems.

  • Publish a prepared ZIP package from Azure Pipelines to a staging App Service slot.
  • Deploy a Java WAR or JAR package after validating runtime settings and health probes.
  • Send a startup script or individual file during a controlled App Service maintenance window.

Real-world case studies

Different enterprise-style examples that show the term being used to hit measurable objectives.

Case study 01

Faster release repair for a travel booking portal

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

NorthTrail Booking ran a busy App Service portal for flight and hotel changes. During seasonal surges, developers still uploaded hotfix packages manually, which made target-slot mistakes hard to catch.

Business/Technical Objectives
  • Cut emergency publish time below fifteen minutes.
  • Prevent direct production uploads during peak booking windows.
  • Keep auditable artifact evidence for every hotfix.
  • Reduce failed releases caused by malformed ZIP packages.
Solution Using OneDeploy

The platform team added a OneDeploy step to its Azure Pipelines release template. Build output was zipped without the repository root, scanned, checksummed, and stored as a pipeline artifact. Azure CLI published the package to a staging slot with az webapp deploy, then a validation script checked the health endpoint, App Service logs, and key booking workflows. Only after approval did the pipeline swap the slot into production. The runbook also kept the previous package and a swap-back command for rollback. Operations also rehearsed the rollback path during a quiet morning window so support staff knew who could approve an emergency swap.

Results & Business Impact
  • Median emergency publish time dropped from forty-two minutes to eleven minutes.
  • Production hotfixes moved to staging-first release flow across eight apps.
  • Audit evidence included package checksum, build ID, CLI output, and approver for every deployment.
  • Malformed ZIP release failures fell by 70% after package validation became mandatory.
Key Takeaway for Glossary Readers

OneDeploy gives App Service teams a fast publishing path, but it works best when artifacts, slots, and rollback evidence are controlled together.

Case study 02

Controlled Java package deployment for a university portal

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

Lakehaven University hosted course registration on Java App Service. Each semester, a small operations team needed to deploy WAR packages without interrupting students during enrollment.

Business/Technical Objectives
  • Deploy Java packages without relying on FTP credentials.
  • Verify Tomcat startup before students reached the new build.
  • Document every release for academic compliance reviews.
  • Reduce registration outage risk during enrollment week.
Solution Using OneDeploy

The team replaced FTP uploads with OneDeploy through az webapp deploy and a protected service connection. Developers published the WAR from a tested build job, while operators targeted only the staging slot. The pipeline checked runtime stack, app settings, database connection strings, and health check path before deployment. After publishing, it collected deployment logs and warmed the slot with synthetic registration requests. A swap approval required the registrar and IT incident lead to confirm readiness. The rollback path swapped back to the previous slot and preserved both WAR files. Department coordinators reviewed a read-only package summary before approval, and the service desk received a simple notice showing expected deployment time and rollback contact.

Results & Business Impact
  • FTP deployment credentials were removed from the release process.
  • Slot warmup caught two missing environment variables before production exposure.
  • Enrollment-week deployment downtime was reduced from thirty minutes to under five minutes.
  • Compliance review packets were generated automatically from CLI and pipeline output.
Key Takeaway for Glossary Readers

OneDeploy can make Java App Service releases safer when the publish command is surrounded by environment checks and slot validation.

Case study 03

Repeatable startup script rollout for an industrial API

Scenario, objectives, solution, measured impact, and takeaway.

Scenario

ForgeLine Systems maintained App Service APIs for equipment telemetry in three Azure regions. A Linux startup script change was needed quickly, but regional teams had been editing files differently.

Business/Technical Objectives
  • Standardize startup script deployment across regions.
  • Avoid full application redeployment for a focused script change.
  • Confirm each API restarted cleanly after the update.
  • Track regional deployment status in one change record.
Solution Using OneDeploy

Operations packaged the approved startup script and used OneDeploy with the file deployment type from Azure CLI. The script targeted nonproduction slots first in East US, West Europe, and Southeast Asia. For each app, the runbook confirmed subscription context, target slot, runtime stack, access restrictions, and managed identity permissions. After deployment, operators restarted the slot, watched Application Insights availability tests, and reviewed App Service log stream output. The team then swapped only the slots that passed validation. Regions that failed checks stayed on the previous slot while engineers fixed configuration drift. A weekly report compared planned releases with actual deployment timestamps so service owners could spot missed updates before technicians opened support cases.

Results & Business Impact
  • Regional script rollout finished in one maintenance window instead of three separate changes.
  • Two regions avoided production impact because slot validation found different file permissions.
  • Telemetry API startup failures dropped by 60% in the following release cycle.
  • The final change record included CLI output, health metrics, and per-region approval notes.
Key Takeaway for Glossary Readers

OneDeploy is useful beyond full packages because precise file deployment can reduce blast radius for targeted App Service changes.

Why use Azure CLI for this?

Azure CLI is valuable for OneDeploy because publishing must be repeatable, auditable, and environment-specific. A portal upload can work once, but CLI commands let teams bind the target subscription, resource group, app name, slot, artifact path, package type, and output format to a pipeline or runbook. CLI output also gives operators evidence for deployment history and failure triage.

CLI use cases

  • Deploy a tested ZIP, WAR, JAR, EAR, startup script, or static file package to a named App Service app or staging slot.
  • Capture deployment output, timestamps, errors, and target identifiers for a release record or incident timeline.
  • Compare app settings, slot configuration, health check path, and runtime stack before and after a OneDeploy release.
  • Automate rollback by redeploying a known artifact or swapping a validated deployment slot back into production.

Before you run CLI

  • Confirm tenant, subscription, resource group, app name, slot name, package path, package type, and whether the command targets production or staging.
  • Check App Service permissions, Microsoft.Web provider registration, runtime stack, SCM access restrictions, private endpoint reachability, and build automation settings.
  • Review destructive and cost risk: deployment can restart the app, overwrite files, trigger scale changes, consume slot capacity, or fail during peak traffic.
  • Use JSON output for automation, preserve package checksums, and record deployment IDs so rollback and audit evidence are not guesswork.

What output tells you

  • Target fields confirm whether the command reached the intended subscription, resource group, app, and slot instead of a similarly named environment.
  • Status, error code, and log URL fields separate package problems, permission failures, deployment endpoint issues, and runtime startup failures.
  • Restart, build, and completion timestamps help operators connect the publish operation to application metrics, alerts, and user-impact reports.
  • Package path, type, and deployment message values identify the artifact used for rollback, release comparison, and change-management evidence.

Mapped Azure CLI commands

OneDeploy operator commands

operator-workflow
az webapp deploy --resource-group <resource-group> --name <app-name> --src-path <package.zip> --type zip
az webappprovisionWeb
az webapp deploy --resource-group <resource-group> --name <app-name> --slot <slot-name> --src-path <package.zip> --type zip
az webappprovisionWeb
az webapp show --resource-group <resource-group> --name <app-name> --output json
az webappdiscoverWeb
az webapp deployment slot list --resource-group <resource-group> --name <app-name> --output table
az webapp deployment slotdiscoverWeb
az webapp config appsettings list --resource-group <resource-group> --name <app-name> --slot <slot-name>
az webapp config appsettingsdiscoverWeb
az webapp log tail --resource-group <resource-group> --name <app-name> --slot <slot-name>
az webapp logoperateWeb

Architecture context

Technically, OneDeploy sits in the App Service deployment path between build output and the app content location. It uses the App Service/Kudu publishing surface and can be triggered by Azure CLI, REST, PowerShell, or deployment tasks. The target scope is a web app or deployment slot under a subscription and resource group. It interacts with app settings, build automation flags, runtime stack, content share behavior, deployment logs, slot swaps, managed identity, networking controls, and Azure Resource Manager permissions. This context helps prevent wrong-target releases.

Security

Security impact is direct because OneDeploy changes executable application content. Anyone allowed to publish can replace code, add scripts, expose secrets in files, or bypass normal review if the workflow is not governed. Access should use least-privilege Azure RBAC, protected pipeline identities, signed or traceable artifacts, and separate permissions for development, staging, and production slots. Avoid publish profiles or basic credentials when Microsoft Entra based automation is available. Private endpoint, access restriction, and SCM site exposure also matter because deployment endpoints can become attack paths. Logs should record who deployed, from where, which package was used, and whether app settings or build automation changed. Deployment credentials deserve the same review as other privileged production paths.

Cost

OneDeploy does not create a separate billing meter, but it can influence cost through App Service plan size, slot usage, build automation, storage, and operational effort. Teams often scale out or scale up before large deployments, keep staging slots warm, or run build steps during publish, all of which can increase spend. Failed releases also create hidden cost through incident response, extra pipeline runs, and customer-impact recovery. FinOps owners should review unused slots, oversized plans kept for deployment windows, retained packages, logging retention, and repeated emergency redeployments. The right cost practice treats deployment capacity as intentional release overhead, not unexplained platform noise. Cleanup rules should preserve only useful deployment history.

Reliability

Reliability impact is direct because a publish operation can restart the app, replace files across instances, or leave a failed release partially applied. Reliable teams package deterministic build output, test deployment to a slot, validate startup, then swap instead of pushing straight to production. They monitor deployment logs, application health checks, and restart behavior during the change. Runbooks should include package rollback, slot swap reversal, app setting restoration, and dependency checks for storage, Key Vault, databases, and managed identities. Because App Service content is shared across instances, operators must understand how files synchronize and how deployment activity interacts with scale-out, local cache, and runtime warmup.

Performance

Performance impact is practical and visible during release windows. A deployment can restart workers, trigger cold starts, run package extraction, rebuild dependencies, or synchronize content while traffic continues. Large packages, unnecessary files, nested ZIP roots, slow build automation, and constrained CPU or memory on the App Service plan can delay completion. Performance-conscious teams keep packages lean, prebuild dependencies, use deployment slots for warmup, validate health probes, and watch response time before and after the swap. For urgent fixes, CLI automation improves operational speed because operators can repeat a known command, capture output, and avoid slow portal navigation during an incident.

Operations

Operators use OneDeploy by preparing artifacts, selecting the target app or slot, running a CLI or pipeline command, and reviewing deployment logs before declaring success. Routine work includes checking subscription context, resource group, app name, slot name, package type, runtime stack, build automation setting, and app health after publish. During incidents, operators compare the last successful deployment with the current package, inspect Kudu or App Service logs, and decide whether to redeploy or swap back. Good operations also document artifact checksums, build IDs, deployment timestamps, operator identity, source pipeline, and approval evidence so release history remains usable during audits and postmortems. Evidence exports should be kept with release approvals.

Common mistakes

  • Deploying a ZIP that contains a top-level repository folder, causing App Service to place files in the wrong directory.
  • Publishing directly to production instead of using a staging slot, warmup checks, and a reversible swap plan.
  • Forgetting that deployment may restart the app, which can cause cold starts or failed requests during busy periods.
  • Using publish credentials or broad contributor permissions in automation when a scoped Microsoft Entra identity would reduce exposure.