Azure AI Platform

The Azure AI stack the FR/BE enterprise market runs on: Azure OpenAI for models with enterprise data controls, Azure AI Search as a managed hybrid+semantic RAG store, and Azure AI Foundry for building, evaluating, and deploying agents — mapped onto everything you've already learned vendor-neutrally.

~3hazuredeploymentllm-apis
Learning objectives
  • Explain why the enterprise (esp. EU) market defaults to Azure for AI, and what it changes vs. a raw API.
  • Call Azure OpenAI — the deployment model, endpoint, and enterprise data controls.
  • Use Azure AI Search as a managed hybrid + semantic RAG store (the Track 3 vector DB, managed).
  • Map your vendor-neutral knowledge onto Azure AI Foundry (models, evals, agents) — the same concepts, Azure-branded.
Note

For JavaScript developers: Azure OpenAI uses the same OpenAI SDK you know — you just point it at your Azure endpoint and call a deployment name instead of a model name. Everything you learned about prompts, RAG, agents, and evals transfers unchanged; Azure adds enterprise wrapping (networking, compliance, managed services). APIs and product names shift (Azure renames often) — verify against current docs.

Why Azure for enterprise AI

Most of the FR/BE enterprise job market runs AI on Azure, for reasons that are about the business, not the model:

  • Data governance & residency — deploy models in an EU region so data stays in-region (the Track 6 concern), with enterprise no-training guarantees and private networking (data never traverses the public internet).
  • Compliance posture — SOC 2 / ISO / HIPAA / GDPR alignment enterprises require to sign off.
  • Integration — Entra ID (Azure AD) identity, Key Vault secrets, existing Azure infra and billing many companies already use.
  • Managed services — search, content safety, monitoring, and agent hosting as first-party services, less to self-run.

The key mental shift: your vendor-neutral skills don't change — Azure is a deployment and governance wrapper around the same concepts. Learning Azure is learning where each concept you already know lives as a service.

Azure OpenAI

Azure OpenAI serves OpenAI models (GPT-4o, embeddings, etc.) through Azure's enterprise controls. The one new concept is the deployment: you deploy a model into your resource under a deployment name, and call that — which lets you pin versions, set quotas, and choose the region. The SDK is the familiar one:

from openai import AzureOpenAI                       # same library, Azure client

client = AzureOpenAI(
    azure_endpoint="https://my-resource.openai.azure.com",   # YOUR resource endpoint (region-specific)
    api_key=os.environ["AZURE_OPENAI_KEY"],                  # from Key Vault / env, never hardcoded (Track 6/7)
    api_version="2024-10-21",                                # Azure pins the API version explicitly
)

resp = client.chat.completions.create(
    model="gpt-4o-mini-prod",                        # a DEPLOYMENT name you created — not the raw model id
    messages=[{"role": "user", "content": "Hello"}], # everything else is identical to what you know
)

Same prompts, same function calling, same structured outputs (Track 4) — only the client setup and the deployment indirection differ. Content filtering (Azure's built-in moderation, Track 6) is applied automatically and configurable per deployment.

Tip

Exercise 1 has you point the OpenAI SDK at an Azure endpoint and call a deployment, confirming your existing prompt/agent code runs unchanged against Azure OpenAI.

Azure AI Search

Azure AI Search is a managed search service that is, for our purposes, the managed vector database from Track 3 — plus first-class hybrid (keyword + vector) retrieval and a semantic ranker (a built-in reranker), i.e. the Retrieval Quality techniques (Track 3, Topic 4) as managed features you configure instead of build:

from azure.search.documents import SearchClient
from azure.core.credentials import AzureKeyCredential

search = SearchClient("https://my-search.search.windows.net", "chunks",
                      AzureKeyCredential(os.environ["SEARCH_KEY"]))

# Hybrid + semantic retrieval in one managed call — keyword + vector + reranking, no infra to run:
results = search.search(
    search_text=question,                            # the KEYWORD/BM25 side (hybrid)
    vector_queries=[{"vector": embed(question), "fields": "embedding", "k": 5}],  # the VECTOR side
    query_type="semantic",                           # apply the built-in semantic reranker
    filter=f"tenant_id eq '{tenant_id}'",            # metadata filter — tenant isolation (Track 6) at the engine
    top=5,
)

Everything you learned hand-rolling RAG (chunk, embed, hybrid fuse, rerank, tenant-filter) maps onto AI Search configuration. You still own chunking and the generation prompt; AI Search owns indexing, hybrid retrieval, and reranking. On Azure it's the default RAG store precisely because hybrid + semantic ranking come built in.

Tip

Exercise 2 has you map each stage of your hand-rolled RAG pipeline to what Azure AI Search provides vs. what you still implement — seeing the managed/DIY boundary.

Azure AI Foundry

Azure AI Foundry (the platform formerly surfaced as Azure AI Studio) is the umbrella for building and operating AI on Azure. You don't need every piece, but know what each maps to from this course:

Foundry capabilityWhat it isCourse concept
Model catalogdeploy OpenAI + open models (Llama, Mistral, …)Model selection (Track 2)
Prompt flowvisual/orchestrated prompt + chain buildingPrompting / chains (Tracks 2, 4)
Evaluationsbuilt-in eval metrics + datasetsEval design (Track 5)
Agent Servicemanaged hosting for tool-using agentsAgents (Track 4)
Content Safetymanaged input/output moderationGuardrails (Track 6)
Tracing / monitoringintegrated observabilityObservability (Track 5)

The point isn't to memorize Azure's menu — it's to recognize that Foundry is your entire course as managed services. When a client says "we're an Azure shop," you already know the concepts; you're just locating each in Foundry and deciding what to use managed vs. build yourself.

Tip

Exercise 3 has you map five course concepts to their Azure Foundry service — translating vendor-neutral knowledge into Azure fluency.

When Azure (and when not)

Azure isn't automatically right. The decision (a consulting judgment, building on Track 4's code-vs-no-code axes):

  • Choose Azure when: the client is already on Azure/Microsoft 365, needs EU data residency + enterprise compliance, wants managed search/safety/agents, or requires Entra ID/Key Vault integration. This describes much of the FR/BE enterprise market.
  • Consider alternatives when: the client is on AWS/GCP already (use Bedrock/Vertex — next topic), wants a specific non-Azure model, is cost-optimizing at scale, or is small/fast-moving where a raw API is simpler.

Because your skills are vendor-neutral, you can meet the client where they are — Azure fluency is about knowing the enterprise-default mapping, not about Azure being the only answer.

Tip

Exercise 4 has you recommend Azure vs. an alternative for three client scenarios and justify each against these factors.

Pitfalls

  • Thinking Azure is a different skillset. It's the same concepts wrapped for enterprise — don't relearn RAG/agents, relocate them.
  • Confusing deployment name and model id. In Azure OpenAI you call your deployment, not the raw model name.
  • Rebuilding what AI Search gives you. Hybrid + semantic reranking are managed — configure, don't hand-roll, on Azure.
  • Ignoring region/residency. The reason clients pick Azure is often data residency — deploy in the right region or the point is lost.
  • Chasing Azure's shifting product names. Studio→Foundry and API versions change; anchor on the concept, verify the current name.

Recap

  • The enterprise (esp. EU) market defaults to Azure for data residency, compliance, integration, and managed services — a governance wrapper around the same AI concepts.
  • Azure OpenAI = the OpenAI SDK pointed at your endpoint, calling a deployment (pinned version, region, quota) with built-in content filtering.
  • Azure AI Search = the managed Track-3 vector DB with first-class hybrid + semantic reranking and engine-level metadata filtering (tenant isolation).
  • Azure AI Foundry = your whole course as managed services (model catalog, prompt flow, evals, agent service, content safety, tracing).
  • Your vendor-neutral skills transfer directly — Azure fluency is locating each concept as a service and choosing managed vs. build.
  • Worked examples map to the exercises: Azure OpenAI call (Ex 1), RAG mapped to AI Search (Ex 2), concepts→ Foundry services (Ex 3), Azure-vs-alternative decision (Ex 4).

Azure AI Platform — Exercises

Exercises 1–2 use an Azure OpenAI + Azure AI Search resource if you have one; otherwise reason through the mapping (3–4 need no Azure account). Product names shift — check current Azure docs.


Exercise 1 — Call Azure OpenAI with your existing code

Point the OpenAI SDK at an Azure endpoint and call a deployment. Confirm a prompt/agent from earlier tracks runs unchanged except for the client setup.

Reference solution
import os
from openai import AzureOpenAI

client = AzureOpenAI(
    azure_endpoint="https://my-resource.openai.azure.com",
    api_key=os.environ["AZURE_OPENAI_KEY"],
    api_version="2024-10-21",
)

resp = client.chat.completions.create(
    model="gpt-4o-mini-prod",     # DEPLOYMENT name, not the raw model id
    messages=[{"role": "user", "content": "Classify: 'refund my order'"}],
)
print(resp.choices[0].message.content)

The only differences from a raw OpenAI call are the AzureOpenAI client, the endpoint/api_version, and calling a deployment name. Your prompts, function calling, structured outputs, and agent loops all transfer unchanged — Azure is a wrapper, not a new skillset.


Exercise 2 — Map your RAG pipeline to Azure AI Search

For your hand-rolled RAG (chunk → embed → index → hybrid retrieve → rerank → generate), mark which stage Azure AI Search provides and which you still own.

Reference solution
RAG stageAzure AI SearchYou own
Chunking✅ you chunk (Track 3 Topic 2)
Embeddingcan call Azure OpenAI embeddingsyou choose the model
Indexing / storage✅ managed index
Keyword + vector (hybrid) retrieval✅ built-in hybrid
Reranking✅ semantic ranker
Metadata / tenant filter✅ engine-level filteryou set the scope
Generation prompt✅ you write it
results = search.search(search_text=q,
    vector_queries=[{"vector": embed(q), "fields": "embedding", "k": 5}],
    query_type="semantic", filter=f"tenant_id eq '{tid}'", top=5)

AI Search owns indexing, hybrid retrieval, reranking, and filtering; you still own chunking and the generation prompt. Everything you learned hand-rolling maps to configuration — the managed/DIY boundary sits at chunking and prompting.


Exercise 3 — Map concepts to Foundry services

Match each course concept to its Azure AI Foundry capability: (a) model selection, (b) tool-using agent hosting, (c) input/output moderation, (d) eval metrics + datasets, (e) tracing/monitoring.

Reference solution
  • (a) Model selection (Track 2)Model catalog (deploy OpenAI + open models like Llama/Mistral).
  • (b) Agent hosting (Track 4)Agent Service (managed hosting for tool-using agents).
  • (c) Moderation (Track 6)Content Safety (managed input/output filtering).
  • (d) Eval (Track 5)Evaluations (built-in metrics + datasets).
  • (e) Observability (Track 5)Tracing / monitoring (integrated).

The takeaway: Foundry is your whole course as managed services. When a client is "an Azure shop," you're not learning new concepts — you're locating each one in Foundry and deciding managed vs. build.


Exercise 4 — Azure or an alternative?

Recommend Azure or an alternative for each, with justification: (a) a French bank already on Microsoft 365 needing EU data residency; (b) a startup fully on AWS wanting the fastest path; (c) a team needing a specific model only available outside Azure.

Reference solution
  • (a) French bank on M365, EU residencyAzure. EU-region Azure OpenAI for residency, enterprise compliance, Entra ID/Key Vault integration, and existing Microsoft relationship — the enterprise sweet spot.
  • (b) Startup on AWS, fastest pathAWS Bedrock (next topic) or a raw API. Staying in their existing cloud avoids cross-cloud complexity; Azure would add friction for no benefit.
  • (c) Needs a specific non-Azure modelthe provider hosting that model (or self-host). Model availability drives the decision; don't force Azure if it can't serve the required model.

The rule: your skills are vendor-neutral, so meet the client where they are — Azure for the EU/Microsoft enterprise default, alternatives when the cloud, model, or speed requirements point elsewhere.