AI Model Wiki

    Skip to main content
    28 min
    Lesson 2 of 4

    Enterprise Deployment Patterns

    From the course Azure OpenAI Service

    Deploy Azure OpenAI Service with enterprise patterns for security, scalability, and integration.

    Authentication and Security

    Managed Identity (Recommended)

    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    from openai import AzureOpenAI
    
    # No API keys — uses Azure AD identity
    token_provider = get_bearer_token_provider(
        DefaultAzureCredential(),
        "https://cognitiveservices.azure.com/.default"
    )
    
    client = AzureOpenAI(
        azure_endpoint="https://your-resource.openai.azure.com",
        azure_ad_token_provider=token_provider,
        api_version="2024-09-01-preview"
    )
    

    Private Endpoint Setup

    # Create private endpoint for VNet isolation
    az network private-endpoint create \
        --name myOpenAIPrivateEndpoint \
        --resource-group myRG \
        --vnet-name myVNet \
        --subnet mySubnet \
        --private-connection-resource-id /subscriptions/.../openai/myOpenAI \
        --group-id account \
        --connection-name myOpenAIConnection
    

    Semantic Kernel Integration

    Building AI Applications

    from semantic_kernel import Kernel
    from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
    
    kernel = Kernel()
    
    # Add Azure OpenAI service
    kernel.add_service(AzureChatCompletion(
        service_id="azure-gpt4o",
        deployment_name="gpt-4o",
        endpoint="https://your-resource.openai.azure.com",
        api_key="your-key"
    ))
    
    # Create prompts as functions
    summarize = kernel.add_function(
        function_name="summarize",
        plugin_name="DocumentProcessing",
        prompt="Summarize this document in 3 bullet points: {{$input}}"
    )
    
    # Execute
    result = await kernel.invoke(summarize, input=document_text)
    print(result)
    

    Multi-Region Load Balancing

    import random
    from openai import AzureOpenAI
    
    # Multiple regional endpoints for resilience
    endpoints = [
        {"url": "https://eastus.openai.azure.com", "key": "key1"},
        {"url": "https://westeurope.openai.azure.com", "key": "key2"},
        {"url": "https://australiaeast.openai.azure.com", "key": "key3"}
    ]
    
    def get_client():
        # Random selection for load distribution
        endpoint = random.choice(endpoints)
        return AzureOpenAI(
            azure_endpoint=endpoint["url"],
            api_key=endpoint["key"],
            api_version="2024-09-01-preview"
        )
    
    # With retry and fallover
    def invoke_with_fallback(prompt, retries=3):
        for attempt in range(retries):
            try:
                client = get_client()
                return client.chat.completions.create(
                    model="gpt-4o",
                    messages=[{"role": "user", "content": prompt}]
                )
            except Exception as e:
                if attempt == retries - 1:
                    raise
    

    Key Takeaways

    • •Managed Identity eliminates API key management and improves security posture
    • •Private endpoints isolate Azure OpenAI traffic within corporate VNet
    • •Semantic Kernel provides a production-ready SDK for building AI applications
    • •Multi-region deployment with load balancing ensures high availability
    0 of 4 lessons marked complete

    Progress is kept in this browser only.