Diagram generation: ref-arch-driven procedure + spec validator + KB enrichment

The diagram path now follows a documented standard procedure (lookup
the closest Oracle Architecture Center reference → confirm components
→ author absolute_layout → spec validator → render → visually verify)
and ships persistent guardrails so layout regressions can't recur.

Persistent procedure changes (apply to all users, all sessions):
- tools/diagram_spec_validator.py — geometry checks (CONTAINER_TOO_THIN,
  CONTAINER_PADDING_VIOLATION, LABEL_OVERFLOW_PARENT) run BEFORE either
  renderer (drawio + PPTX). Catches the subnet-collapse / label-overflow
  bugs that the post-render drawio validator missed.
- tools/oci_diagram_gen.py + tools/oci_pptx_diagram_gen.py — call the
  spec validator before emitting any output. Adds mysql / mysql_heatwave
  type aliases.
- tools/archcenter_pattern_lookup.py — scores against cached page
  descriptions (not just the 1-line summary), supports --queries for
  multi-fragment composition, and applies synonym expansion via
  kb/architecture-center/synonyms.yaml so "LB HA cross AD" matches
  "load balancer high availability availability domain".
- kb/architecture-center/synonyms.yaml — canonical synonym table
  (load balancer, autonomous database, data guard, …) used by the
  lookup scorer.

KB enrichment:
- tools/archcenter_description_fetcher.py + 121 cached _description.md
  under kb/diagram/assets/archcenter-refs/<slug>/. Removes the runtime
  dependency on docs.oracle.com when authoring specs and feeds the
  pattern-lookup scorer.
- 110+ cached .drawio / .svg / .png references for offline reuse,
  plus the OCI Toolkit v24.2 import (kb/diagram/assets/oci-toolkit-drawio).

Documentation:
- docs/skill/output-formats.md — new "Standard diagram-generation
  procedure (MANDATORY)" + geometry rules + the new validator entry.
- SKILL.md option 2 — references the mandatory procedure.
- README.md — describes the spec validator, archcenter_pattern_lookup
  and description fetcher, and updates the KB-health table.

Tooling that backs the procedure (cumulative across recent sessions):
tools/archcenter_case_runner.py, archcenter_batch_driver.py,
archcenter_zip_downloader.py, drawio_visual_validator.py,
drawio_fidelity_eval.py, harvest_drawio_icon.py, import_oci_library.py,
oci_pptx_diagram_gen.py, oci_pptx_render.py, refresh_pptx_icon_index.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
root
2026-04-25 21:15:21 -03:00
parent 2491c38d4b
commit b30a4f0d32
635 changed files with 365317 additions and 1014 deletions

View File

@@ -0,0 +1,295 @@
# Migrate business critical applications to Oracle Database@Azure using a phased strategy
- Source: https://docs.oracle.com/en/solutions/phased-migration-to-oracle-dba/index.html
- Date: 2025-03
- Type: reference-architecture
- Services: exacs, azure, goldengate, adg
- Tags: database, multicloud, azure, migration
## Summary (catalog)
Phased migration to Database@Azure. Leverages OCI networking for DR replication with low-latency, high-bandwidth connectivity. Integrates Autonomous Recovery Service with Data Guard for data protection.
## Architecture (fetched from source)
Architecture
This architecture outlines a phased approach for migrating on-premises Oracle
Database onto Oracle Exadata Database
Service at Oracle Database@Azure with minimal downtime.
To simplify this strategy, we break it down into three key aspects: current
state, future state, and migration phases.
This reference architecture has four primary components (marked with blue
numbers in diagram).
Number
Component
Description
1
On-premises primary data center
Hosts the database and application as the primary system before
migration.
2
On-premises standby data center
Maintains a standby system, replicating the on-premises primary
database.
3
Azure primary region
Runs the application and database on Oracle Database@Azure , becoming the primary system post-migration.
4
Azure standby region
A disaster recovery site replicating the primary region using Oracle Data Guard .
Description of the illustration logical-architecture-diagram.png
logical-architecture-diagram-oracle.zip
Current state
In the existing setup, both the primary data center (1) and standby data center (2) are
hosted on-premises, supporting application workloads and databases. The primary data
center handles all requests, while the standby data center maintains asynchronous
replication using Oracle Data Guard . This ensures high availability, with the standby system ready for failover in case
of unexpected failures.
Future state
The future architecture mirrors the current setup but is fully hosted in the
cloud, spanning two Azure regions: the primary region (3) and the standby region (4). The database is migrated
to Oracle Database@Azure Exadata services, with asynchronous replication between the primary and standby
databases managed via Oracle Data Guard over the Oracle Cloud
Infrastructure (OCI) network.
For secure connectivity between the on-premises data center and Azure , an Azure Firewall is deployed within a secure Virtual WAN (vWAN) Hub in Azure .
Migration phases
The migration follows a two-phase approach to ensure a controlled and
reliable transition.
Phase 1 Transitioning on-premises standby to Azure and switchover
In this phase, the on-premises standby system (2) is migrated to Azure (3). Once completed, the primary (1) and standby (3) roles are swapped, making Azure the new primary region.
- Establish connectivity between on-premises and Azure using Azure ExpressRoute .
- Configure Azure secure hub, Azure Firewall, and vWAN for security (if not already in place).
- Provision Oracle Exadata Cloud Infrastructure in Azure s primary region, then:
- Set up an Oracle Exadata virtual machine (VM) cluster and create
the target database.
- Enable archive logs and forced logging on the primary database
(if not already enabled).
- Configure Oracle Net for listener and TNS names for discovery.
- Restore from service to set up a standby database in Azure s primary region (3).
- Perform a switchover, making the Azure database (3) the new primary.
- Migrate applications to the Azure primary region (3) and update DNS routes.
- Verify the Data Guard configuration and monitor the replication status.
Phase 2 Establishing standby in Azure and decommissioning on-premises
In this phase, a standby system (4) is set up in Azure , and on-premises resources (1 and 2) are decommissioned.
- Provision Oracle Exadata Cloud Infrastructure in the standby region (4) with Oracle Database@Azure .
- Set up an Oracle Exadata VM cluster and create the standby database.
- Enable Oracle Data Guard to associate the primary region database (3) with the standby database (4).
- Use OCI networking for high-throughput replication, leveraging local and remote
peering within a hub-and-spoke topology between the primary and standby
databases.
- Migrate application workloads to the Azure standby region (4).
- Stop the synchronization with the on-premises resources and then
decommission the on-premises application and database resources from the primary (1)
and standby (2) data centers.
The following diagram illustrates this reference architecture.
Description of the illustration physical-architecture-diagram.png
physical-architecture-diagram-oracle.zip
Microsoft Azure provides the following components:
- Azure Region
An Azure region is a geographical area in which one or more
physical Azure data centers, called availability zones, reside. Regions
are independent of other regions, and vast distances can
separate them (across countries or even continents).
Azure and OCI regions are localized geographic areas. For Oracle Database@Azure , an Azure region is connected to an OCI region, with availability
zones (AZs) in Azure connected to availability domains (ADs) in OCI. Azure and OCI region pairs are selected to minimize distance
and
latency.
- Azure Availability Zone
Azure
availability zones are physically separate locations within
an Azure region, designed to ensure high availability and
resiliency by providing independent power, cooling, and
networking.
- Azure VNet
Microsoft Azure Virtual Network (VNet) is
the fundamental building block for your private network in
Azure. VNet enables many types of Azure resources, such as
Azure virtual machines (VM), to securely communicate with
each other, the internet, and on-premises networks.
- Azure Delegated Subnet
Subnet delegation is
Microsoft's ability to inject a managed service,
specifically a platform-as-a-service (PaaS) service,
directly into your virtual network. This allows you to
designate or delegate a subnet to be a home for an external
managed service inside of your virtual network, such that
external service acts as a virtual network resource, even
though it is an external PaaS service.
- Azure VNIC
The services in Azure
data centers have physical network interface cards (NICs).
Virtual machine instances communicate using virtual NICs
(VNICs) associated with the physical NICs. Each instance has
a primary VNIC that's automatically created and attached
during launch and is available during the instance's
lifetime.
- Azure Virtual Network Gateway
Azure
Virtual Network Gateway establishes secure, cross-premises
connectivity between an Azure virtual network and an
on-premises network. It allows you to create a hybrid
network that spans your data center and
Azure.
- Azure Virtual WAN
Microsoft Azure Virtual
WAN (VWAN) is a networking service that brings many
networking, security, and routing functionalities together
to provide a single operational interface.
- Azure Secure Hub
An Azure secure hub, also known as a
secured virtual hub, is an Azure Virtual WAN hub enhanced
with security and routing policies managed by Azure Firewall
Manager. It simplifies the creation of hub-and-spoke and
transitive network architectures by integrating native
security services for traffic governance and protection.
This setup automates traffic routing, eliminating the need
for user-defined routes (UDRs). Organizations can use a
secure hub to filter and secure traffic between virtual
networks, branch offices, and the internet, ensuring robust
security and streamlined network management.
- Azure Firewall Manager
Azure Firewall
Manager is a centralized security management service that
simplifies the deployment and configuration of Azure
Firewall across multiple regions and subscriptions. It
allows for hierarchical policy management, enabling global
and local firewall policies to be applied consistently. When
integrated with Azure Virtual WAN (vWAN) and a secure hub,
Azure Firewall Manager enhances security by automating
traffic routing and filtering without the need for
user-defined routes (UDRs). This integration ensures that
tr

View File

@@ -0,0 +1,195 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36" version="26.1.1">
<diagram name="logical-architecture-diagram" id="logical-architecture-diagram">
<mxGraphModel dx="1032" dy="1097" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<UserObject label="" tags="Background" id="2">
<mxCell style="vsdxID=2;fillColor=#FFFFFF;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry width="651" height="330" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="3">
<mxCell style="vsdxID=4;fillColor=#f5f4f2;gradientColor=none;shape=stencil(vVPRDoIgFP0aHnUIW9mz2X+wRGWRuCul/n0QWia5Ntt8u5x78Nxz8SCaNCWrOSK40aAuvBWZLhE9IkJEVXIQ2lSIpogmuQJegLpVmTvXzDJtdVV3+4XO3cP2BsG9Ox3iMN4/kZMjMzibLgzkKKSui6EfkYg6xKOMDDxIdAHrRBOA0kwLVX3ISwYFD4xYkEtWfLSalvPag4fxpKgmXsz0O/pVfLUbvLSfDezMxV/TrXXj72ezp/F+i//eZWExGxj5kRdTvJOWCyldUKf9eTIN5FJN0wc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry width="269" height="329" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="4">
<mxCell style="vsdxID=5;fillColor=none;gradientColor=none;shape=stencil(vVPRDoIgFP0aHnUIW9mz2X+wRGWRuCul/n0QWia5Ntt8u5x78Nxz8SCaNCWrOSK40aAuvBWZLhE9IkJEVXIQ2lSIpogmuQJegLpVmTvXzDJtdVV3+4XO3cP2BsG9Ox3iMN4/kZMjMzibLgzkKKSui6EfkYg6xKOMDDxIdAHrRBOA0kwLVX3ISwYFD4xYkEtWfLSalvPag4fxpKgmXsz0O/pVfLUbvLSfDezMxV/TrXXj72ezp/F+i//eZWExGxj5kRdTvJOWCyldUKf9eTIN5FJN0wc=);strokeColor=#9e9892;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry width="269" height="329" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;&lt;b&gt;On-Premises Data Center&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="5">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=6;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="33" y="7" width="389" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="6">
<mxCell style="vsdxID=8;fillColor=#ecf3fb;gradientColor=none;shape=stencil(vVPRDoIgFP0aHnUIW9mz2X+wRGWRuCul/n0QWia5Ntt8u5x78Nxz8SCaNCWrOSK40aAuvBWZLhE9IkJEVXIQ2lSIpogmuQJegLpVmTvXzDJtdVV3+4XO3cP2BsG9Ox3iMN4/kZMjMzibLgzkKKSui6EfkYg6xKOMDDxIdAHrRBOA0kwLVX3ISwYFD4xYkEtWfLSalvPag4fxpKgmXsz0O/pVfLUbvLSfDezMxV/TrXXj72ezp/F+i//eZWExGxj5kRdTvJOWCyldUKf9eTIN5FJN0wc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="381" width="269" height="329" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="7">
<mxCell style="vsdxID=9;fillColor=none;gradientColor=none;shape=stencil(vVPRDoIgFP0aHnUIW9mz2X+wRGWRuCul/n0QWia5Ntt8u5x78Nxz8SCaNCWrOSK40aAuvBWZLhE9IkJEVXIQ2lSIpogmuQJegLpVmTvXzDJtdVV3+4XO3cP2BsG9Ox3iMN4/kZMjMzibLgzkKKSui6EfkYg6xKOMDDxIdAHrRBOA0kwLVX3ISwYFD4xYkEtWfLSalvPag4fxpKgmXsz0O/pVfLUbvLSfDezMxV/TrXXj72ezp/F+i//eZWExGxj5kRdTvJOWCyldUKf9eTIN5FJN0wc=);strokeColor=#0078d7;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="381" width="269" height="329" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;&lt;b&gt;Azure Cloud&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="8">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=10;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="467" y="7" width="186" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="9">
<mxCell style="vsdxID=12;fillColor=#FFFFFF;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="9" y="51" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="10">
<mxCell style="vsdxID=13;fillColor=none;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=#c74634;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="9" y="51" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;On-Premises&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="11">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=14;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="85" y="86" width="186" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Primary&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="12">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=15;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="105" y="103" width="118" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="13">
<mxCell style="vsdxID=17;fillColor=#FFFFFF;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="9" y="212" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="14">
<mxCell style="vsdxID=18;fillColor=none;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=#c74634;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="9" y="212" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;On-Premises&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="15">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=19;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="85" y="247" width="186" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Standby&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="16">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=20;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="103" y="263" width="118" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="17">
<mxCell style="vsdxID=22;fillColor=#FFFFFF;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="390" y="51" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="18">
<mxCell style="vsdxID=23;fillColor=none;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=#5f7d4f;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="390" y="51" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Azure&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="19">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=24;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="494" y="86" width="84" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Primary&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="20">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=25;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="486" y="103" width="118" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="21">
<mxCell style="vsdxID=27;fillColor=#FFFFFF;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="390" y="212" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="22">
<mxCell style="vsdxID=28;fillColor=none;gradientColor=none;shape=stencil(vVPLDoMgEPwajhoUa+rZ2v8gFZWUillotX9fLNT6iGliE2/L7iyzszCIpKqiDUMhVhrklbU81xUiJxSGvK4YcG0iRDJE0kICK0He69yeG9oj++gmH/0Nne3DfUeIn/aUxH4UvzNnC6ZwMVVw4OBTxeAaiH+IbGYBcYgAO4rOox1XHkhNNZf1hF5QKJlnyLxC0HJSUi1jzSLtxhO8HmlJjsM0M/LNavDafnaQMycfptuqZrmf3Z5m8S3+e5eVxewg5IdfTPB1WsGFsEYd1+fONCnrapK9AA==);strokeColor=#5f7d4f;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="390" y="212" width="252" height="104" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Azure&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="23">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=29;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="494" y="247" width="84" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Standby&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="24">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=30;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="484" y="263" width="118" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="25">
<mxCell style="vsdxID=31;fillColor=#312d2a;gradientColor=none;shape=stencil(nVTRcoMgEPwaXm+OO1B5TpP/yDSmOrUxY0xr/75YaAM4wUnecN29XY4DwZtLsz/XgvAyDv17/dUexkbwiyBqT009tKNdCd4K3hz7oX4b+uvp4L7P+5k5rz76z7nC5HTGQFHNKsJvh2gFpfpFdk7weh2cQjqCRPQCD2gCSQ6aKOV4QJVQeZ+Jl9YeUhqoCL279hSGVaAoCktQUC6rVcg4LMZBDYOu4qiYxGQgHcdcdSUwnPQIiBPngPQHgUp7tDSXBGgyPSpvZb01ZthBfYdUVi8f3JxB0LS+OztY5er2bH6usv7BiaUTOdHi2NOB/LcOZumeddKr9avysCC+jBiTCyizxf0YPMtXDHyfj09z8znyXLu4vVTHtuvcQxf+T182C7lXkbc/);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="262" y="93" width="128" height="15" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="26">
<mxCell style="vsdxID=32;fillColor=#312d2a;gradientColor=none;shape=stencil(pVTRcoMgEPwaXm/wDgSe0+Q/MompTq1mjGmTvy8OaICOmrRv57rH7t3BMdpcyv25YMgvfdd+FN/VsS8ZvTHEqimLruptxGjLaHNqu+K9a6/N0X2f9wNziD7br+GEm8sTEjAfspDfHWLMiOxcwuHauYzMpyjQ2qd4KOPcATd0gETI0HMw5ZDnCFDCc2hGu66awKxRQDoyqxWgXjI7qY5WdQ5SxGYfHA9oCSRjs6G0h7SAHJe0jS1QJeo09W5UNxxk0qqQRVOhJlvRj5sledQpYwet5tkZAjdxa1fLA6FXq7OqtFocjkrP9zadajAxjBn4e+7zsul1ipv0xGN5OSF5jgQU8fnC4SnX3lFDCxciB/Uv/ite/sy1wWNXnaq6dqsu/J/uNgu5vUjbHw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="508" y="156" width="15" height="56" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="27">
<mxCell style="vsdxID=34;fillColor=#FFFFFF;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="297" y="94" width="58" height="14" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:14.82px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Phase 1&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="28">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=35;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="301" y="93" width="103" height="17" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="29">
<mxCell style="vsdxID=37;fillColor=#ecf3fb;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="486" y="174" width="60" height="14" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:14.82px;font-family:Oracle Sans;color:#312d2a;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;Phase 2&lt;br/&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="30">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=38;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="490" y="174" width="103" height="17" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="31">
<mxCell style="vsdxID=40;fillColor=#70665e;gradientColor=none;shape=stencil(vVHLDsIgEPwajiQI6RfU+h8bu22JCGRB2/69kG1iazx58DazM/vIjjBtmiCi0CplCjecbZ8nYc5Ca+snJJsLEqYTph0C4Ujh4XvmEaqzont41gkL96naodXKrGF6YSfQtUi0OXXDVlqPfJNP6usotUhYbJIUMmQb/GGrAxpRljVycDBuc1hKM2LclX8/7H9nFfB+82Cd45T2+mcspcSRmu4F);strokeColor=#FFFFFF;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="18" y="38" width="24" height="24" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#FFFFFF;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;&lt;b&gt;1&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="32">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=41;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="26" y="41" width="16" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="33">
<mxCell style="vsdxID=43;fillColor=#70665e;gradientColor=none;shape=stencil(vVHLDsIgEPwajiQI6RfU+h8bu22JCGRB2/69kG1iazx58DazM/vIjjBtmiCi0CplCjecbZ8nYc5Ca+snJJsLEqYTph0C4Ujh4XvmEaqzont41gkL96naodXKrGF6YSfQtUi0OXXDVlqPfJNP6usotUhYbJIUMmQb/GGrAxpRljVycDBuc1hKM2LclX8/7H9nFfB+82Cd45T2+mcspcSRmu4F);strokeColor=#FFFFFF;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="18" y="199" width="24" height="24" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#FFFFFF;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;&lt;b&gt;2&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="34">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=44;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="25" y="202" width="16" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="35">
<mxCell style="vsdxID=46;fillColor=#70665e;gradientColor=none;shape=stencil(vVHLDsIgEPwajiQI6RfU+h8bu22JCGRB2/69kG1iazx58DazM/vIjjBtmiCi0CplCjecbZ8nYc5Ca+snJJsLEqYTph0C4Ujh4XvmEaqzont41gkL96naodXKrGF6YSfQtUi0OXXDVlqPfJNP6usotUhYbJIUMmQb/GGrAxpRljVycDBuc1hKM2LclX8/7H9nFfB+82Cd45T2+mcspcSRmu4F);strokeColor=#FFFFFF;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="399" y="38" width="24" height="24" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#FFFFFF;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;&lt;b&gt;3&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="36">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=47;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="406" y="41" width="16" height="20" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="" tags="Background" id="37">
<mxCell style="vsdxID=49;fillColor=#70665e;gradientColor=none;shape=stencil(vVHLDsIgEPwajiQI6RfU+h8bu22JCGRB2/69kG1iazx58DazM/vIjjBtmiCi0CplCjecbZ8nYc5Ca+snJJsLEqYTph0C4Ujh4XvmEaqzont41gkL96naodXKrGF6YSfQtUi0OXXDVlqPfJNP6usotUhYbJIUMmQb/GGrAxpRljVycDBuc1hKM2LclX8/7H9nFfB+82Cd45T2+mcspcSRmu4F);strokeColor=#FFFFFF;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="399" y="199" width="24" height="24" as="geometry" />
</mxCell>
</UserObject>
<UserObject label="&lt;div style=&quot;font-size: 1px&quot;&gt;&lt;p style=&quot;text-align:left;margin-left:0;margin-right:0;margin-top:0px;margin-bottom:0px;text-indent:0;vertical-align:middle;direction:ltr;&quot;&gt;&lt;font style=&quot;font-size:16.93px;font-family:Oracle Sans;color:#FFFFFF;direction:ltr;letter-spacing:0px;line-height:120%;opacity:1&quot;&gt;&lt;b&gt;4&lt;br/&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;" tags="Background" id="38">
<mxCell style="verticalAlign=middle;align=left;overflow=width;vsdxID=50;fillColor=none;gradientColor=none;shape=stencil(nZBLDoAgDERP0z3SIyjew0SURgSD+Lu9kMZoXLhwN9O+tukAlrNpJg1SzDH4QW/URgNYgZTkjA4UkwJUgGXng+6DX1zLfmoymdXo17xh5zmRJ6Q42BWCfc2oJfdAr+Yv+AP9Cb7OJ3H/2JG1HNGz/84klThPVCc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="405" y="202" width="16" height="20" as="geometry" />
</mxCell>
</UserObject>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,70 @@
<svg width="616" height="312" viewBox="0 0 616 312" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="logical-architecture-diagram">
<rect width="616" height="312" fill="white"/>
<g id="OCI Section Boxes">
<rect x="0.5" y="0.5" width="255" height="311" rx="3.5" fill="#F5F4F2"/>
<rect x="0.5" y="0.5" width="255" height="311" rx="3.5" stroke="#9E9892"/>
<text id="On-premises" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" font-weight="bold" letter-spacing="0em"><tspan x="31.3828" y="21.816">On-Premises Data Center</tspan></text>
</g>
<g id="Azure Cloud boxes">
<rect x="360.5" y="0.5" width="255" height="311" rx="3.5" fill="#ECF3FB"/>
<rect x="360.5" y="0.5" width="255" height="311" rx="3.5" stroke="#0078D7"/>
<text id="Azure Region" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" font-weight="bold" letter-spacing="0em"><tspan x="441.594" y="21.816">Azure Cloud</tspan></text>
</g>
<g id="Logical Components">
<rect x="8.5" y="48.5" width="239" height="99" rx="3.5" fill="white"/>
<rect x="8.5" y="48.5" width="239" height="99" rx="3.5" stroke="#C74634"/>
<text id="Oracle" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="81.0078" y="95.816">On-Premises</tspan></text>
<text id="On-Premises Component" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="99.4766" y="111.816">Primary</tspan></text>
</g>
<g id="Logical Components_2">
<rect x="8.5" y="200.5" width="239" height="99" rx="3.5" fill="white"/>
<rect x="8.5" y="200.5" width="239" height="99" rx="3.5" stroke="#C74634"/>
<text id="Oracle_2" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="81.0078" y="247.816">On-Premises</tspan></text>
<text id="On-Premises Component_2" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="98.2266" y="263.816">Standby</tspan></text>
</g>
<g id="Logical Components_3">
<rect x="368.5" y="48.5" width="239" height="99" rx="3.5" fill="white"/>
<rect x="368.5" y="48.5" width="239" height="99" rx="3.5" stroke="#5F7D4F"/>
<text id="3rd Party" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="467.031" y="95.816">Azure</tspan></text>
<text id="(non-OCI)" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="459.477" y="111.816">Primary</tspan></text>
</g>
<g id="Logical Components_4">
<rect x="368.5" y="200.5" width="239" height="99" rx="3.5" fill="white"/>
<rect x="368.5" y="200.5" width="239" height="99" rx="3.5" stroke="#5F7D4F"/>
<text id="3rd Party_2" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="467.031" y="247.816">Azure</tspan></text>
<text id="(non-OCI)_2" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" letter-spacing="0em"><tspan x="458.227" y="263.816">Standby</tspan></text>
</g>
<path id="Vector 79" d="M368.707 96.7071C369.098 96.3166 369.098 95.6834 368.707 95.2929L362.343 88.9289C361.953 88.5384 361.319 88.5384 360.929 88.9289C360.538 89.3195 360.538 89.9526 360.929 90.3432L366.586 96L360.929 101.657C360.538 102.047 360.538 102.681 360.929 103.071C361.319 103.462 361.953 103.462 362.343 103.071L368.707 96.7071ZM248 97L368 97L368 95L248 95L248 97Z" fill="#312D2A"/>
<path id="Vector 80" d="M487.293 200.707C487.683 201.098 488.317 201.098 488.707 200.707L495.071 194.343C495.462 193.953 495.462 193.319 495.071 192.929C494.681 192.538 494.047 192.538 493.657 192.929L488 198.586L482.343 192.929C481.953 192.538 481.319 192.538 480.929 192.929C480.538 193.319 480.538 193.953 480.929 194.343L487.293 200.707ZM487 148L487 200L489 200L489 148L487 148Z" fill="#312D2A"/>
<g id="Connector Line Label">
<rect width="55" height="14" transform="translate(281 89)" fill="white"/>
<text id="Line Label" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="14" letter-spacing="0em"><tspan x="285.101" y="101.089">Phase 1</tspan></text>
</g>
<g id="Connector Line Label_2">
<rect width="57" height="14" transform="translate(459.5 165)" fill="#ECF3FB"/>
<text id="Line Label_2" fill="#312D2A" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="14" letter-spacing="0em"><tspan x="463.555" y="177.089">Phase 2</tspan></text>
</g>
<g id="Numbered circle">
<circle id="Ellipse 269" cx="29" cy="48" r="11.5" fill="#70665E" stroke="white"/>
<text id="1" fill="white" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" font-weight="bold" letter-spacing="0em"><tspan x="25.2031" y="53.816">1</tspan></text>
</g>
<g id="Numbered circle_2">
<circle id="Ellipse 269_2" cx="29" cy="200" r="11.5" fill="#70665E" stroke="white"/>
<text id="1_2" fill="white" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" font-weight="bold" letter-spacing="0em"><tspan x="24.2891" y="205.816">2</tspan></text>
</g>
<g id="Numbered circle_3">
<circle id="Ellipse 269_3" cx="389" cy="48" r="11.5" fill="#70665E" stroke="white"/>
<text id="1_3" fill="white" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" font-weight="bold" letter-spacing="0em"><tspan x="384.219" y="53.816">3</tspan></text>
</g>
<g id="Numbered circle_4">
<circle id="Ellipse 269_4" cx="389" cy="200" r="11.5" fill="#70665E" stroke="white"/>
<text id="1_4" fill="white" xml:space="preserve" style="white-space: pre" font-family="Oracle Sans" font-size="16" font-weight="bold" letter-spacing="0em"><tspan x="383.422" y="205.816">4</tspan></text>
</g>
</g>
<defs>
<clipPath id="clip0_18723_2592">
<rect width="616" height="312" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 193 KiB

View File

@@ -0,0 +1,9 @@
The diagram you downloaded is available in these formats:
- DRAWIO
- SVG
You can customize them for your organization using the associated tools:
- For DRAWIO format, use draw.io for Confluence, online at diagrams.net, or the desktop app. Go to diagrams.net for more information.
- For SVG format, use an SVG editor such as Inkscape or Sketsa SVG Editor, which are free and available for Windows, macOS, Linux.
Note that all diagram components are ungrouped and in a single layer.