Skip to content

Fast Deployment Path

The fast deployment path (fast-deploy-pipeline.yml) is a streamlined pipeline that skips infrastructure provisioning. It rebuilds and redeploys one or more container images in 3–8 minutes compared to the 20–30 minutes of a full deploy.


When to Use Fast Deploy

Decision Checklist

Before using fast deploy, confirm ALL of these are true:

  • [ ] Only application source code changed (.cs, .csproj, .razor)
  • [ ] No new environment variables added or existing ones modified
  • [ ] No changes to services-config.json
  • [ ] No Bicep or infrastructure YAML changes
  • [ ] No new services being introduced
  • [ ] Target service is already deployed and healthy
  • [ ] No database migration scripts in this change

If any box is unchecked, use the full deployment pipeline (e.g., platforms-pipeline.yml) instead.


Fast Deploy Steps

Pipeline Parameters

The fast deploy pipeline (pipelines/container-backend/fast-deploy-pipeline.yml) uses serviceToggles — the same boolean-per-service pattern as the full deploy pipelines. Select which services to deploy by enabling their toggle:

yaml
# Triggered manually via Azure DevOps UI or az CLI
parameters:
  - name: targetEnvironment
    displayName: Target Environment
    type: string
    default: dev
    values:
      - dev
      - stage
      - preprod
      - uat

  - name: deployMode
    displayName: Deployment Mode
    type: string
    default: manual
    values:
      - manual
      - force-all

  - name: skipApproval
    displayName: Skip Approval Gate
    type: boolean
    default: false

  # Service toggles (one per service)
  - name: svc_appsportalApi
    displayName: '[Platforms] AppsPortal API'
    type: boolean
    default: false

  - name: svc_inventoryApi
    displayName: '[Platforms] Inventory API'
    type: boolean
    default: false

  # ... (all 13 service toggles follow this pattern)

No serviceName or imageTag Parameters

The fast deploy pipeline does not accept a single serviceName string or an imageTag string. Services are selected via boolean toggles. The image tag is always derived from $(Build.BuildId).

Trigger via Azure DevOps UI

  1. Navigate to Pipelines → fast-deploy-pipeline
  2. Click Run pipeline
  3. Select targetEnvironment
  4. Enable the toggle for the service(s) to deploy
  5. Click Run

Time Comparison

Deploy TypePipelineEstimated TimeSkips
Full deployplatforms-pipeline.yml (and others)20–30 minNothing
Fast deployfast-deploy-pipeline.yml3–8 minBicep, smoke suite
Frontend onlyfront-apps/ pipelines15–25 minBackend services

What Fast Deploy Does NOT Do

Fast Deploy Limitations

These tasks are explicitly skipped in fast deploy. If your change requires any of them, use the full deploy instead.

Skipped StepImpact if Needed
Bicep infrastructure deploymentNew resources won't be created; scaling changes won't apply
services-config.json parsingNew env vars, replica counts, CPU/memory won't update
Azure Front Door reconfigurationNew routes or custom domains won't activate
Full smoke test suiteOnly readiness probe checked; integration tests skipped
Database migrationSchema changes won't be applied (always use full deploy for migrations)
Multi-service coordinationOnly one service deployed; no cross-service compatibility check

Rollback

If a fast-deployed revision causes issues, roll back to the previous revision:

bash
# List recent revisions
az containerapp revision list \
  --name accounting \
  --resource-group mic-erp-be-stage-apps-rg \
  --output table

# Activate a previous revision
az containerapp ingress traffic set \
  --name accounting \
  --resource-group mic-erp-be-stage-apps-rg \
  --revision-weight previous-revision-name=100

# Deactivate the bad revision
az containerapp revision deactivate \
  --name accounting \
  --resource-group mic-erp-be-stage-apps-rg \
  --revision bad-revision-name

Azure Container Apps retains the last 10 revisions per container app, enabling instant rollback.


Fast Deploy on Production

Production Fast Deploy Requires Approval

Even though fast deploy skips many steps, deploying to production still requires a manual approval gate. Production deployments must use production-release-pipeline.yml, not the fast deploy pipeline — fast-deploy-pipeline.yml only accepts dev, stage, preprod, and uat as environment values.

Do NOT use fast deploy to bypass the production change management process. The approval gate is enforced at the pipeline level via Azure DevOps environment protection rules.

Production-specific safeguards in fast deploy:

  1. Manual approval gate (any 1 of: Release Manager, CTO)
  2. 15-minute extended health check after revision activation
  3. Automatic rollback if readiness probe fails within 5 minutes

Monitoring After Fast Deploy

After a fast deploy, monitor these dashboards for 10–15 minutes:

DashboardWhat to Watch
Application Insights → Live MetricsRequest failure rate, exceptions
Container Apps → Revision logsPod startup errors, unhandled exceptions
Azure Monitor → AlertsAny triggered metric alerts
bash
# Stream container logs immediately after fast deploy
az containerapp logs show \
  --name accounting \
  --resource-group mic-erp-be-stage-apps-rg \
  --follow \
  --tail 50

Internal Documentation — Microtec Platform Team