Qatar Post AI

Solution Docs · powered by Eloquent

QPOST AI — Cloud Infrastructure Design

The Azure cloud foundation the four Qatar Post AI solutions are deployed on

Version 2 — April 2025 · Prepared by Malomatia for Qatar Post


1. Introduction

The QPOST organization (QPOST) of Qatar is embarking on a transformative journey to modernize its systems through adopting Azure artificial intelligence solutions. The adoption of Azure AI technologies represents a strategic move towards embracing digital transformation, optimizing resource allocation, and delivering transparent, accurate, and timely services.

This design document outlines the Azure framework and environments, including a deployment strategy for Azure cloud services. It serves as a blueprint for the implementation of the AI-backed services solution, ensuring alignment with QPOST's objectives for technological advancement and digital excellence.

This document describes the cloud infrastructure the platform runs on. For how the four solutions are built as agents and workflows on top of it, see the Solution Architecture.


2. Project Overview

2.1 Scope of Work

ScopeResponsibility
Solution Design Diagram / ArchitectureMalomatia
Solution Design Sign offQPOST
Provision prerequisitesQPOST
Deploy Azure resources as per designMalomatia
Provision of identified dependenciesQPOST / Malomatia
Management of provisioned Azure ServicesQPOST

2.2 Constraints and Assumptions

IDObjective
CA-001DR is out of scope.
CA-002QPOST Hub in Qatar Central is already in place and the connectivity between QPOST HUB and On-premises is already established using both S2S VPN and/or ER.
CA-003Microsoft–Azure Qatar capacity constraints have enforced: environments to be deployed outside of Qatar Central region due to capacity constraints (the decision is to use Sweden Central); Open AI deployed outside of Qatar Central (Sweden) due to region unavailability.
CA-004All diagnostic logging will be towards the central log analytics workspace in HUB.
CA-005All public DNS entries to be provided by QPOST.
CA-006QPOST will hold the responsibility for integrating Workspace Log Analytics with the SIEM solution.
CA-007QPOST does not have API Management services within the HUB; instead an API Management service is used on-premises. This would not be the ideal use for publishing AI API services — as traffic from the cloud will need to reach on-premises for API access.

2.3 Abbreviations

AbbreviationMeaningAbbreviationMeaning
AIArtificial IntelligenceNA / N/ANot applicable
APIApplication program interfaceNIANational Information Assurance
CISCentre for Internet SecurityERExpress Route
DBDatabasePaaSPlatform as a Service
SITSystem Integration TestingPOCProof of concept
UATUser Acceptance TestingProdProduction
PRE-PRDPre-Production environmentPTUProvisioned Throughput Unit
PRDProduction environmentRIAzure Reserved Instances
DRDisaster recoveryRTMRelease to Manufacturing
DTUDatabase Transaction UnitSaaSSoftware as a service
ENVEnvironmentSSDSolid-state drive
HAHigh AvailabilityNASNational Authentication System
IaaSInfrastructure as a serviceTBDTo be decided
IaCInfrastructure as CodeTDETransparent Data Encryption
IPInternet ProtocolVMVirtual machine
LRSLocally Redundant StorageVPNVirtual private network

3. Solution Architecture Overview

The AI services solution utilizes Azure native services such as Azure Kubernetes Service, AI Speech, Document Intelligence, Stream Analytics and Translator to serve as the engine for ingestion and processing. Large Language Models (LLMs) deployed via Azure Open AI provide advanced capabilities for natural language processing and embedding functionalities. This architecture is implemented across development, staging and production environments, ensuring scalability and adherence to the Microsoft Azure Well-Architected Framework.

3.1 Environments

The solution is implemented in three environments on the Azure cloud. Separate subscriptions are used for nonproduction and production environments, following Subscription democratization principles — staying within subscription limits, easy application of permissions at subscription and granular resource-group level, reduced blast radius, and simple application of cloud guardrails using Azure Policy.

EnvironmentSubscriptionEntra Tenant ID
Development4def8f60-9ee7-4107-805e-dd18452544481a582cdf-0d83-47a3-b191-fb3954fb395c
Staging4def8f60-9ee7-4107-805e-dd18452544481a582cdf-0d83-47a3-b191-fb3954fb395c
Production07e94bf9-42cc-4fbf-be7d-e7da06a8e6691a582cdf-0d83-47a3-b191-fb3954fb395c

3.2 Solution Logical View

The logical view provides context on where the components are deployed, a brief connectivity view, and the key systems the solution integrates with. The AI solutions are deployed in Sweden Central, globally VNET-peered to the QPOST HUB in Qatar Central (QC), which connects to the on-premises Core Postal Application over S2S VPN.

Logical view — AI Solutions in Sweden Central, global VNET peering to QPOST HUB (QC) and ECOM Workload (QC), S2S VPN to on-premises Core Postal Application (Meeza MV2)

3.3 Reference Diagram (Resource Organization)

A high-level design of the complete solution end to end, from a resource deployment view. A shared QPOST Hub / Connectivity landing zone (network, network security and logging services) is VNET-peered to the QPOST AI Landing Zone for both Production and Non-Production, each grouped into Processing, Storage, Network and Platform.

Resource organization — Hub/Connectivity landing zone VNET-peered to Production and Non-Production AI landing zones, grouped by Processing, Storage, Network and Platform

3.4 Reference Diagram (Network Organization)

A high-level design from a networking deployment view: a single VNET per environment segmented into subnets (AI services, Storage, Platform, AKS), each protected by NSGs and User Defined Routes (UDR), with private endpoints for the PaaS services.

Network organization — MDP VNET segmented into AI services, Storage, Platform and AKS subnets with NSGs, UDRs and private endpoints

3.5 Traffic Flow

Traffic flow for external users, internal users and integration traffic. External user traffic enters through a Palo Alto firewall (Active/Passive) and Application Gateway (WAF, SSL offload) in the HUB before reaching the production VNET in Sweden; integration traffic reaches QPOST Souq, Core/ePOS (web.qatarpost.qa) and Synapse Analytics.

Traffic flow — external, internal and integration traffic through Palo Alto firewall, Application Gateway and Azure Firewall to the Sweden production spoke and QC spoke

Detailed integration paths, firewall rules, and the communication matrix are covered separately in the QPOST AI Integration Design.

3.6 QPOST AI Chatbot Components

ComponentDescription
Azure KubernetesHost applications, based on container images
Open AIGet intent and generate responses
Container registryStorage of container images for functions
Cosmos DBStore configurations and data
Data lakeStorage account to store data
AI SpeechSpeech recognition, text to speech, speech translation features
Document intelligenceAutomated data processing using AI and OCR to extract text and structure from documents
TranslatorText translation
Stream AnalyticsReceiving data, ingestion service
Microsoft FabricReporting services and dashboarding layer
Application gatewaysWeb application firewall capability to be provided by QPOST within HUB
Key VaultStore secrets, certificates and keys
Communication servicesFor sending out email notifications
Virtual MachinesManagement (exception can be done if jump servers are in hub) and build agents to interact with DevOps
API ManagementFor hosting Open AI and other AI services APIs. As APIM is not available in HUB for QPOST, APIs will not be published using the on-premises API service. Discussions to be held for API-Management provisioning within HUB — exact scope and provisioning to be agreed upon.
DNS ServicesPrivate DNS services hosted within the spoke environment / Subscription

4. Deployment Requirements

4.1 Prerequisites

  • Provide Azure subscriptions for all environments.
  • Provide the Malomatia team members involved in the project with user accounts within Entra ID.
  • Provide the listed Malomatia resources with Contributor or Owner permissions at Subscription level.
  • Provide Service Principals for Production and Non-Production in Entra ID.
  • Provide permissions on Log Analytics as required for configuring diagnostic settings.
  • Provide IP addresses without conflict.
  • Assistance with raising support tickets with Microsoft.
  • Add Azure policy exemptions if required.
  • Provide public DNS entries.
  • Provide integration support with internal services (communications, authentication, configuration).
  • Provide support for VNET peering and any firewall plus configurations.

4.2 Deployment Actions

ActionBy
Availability or confirmation of prerequisites provisioningQPOST
Provision landing zone – 3/three environmentsMalomatia
Provide network communication matrixMalomatia
VNET peering to HUB, firewall / routing: HUB and On-premisesQPOST
Provision workloads for three environmentsMalomatia
Commencing communication with Microsoft account team for OPENAI PTUsQPOST
Integration of AI solution to QPOST servicesMalomatia, QPOST
Testing of solution – publishing and reachability. TroubleshootingMalomatia, QPOST
Security and performance testingQPOST
Go-live change managementQPOST
Solution maintenance post go-liveQPOST

Access required (both QPOST AI subscriptions):

#NameRoleDuration
1Fahim MohammedSubscription OwnerUntil Go-Live
2Irshad AhmedSubscription OwnerUntil Go-Live
3Ahmed KhalilSubscription ContributorUntil Go-Live
4NPD SPN 5b01f995-eaac-4c21-9c28-462ad40f4075Subscription OwnerUntil Go-Live
5PRD SPN 3c50ed89-d1c8-4755-b2b9-ca13765fffbeSubscription OwnerUntil Go-Live

5. Solution

This section describes the resource allocations including organization in detail. The solution is deployed in the Sweden region and network-peered (global) with the Qatar Central HUB / Connectivity Landing Zone.

5.1 Resource Groups

Development / Non-Production (QPOST-AI-NonProd-SW)

TierResource Group Name
Processingrg-qpostai-proc-dev-sc-01 · rg-qpostai-proc-stg-sc-01
Publishingrg-qpostai-pub-dev-sc-01 · rg-qpostai-pub-stg-sc-01
Storagerg-qpostai-store-dev-sc-01 · rg-qpostai-store-stg-sc-01
Monitoringrg-qpostai-mon-dev-sc-01 · rg-qpostai-mon-stg-sc-01
Networkingrg-qpostai-net-dev-sc-01 · rg-qpostai-net-stg-sc-01
Platformrg-qpostai-pltf-dev-sc-01 · rg-qpostai-pltf-stg-sc-01

Production (QPOST-AI-Prod-SW)

TierResource Group Name
Processingrg-qpostai-proc-prd-sc-01
Publishingrg-qpostai-pub-prd-sc-01
Storagerg-qpostai-store-prd-sc-01
Monitoringrg-qpostai-mon-prd-sc-01
Networkingrg-qpostai-net-prd-sc-01
Platformrg-qpostai-pltf-prd-sc-01

5.2 Resource Tagging

Resource tagging follows the standard Microsoft Cloud Adoption Framework. Tag values will be finalized by QPOST.

Tag NameDescriptionExample ValuesUse Cases
ServiceOwnerOwner of the service or component{email}Consulting for administration or architectural decisions
CostCenterAccounting cost center associated{letters-number}Cost Center or Departments
ServiceNameName of the application, service or infra functionCategorization or Classification of services in reports and dashboards
Business CriticalityBusiness Criticality levelMission Critical, Critical, EssentialRPO/RTO and defining criticality of resources during administration
TierSpecific Tier of the resource group in the overall workloadIngestion, Processing, Data LakesRepresents the network architecture and helps to understand architecture
EnvironmentDeployment environmentDevelopment, UAT, ProductionEnvironment type
Backup WindowBackup Window of the workload{time}Comparing the resource with backup list
Data ClassificationClassification of DataHighClassification of Data
Maintenance WindowMaintenance of the workloadsSunday 0600-0800, Twice a monthTiming identification for any planned maintenance
Technical OwnerAdministrators or SMEs{email}Defines technical go-to person

5.3 Network

5.3.1 Virtual Network

A single virtual network per environment is sufficient to encompass all components.

Subscription, EnvironmentVirtual Network NameAddress Space
QPOST-AI-NonProd — Developmentvnet-qpostai-dev-sc-01172.27.28.0/24
QPOST-AI-NonProd — Stagingvnet-qpostai-uat-sc-01172.27.29.0/24
QPOST-AI-Prod — Productionvnet-qpostai-prd-sc-01172.27.30.0/24

5.3.2 Subnets

Development — vnet-qpostai-dev-sc-01

Subnet NamePurposeCIDR
snet-aiservices-dev-01All AI private endpoints172.27.28.128/28
snet-aks-dev-01AKS cluster (CNI Overlay/Calico)172.27.28.0/26
snet-storage-dev-01Cosmos DB and Storage172.27.28.144/28
snet-pltf-dev-01Key Vault, Comms, VMs, ACR172.27.28.160/28

Staging — vnet-qpostai-stg-sc-01

Subnet NamePurposeCIDR
snet-aiservices-uat-01All AI private endpoints172.27.29.128/28
snet-aks-uat-01AKS cluster (CNI Overlay/Calico)172.27.29.0/26
snet-storage-uat-01Cosmos DB and Storage172.27.29.144/28
snet-pltf-uat-01Key Vault, Comms, VMs, ACR172.27.29.160/28

Production — vnet-qpostai-prd-sc-01

Subnet NamePurposeCIDR
snet-aiservices-prd-01All AI private endpoints172.27.30.128/28
snet-aks-prd-01AKS cluster (CNI Overlay/Calico)172.27.30.0/26
snet-storage-prd-01Cosmos DB and Storage172.27.30.144/28
snet-pltf-prd-01Key Vault, Comms, VMs, ACR172.27.30.160/28

5.3.3 VNET Peering

VNET peering connects each spoke VNET to the QPOST HUB QC VNET to maintain connectivity between AI Services and QPOST existing components in Azure and On-Premises.

SubscriptionVNET PeeringSettings
Non-Productionvnet-qpostai-dev-sc-01-to-vnet-hub-qc-001Default
Non-Productionvnet-qpostai-stg-sc-01-to-vnet-hub-qc-001Default
Productionvnet-qpostai-prd-sc-01-to-vnet-hub-qc-001Default

5.4 Data & AI Components (Resources & SKUs)

As of January 2025, services have been commissioned at a lower SKU where possible; resources will be scaled up as required.

Development

RGComponentSKUConfiguration
rg-qpostai-proc-dev-sc-01Open AI oai-qpostai-dev-sc-01StandardN/A (no PTU)
Document Intelligence di-qpostai-dev-sc-01S1N/A
Speech Service spch-qpostai-dev-sc-01S0N/A
Translator trsl-qpostai-dev-sc-01Standard S1N/A
Stream Analytics asa-qpostai-dev-sc-012 Units
Azure Kubernetes aks-qpostai-dev-sc-01StandardSystem and user node pools, min 2 nodes
fabricqpostaidevsc01F2N/A
rg-qpostai-store-dev-sc-01Cosmos DB cosmos-mongo-qpostai-dev-sc-01Provisioned throughputMongo DB
Cosmos DB cosmos-gremlin-qpostai-dev-sc-01Provisioned throughputGremlin
rg-qpostai-pltf-dev-sc-01Container Registry crqpostaidevwe01PremiumN/A
Key Vault kv-qpostai-dev-sc-01PremiumSoft delete Purge Protection
Communication Services acs-qpostai-dev-sc-01N/AN/A
VM – Management x1Standard D4dsWindows (Windows 10 Pro)
VM – Build Agent x1 (not deployed)Standard D4dsWindows Server 2019/2022

Staging

RGComponentSKUConfiguration
rg-qpostai-proc-stg-sc-01Open AI oai-qpostai-uat-sc-01StandardN/A (no PTU)
Document Intelligence di-qpostai-uat-sc-01S1N/A
Speech Service spch-qpostai-uat-sc-01S0N/A
Translator trsl-qpostai-uat-sc-01Standard S1N/A
Stream Analytics asa-qpostai-uat-sc-012 Units
Azure Kubernetes aks-qpostai-uat-sc-01StandardSystem and user node pools, min 2 nodes
fabricqpostaiuatwe01F2N/A
rg-qpostai-store-stg-sc-01Cosmos DB cosmos-mongo-qpostai-stg-sc-01Provisioned throughputMongo DB
Cosmos DB cosmos-gremlin-qpostai-stg-sc-01Provisioned throughputGremlin
rg-qpostai-pltf-stg-sc-01Container Registry crqpostaiuatwe01PremiumN/A
Key Vault kv-qpostai-uat-sc-01PremiumSoft delete Purge Protection
Communication Services acs-qpostai-uat-sc-01N/AN/A
VM – Mgmt x1 (not deployed)Standard D4dsWindows (Windows 10 Pro)
VM – Build Agent x1Standard D4dsWindows Server 2019/2022

Production

RGComponentSKUConfiguration
rg-qpostai-proc-prd-sc-01Open AI oai-qpostai-prd-sc-01StandardPTU details to be finalized
Document Intelligence di-qpostai-prd-sc-01S1N/A
Speech Service spch-qpostai-prd-sc-01S0N/A
Translator trsl-qpostai-prd-sc-01Standard S1N/A
Stream Analytics asa-qpostai-prd-sc-018 Units
Azure Kubernetes aks-qpostai-prd-sc-01PremiumSystem and user node pools, min 3 nodes
fabricqpostaiprdwe01F2N/A
rg-qpostai-store-prd-sc-01Cosmos DB cosmos-mongo-qpostai-prd-sc-01Provisioned throughputMongo DB
Cosmos DB cosmos-gremlin-qpostai-prd-sc-01Provisioned throughputGremlin
rg-qpostai-pltf-prd-sc-01Container Registry crqpostaiprdwe01PremiumN/A
Key Vault kv-qpostai-prd-sc-01PremiumSoft delete Purge Protection
Communication Services acs-qpostai-prd-sc-01N/AN/A
VM – Management x2Standard D4dsWindows (Windows 10 Pro)
VM – Build Agent x1Standard D4dsWindows Server 2019/2022

6. Cost Optimization

Design DecisionDetails
Reserved InstancesAzure Reserved Instances are used for Open AI in Production. This reservation is renewed monthly (PTU count, ID and region to be finalized).
Auto-Scaling and Right-SizingThe size of VMs should be continuously monitored and adjusted based on performance metrics and usage to avoid over-provisioning. Management VMs can shut down when not used.
Cost Monitoring and ManagementBudgets and cost alerts should be set up to monitor spending across subscriptions and resource groups. Azure Cost Analysis should be used to identify and eliminate underutilized resources.
Tagging and Resource ManagementA comprehensive tagging strategy should be implemented to track resource usage and costs by projects and environments — enabling accurate cost allocation and chargeback.

7. Security

Design DecisionDetails
Identity and Access ManagementEntra ID used for centralized identity management; MFA and Conditional Access Policies should be implemented. RBAC applied to ensure users and applications have the minimum required permissions.
Network SecurityNetwork segmented using VNets and subnets; NSGs control inbound/outbound traffic. Palo Alto NVA, Azure Firewall and DDoS Protection deployed for centralized network security. All services use private networking.
Data ProtectionData encrypted using Azure Storage Service Encryption and TDE for databases; SSL/TLS for data in transit. Managed identities used to access encryption keys (e.g. Key Vault Crypto User). Secrets, encryption keys and certificates stored and managed in Azure Key Vault.
Monitoring and Threat DetectionAzure Defender for Cloud enabled for security posture visibility; Azure Sentinel used for advanced threat detection and response.
Compliance and GovernanceAzure Policies implemented to enforce compliance with organizational and regulatory standards; security configurations regularly audited and reviewed.

8. Authentication

The solution's services require interaction between each other via Service Principals registered in Entra ID. For supported services, application Managed Identities are used.

App RegistrationDetails and Purpose
SPN-QPOSTAI-NONPRODClient ID 5b01f995-eaac-4c21-9c28-462ad40f4075 — used for deployment from DevOps
SPN-QPOSTAI-PRODClient ID 3c50ed89-d1c8-4755-b2b9-ca13765fffbe — used for deployment from DevOps
SPN-Apps-QPOSTAI-NONPRODClient ID to be requested as required — used for services integration
SPN-Apps-QPOSTAI-PRODClient ID to be requested as required — used for services integration

9. Reliability

Design DecisionImplementation Strategy
Redundancy and BackupServices required for backup are configured within service for easy restoration — such as Cosmos DB, Storage and Key Vault.
Zone redundancyServices use zone-redundant deployments to avail multi-datacenter benefits.

10. Operational Excellence

RecommendationDetails
Logging and MonitoringDiagnostic logs are sent to central Log Analytics in the HUB. Azure Monitor Alerts are configured for key resource alerts. Application Insights and Power BI reporting configured for viewing reports.
UpdatesAs the components are PaaS services, updates are managed by Microsoft. For virtual machines, auto-updates are to be configured.

11. Related Documents