Enterprises that started their AI journey in the “custom ML pipeline” era are now hitting a wall: brittle orchestration, fragmented tools, and slow iteration whenever models or business rules change. Azure AI Foundry provides a workflow-first, agent-ready, and governance-aware platform that enables teams to modernize legacy processes into reusable, observable, and easier-to-own AI systems without sacrificing their existing .NET and Azure investments. This shift is less about replacing tools and more about building a native AI infrastructure where models, data, and workflows can be assembled as building blocks.
The Legacy State: Custom ML Pipelines Everywhere
In many organizations, the first wave of AI looked like this: notebooks built into Azure Machine Learning models, exported, and wrapped in custom web APIs and orchestrators (logic apps, functions, or custom schedulers) that tied everything together. Typical characteristics:
Multiple services: Azure ML for training, Azure Functions for scoring, custom REST APIs, and separate ETL for feature engineering.
Hard-coded pipelines: Data paths, model versions, and thresholds baked into code and config files.
Weak governance: Limited audit trails, scattered logging, and unclear ownership of each step.
As AI use scales across teams and regions, this patchwork creates real pain: every new use case wants its “own pipeline,” leading to duplication, inconsistent patterns, and operational risk.
What Azure AI Foundry Changes
Azure AI Foundry introduces a unified environment for building, managing, and deploying AI solutions, including workflow orchestration, agent services, and integration with Azure OpenAI and Azure AI Search. Instead of stitching dozens of services manually, you build AI workflows on a visual canvas or via declarative definitions that:
Orchestrate prompts, tools, and models (foundation models, custom models, search) as nodes in a single workflow.
Run in a governed environment with policy controls, access management, and centralized observability.
Support hybrid patterns: workflow-first for orchestration, code-first for custom logic, and hybrid for large, complex systems.
For enterprises, this means AI solutions move from “projects” to “products”—versioned, secure, reusable, and easier to evolve.
Before and After: A Concrete Architecture
Before: Custom ML Pipeline
Imagine a customer churn prediction system built three years ago:
Data ingestion through Azure Data Factory into a data lake.
Model training and batch scoring via Azure Machine Learning pipelines.
A custom API layer in .NET exposing predictions to CRM and support tools.
Separate scripts or Logic Apps to post-process results (send emails, open tickets, etc.).
Each component is owned and deployed separately, with inconsistent logging and manual hand-offs between teams. A change to the feature set or business rules can require editing AML pipelines, API code, and scheduled jobs.
After: Azure AI Foundry Workflow
Modernized in Azure AI Foundry, the same use case can look like:
A workflow that:
Ingests or receives events (e.g., “customer updated,” “contract nearing end”).
Calls a model (Azure ML model endpoint or Azure OpenAI with RAG) via a model node.
Uses tools for CRM lookups, discount policy checks, and messaging.
Outputs an action: “flag for outreach,” “auto-generate email,” or “open support case.”
A single workflow definition manages orchestration; underlying models are swapped by configuration.
Everything runs under a unified security and governance model, with monitoring that tracks each step of the AI decision process.
Migration Strategy: Step-by-Step Refactoring
Modernizing an enterprise AI landscape doesn’t mean rewriting everything from scratch. A pragmatic step-by-step approach works best.
1. Inventory Existing Pipelines and Pain Points
Identify your core ML pipelines (e.g., churn, fraud detection, demand forecasting, document classification).
For each, document: entry points, dependencies (data, models, APIs), SLAs, and failure modes.
Prioritize those with high change frequency or operational complexity.
2. Wrap Existing Models as First-Class Services
Before moving orchestration, ensure models are cleanly exposed:
Deploy existing ML models as endpoints using Azure Machine Learning managed endpoints or Azure Kubernetes Service.
Define standard contracts (input/output schemas) so they can be consumed as “model nodes” in Foundry workflows later.
Example: A .NET client calling an existing churn model endpoint that you’ll soon wire into Foundry:
using System.Net.Http.Json;
public class ChurnModelClient
{
private readonly HttpClient _http;
public ChurnModelClient(HttpClient http)
{
_http = http;
}
public async Task<double> PredictChurnAsync(object features)
{
var response = await _http.PostAsJsonAsync("/score", features);
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadFromJsonAsync<ChurnResult>();
return result?.Probability ?? 0.0;
}
private record ChurnResult(double Probability);
}

Join the conversation! Your thoughts help the community grow.