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
| Scope | Responsibility |
|---|---|
| Solution Design Diagram / Architecture | Malomatia |
| Solution Design Sign off | QPOST |
| Provision prerequisites | QPOST |
| Deploy Azure resources as per design | Malomatia |
| Provision of identified dependencies | QPOST / Malomatia |
| Management of provisioned Azure Services | QPOST |
2.2 Constraints and Assumptions
| ID | Objective |
|---|---|
| CA-001 | DR is out of scope. |
| CA-002 | QPOST 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-003 | Microsoft–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-004 | All diagnostic logging will be towards the central log analytics workspace in HUB. |
| CA-005 | All public DNS entries to be provided by QPOST. |
| CA-006 | QPOST will hold the responsibility for integrating Workspace Log Analytics with the SIEM solution. |
| CA-007 | QPOST 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
| Abbreviation | Meaning | Abbreviation | Meaning |
|---|---|---|---|
| AI | Artificial Intelligence | NA / N/A | Not applicable |
| API | Application program interface | NIA | National Information Assurance |
| CIS | Centre for Internet Security | ER | Express Route |
| DB | Database | PaaS | Platform as a Service |
| SIT | System Integration Testing | POC | Proof of concept |
| UAT | User Acceptance Testing | Prod | Production |
| PRE-PRD | Pre-Production environment | PTU | Provisioned Throughput Unit |
| PRD | Production environment | RI | Azure Reserved Instances |
| DR | Disaster recovery | RTM | Release to Manufacturing |
| DTU | Database Transaction Unit | SaaS | Software as a service |
| ENV | Environment | SSD | Solid-state drive |
| HA | High Availability | NAS | National Authentication System |
| IaaS | Infrastructure as a service | TBD | To be decided |
| IaC | Infrastructure as Code | TDE | Transparent Data Encryption |
| IP | Internet Protocol | VM | Virtual machine |
| LRS | Locally Redundant Storage | VPN | Virtual 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.
| Environment | Subscription | Entra Tenant ID |
|---|---|---|
| Development | 4def8f60-9ee7-4107-805e-dd1845254448 | 1a582cdf-0d83-47a3-b191-fb3954fb395c |
| Staging | 4def8f60-9ee7-4107-805e-dd1845254448 | 1a582cdf-0d83-47a3-b191-fb3954fb395c |
| Production | 07e94bf9-42cc-4fbf-be7d-e7da06a8e669 | 1a582cdf-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.
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.
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.
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.
Detailed integration paths, firewall rules, and the communication matrix are covered separately in the QPOST AI Integration Design.
3.6 QPOST AI Chatbot Components
| Component | Description |
|---|---|
| Azure Kubernetes | Host applications, based on container images |
| Open AI | Get intent and generate responses |
| Container registry | Storage of container images for functions |
| Cosmos DB | Store configurations and data |
| Data lake | Storage account to store data |
| AI Speech | Speech recognition, text to speech, speech translation features |
| Document intelligence | Automated data processing using AI and OCR to extract text and structure from documents |
| Translator | Text translation |
| Stream Analytics | Receiving data, ingestion service |
| Microsoft Fabric | Reporting services and dashboarding layer |
| Application gateways | Web application firewall capability to be provided by QPOST within HUB |
| Key Vault | Store secrets, certificates and keys |
| Communication services | For sending out email notifications |
| Virtual Machines | Management (exception can be done if jump servers are in hub) and build agents to interact with DevOps |
| API Management | For 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 Services | Private 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
| Action | By |
|---|---|
| Availability or confirmation of prerequisites provisioning | QPOST |
| Provision landing zone – 3/three environments | Malomatia |
| Provide network communication matrix | Malomatia |
| VNET peering to HUB, firewall / routing: HUB and On-premises | QPOST |
| Provision workloads for three environments | Malomatia |
| Commencing communication with Microsoft account team for OPENAI PTUs | QPOST |
| Integration of AI solution to QPOST services | Malomatia, QPOST |
| Testing of solution – publishing and reachability. Troubleshooting | Malomatia, QPOST |
| Security and performance testing | QPOST |
| Go-live change management | QPOST |
| Solution maintenance post go-live | QPOST |
Access required (both QPOST AI subscriptions):
| # | Name | Role | Duration |
|---|---|---|---|
| 1 | Fahim Mohammed | Subscription Owner | Until Go-Live |
| 2 | Irshad Ahmed | Subscription Owner | Until Go-Live |
| 3 | Ahmed Khalil | Subscription Contributor | Until Go-Live |
| 4 | NPD SPN 5b01f995-eaac-4c21-9c28-462ad40f4075 | Subscription Owner | Until Go-Live |
| 5 | PRD SPN 3c50ed89-d1c8-4755-b2b9-ca13765fffbe | Subscription Owner | Until 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)
| Tier | Resource Group Name |
|---|---|
| Processing | rg-qpostai-proc-dev-sc-01 · rg-qpostai-proc-stg-sc-01 |
| Publishing | rg-qpostai-pub-dev-sc-01 · rg-qpostai-pub-stg-sc-01 |
| Storage | rg-qpostai-store-dev-sc-01 · rg-qpostai-store-stg-sc-01 |
| Monitoring | rg-qpostai-mon-dev-sc-01 · rg-qpostai-mon-stg-sc-01 |
| Networking | rg-qpostai-net-dev-sc-01 · rg-qpostai-net-stg-sc-01 |
| Platform | rg-qpostai-pltf-dev-sc-01 · rg-qpostai-pltf-stg-sc-01 |
Production (QPOST-AI-Prod-SW)
| Tier | Resource Group Name |
|---|---|
| Processing | rg-qpostai-proc-prd-sc-01 |
| Publishing | rg-qpostai-pub-prd-sc-01 |
| Storage | rg-qpostai-store-prd-sc-01 |
| Monitoring | rg-qpostai-mon-prd-sc-01 |
| Networking | rg-qpostai-net-prd-sc-01 |
| Platform | rg-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 Name | Description | Example Values | Use Cases |
|---|---|---|---|
| ServiceOwner | Owner of the service or component | {email} | Consulting for administration or architectural decisions |
| CostCenter | Accounting cost center associated | {letters-number} | Cost Center or Departments |
| ServiceName | Name of the application, service or infra function | Categorization or Classification of services in reports and dashboards | |
| Business Criticality | Business Criticality level | Mission Critical, Critical, Essential | RPO/RTO and defining criticality of resources during administration |
| Tier | Specific Tier of the resource group in the overall workload | Ingestion, Processing, Data Lakes | Represents the network architecture and helps to understand architecture |
| Environment | Deployment environment | Development, UAT, Production | Environment type |
| Backup Window | Backup Window of the workload | {time} | Comparing the resource with backup list |
| Data Classification | Classification of Data | High | Classification of Data |
| Maintenance Window | Maintenance of the workloads | Sunday 0600-0800, Twice a month | Timing identification for any planned maintenance |
| Technical Owner | Administrators 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, Environment | Virtual Network Name | Address Space |
|---|---|---|
| QPOST-AI-NonProd — Development | vnet-qpostai-dev-sc-01 | 172.27.28.0/24 |
| QPOST-AI-NonProd — Staging | vnet-qpostai-uat-sc-01 | 172.27.29.0/24 |
| QPOST-AI-Prod — Production | vnet-qpostai-prd-sc-01 | 172.27.30.0/24 |
5.3.2 Subnets
Development — vnet-qpostai-dev-sc-01
| Subnet Name | Purpose | CIDR |
|---|---|---|
snet-aiservices-dev-01 | All AI private endpoints | 172.27.28.128/28 |
snet-aks-dev-01 | AKS cluster (CNI Overlay/Calico) | 172.27.28.0/26 |
snet-storage-dev-01 | Cosmos DB and Storage | 172.27.28.144/28 |
snet-pltf-dev-01 | Key Vault, Comms, VMs, ACR | 172.27.28.160/28 |
Staging — vnet-qpostai-stg-sc-01
| Subnet Name | Purpose | CIDR |
|---|---|---|
snet-aiservices-uat-01 | All AI private endpoints | 172.27.29.128/28 |
snet-aks-uat-01 | AKS cluster (CNI Overlay/Calico) | 172.27.29.0/26 |
snet-storage-uat-01 | Cosmos DB and Storage | 172.27.29.144/28 |
snet-pltf-uat-01 | Key Vault, Comms, VMs, ACR | 172.27.29.160/28 |
Production — vnet-qpostai-prd-sc-01
| Subnet Name | Purpose | CIDR |
|---|---|---|
snet-aiservices-prd-01 | All AI private endpoints | 172.27.30.128/28 |
snet-aks-prd-01 | AKS cluster (CNI Overlay/Calico) | 172.27.30.0/26 |
snet-storage-prd-01 | Cosmos DB and Storage | 172.27.30.144/28 |
snet-pltf-prd-01 | Key Vault, Comms, VMs, ACR | 172.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.
| Subscription | VNET Peering | Settings |
|---|---|---|
| Non-Production | vnet-qpostai-dev-sc-01-to-vnet-hub-qc-001 | Default |
| Non-Production | vnet-qpostai-stg-sc-01-to-vnet-hub-qc-001 | Default |
| Production | vnet-qpostai-prd-sc-01-to-vnet-hub-qc-001 | Default |
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
| RG | Component | SKU | Configuration |
|---|---|---|---|
rg-qpostai-proc-dev-sc-01 | Open AI oai-qpostai-dev-sc-01 | Standard | N/A (no PTU) |
Document Intelligence di-qpostai-dev-sc-01 | S1 | N/A | |
Speech Service spch-qpostai-dev-sc-01 | S0 | N/A | |
Translator trsl-qpostai-dev-sc-01 | Standard S1 | N/A | |
Stream Analytics asa-qpostai-dev-sc-01 | – | 2 Units | |
Azure Kubernetes aks-qpostai-dev-sc-01 | Standard | System and user node pools, min 2 nodes | |
fabricqpostaidevsc01 | F2 | N/A | |
rg-qpostai-store-dev-sc-01 | Cosmos DB cosmos-mongo-qpostai-dev-sc-01 | Provisioned throughput | Mongo DB |
Cosmos DB cosmos-gremlin-qpostai-dev-sc-01 | Provisioned throughput | Gremlin | |
rg-qpostai-pltf-dev-sc-01 | Container Registry crqpostaidevwe01 | Premium | N/A |
Key Vault kv-qpostai-dev-sc-01 | Premium | Soft delete Purge Protection | |
Communication Services acs-qpostai-dev-sc-01 | N/A | N/A | |
| VM – Management x1 | Standard D4ds | Windows (Windows 10 Pro) | |
| VM – Build Agent x1 (not deployed) | Standard D4ds | Windows Server 2019/2022 |
Staging
| RG | Component | SKU | Configuration |
|---|---|---|---|
rg-qpostai-proc-stg-sc-01 | Open AI oai-qpostai-uat-sc-01 | Standard | N/A (no PTU) |
Document Intelligence di-qpostai-uat-sc-01 | S1 | N/A | |
Speech Service spch-qpostai-uat-sc-01 | S0 | N/A | |
Translator trsl-qpostai-uat-sc-01 | Standard S1 | N/A | |
Stream Analytics asa-qpostai-uat-sc-01 | – | 2 Units | |
Azure Kubernetes aks-qpostai-uat-sc-01 | Standard | System and user node pools, min 2 nodes | |
fabricqpostaiuatwe01 | F2 | N/A | |
rg-qpostai-store-stg-sc-01 | Cosmos DB cosmos-mongo-qpostai-stg-sc-01 | Provisioned throughput | Mongo DB |
Cosmos DB cosmos-gremlin-qpostai-stg-sc-01 | Provisioned throughput | Gremlin | |
rg-qpostai-pltf-stg-sc-01 | Container Registry crqpostaiuatwe01 | Premium | N/A |
Key Vault kv-qpostai-uat-sc-01 | Premium | Soft delete Purge Protection | |
Communication Services acs-qpostai-uat-sc-01 | N/A | N/A | |
| VM – Mgmt x1 (not deployed) | Standard D4ds | Windows (Windows 10 Pro) | |
| VM – Build Agent x1 | Standard D4ds | Windows Server 2019/2022 |
Production
| RG | Component | SKU | Configuration |
|---|---|---|---|
rg-qpostai-proc-prd-sc-01 | Open AI oai-qpostai-prd-sc-01 | Standard | PTU details to be finalized |
Document Intelligence di-qpostai-prd-sc-01 | S1 | N/A | |
Speech Service spch-qpostai-prd-sc-01 | S0 | N/A | |
Translator trsl-qpostai-prd-sc-01 | Standard S1 | N/A | |
Stream Analytics asa-qpostai-prd-sc-01 | – | 8 Units | |
Azure Kubernetes aks-qpostai-prd-sc-01 | Premium | System and user node pools, min 3 nodes | |
fabricqpostaiprdwe01 | F2 | N/A | |
rg-qpostai-store-prd-sc-01 | Cosmos DB cosmos-mongo-qpostai-prd-sc-01 | Provisioned throughput | Mongo DB |
Cosmos DB cosmos-gremlin-qpostai-prd-sc-01 | Provisioned throughput | Gremlin | |
rg-qpostai-pltf-prd-sc-01 | Container Registry crqpostaiprdwe01 | Premium | N/A |
Key Vault kv-qpostai-prd-sc-01 | Premium | Soft delete Purge Protection | |
Communication Services acs-qpostai-prd-sc-01 | N/A | N/A | |
| VM – Management x2 | Standard D4ds | Windows (Windows 10 Pro) | |
| VM – Build Agent x1 | Standard D4ds | Windows Server 2019/2022 |
6. Cost Optimization
| Design Decision | Details |
|---|---|
| Reserved Instances | Azure 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-Sizing | The 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 Management | Budgets 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 Management | A 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 Decision | Details |
|---|---|
| Identity and Access Management | Entra 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 Security | Network 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 Protection | Data 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 Detection | Azure Defender for Cloud enabled for security posture visibility; Azure Sentinel used for advanced threat detection and response. |
| Compliance and Governance | Azure 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 Registration | Details and Purpose |
|---|---|
| SPN-QPOSTAI-NONPROD | Client ID 5b01f995-eaac-4c21-9c28-462ad40f4075 — used for deployment from DevOps |
| SPN-QPOSTAI-PROD | Client ID 3c50ed89-d1c8-4755-b2b9-ca13765fffbe — used for deployment from DevOps |
| SPN-Apps-QPOSTAI-NONPROD | Client ID to be requested as required — used for services integration |
| SPN-Apps-QPOSTAI-PROD | Client ID to be requested as required — used for services integration |
9. Reliability
| Design Decision | Implementation Strategy |
|---|---|
| Redundancy and Backup | Services required for backup are configured within service for easy restoration — such as Cosmos DB, Storage and Key Vault. |
| Zone redundancy | Services use zone-redundant deployments to avail multi-datacenter benefits. |
10. Operational Excellence
| Recommendation | Details |
|---|---|
| Logging and Monitoring | Diagnostic 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. |
| Updates | As the components are PaaS services, updates are managed by Microsoft. For virtual machines, auto-updates are to be configured. |
11. Related Documents
- Solution Architecture — how the four solutions are built on the Eloquent platform
- Website Assistant
- Branch Assistant
- Internal AI Assistant
- Customs Clearance AI