PRO CODE AND ALM MAGIC

Part 1: Automating Azure Function App with Durable Functions and CI/CD Pipelines

In our cloud infrastructure, we have designed and implemented an Azure Function App that utilizes Azure Durable Functions to automate a checklist validation process. The function operates in a serverless environment, ensuring scalability, reliability, and efficiency.

To achieve this, we:

Use Durable Functions for long-running workflows and parallel execution.
Implement a timer-triggered function that regularly checks for missing documents.
Deploy using Azure DevOps CI/CD Pipelines for automated deployments and testing.

This post covers Azure Function App architecture, Durable Functions, and our CI/CD pipeline implementation.

🔹 Azure Durable Functions: Why We Chose Them

Our workflow involves:

 –Retrieving all checklists from SharePoint.
Processing them in parallel to check for missing documents.
Updating the checklist if documents are missing.

We use Azure Durable Functions because: Stateful Execution – Remembers past executions. Parallel Execution – Checks multiple users simultaneously. Resilient and Reliable – Handles failures gracefully. Scales Automatically – No need to manage servers.


How Our Durable Function Works

Timer-Triggered Function: Initiates the Orchestrator

This function triggers every 5 minutes, calling the orchestrator.

What It Does:

  • Runs every 5 minutes using a TimerTrigger.
  • Calls ProcessCheckListsOrchestrator (Orchestrator function).
  • Ensures checklist processing happens automatically.

Orchestrator Function: Manages Workflow

The orchestrator is the brain of the workflow, managing execution and handling parallel processing.

What It Does:

  • Calls GetAllUserCheckListsActivity to fetch checklists.
  • Executes multiple ProcessChecklistItemActivity functions in parallel.
  • Uses Task.WhenAll() to improve performance.
  • Logs errors and ensures fault tolerance.

Activity Functions: Processing Individual Checklist Items

Each activity function is responsible for a specific task.

📌 Get All Checklists

Retrieves all checklists from SharePoint.

📌 Process Individual Checklist Items

What It Does:

  • Retrieves missing documents for a user.
  • Updates the SharePoint checklist accordingly.
  • Handles errors and retries if needed.

PART 2: Automating Deployments with Azure DevOps CI/CD Pipelines

To ensure seamless deployment and updates, we use Azure DevOps Pipelines.

📌 CI/CD Pipeline Breakdown

Build Stage – Runs dotnet build and dotnet test.
Deploy Stage – Uses Bicep templates (main.bicep) for infrastructure-as-code deployment.


🔹 Azure DevOps Pipeline (azure-pipelines.yml)

We use Azure CLI and Bicep for automated Azure Function deployment.

main.bicep

By leveraging Azure Durable Functions, we transformed a manual checklist validation process into an automated, scalable, and highly resilient system.

With Azure DevOps CI/CD, we now have a fully automated deployment pipeline, ensuring high reliability and faster releases. 💡 Next, we will discuss a new business logic, SharePoint interactions, and integrations in a dedicated post. Stay tuned!

Leave a Reply