{"id":419,"date":"2026-04-13T23:58:52","date_gmt":"2026-04-13T23:58:52","guid":{"rendered":"https:\/\/www.devopsschool.com\/tutorials\/azure-horizondb-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-databases\/"},"modified":"2026-04-13T23:58:52","modified_gmt":"2026-04-13T23:58:52","slug":"azure-horizondb-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-databases","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/tutorials\/azure-horizondb-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-databases\/","title":{"rendered":"Azure HorizonDB Tutorial: Architecture, Pricing, Use Cases, and Hands-On Guide for Databases"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Category<\/h2>\n\n\n\n<p>Databases<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What this service is<\/h3>\n\n\n\n<p>As of this writing (based on publicly available Microsoft\/Azure documentation up to my knowledge cutoff), <strong>there is no publicly documented Azure database service named \u201cAzure HorizonDB\u201d<\/strong> on Microsoft Learn, the Azure Products catalog, or the Azure Pricing pages. That strongly suggests one of the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>codename<\/strong> used in internal materials<\/li>\n<li>A <strong>private preview<\/strong> or <strong>limited release<\/strong> service not broadly documented<\/li>\n<li>A <strong>partner\/third-party<\/strong> offering that is being referenced as if it were first-party<\/li>\n<li>A <strong>data inventory\/CSV artifact<\/strong> that doesn\u2019t match current Azure product names<\/li>\n<\/ul>\n\n\n\n<p>Because the service is not publicly documented, this tutorial focuses on <strong>how to verify what \u201cAzure HorizonDB\u201d refers to in your tenant\/subscription<\/strong>, how to <strong>validate its capabilities safely<\/strong>, and how to <strong>apply proven Azure database architecture, security, and cost practices<\/strong> while using a fully executable hands-on lab based on an official, documented Azure database service (used as a reference implementation).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One-paragraph simple explanation<\/h3>\n\n\n\n<p>If \u201cAzure HorizonDB\u201d appears in your organization\u2019s service catalog, treat it as an <strong>unverified database service label<\/strong> until you confirm it in official Azure documentation or through your Microsoft account team. In the meantime, you can still learn the essential skills that apply to almost all Azure managed databases\u2014identity, networking, encryption, monitoring, backups, and cost control\u2014using documented Azure database services.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One-paragraph technical explanation<\/h3>\n\n\n\n<p>Azure databases are typically delivered as Azure Resource Manager (ARM) resource providers with a discoverable namespace, a defined control plane (create\/scale\/configure), and a defined data plane (connect\/query). When a service name cannot be found in official docs\/pricing, the right technical approach is to (1) confirm whether a corresponding <strong>resource provider<\/strong> exists in your subscription, (2) identify <strong>resource types<\/strong> and API versions, (3) locate <strong>official onboarding documentation<\/strong>, and (4) validate key properties (SLA, consistency model, HA\/DR, security controls, limits, and pricing meters). This tutorial provides that verification workflow.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What problem it solves<\/h3>\n\n\n\n<p>This tutorial solves a practical problem many platform teams face: <strong>a service name shows up in an internal spreadsheet, CMDB, or architecture diagram, but it\u2019s not clear what the service actually is<\/strong>. You\u2019ll learn a repeatable approach to validate \u201cAzure HorizonDB\u201d safely and\u2014regardless of the outcome\u2014how to implement a secure, cost-aware managed database pattern on Azure.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. What is Azure HorizonDB?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Official purpose<\/h3>\n\n\n\n<p><strong>Not publicly verifiable.<\/strong> There is <strong>no official Microsoft Learn documentation page<\/strong> or <strong>official Azure pricing entry<\/strong> that describes \u201cAzure HorizonDB\u201d as a first-party Azure Databases service (verify in official docs).<\/p>\n\n\n\n<p>What you should do instead is treat \u201cAzure HorizonDB\u201d as a <strong>name that must be validated<\/strong> against:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Portal (search for the service)<\/li>\n<li>Azure Resource Provider namespaces in your subscription<\/li>\n<li>Azure Products catalog<\/li>\n<li>Azure Updates announcements<\/li>\n<li>Microsoft Learn documentation<\/li>\n<li>Your Microsoft support\/account channel (for private preview\/limited release confirmation)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Core capabilities<\/h3>\n\n\n\n<p><strong>Unknown publicly (verify in official docs).<\/strong> Do not assume it is relational, NoSQL, time-series, graph, or distributed SQL. Azure has multiple database services across those models (Azure SQL Database, Azure Cosmos DB, Azure Database for PostgreSQL, Azure Cache for Redis, etc.), and the name \u201cHorizonDB\u201d does not map to a known first-party service.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Major components<\/h3>\n\n\n\n<p>Because \u201cAzure HorizonDB\u201d is not publicly documented, you should identify components by discovery:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Control plane<\/strong>: ARM resource types (e.g., <code>Microsoft.&lt;namespace&gt;\/&lt;type&gt;<\/code>)<\/li>\n<li><strong>Data plane<\/strong>: endpoints, auth methods (keys, Azure AD), ports\/protocols, drivers\/SDKs<\/li>\n<li><strong>Operational plane<\/strong>: monitoring signals in Azure Monitor, diagnostic logs, metrics<\/li>\n<li><strong>Networking<\/strong>: public endpoint vs Private Link, firewall rules, VNet integration<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Service type<\/h3>\n\n\n\n<p><strong>Unverified.<\/strong> If it is a managed database service, it would typically be a <strong>PaaS<\/strong> offering in Azure Databases. If it is a software product, it might be an <strong>IaaS\/self-managed<\/strong> database running on Azure VMs, or an <strong>Azure Marketplace<\/strong> solution.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scope (regional\/global\/zonal\/subscription-scoped)<\/h3>\n\n\n\n<p><strong>Unverified.<\/strong> Most Azure database services are <strong>regional<\/strong> resources (created in a region) with HA\/DR features that can be zonal or multi-region depending on SKU. You must validate this for Azure HorizonDB if it exists in your tenant.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How it fits into the Azure ecosystem<\/h3>\n\n\n\n<p>Even without confirmed HorizonDB details, the integration expectations for an Azure database service typically include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Identity<\/strong>: Microsoft Entra ID (Azure AD), managed identities, RBAC (control plane), possibly data-plane RBAC<\/li>\n<li><strong>Networking<\/strong>: firewall rules, Private Link, VNet integration patterns<\/li>\n<li><strong>Security<\/strong>: encryption at rest, TLS in transit, key management options (platform-managed keys or customer-managed keys)<\/li>\n<li><strong>Ops<\/strong>: Azure Monitor metrics\/logs, alerts, backups, patching (managed), scaling<\/li>\n<\/ul>\n\n\n\n<p>Use these as a <strong>validation checklist<\/strong>, not assumptions.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Why use Azure HorizonDB?<\/h2>\n\n\n\n<p>Because the service itself is not publicly verifiable, this section is written in two parts:<\/p>\n\n\n\n<p>1) <strong>Reasons to use Azure HorizonDB (only if it is confirmed and documented in your environment)<\/strong><br\/>\n2) <strong>Reasons to avoid adopting it until it is confirmed<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Business reasons (conditional)<\/h3>\n\n\n\n<p>If Azure HorizonDB is a real, supported service in your tenant (verify), the common business drivers for adopting an Azure managed database include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reduced operational overhead vs self-managed VMs (patching, upgrades, backups often handled by the service)<\/li>\n<li>Faster time-to-market through managed provisioning and scaling<\/li>\n<li>Predictable governance model via Azure Policy, tagging, RBAC, and centralized logging<\/li>\n<\/ul>\n\n\n\n<p><strong>But<\/strong> these benefits are only real if you can confirm the service\u2019s <strong>SLA, supportability, and pricing meters<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Technical reasons (conditional)<\/h3>\n\n\n\n<p>A managed database service is typically chosen for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Built-in high availability options<\/li>\n<li>Managed backups and restore workflows<\/li>\n<li>Simplified scaling of compute\/storage\/throughput<\/li>\n<li>Standardized authentication and secure connectivity patterns<\/li>\n<\/ul>\n\n\n\n<p>For Azure HorizonDB specifically: <strong>do not assume<\/strong> any of these exist until verified.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Operational reasons<\/h3>\n\n\n\n<p>Even when a service is unknown, operational teams should prefer services that are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visible in Azure Resource Graph and Activity Log<\/li>\n<li>Emitting standard Azure Monitor metrics and diagnostic logs<\/li>\n<li>Covered by Azure Policy and RBAC<\/li>\n<li>Supported by Microsoft support channels<\/li>\n<\/ul>\n\n\n\n<p>Your first operational task is to confirm whether Azure HorizonDB meets these conditions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/compliance reasons<\/h3>\n\n\n\n<p>Security teams should require, at minimum:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clear identity model (Entra ID\/RBAC)<\/li>\n<li>Documented encryption posture and key management<\/li>\n<li>Audit logging and integration with SIEM (Microsoft Sentinel)<\/li>\n<li>Compliance documentation (SOC, ISO, PCI, HIPAA\u2014depending on your needs)<\/li>\n<\/ul>\n\n\n\n<p>If Azure HorizonDB is not documented, <strong>treat it as high-risk<\/strong> until proven otherwise.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability\/performance reasons<\/h3>\n\n\n\n<p>Database choice must match workload requirements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Latency and throughput targets<\/li>\n<li>Consistency model (strong vs eventual)<\/li>\n<li>Geo-replication and DR posture<\/li>\n<li>Hot partitions, indexing, caching strategy<\/li>\n<\/ul>\n\n\n\n<p>You cannot map Azure HorizonDB to these requirements until the service is confirmed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should choose it<\/h3>\n\n\n\n<p>Choose Azure HorizonDB only when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You can locate official documentation and pricing<\/li>\n<li>You can verify it is a first-party supported Azure service or a vetted marketplace offering<\/li>\n<li>Your architecture review confirms it meets data model, HA\/DR, and compliance needs<\/li>\n<li>Your SRE\/operations team can monitor and support it<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When they should not choose it<\/h3>\n\n\n\n<p>Do not choose it when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It cannot be found in official Azure docs\/pricing<\/li>\n<li>It has unclear ownership (internal codename vs actual service)<\/li>\n<li>It lacks defined SLAs\/support boundaries<\/li>\n<li>It introduces unknown security\/compliance gaps<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Where is Azure HorizonDB used?<\/h2>\n\n\n\n<p>Because the service is not publicly verifiable, the only accurate answer is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Publicly verifiable usage:<\/strong> none (verify in official docs)<\/li>\n<li><strong>Possible internal\/limited usage:<\/strong> may exist in certain organizations if it\u2019s a private preview or internal codename (verify with Microsoft or your tenant administrators)<\/li>\n<\/ul>\n\n\n\n<p>What you <em>can<\/em> do today is evaluate <em>where an Azure managed database service<\/em> is typically used and map that to HorizonDB <strong>only after confirmation<\/strong>:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Industries (typical for Azure databases)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Finance (transactional systems, fraud analytics)<\/li>\n<li>Healthcare (patient systems with strict security\/compliance)<\/li>\n<li>Retail\/e-commerce (catalog, orders, personalization)<\/li>\n<li>SaaS and ISVs (multi-tenant app backends)<\/li>\n<li>Manufacturing\/IoT (telemetry storage, device state)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Team types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Platform engineering (standard database landing zones)<\/li>\n<li>Application teams (API backends, microservices)<\/li>\n<li>Data engineering (operational stores feeding analytics)<\/li>\n<li>Security\/Compliance (auditability and encryption controls)<\/li>\n<li>SRE\/Operations (availability, performance, incident response)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Workloads and architectures<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Web\/mobile backends (CRUD + search patterns)<\/li>\n<li>Microservices data stores (service-per-database patterns)<\/li>\n<li>Event-driven processing (Functions\/Service Bus + database)<\/li>\n<li>Hybrid connectivity (on-prem to Azure)<\/li>\n<li>Multi-region active\/passive or active\/active designs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Production vs dev\/test usage<\/h3>\n\n\n\n<p>For an unverified service name like Azure HorizonDB, prefer:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dev\/test only<\/strong> until verified and supported<\/li>\n<li>A formal production readiness review before any production adoption<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Top Use Cases and Scenarios<\/h2>\n\n\n\n<p>Below are realistic Azure database use cases. For each, <strong>Azure HorizonDB is only a fit if you confirm it supports the required data model, SLAs, networking, and pricing<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Transactional application backend<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Store and retrieve transactional data with predictable latency.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB is a managed transactional database with HA\/backups.<\/li>\n<li><strong>Example:<\/strong> An internal HR portal storing employee profile and workflow state.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Globally distributed user profile store<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Low-latency reads across regions.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports multi-region replication and tunable consistency.<\/li>\n<li><strong>Example:<\/strong> A consumer app storing user preferences close to users worldwide.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Event-driven ingestion buffer (operational store)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Ingest high write volumes from queues\/streams.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports high throughput writes and partitioning.<\/li>\n<li><strong>Example:<\/strong> IoT devices sending status updates via Event Hubs, stored for API queries.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Multi-tenant SaaS metadata database<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Isolate tenants logically and enforce access controls.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports tenant partitioning and strong access control integration.<\/li>\n<li><strong>Example:<\/strong> SaaS app storing tenant configuration, feature flags, and billing metadata.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Session state and caching-like patterns (database-backed)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Maintain session state with TTL and quick access.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports TTL\/expiration and low-latency key-based access.<\/li>\n<li><strong>Example:<\/strong> API gateway storing temporary auth\/session artifacts.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Product catalog with flexible schema<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Catalog items vary by category; schema evolves.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports semi-structured documents or flexible columns.<\/li>\n<li><strong>Example:<\/strong> Marketplace catalog for electronics vs apparel with different attributes.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) Audit and compliance event store<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Store append-only audit logs with retention controls.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports immutable\/append patterns and retention.<\/li>\n<li><strong>Example:<\/strong> Security events from internal apps, queried during audits.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) Operational reporting store<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Provide fast queries for dashboards without impacting OLTP systems.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports read replicas or analytical indexing patterns.<\/li>\n<li><strong>Example:<\/strong> Support dashboards showing ticket counts, SLA breaches, and trends.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Hybrid application data store<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Connect from on-prem apps to Azure database securely.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports private connectivity (VPN\/ExpressRoute + Private Link).<\/li>\n<li><strong>Example:<\/strong> Legacy ERP on-prem reads\/writes reference data in Azure.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">10) Disaster recovery target database<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> Maintain a DR copy for business continuity.<\/li>\n<li><strong>Why this service fits (conditional):<\/strong> If HorizonDB supports geo-replication and defined RPO\/RTO.<\/li>\n<li><strong>Example:<\/strong> Critical operations app with regional failover testing.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Core Features<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Important note on \u201ccurrent features\u201d<\/h3>\n\n\n\n<p>There are <strong>no publicly verifiable \u201ccurrent features\u201d<\/strong> for Azure HorizonDB because the service is not present in official Azure documentation\/pricing (verify). To stay accurate and useful, this section provides:<\/p>\n\n\n\n<p>1) <strong>What is verifiable today<\/strong> (the discovery surface)<br\/>\n2) A <strong>feature validation checklist<\/strong> you can use if your tenant actually has Azure HorizonDB enabled<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.1 Verifiable discovery features (how you confirm the service exists)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Azure Portal discoverability<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Lets you search for services\/resources by name.<\/li>\n<li><strong>Why it matters:<\/strong> First-party services are typically discoverable and createable in the portal (though some previews may be invite-only).<\/li>\n<li><strong>Practical benefit:<\/strong> Quick initial validation.<\/li>\n<li><strong>Caveat:<\/strong> Portal visibility can vary by preview status and subscription allow-listing.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Azure Resource Provider discovery (ARM)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Lists registered\/available resource provider namespaces and resource types.<\/li>\n<li><strong>Why it matters:<\/strong> First-party services usually have a provider namespace you can register and resource types you can deploy.<\/li>\n<li><strong>Practical benefit:<\/strong> Programmatic validation via CLI\/PowerShell.<\/li>\n<li><strong>Caveat:<\/strong> A provider existing doesn\u2019t guarantee the service is generally available or documented.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Azure Resource Graph search<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Queries your tenant\u2019s resources for matching names\/types.<\/li>\n<li><strong>Why it matters:<\/strong> If someone already deployed HorizonDB resources, you can find them.<\/li>\n<li><strong>Practical benefit:<\/strong> Inventory and governance.<\/li>\n<li><strong>Caveat:<\/strong> Doesn\u2019t help if nothing is deployed yet.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.2 Feature validation checklist (use after confirmation)<\/h3>\n\n\n\n<p>Use this checklist to validate Azure HorizonDB safely <strong>without assuming anything<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Capability to Validate<\/th>\n<th>What to Look For<\/th>\n<th>Why It Matters<\/th>\n<th>How to Verify (Typical)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Data model<\/td>\n<td>Relational vs document vs key-value vs graph<\/td>\n<td>Impacts schema, queries, tools<\/td>\n<td>Official docs, connection strings, drivers<\/td>\n<\/tr>\n<tr>\n<td>Authentication<\/td>\n<td>Entra ID, keys, certificates<\/td>\n<td>Security posture and ops<\/td>\n<td>Portal auth settings; docs<\/td>\n<\/tr>\n<tr>\n<td>Network controls<\/td>\n<td>Firewall, Private Link, VNet injection<\/td>\n<td>Exfiltration risk and compliance<\/td>\n<td>Networking blade; docs<\/td>\n<\/tr>\n<tr>\n<td>Encryption at rest<\/td>\n<td>Platform-managed or customer-managed keys (CMK)<\/td>\n<td>Compliance and key ownership<\/td>\n<td>Security settings; Key Vault integration docs<\/td>\n<\/tr>\n<tr>\n<td>TLS in transit<\/td>\n<td>Minimum TLS version<\/td>\n<td>Prevent downgrade\/weak ciphers<\/td>\n<td>Docs; client connection behavior<\/td>\n<\/tr>\n<tr>\n<td>Backup\/restore<\/td>\n<td>PITR, retention, restore granularity<\/td>\n<td>RPO\/RTO feasibility<\/td>\n<td>Service docs; portal restore options<\/td>\n<\/tr>\n<tr>\n<td>HA\/DR<\/td>\n<td>Zone redundancy, geo-replication<\/td>\n<td>Availability and disaster recovery<\/td>\n<td>SLA + architecture docs<\/td>\n<\/tr>\n<tr>\n<td>Observability<\/td>\n<td>Metrics, logs, diagnostic settings<\/td>\n<td>SRE runbooks and alerting<\/td>\n<td>Azure Monitor integration<\/td>\n<\/tr>\n<tr>\n<td>Scaling model<\/td>\n<td>vCores, RU\/s, DTU, storage tiers<\/td>\n<td>Performance and cost<\/td>\n<td>Pricing page; scaling blade<\/td>\n<\/tr>\n<tr>\n<td>Quotas\/limits<\/td>\n<td>max size, throughput caps, connections<\/td>\n<td>Prevent outages and surprises<\/td>\n<td>Quota docs; subscription limits<\/td>\n<\/tr>\n<tr>\n<td>SLA<\/td>\n<td>uptime and support scope<\/td>\n<td>Production readiness<\/td>\n<td>SLA documentation<\/td>\n<\/tr>\n<tr>\n<td>Pricing meters<\/td>\n<td>compute\/throughput, storage, backup, networking<\/td>\n<td>FinOps governance<\/td>\n<td>Official pricing page<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Architecture and How It Works<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What can be stated accurately<\/h3>\n\n\n\n<p>Because Azure HorizonDB is not publicly documented, this section describes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>safe, generic Azure managed database architecture pattern<\/strong> (common across many Azure Databases services)<\/li>\n<li>The <strong>discovery\/control-plane flow<\/strong> you can use to confirm HorizonDB\u2019s resource types<\/li>\n<li>Integrations you should expect in Azure (but must <strong>verify<\/strong> for HorizonDB)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">High-level architecture (generic managed database pattern)<\/h3>\n\n\n\n<p>At a high level, most Azure database services have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Control plane<\/strong> (ARM): create\/update\/scale via Azure Portal\/CLI\/ARM\/Bicep\/Terraform<\/li>\n<li><strong>Data plane<\/strong>: application connections to an endpoint using drivers\/SDKs<\/li>\n<li><strong>Identity<\/strong>: Entra ID for control-plane RBAC; sometimes for data-plane auth<\/li>\n<li><strong>Networking<\/strong>: public endpoint with firewall rules and\/or private endpoints<\/li>\n<li><strong>Ops<\/strong>: Azure Monitor metrics and diagnostic logs; Activity Log for control-plane changes<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Request\/data\/control flow (generic)<\/h3>\n\n\n\n<p>1) <strong>Control plane flow<\/strong><br\/>\n   &#8211; Engineer deploys resource via ARM (portal\/CLI\/IaC)<br\/>\n   &#8211; Azure records changes in <strong>Activity Log<\/strong><br\/>\n   &#8211; Resource emits configuration\/metrics\/logs to Azure Monitor (if configured)<\/p>\n\n\n\n<p>2) <strong>Data plane flow<\/strong><br\/>\n   &#8211; App resolves database endpoint (DNS)<br\/>\n   &#8211; App authenticates (keys\/Entra ID)<br\/>\n   &#8211; App sends queries\/operations over TLS<br\/>\n   &#8211; Database persists data to managed storage and returns results<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Integrations with related Azure services (verify for HorizonDB)<\/h3>\n\n\n\n<p>Common integrations for Azure databases include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Azure Key Vault<\/strong> for secrets\/CMK (if supported)<\/li>\n<li><strong>Private Link \/ Private Endpoint<\/strong> for private connectivity<\/li>\n<li><strong>Azure Monitor + Log Analytics<\/strong> for observability<\/li>\n<li><strong>Microsoft Defender for Cloud<\/strong> for security recommendations<\/li>\n<li><strong>Azure Policy<\/strong> for governance (public network disabled, diagnostic logs enabled)<\/li>\n<li><strong>Azure Backup<\/strong> (some services integrate; others use built-in backups)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Dependency services<\/h3>\n\n\n\n<p>Even managed databases depend on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure subscription and resource groups<\/li>\n<li>Networking (VNet, DNS, Private Link) if using private connectivity<\/li>\n<li>Monitoring workspace if central logging is required<\/li>\n<li>Identity directory (Entra ID) for RBAC<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/authentication model (generic)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Control plane:<\/strong> Azure RBAC (Entra ID identities)<\/li>\n<li><strong>Data plane:<\/strong> varies by service (keys, passwords, certificates, Entra ID)<\/li>\n<li><strong>Recommendation:<\/strong> Prefer Entra ID-based auth where supported; minimize long-lived secrets.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Networking model (generic)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Public endpoint + firewall rules<\/strong> (simpler, but higher exposure risk)<\/li>\n<li><strong>Private endpoint (Private Link)<\/strong> (best practice for many regulated workloads; verify support)<\/li>\n<li><strong>Hybrid access:<\/strong> VPN\/ExpressRoute + private endpoints + private DNS zones<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Monitoring\/logging\/governance considerations<\/h3>\n\n\n\n<p>For production, require:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Diagnostic logs enabled (if service supports)<\/li>\n<li>Metrics alerts on latency, throttling, errors, connections, storage<\/li>\n<li>Activity Log alerts for configuration changes<\/li>\n<li>Tags and naming standards<\/li>\n<li>Backup\/restore runbooks and DR drills<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simple architecture diagram (conceptual; verify HorizonDB capabilities)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart LR\n  A[App (API \/ Worker)] --&gt;|TLS + Auth| B[Azure HorizonDB (verify service existence)]\n  B --&gt; C[Managed Storage (internal)]\n  B --&gt; D[Metrics\/Logs (Azure Monitor - if supported)]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Production-style architecture diagram (pattern; apply if supported)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart TB\n  subgraph Internet\n    U[Users\/Clients]\n  end\n\n  subgraph Azure[\"Azure Subscription\"]\n    subgraph RG[\"Resource Group\"]\n      subgraph VNET[\"VNet\"]\n        APP[App Service \/ AKS \/ VM App]\n        PE[Private Endpoint (if supported)]\n      end\n\n      DB[Azure HorizonDB (verify)]\n      KV[Azure Key Vault]\n      MON[Azure Monitor + Log Analytics]\n    end\n  end\n\n  U --&gt;|HTTPS| APP\n  APP --&gt;|Private DNS (if configured)| PE\n  PE --&gt; DB\n\n  APP --&gt;|Get secrets \/ tokens| KV\n  DB --&gt;|Diagnostics \/ Metrics (if supported)| MON\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Prerequisites<\/h2>\n\n\n\n<p>Because there is no confirmed public onboarding for Azure HorizonDB, the prerequisites below cover:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>discovery workflow<\/strong> (to confirm HorizonDB)<\/li>\n<li>A <strong>reference hands-on lab<\/strong> using a documented Azure database service<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Account\/subscription requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An active <strong>Azure subscription<\/strong><\/li>\n<li>Ability to create resources in at least one region<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions \/ IAM roles<\/h3>\n\n\n\n<p>Minimum for the lab and discovery:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>At subscription or resource group scope:<\/li>\n<li><strong>Reader<\/strong> (for discovery-only steps)<\/li>\n<li><strong>Contributor<\/strong> (to create resources for the reference lab)<\/li>\n<li>If you create networking resources:<\/li>\n<li><strong>Network Contributor<\/strong> on the VNet\/resource group (optional steps)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Billing requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A billing-enabled subscription<\/li>\n<li>Awareness that even \u201csmall\u201d database services may incur cost (throughput, storage, logs)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">CLI\/SDK\/tools needed<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure CLI: https:\/\/learn.microsoft.com\/cli\/azure\/install-azure-cli<\/li>\n<li>(Optional) Python 3.10+ for sample app<\/li>\n<li>(Optional) VS Code<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Region availability<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure HorizonDB: <strong>unknown<\/strong> (verify)<\/li>\n<li>Reference lab (Azure Cosmos DB): available in many regions, but specific features vary (verify in docs)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas\/limits<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure HorizonDB: unknown (verify)<\/li>\n<li>For the reference lab:<\/li>\n<li>Azure Cosmos DB free tier eligibility is limited (one per subscription; verify)<\/li>\n<li>Log Analytics ingestion can add cost<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisite services<\/h3>\n\n\n\n<p>For the reference lab:\n&#8211; Resource group\n&#8211; (Optional) Log Analytics workspace\n&#8211; (Optional) Key Vault<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pricing \/ Cost<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Current pricing model (Azure HorizonDB)<\/h3>\n\n\n\n<p><strong>Not publicly verifiable.<\/strong> There is no official Azure pricing page entry for \u201cAzure HorizonDB\u201d that can be cited as authoritative (verify).<\/p>\n\n\n\n<p>If your organization truly has access to Azure HorizonDB, you must obtain pricing from one of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Official Azure pricing page (if\/when published): https:\/\/azure.microsoft.com\/pricing\/<\/li>\n<li>Azure Pricing Calculator: https:\/\/azure.microsoft.com\/pricing\/calculator\/<\/li>\n<li>Your Microsoft agreement \/ enterprise contract pricing sheets<\/li>\n<li>The service\u2019s own \u201cPricing\u201d blade in Azure Portal (some previews show meters there)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing dimensions to validate (for HorizonDB)<\/h3>\n\n\n\n<p>Ask specifically how you are billed for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Compute (vCores\/instances\/tiers) or throughput (RU\/s or similar)<\/li>\n<li>Storage (GB-month)<\/li>\n<li>Backups (retained backup storage, restore operations)<\/li>\n<li>Data transfer (cross-region replication, zone redundancy)<\/li>\n<li>Network (Private Link endpoints can have costs depending on service)<\/li>\n<li>Monitoring logs (Log Analytics ingestion\/retention)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Free tier<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure HorizonDB: unknown<\/li>\n<li>Many Azure database services have either a free tier, a limited free offer, or dev\/test SKUs\u2014<strong>verify in official docs<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost drivers (what usually dominates database cost)<\/h3>\n\n\n\n<p>Even without HorizonDB specifics, FinOps teams should watch these universal drivers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Provisioned throughput \/ compute tier<\/strong> (often the largest line item)<\/li>\n<li><strong>Storage growth<\/strong> and retention requirements<\/li>\n<li><strong>High availability<\/strong> options (zone redundant \/ replicas)<\/li>\n<li><strong>Multi-region replication<\/strong> (double\/triple costs quickly)<\/li>\n<li><strong>Logging and observability<\/strong> (Log Analytics ingestion\/retention)<\/li>\n<li><strong>Backup retention<\/strong> (long retention = higher storage cost)<\/li>\n<li><strong>Data egress<\/strong> (especially cross-region or to Internet)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hidden\/indirect costs<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Private endpoints and private DNS management (operational + potential cost)<\/li>\n<li>Log Analytics ingestion and long retention<\/li>\n<li>CI\/CD pipeline runners and IaC state storage<\/li>\n<li>Application-side retries and inefficient queries increasing throughput costs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network\/data transfer implications<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Intra-region traffic is often cheaper than cross-region<\/li>\n<li>Cross-region replication can add both compute and network charges<\/li>\n<li>Internet egress is typically billable; keep data access within Azure when possible<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How to optimize cost (general but practical)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Right-size throughput\/compute; avoid permanent overprovisioning<\/li>\n<li>Use autoscale\/serverless patterns if supported and predictable<\/li>\n<li>Add caching where it reduces database load<\/li>\n<li>Implement data lifecycle management (archive\/delete)<\/li>\n<li>Use reserved capacity\/commitments if available and stable<\/li>\n<li>Centralize logs carefully; filter noisy diagnostics<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example low-cost starter estimate (safe guidance)<\/h3>\n\n\n\n<p>Because exact HorizonDB pricing is unknown, a safe approach is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build a cost model using the nearest comparable Azure database service you <em>can<\/em> price (e.g., Azure Cosmos DB, Azure SQL Database, Azure Database for PostgreSQL).<\/li>\n<li>Add line items for:<\/li>\n<li>Database service (smallest viable tier)<\/li>\n<li>Storage (small dataset)<\/li>\n<li>Monitoring (minimal logs retained for a few days)<\/li>\n<li>Validate assumptions using the Azure Pricing Calculator.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example production cost considerations<\/h3>\n\n\n\n<p>For production planning, include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HA option (zone redundancy, replicas)<\/li>\n<li>DR region (secondary region costs)<\/li>\n<li>Peak throughput (Black Friday \/ end-of-month)<\/li>\n<li>Backup retention (e.g., 30\u2013365 days)<\/li>\n<li>Security tooling (Defender for Cloud, SIEM ingestion)<\/li>\n<li>Private connectivity (Private Link, DNS)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Step-by-Step Hands-On Tutorial<\/h2>\n\n\n\n<p>Because Azure HorizonDB does not have a publicly documented provisioning workflow, this lab is designed to be:<\/p>\n\n\n\n<p>1) <strong>A real discovery workflow<\/strong> to confirm whether \u201cAzure HorizonDB\u201d exists in your subscription<br\/>\n2) A <strong>fully executable reference implementation<\/strong> using a documented Azure database service (Azure Cosmos DB for NoSQL) to practice the patterns you would apply to HorizonDB once confirmed<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Objective<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Determine whether <strong>Azure HorizonDB<\/strong> is a real, deployable resource in your Azure subscription.<\/li>\n<li>Practice a production-relevant baseline for Azure managed databases: <strong>create a database<\/strong>, <strong>insert\/query data<\/strong>, <strong>enable basic monitoring<\/strong>, and <strong>clean up<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Overview<\/h3>\n\n\n\n<p>You will:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Set up variables and a resource group.<\/li>\n<li>Discover any \u201cHorizon\u201d resource provider\/types in your subscription.<\/li>\n<li>If Azure HorizonDB is not discoverable, deploy <strong>Azure Cosmos DB for NoSQL<\/strong> as a reference database service.<\/li>\n<li>Create a database and container, insert sample data, and run a query.<\/li>\n<li>Configure basic diagnostics (optional but recommended).<\/li>\n<li>Clean up all resources.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Set up your environment (Azure CLI) and create a resource group<\/h3>\n\n\n\n<p>1) Sign in and select your subscription:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az login\naz account show\naz account set --subscription \"&lt;YOUR_SUBSCRIPTION_ID_OR_NAME&gt;\"\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Azure CLI is authenticated and pointing at the correct subscription.<\/p>\n\n\n\n<p>2) Set variables (edit values as needed):<\/p>\n\n\n\n<pre><code class=\"language-bash\"># Linux\/macOS (bash\/zsh)\nexport LOCATION=\"eastus\"\nexport RG=\"rg-horizondb-lab\"\nexport RANDOM_SUFFIX=$RANDOM\n<\/code><\/pre>\n\n\n\n<p>3) Create a resource group:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az group create --name \"$RG\" --location \"$LOCATION\"\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Resource group is created.<\/p>\n\n\n\n<p>Verification:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az group show --name \"$RG\" --query \"{name:name,location:location}\" -o table\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Discover whether Azure HorizonDB exists in your subscription<\/h3>\n\n\n\n<p>This step is intentionally generic and safe.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2.1 Search resource providers for \u201chorizon\u201d<\/h4>\n\n\n\n<p>List provider namespaces containing \u201chorizon\u201d:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az provider list \\\n  --query \"[?contains(to_string(namespace),'horizon') || contains(to_string(namespace),'Horizon')].[namespace,registrationState]\" \\\n  -o table\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong><br\/>\n&#8211; If Azure HorizonDB is a real ARM service, you might see a provider namespace that includes \u201cHorizon\u201d.<br\/>\n&#8211; If you see <strong>no results<\/strong>, that\u2019s a strong sign it\u2019s not available in your subscription (or the name is unrelated).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2.2 Search existing resources for \u201chorizon\u201d<\/h4>\n\n\n\n<p>Query your subscription for resources with \u201chorizon\u201d in name or type:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az resource list \\\n  --query \"[?contains(to_string(name),'horizon') || contains(to_string(type),'horizon')].[name,type,location,resourceGroup]\" \\\n  -o table\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Any existing resources matching the pattern are listed.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2.3 (Optional) Use Azure Resource Graph for broader search<\/h4>\n\n\n\n<p>If you have permission to query Resource Graph:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az graph query -q \"Resources\n| where name contains 'horizon' or type contains 'horizon'\n| project name, type, location, resourceGroup\" -o table\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Inventory results, if any exist.<\/p>\n\n\n\n<p><strong>Decision point:<\/strong>\n&#8211; If you find <strong>official documentation links<\/strong> or a clear provider\/type for Azure HorizonDB: stop here and follow those official docs for provisioning and connection.\n&#8211; If you <strong>do not<\/strong> find anything: proceed to Step 3 (reference implementation).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Deploy a reference Azure database (Azure Cosmos DB for NoSQL)<\/h3>\n\n\n\n<p>This is not Azure HorizonDB. It\u2019s a documented Azure database used to practice real deployment and operational steps.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3.1 Create a Cosmos DB account<\/h4>\n\n\n\n<p>Create a globally unique name:<\/p>\n\n\n\n<pre><code class=\"language-bash\">export COSMOS_ACCOUNT=\"cosmos-horizondbref-$RANDOM_SUFFIX\"\n<\/code><\/pre>\n\n\n\n<p>Create the account. If you are eligible for free tier, you can try enabling it (may fail if already used in the subscription):<\/p>\n\n\n\n<pre><code class=\"language-bash\">az cosmosdb create \\\n  --name \"$COSMOS_ACCOUNT\" \\\n  --resource-group \"$RG\" \\\n  --locations regionName=\"$LOCATION\" failoverPriority=0 isZoneRedundant=false \\\n  --enable-free-tier true\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Cosmos DB account is created (this can take a few minutes).<\/p>\n\n\n\n<p>Verification:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az cosmosdb show --name \"$COSMOS_ACCOUNT\" --resource-group \"$RG\" \\\n  --query \"{name:name,location:location,provisioningState:provisioningState}\" -o table\n<\/code><\/pre>\n\n\n\n<p><strong>If free tier fails:<\/strong> Re-run without <code>--enable-free-tier true<\/code> and consider a lowest-cost option supported in your region. <strong>Verify in official Cosmos DB pricing\/docs<\/strong>.<\/p>\n\n\n\n<p>Docs (Cosmos DB overview): https:\/\/learn.microsoft.com\/azure\/cosmos-db\/introduction<br\/>\nPricing: https:\/\/azure.microsoft.com\/pricing\/details\/cosmos-db\/<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3.2 Create a database and container (SQL API \/ NoSQL)<\/h4>\n\n\n\n<p>Create a database:<\/p>\n\n\n\n<pre><code class=\"language-bash\">export COSMOS_DB=\"appdb\"\naz cosmosdb sql database create \\\n  --account-name \"$COSMOS_ACCOUNT\" \\\n  --resource-group \"$RG\" \\\n  --name \"$COSMOS_DB\"\n<\/code><\/pre>\n\n\n\n<p>Create a container with a partition key:<\/p>\n\n\n\n<pre><code class=\"language-bash\">export COSMOS_CONTAINER=\"items\"\naz cosmosdb sql container create \\\n  --account-name \"$COSMOS_ACCOUNT\" \\\n  --resource-group \"$RG\" \\\n  --database-name \"$COSMOS_DB\" \\\n  --name \"$COSMOS_CONTAINER\" \\\n  --partition-key-path \"\/pk\"\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Database and container exist.<\/p>\n\n\n\n<p>Verification:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az cosmosdb sql container show \\\n  --account-name \"$COSMOS_ACCOUNT\" \\\n  --resource-group \"$RG\" \\\n  --database-name \"$COSMOS_DB\" \\\n  --name \"$COSMOS_CONTAINER\" \\\n  --query \"{id:id,partitionKey:resource.partitionKey.paths}\" -o json\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Insert and query data (quick Python example)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">4.1 Get the account endpoint and key<\/h4>\n\n\n\n<pre><code class=\"language-bash\">export COSMOS_ENDPOINT=$(az cosmosdb show --name \"$COSMOS_ACCOUNT\" --resource-group \"$RG\" --query documentEndpoint -o tsv)\nexport COSMOS_KEY=$(az cosmosdb keys list --name \"$COSMOS_ACCOUNT\" --resource-group \"$RG\" --query primaryMasterKey -o tsv)\n\necho \"$COSMOS_ENDPOINT\"\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> You have an endpoint URL and a key.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">4.2 Create a small Python script<\/h4>\n\n\n\n<p>Install SDK:<\/p>\n\n\n\n<pre><code class=\"language-bash\">python3 -m pip install azure-cosmos\n<\/code><\/pre>\n\n\n\n<p>Create <code>cosmos_demo.py<\/code>:<\/p>\n\n\n\n<pre><code class=\"language-python\">from azure.cosmos import CosmosClient, PartitionKey\n\nendpoint = \"&lt;PASTE_COSMOS_ENDPOINT&gt;\"\nkey = \"&lt;PASTE_COSMOS_KEY&gt;\"\n\ndb_name = \"appdb\"\ncontainer_name = \"items\"\n\nclient = CosmosClient(endpoint, credential=key)\n\ndb = client.get_database_client(db_name)\ncontainer = db.get_container_client(container_name)\n\nitems = [\n    {\"id\": \"1\", \"pk\": \"tenantA\", \"type\": \"order\", \"total\": 125.50},\n    {\"id\": \"2\", \"pk\": \"tenantA\", \"type\": \"order\", \"total\": 42.00},\n    {\"id\": \"3\", \"pk\": \"tenantB\", \"type\": \"order\", \"total\": 9.99},\n]\n\nfor it in items:\n    container.upsert_item(it)\n\nquery = \"SELECT c.pk, COUNT(1) AS cnt, SUM(c.total) AS revenue FROM c WHERE c.type='order' GROUP BY c.pk\"\nfor row in container.query_items(query=query, enable_cross_partition_query=True):\n    print(row)\n<\/code><\/pre>\n\n\n\n<p>Run it:<\/p>\n\n\n\n<pre><code class=\"language-bash\">python3 cosmos_demo.py\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Output shows aggregated counts and revenue per partition key (tenant).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Configure basic monitoring (recommended)<\/h3>\n\n\n\n<p>Cosmos DB emits platform metrics by default; for logs, use Diagnostic settings (where supported).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">5.1 Create a Log Analytics workspace<\/h4>\n\n\n\n<pre><code class=\"language-bash\">export LAW=\"law-horizondbref-$RANDOM_SUFFIX\"\n\naz monitor log-analytics workspace create \\\n  --resource-group \"$RG\" \\\n  --workspace-name \"$LAW\" \\\n  --location \"$LOCATION\"\n<\/code><\/pre>\n\n\n\n<p>Get workspace resource ID:<\/p>\n\n\n\n<pre><code class=\"language-bash\">export LAW_ID=$(az monitor log-analytics workspace show \\\n  --resource-group \"$RG\" \\\n  --workspace-name \"$LAW\" \\\n  --query id -o tsv)\n\necho \"$LAW_ID\"\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">5.2 Enable diagnostic settings on Cosmos DB (if available in your region\/API)<\/h4>\n\n\n\n<p>First get Cosmos DB resource ID:<\/p>\n\n\n\n<pre><code class=\"language-bash\">export COSMOS_ID=$(az cosmosdb show --name \"$COSMOS_ACCOUNT\" --resource-group \"$RG\" --query id -o tsv)\necho \"$COSMOS_ID\"\n<\/code><\/pre>\n\n\n\n<p>List diagnostic categories:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az monitor diagnostic-settings categories list --resource \"$COSMOS_ID\" -o table\n<\/code><\/pre>\n\n\n\n<p>If categories are returned, create a diagnostic setting (choose categories that exist in your output):<\/p>\n\n\n\n<pre><code class=\"language-bash\">az monitor diagnostic-settings create \\\n  --name \"diag-to-law\" \\\n  --resource \"$COSMOS_ID\" \\\n  --workspace \"$LAW_ID\" \\\n  --logs '[\n    {\"category\":\"DataPlaneRequests\",\"enabled\":true},\n    {\"category\":\"MongoRequests\",\"enabled\":false}\n  ]' \\\n  --metrics '[{\"category\":\"AllMetrics\",\"enabled\":true}]'\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> Diagnostics are enabled and sent to Log Analytics.<\/p>\n\n\n\n<p><strong>Caveat:<\/strong> Categories differ by API and service configuration. Enable only categories that actually exist in your tenant output.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<p>Use this checklist to validate the lab:<\/p>\n\n\n\n<p>1) Resource group exists:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az group show --name \"$RG\" -o table\n<\/code><\/pre>\n\n\n\n<p>2) Cosmos DB account exists and is healthy:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az cosmosdb show --name \"$COSMOS_ACCOUNT\" --resource-group \"$RG\" --query provisioningState -o tsv\n<\/code><\/pre>\n\n\n\n<p>3) Database and container exist:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az cosmosdb sql database list --account-name \"$COSMOS_ACCOUNT\" --resource-group \"$RG\" -o table\naz cosmosdb sql container list --account-name \"$COSMOS_ACCOUNT\" --resource-group \"$RG\" --database-name \"$COSMOS_DB\" -o table\n<\/code><\/pre>\n\n\n\n<p>4) Data operations succeed:\n&#8211; <code>python3 cosmos_demo.py<\/code> returns results.<\/p>\n\n\n\n<p>5) (Optional) Diagnostics categories list succeeds and diagnostic settings exist:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az monitor diagnostic-settings list --resource \"$COSMOS_ID\" -o table\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u201cNo resource providers found for horizon\u201d<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This likely means <strong>Azure HorizonDB is not available<\/strong> as a first-party resource provider in your subscription.<\/li>\n<li>Next steps:<\/li>\n<li>Search Azure Products: https:\/\/azure.microsoft.com\/products\/<\/li>\n<li>Search Azure Updates: https:\/\/azure.microsoft.com\/updates\/<\/li>\n<li>Ask your tenant admins or Microsoft account team whether \u201cHorizonDB\u201d is a codename\/private preview.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Cosmos DB name conflicts<\/h4>\n\n\n\n<p>Cosmos DB account names are globally unique.\n&#8211; Fix: change <code>$COSMOS_ACCOUNT<\/code> and retry.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Free tier not available<\/h4>\n\n\n\n<p>Free tier is limited and may already be enabled in your subscription.\n&#8211; Fix: re-run without <code>--enable-free-tier true<\/code> and use a minimal configuration.\n&#8211; Verify current free tier rules in official docs\/pricing.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Diagnostic settings categories mismatch<\/h4>\n\n\n\n<p>If <code>az monitor diagnostic-settings categories list<\/code> returns categories different from the sample:\n&#8211; Fix: use exactly the categories returned in your environment.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Permission errors (AuthorizationFailed)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ensure you have <strong>Contributor<\/strong> on the resource group.<\/li>\n<li>For diagnostics\/log analytics, ensure you can create workspaces and diagnostic settings.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Cleanup<\/h3>\n\n\n\n<p>To avoid ongoing charges, delete the resource group:<\/p>\n\n\n\n<pre><code class=\"language-bash\">az group delete --name \"$RG\" --yes --no-wait\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome:<\/strong> All lab resources are removed.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">11. Best Practices<\/h2>\n\n\n\n<p>Because Azure HorizonDB is not publicly documented, these best practices are framed as <strong>Azure managed database best practices<\/strong> that you should apply to HorizonDB <strong>only after verifying support<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Design for failure:<\/li>\n<li>Define RPO\/RTO targets and select HA\/DR features accordingly (verify HorizonDB options).<\/li>\n<li>Separate environments:<\/li>\n<li>Use separate subscriptions\/resource groups for dev\/test\/prod.<\/li>\n<li>Choose the right data model:<\/li>\n<li>Don\u2019t force relational workloads into document stores (or vice versa).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IAM\/security best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use least privilege RBAC:<\/li>\n<li>Separate control-plane roles (Contributor\/Reader) from data-plane access (if supported).<\/li>\n<li>Prefer Entra ID auth:<\/li>\n<li>Avoid long-lived keys where possible (verify HorizonDB supports Entra ID for data plane).<\/li>\n<li>Use managed identities for apps:<\/li>\n<li>Reduce secret sprawl.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Establish budgets and alerts:<\/li>\n<li>Budget at subscription\/resource group and alert on anomalies.<\/li>\n<li>Right-size throughput\/compute:<\/li>\n<li>Scale based on measurable load, not guesswork.<\/li>\n<li>Control log volume:<\/li>\n<li>Enable essential diagnostics; avoid high-volume logs without retention policy.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Performance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Optimize data access patterns:<\/li>\n<li>Partitioning\/sharding choices matter (verify HorizonDB partitioning model).<\/li>\n<li>Index intentionally:<\/li>\n<li>Too many indexes can increase write cost\/latency.<\/li>\n<li>Implement application retries carefully:<\/li>\n<li>Use exponential backoff and jitter.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test backups and restores:<\/li>\n<li>Make restores a routine drill, not a panic action.<\/li>\n<li>Use multi-region only when justified:<\/li>\n<li>Multi-region improves availability but increases cost and complexity.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operations best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Standardize monitoring:<\/li>\n<li>Define SLOs (latency, error rate, saturation).<\/li>\n<li>Automate provisioning:<\/li>\n<li>Use IaC (Bicep\/Terraform) once the service is confirmed.<\/li>\n<li>Maintain runbooks:<\/li>\n<li>Include common failure modes and escalation paths.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Governance\/tagging\/naming best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enforce tags:<\/li>\n<li><code>env<\/code>, <code>owner<\/code>, <code>costCenter<\/code>, <code>dataClass<\/code>, <code>app<\/code>, <code>criticality<\/code><\/li>\n<li>Naming conventions:<\/li>\n<li>Include environment and region; keep within Azure resource name constraints.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">12. Security Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Identity and access model<\/h3>\n\n\n\n<p>For Azure HorizonDB, you must verify:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Control plane uses Azure RBAC (typical across Azure)<\/li>\n<li>Data plane supports:<\/li>\n<li>Entra ID auth and role assignments (preferred), or<\/li>\n<li>Keys\/secrets (requires strong secret management)<\/li>\n<\/ul>\n\n\n\n<p><strong>Recommendations (generic):<\/strong>\n&#8211; Enforce MFA and Conditional Access for administrators.\n&#8211; Use Privileged Identity Management (PIM) for elevated roles.\n&#8211; Use managed identities for application access.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Encryption<\/h3>\n\n\n\n<p>Validate and document:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Encryption at rest (on by default in most Azure managed services, but verify)<\/li>\n<li>TLS in transit enforcement and minimum TLS version<\/li>\n<li>Customer-managed keys (CMK) support via Azure Key Vault (verify)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network exposure<\/h3>\n\n\n\n<p>Prefer private connectivity when supported:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Private endpoints + private DNS zones<\/li>\n<li>Disable public network access when possible (verify feature exists)<\/li>\n<li>Restrict firewall rules to known egress points<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secrets handling<\/h3>\n\n\n\n<p>If keys\/passwords are required:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Store in Azure Key Vault<\/li>\n<li>Rotate regularly<\/li>\n<li>Avoid embedding in code or pipeline logs<\/li>\n<li>Use Key Vault references or managed identity-based retrieval<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audit\/logging<\/h3>\n\n\n\n<p>Require:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Activity Log monitoring for configuration changes<\/li>\n<li>Diagnostic logs for data-plane access (if supported)<\/li>\n<li>Forward logs to a SIEM (Microsoft Sentinel) when needed<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compliance considerations<\/h3>\n\n\n\n<p>Do not assume compliance certifications. For regulated workloads:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verify compliance scope for the service and region<\/li>\n<li>Confirm data residency requirements<\/li>\n<li>Confirm retention and deletion capabilities<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common security mistakes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Leaving public access enabled with broad firewall rules<\/li>\n<li>Using shared admin keys across many apps<\/li>\n<li>No alerting on authentication failures or configuration drift<\/li>\n<li>No tested restore\/DR runbooks<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secure deployment recommendations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Start with a hardened baseline:<\/li>\n<li>Private connectivity<\/li>\n<li>Least privilege access<\/li>\n<li>Central logging<\/li>\n<li>Encrypted secrets<\/li>\n<li>Add policy guardrails:<\/li>\n<li>Deny public endpoints (where appropriate)<\/li>\n<li>Require diagnostics<\/li>\n<li>Require tags and approved regions<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">13. Limitations and Gotchas<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Known limitations (Azure HorizonDB)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Primary limitation:<\/strong> The service is <strong>not publicly documented<\/strong> as an Azure first-party database service (verify).<\/li>\n<li>Without official docs\/pricing, you cannot safely assume:<\/li>\n<li>SLA\/support model<\/li>\n<li>HA\/DR behavior<\/li>\n<li>Backup\/restore capabilities<\/li>\n<li>Security controls<\/li>\n<li>Quotas and limits<\/li>\n<li>Pricing meters<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unknown for HorizonDB (verify).<\/li>\n<li>For any database service, validate:<\/li>\n<li>Max storage<\/li>\n<li>Max connections<\/li>\n<li>Throughput ceilings<\/li>\n<li>Request rate limits\/throttling behavior<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Regional constraints<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unknown for HorizonDB (verify).<\/li>\n<li>Some Azure database features are region\/SKU dependent.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing surprises<\/h3>\n\n\n\n<p>Typical surprises across Azure databases:\n&#8211; Overprovisioned throughput\/compute left running 24\/7\n&#8211; Multi-region replication costs\n&#8211; Log Analytics ingestion costs\n&#8211; Backup retention costs beyond included amounts<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compatibility issues<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Drivers\/SDKs may vary by database type.<\/li>\n<li>Migration complexity depends on data model and query language.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational gotchas<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Misconfigured partition keys can cause hotspots and throttling (for partitioned systems).<\/li>\n<li>Poor indexing strategy can degrade performance and inflate cost.<\/li>\n<li>Lack of connection pooling can cause connection storms.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Migration challenges<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Schema and query compatibility is often the hardest part.<\/li>\n<li>Plan for dual-write or replication-based migration patterns when possible.<\/li>\n<li>Validate data consistency requirements (strong vs eventual).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">14. Comparison with Alternatives<\/h2>\n\n\n\n<p>Since Azure HorizonDB is not publicly verifiable, comparisons are necessarily about the <strong>closest Azure Databases options you can choose today<\/strong>, and how to decide.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Best For<\/th>\n<th>Strengths<\/th>\n<th>Weaknesses<\/th>\n<th>When to Choose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Azure SQL Database<\/strong><\/td>\n<td>Relational OLTP, T-SQL apps<\/td>\n<td>Strong relational features, mature tooling, HA options<\/td>\n<td>Less flexible schema; scaling model differs from NoSQL<\/td>\n<td>You need relational integrity, joins, transactions<\/td>\n<\/tr>\n<tr>\n<td><strong>Azure Cosmos DB<\/strong><\/td>\n<td>Global, low-latency NoSQL; multiple APIs<\/td>\n<td>Global distribution, tunable consistency, managed scaling options<\/td>\n<td>Cost\/throughput modeling can be tricky; partitioning matters<\/td>\n<td>You need global scale, flexible schema, high throughput<\/td>\n<\/tr>\n<tr>\n<td><strong>Azure Database for PostgreSQL (Flexible Server)<\/strong><\/td>\n<td>Open-source relational apps<\/td>\n<td>Familiar PostgreSQL ecosystem, managed service<\/td>\n<td>Needs careful tuning for performance; HA\/DR varies by SKU<\/td>\n<td>You want PostgreSQL compatibility with managed ops<\/td>\n<\/tr>\n<tr>\n<td><strong>Azure Database for MySQL (Flexible Server)<\/strong><\/td>\n<td>MySQL-based apps<\/td>\n<td>Managed MySQL with familiar ecosystem<\/td>\n<td>Similar tradeoffs as PostgreSQL<\/td>\n<td>You want MySQL compatibility<\/td>\n<\/tr>\n<tr>\n<td><strong>SQL Server on Azure VM<\/strong><\/td>\n<td>Full control, legacy SQL Server features<\/td>\n<td>OS-level control, custom extensions<\/td>\n<td>You manage patching\/HA; higher ops burden<\/td>\n<td>You need IaaS control or special SQL Server features<\/td>\n<\/tr>\n<tr>\n<td><strong>AWS DynamoDB<\/strong><\/td>\n<td>Serverless key-value\/document NoSQL<\/td>\n<td>Fully managed, strong ecosystem<\/td>\n<td>Cloud lock-in; different tooling<\/td>\n<td>Multi-cloud comparison where Dynamo-like model fits<\/td>\n<\/tr>\n<tr>\n<td><strong>Google Cloud Spanner<\/strong><\/td>\n<td>Globally consistent relational at scale<\/td>\n<td>Strong consistency globally<\/td>\n<td>Complexity\/cost; different SQL dialect<\/td>\n<td>You need global relational consistency<\/td>\n<\/tr>\n<tr>\n<td><strong>Self-managed PostgreSQL on VMs\/Kubernetes<\/strong><\/td>\n<td>Maximum control\/customization<\/td>\n<td>Full control, extensions<\/td>\n<td>Highest ops burden; HA\/DR complexity<\/td>\n<td>You must control everything and can staff operations<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p><strong>How to decide if Azure HorizonDB should replace these:<\/strong> only after you can verify HorizonDB\u2019s <strong>data model, SLA, network\/security capabilities, and pricing<\/strong> in official documentation.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">15. Real-World Example<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enterprise example (regulated industry)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> A financial services company needs a managed database for customer-facing APIs with strict security controls, auditability, and DR testing.<\/li>\n<li><strong>Proposed architecture:<\/strong><\/li>\n<li>App tier on AKS or App Service<\/li>\n<li>Managed database service with private connectivity<\/li>\n<li>Key Vault for secrets\/CMK (if supported)<\/li>\n<li>Central logging to Log Analytics + Microsoft Sentinel<\/li>\n<li>Policy guardrails for networking and diagnostics<\/li>\n<li><strong>Why Azure HorizonDB was chosen:<\/strong> Only if it is confirmed to be a supported, compliant service with required features. Otherwise, they would select Azure SQL Database or Azure Cosmos DB based on data model.<\/li>\n<li><strong>Expected outcomes:<\/strong><\/li>\n<li>Reduced ops overhead vs self-managed<\/li>\n<li>Enforced private access and centralized audit logging<\/li>\n<li>Documented RPO\/RTO and tested restore procedures<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Startup\/small-team example<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> A startup needs a fast-to-ship database for an MVP with predictable cost and minimal operational work.<\/li>\n<li><strong>Proposed architecture:<\/strong><\/li>\n<li>App Service + managed database (Cosmos DB or Azure SQL Database depending on schema)<\/li>\n<li>Basic monitoring\/alerts<\/li>\n<li>Simple backup\/restore story<\/li>\n<li><strong>Why Azure HorizonDB was chosen:<\/strong> In most cases, it should <strong>not<\/strong> be chosen unless it\u2019s clearly documented and available. Startups should avoid unknown services that may not be generally available.<\/li>\n<li><strong>Expected outcomes:<\/strong><\/li>\n<li>Faster delivery<\/li>\n<li>Simple scaling path<\/li>\n<li>Low operational burden<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">16. FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) Is Azure HorizonDB an official Azure service?<\/h3>\n\n\n\n<p>It is <strong>not publicly documented<\/strong> as an official Azure service name on Microsoft Learn or Azure pricing pages (verify). Treat it as unconfirmed until you find official references.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2) Why would \u201cAzure HorizonDB\u201d appear in my internal catalog?<\/h3>\n\n\n\n<p>Common reasons include an internal codename, an outdated spreadsheet entry, a partner product, or a private preview label.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3) How do I confirm whether Azure HorizonDB exists in my subscription?<\/h3>\n\n\n\n<p>Use Azure Portal search, list resource providers via Azure CLI, and query Azure Resource Graph for resources containing \u201chorizon\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4) If it\u2019s a private preview, how do I get documentation?<\/h3>\n\n\n\n<p>Private previews typically provide documentation through invite channels, your Microsoft account team, or a limited-access doc link. Request official docs and support terms.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5) Can I deploy Azure HorizonDB with Terraform\/Bicep?<\/h3>\n\n\n\n<p>Only if it has an ARM resource provider, resource types, and documented API versions. Otherwise, you cannot safely automate it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6) What should I ask before approving HorizonDB for production?<\/h3>\n\n\n\n<p>Ask for: SLA, pricing meters, HA\/DR design, backup\/restore, encryption, network isolation options, audit logs, quotas, and support boundaries.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7) What\u2019s the safest way to evaluate HorizonDB?<\/h3>\n\n\n\n<p>Start with a dev\/test subscription, restrict network access, enable logging, run load tests, and perform restore drills\u2014using only official instructions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8) What Azure services are most likely alternatives?<\/h3>\n\n\n\n<p>Azure SQL Database (relational), Azure Cosmos DB (NoSQL\/global), and Azure Database for PostgreSQL\/MySQL (open-source relational) are common alternatives.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">9) How do I estimate cost if pricing isn\u2019t public?<\/h3>\n\n\n\n<p>You can\u2019t accurately. Use a comparable Azure database\u2019s pricing as a placeholder model, but require official HorizonDB meters before committing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">10) What are the biggest database cost traps in Azure?<\/h3>\n\n\n\n<p>Overprovisioned throughput\/compute, multi-region replication, log ingestion\/retention, and long backup retention.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">11) Should I require Private Link for production?<\/h3>\n\n\n\n<p>For regulated workloads, usually yes\u2014<strong>if the service supports it<\/strong>. Private connectivity is a common requirement to reduce exposure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12) How do I enforce governance for an unknown database service?<\/h3>\n\n\n\n<p>Use Azure Policy at subscription scope to enforce tags, regions, diagnostic settings, and network rules\u2014where the resource types support those policies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13) Can I use Entra ID instead of keys?<\/h3>\n\n\n\n<p>Many Azure databases support Entra ID auth, but you must verify whether HorizonDB does.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">14) How do I migrate to\/from HorizonDB?<\/h3>\n\n\n\n<p>Migration depends on data model and compatibility. Require export\/import tooling and a tested migration path before adoption.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">15) Where do I look for official announcements?<\/h3>\n\n\n\n<p>Check Azure Updates and Microsoft Learn. If not present, ask Microsoft support\/account team whether it\u2019s internal\/private preview.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">17. Top Online Resources to Learn Azure HorizonDB<\/h2>\n\n\n\n<p>Because Azure HorizonDB is not publicly documented, the most useful resources are those that help you <strong>verify the service<\/strong> and learn the <strong>closest official Azure Databases services<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Resource Type<\/th>\n<th>Name<\/th>\n<th>Why It Is Useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Official docs (Azure)<\/td>\n<td>Azure documentation home: https:\/\/learn.microsoft.com\/azure\/<\/td>\n<td>Starting point to verify whether HorizonDB exists in official docs<\/td>\n<\/tr>\n<tr>\n<td>Official catalog<\/td>\n<td>Azure Products: https:\/\/azure.microsoft.com\/products\/<\/td>\n<td>Search official product listings for \u201cHorizonDB\u201d<\/td>\n<\/tr>\n<tr>\n<td>Official announcements<\/td>\n<td>Azure Updates: https:\/\/azure.microsoft.com\/updates\/<\/td>\n<td>Check if HorizonDB is announced, renamed, or in preview<\/td>\n<\/tr>\n<tr>\n<td>Official pricing<\/td>\n<td>Azure Pricing: https:\/\/azure.microsoft.com\/pricing\/<\/td>\n<td>Verify whether HorizonDB has an official pricing entry<\/td>\n<\/tr>\n<tr>\n<td>Official cost tool<\/td>\n<td>Azure Pricing Calculator: https:\/\/azure.microsoft.com\/pricing\/calculator\/<\/td>\n<td>Build cost estimates once pricing meters are known<\/td>\n<\/tr>\n<tr>\n<td>Official ARM guidance<\/td>\n<td>Resource providers and types: https:\/\/learn.microsoft.com\/azure\/azure-resource-manager\/management\/resource-providers-and-types<\/td>\n<td>Learn how Azure services appear as providers\/types<\/td>\n<\/tr>\n<tr>\n<td>Official database overview<\/td>\n<td>Azure Databases overview: https:\/\/learn.microsoft.com\/azure\/azure-sql\/azure-sql-iaas-vs-paas-what-is-overview<\/td>\n<td>Helps choose a correct official database service if HorizonDB is not real\/available<\/td>\n<\/tr>\n<tr>\n<td>Official Cosmos DB docs<\/td>\n<td>Azure Cosmos DB: https:\/\/learn.microsoft.com\/azure\/cosmos-db\/introduction<\/td>\n<td>Reference implementation used in the lab and a common HorizonDB-like candidate (if global NoSQL is needed)<\/td>\n<\/tr>\n<tr>\n<td>Official SQL docs<\/td>\n<td>Azure SQL Database: https:\/\/learn.microsoft.com\/azure\/azure-sql\/database\/sql-database-paas-overview<\/td>\n<td>Reference for relational managed database patterns<\/td>\n<\/tr>\n<tr>\n<td>Official monitoring docs<\/td>\n<td>Azure Monitor: https:\/\/learn.microsoft.com\/azure\/azure-monitor\/<\/td>\n<td>Monitoring\/alerting patterns applicable to databases<\/td>\n<\/tr>\n<tr>\n<td>Official security docs<\/td>\n<td>Defender for Cloud: https:\/\/learn.microsoft.com\/azure\/defender-for-cloud\/defender-for-cloud-introduction<\/td>\n<td>Database security posture management and recommendations<\/td>\n<\/tr>\n<tr>\n<td>Samples<\/td>\n<td>Azure Cosmos DB samples (Microsoft): https:\/\/github.com\/Azure-Samples?query=cosmos<\/td>\n<td>Practical code patterns for database apps on Azure<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">18. Training and Certification Providers<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Institute<\/th>\n<th>Suitable Audience<\/th>\n<th>Likely Learning Focus<\/th>\n<th>Mode<\/th>\n<th>Website<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps engineers, SREs, platform teams<\/td>\n<td>Azure fundamentals, DevOps, cloud ops practices<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>ScmGalaxy.com<\/td>\n<td>Beginners to intermediate engineers<\/td>\n<td>DevOps\/SCM, automation foundations<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.scmgalaxy.com\/<\/td>\n<\/tr>\n<tr>\n<td>CLoudOpsNow.in<\/td>\n<td>Cloud operations practitioners<\/td>\n<td>Cloud ops, monitoring, reliability practices<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.cloudopsnow.in\/<\/td>\n<\/tr>\n<tr>\n<td>SreSchool.com<\/td>\n<td>SREs and operations teams<\/td>\n<td>SRE principles, observability, incident response<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.sreschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>AiOpsSchool.com<\/td>\n<td>Ops and platform teams<\/td>\n<td>AIOps concepts, automation, monitoring analytics<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.aiopsschool.com\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">19. Top Trainers<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Platform\/Site<\/th>\n<th>Likely Specialization<\/th>\n<th>Suitable Audience<\/th>\n<th>Website<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>RajeshKumar.xyz<\/td>\n<td>Cloud\/DevOps training content (verify offerings)<\/td>\n<td>Engineers seeking guided training<\/td>\n<td>https:\/\/rajeshkumar.xyz\/<\/td>\n<\/tr>\n<tr>\n<td>devopstrainer.in<\/td>\n<td>DevOps training platform (verify offerings)<\/td>\n<td>DevOps learners and teams<\/td>\n<td>https:\/\/www.devopstrainer.in\/<\/td>\n<\/tr>\n<tr>\n<td>devopsfreelancer.com<\/td>\n<td>Freelance DevOps services\/training (verify offerings)<\/td>\n<td>Small teams needing help<\/td>\n<td>https:\/\/www.devopsfreelancer.com\/<\/td>\n<\/tr>\n<tr>\n<td>devopssupport.in<\/td>\n<td>DevOps support\/training (verify offerings)<\/td>\n<td>Operations and DevOps practitioners<\/td>\n<td>https:\/\/www.devopssupport.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">20. Top Consulting Companies<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Company<\/th>\n<th>Likely Service Area<\/th>\n<th>Where They May Help<\/th>\n<th>Consulting Use Case Examples<\/th>\n<th>Website<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>cotocus.com<\/td>\n<td>Cloud\/DevOps consulting (verify offerings)<\/td>\n<td>Architecture reviews, implementations<\/td>\n<td>Landing zone setup, CI\/CD, cloud migration support<\/td>\n<td>https:\/\/cotocus.com\/<\/td>\n<\/tr>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps\/cloud consulting &amp; training (verify offerings)<\/td>\n<td>Cloud ops, DevOps transformation<\/td>\n<td>Azure DevOps pipelines, observability rollouts, platform enablement<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>DEVOPSCONSULTING.IN<\/td>\n<td>DevOps consulting (verify offerings)<\/td>\n<td>Process\/tooling modernization<\/td>\n<td>Infrastructure automation, SRE practices adoption<\/td>\n<td>https:\/\/www.devopsconsulting.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">21. Career and Learning Roadmap<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn before this service<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure fundamentals: subscriptions, resource groups, RBAC, networking<\/li>\n<li>Database fundamentals: relational vs NoSQL, indexing, transactions, consistency<\/li>\n<li>Security fundamentals: identity, least privilege, secrets management<\/li>\n<li>Observability: metrics vs logs, alerting, SLOs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn after this service<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>IaC: Bicep\/Terraform and CI\/CD automation for database provisioning<\/li>\n<li>Advanced HA\/DR: multi-region strategies, failover testing, chaos engineering<\/li>\n<li>Performance engineering: query tuning, load testing, capacity planning<\/li>\n<li>FinOps: cost allocation, anomaly detection, reserved capacity<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Job roles that use it<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cloud engineer \/ platform engineer<\/li>\n<li>Solutions architect<\/li>\n<li>DevOps engineer \/ SRE<\/li>\n<li>Database engineer (DBA\/DBRE)<\/li>\n<li>Security engineer (cloud security posture)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Certification path (Azure)<\/h3>\n\n\n\n<p>Because Azure HorizonDB is not an official public service, focus on broadly applicable Azure certifications:\n&#8211; AZ-900 (Azure Fundamentals)\n&#8211; AZ-104 (Azure Administrator)\n&#8211; AZ-305 (Azure Solutions Architect)\n&#8211; DP-900 (Data Fundamentals)\n&#8211; Role-specific data certifications depending on your chosen database service (verify current certification lineup on Microsoft Learn)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project ideas for practice<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build an API with managed identity accessing a managed database<\/li>\n<li>Implement private endpoint connectivity and private DNS for a database<\/li>\n<li>Create cost dashboards and budget alerts for database resources<\/li>\n<li>Run backup\/restore drills and document RPO\/RTO evidence<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">22. Glossary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ARM (Azure Resource Manager):<\/strong> Azure\u2019s control plane for deploying and managing resources.<\/li>\n<li><strong>Azure Resource Provider:<\/strong> A namespace that exposes resource types (e.g., database accounts) to ARM.<\/li>\n<li><strong>Control plane:<\/strong> Management operations such as create\/update\/scale.<\/li>\n<li><strong>Data plane:<\/strong> Runtime operations such as connecting, reading, and writing data.<\/li>\n<li><strong>Entra ID (Azure AD):<\/strong> Identity provider for Azure authentication and RBAC.<\/li>\n<li><strong>RBAC:<\/strong> Role-based access control for Azure resources.<\/li>\n<li><strong>Private Link \/ Private Endpoint:<\/strong> Private connectivity to Azure services via a private IP in your VNet.<\/li>\n<li><strong>Log Analytics:<\/strong> Azure service for collecting and querying logs (Azure Monitor Logs).<\/li>\n<li><strong>RPO\/RTO:<\/strong> Recovery Point Objective \/ Recovery Time Objective for disaster recovery.<\/li>\n<li><strong>PITR:<\/strong> Point-in-time restore.<\/li>\n<li><strong>IaC:<\/strong> Infrastructure as Code (Bicep, Terraform, etc.).<\/li>\n<li><strong>SLA:<\/strong> Service Level Agreement defining availability\/support commitments.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">23. Summary<\/h2>\n\n\n\n<p><strong>Azure HorizonDB<\/strong> is not publicly verifiable as an official Azure Databases service name in Microsoft documentation and pricing (verify). The practical path is to <strong>confirm whether it exists in your subscription<\/strong> via resource provider discovery and then demand the basics\u2014<strong>SLA, security model, HA\/DR, quotas, and pricing meters<\/strong>\u2014before any production use.<\/p>\n\n\n\n<p>In the meantime, you can build real skills using documented Azure database services (like Azure Cosmos DB or Azure SQL Database): secure identity, network isolation, encryption, monitoring, backups, and cost controls. Your next learning step is to run the discovery workflow in this tutorial and\u2014if HorizonDB is not confirmed\u2014select an official Azure database that matches your workload\u2019s data model and operational requirements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Databases<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[40,12],"tags":[],"class_list":["post-419","post","type-post","status-publish","format-standard","hentry","category-azure","category-databases"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/comments?post=419"}],"version-history":[{"count":0,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/419\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/media?parent=419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/categories?post=419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/tags?post=419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}