Skip to content

Example: Cloud Migration

About This Example

This is a fictional but realistic completed Solution Architecture Document at Recommended depth. It demonstrates how to document an on-premises to cloud migration using ADS, with particular emphasis on:

  • Section 1.5 — Current-state / as-is architecture for a legacy system
  • Section 5.2 — Migration classification (6 R’s) and transition planning
  • Section 3.6 — ADRs capturing migration strategy decisions

The fictional company “Meridian Financial Services” is migrating its legacy HR/Payroll system “PayrollPro” from on-premises Windows Server infrastructure to Microsoft Azure.


FieldValue
Document TitleSolution Architecture Document — PayrollPro Azure Migration
Application / Solution NamePayrollPro
Application IDAPP-0347
Author(s)Fred Bloggs, Lead Solution Architect
OwnerFred Bloggs
Version1.0
StatusIn Review
Created Date2026-01-15
Last Updated2026-03-28
ClassificationInternal
VersionDateAuthor / EditorDescription of Change
0.12026-01-15Fred BloggsInitial draft
0.22026-01-30Fred BloggsAdded data view and security view following DBA and InfoSec review
0.32026-02-14Joe BloggsIncorporated infrastructure sizing and network topology
0.42026-02-28Fred BloggsAdded migration plan and transition details following workshop
0.52026-03-10Fred BloggsUpdated cost analysis with Azure pricing calculator outputs
1.02026-03-28Fred BloggsSubmitted for ARB review
NameRoleContribution Type
Fred BloggsLead Solution ArchitectAuthor
Joe BloggsInfrastructure ArchitectReviewer
Jane DoeSecurity ArchitectReviewer
Claire DoeDBA LeadReviewer
Betty BloggsHR Director (Business Sponsor)Approver
ARBArchitecture Review BoardApprover

This SAD describes the target-state architecture for migrating the PayrollPro application from on-premises hosting to Microsoft Azure. It covers the re-platforming of the web application tier, database tier, and document storage, alongside the transitional connectivity required during the migration period.

In scope:

  • PayrollPro web application and database migration to Azure
  • Data migration strategy and cutover plan
  • Transitional VPN connectivity between on-premises and Azure
  • Integration continuity with BACS, pension provider, and HMRC

Out of scope:

  • Citrix VDI replacement (deferred to Phase 2)
  • Application refactoring to microservices (deferred to Phase 2)
  • Other HR systems (recruitment portal, learning management)
  • Detailed low-level database migration runbook (separate document)

Related documents:

  • PayrollPro Database Migration Runbook (DBA-RB-0347)
  • Meridian Azure Landing Zone Design (INFRA-SAD-0091)
  • Meridian Entra ID Connect Deployment Plan (IAM-PRJ-0042)

PayrollPro is the primary payroll processing system for Meridian Financial Services, serving approximately 2,400 employees across six UK offices. The application processes monthly payroll runs, generates payslips, submits PAYE data to HMRC, and interfaces with the corporate pension provider and BACS payment gateway.

The current on-premises hosting infrastructure is approaching end of life (Dell PowerEdge R630 servers purchased in 2017, Windows Server 2016 reaching end of extended support). This project migrates PayrollPro to Microsoft Azure using a Replatform strategy — upgrading the application runtime from .NET Framework 4.8 to .NET 6 and moving the database from SQL Server 2017 on bare metal to Azure SQL Database. This approach delivers improved reliability, disaster recovery, and operational efficiency whilst deferring a full architectural refactoring to a later phase.

DriverDescriptionPriority
Hardware end of lifeDell PowerEdge R630 servers are 9 years old; warranty expired 2024; replacement parts increasingly difficult to sourceHigh
OS end of supportWindows Server 2016 extended support ends October 2027; migration must complete well before this dateHigh
No disaster recoveryCurrent single-site deployment has no DR capability; a hardware failure would cause total service lossHigh
Cost reductionAnnual on-premises hosting costs (hardware refresh, datacentre power, cooling, patching labour) exceed projected Azure OpExMedium
Month-end performancePayroll batch runs at month-end take over 6 hours on current hardware, creating tight processing windowsMedium
ModernisationAlign with Meridian’s cloud-first strategy and reduce technical debt in the .NET Framework codebaseMedium
Manual patchingAll OS and SQL patching is manual, consuming approximately 3 days per month of DBA and infrastructure timeLow
QuestionResponse
Which organisational strategy or initiative does this solution support?Meridian Cloud-First Strategy 2025-2028; IT Modernisation Programme
Has this solution been reviewed against the organisation’s capability model?Yes — payroll processing is an existing capability being migrated, not duplicated
Does this solution duplicate any existing capability?No
CapabilityShared Service / PlatformReused?Justification (if not reused)
Identity & AccessEntra ID (corporate tenant)Yes
Monitoring & LoggingAzure Monitor + Log Analytics (corporate workspace)Yes
CI/CDAzure DevOps (corporate instance)Yes
NetworkingAzure Landing Zone (Hub-Spoke, UK South)Yes
Secret ManagementAzure Key Vault (per-workload vault)Yes
API ManagementAzure API ManagementNoNot required — PayrollPro is not API-first; external integrations use SFTP and point-to-point API calls
Data & AnalyticsSnowflake (corporate data platform)NoPayroll data feeds to Snowflake are out of scope for this phase; existing nightly CSV extract to finance is retained
  • PayrollPro web application (all modules: payroll processing, payslip generation, reporting, employee self-service)
  • PayrollPro SQL Server database (schema, data, stored procedures, SSIS packages)
  • Document storage (payslips, P60s, P45s) — currently on a Windows file share
  • Integration with BACS, pension provider API, and HMRC API
  • Development, staging, and production environments on Azure
  • Disaster recovery to UK West region
  • Transitional VPN connectivity from Azure to on-premises (for Citrix and AD)
  • Citrix VDI infrastructure (users will continue to access PayrollPro via Citrix until Phase 2 migrates to Azure Virtual Desktop)
  • Application refactoring to microservices architecture (Phase 2)
  • Recruitment Portal (APP-0215) and Learning Management System (APP-0389)
  • Corporate Snowflake data pipeline changes
  • End-user device refresh

PayrollPro was originally developed in 2014 as an ASP.NET Web Forms application on .NET Framework 4.5, subsequently upgraded to .NET Framework 4.8 in 2020. It is deployed on-premises in the Meridian London datacentre (Docklands).

ComponentDetail
Application servers2x Dell PowerEdge R630 (purchased 2017, warranty expired 2024). Windows Server 2016 Standard. 16 vCPU, 64 GB RAM each. IIS 10 with NLB.
Database server1x Dell PowerEdge R730 (purchased 2017). Windows Server 2016 Standard. SQL Server 2017 Enterprise. 24 vCPU, 128 GB RAM, 2 TB SAN storage.
File storageWindows file share on NetApp FAS2750. Approximately 180 GB of payslip PDFs and statutory documents.
Active DirectoryOn-premises Windows Server AD (forest: meridian.local). PayrollPro uses Windows Authentication via IIS.
User accessCitrix XenApp 7.15. Users connect via Citrix Receiver from office desktops and remote laptops.
NetworkingFlat VLAN (no network segmentation between app and DB tiers). Firewall rules managed on Palo Alto PA-3260.
BackupVeeam Backup & Replication to local NAS. Daily full backups retained for 30 days. No off-site replication.
MonitoringBasic SCOM 2016 monitoring for CPU/disk thresholds. No application-level monitoring or log aggregation.
IntegrationMethodDirectionSchedule
BACS payment gatewaySFTP file upload (Standard 18 format)OutboundMonthly (payroll run day)
Pension provider (Crestfield)REST APIOutboundMonthly (day after payroll run)
HMRC PAYE RTIREST API (Government Gateway)OutboundMonthly (FPS) and annual (P60)
Corporate ADWindows Integrated AuthenticationInboundReal-time (user logon)
Finance system (SAP)CSV export to shared folderOutboundNightly batch
  1. No disaster recovery — Single-site deployment with no replication. Estimated recovery time from backup is 24-48 hours. A total server failure during payroll week would breach statutory payment deadlines.
  2. Month-end performance — The payroll calculation batch takes 5-7 hours on current hardware. If errors are found, there is insufficient time to re-run before the BACS submission deadline.
  3. Manual patching — All Windows and SQL Server patching is performed manually during weekend maintenance windows. Average 3 days per month of DBA/infrastructure engineer time.
  4. Hardware risk — Servers are 9 years old with no warranty. Two disk failures in the past 12 months, resolved from diminishing spare stock.
  5. No network segmentation — Application and database tiers share a flat VLAN, contrary to Meridian’s updated security standards.
  6. Limited monitoring — SCOM provides basic threshold alerts only. No application performance monitoring, no structured logging, no capacity trending.
Decision / ConstraintRationaleImpact
Replatform (not lift-and-shift)Enables use of Azure PaaS services (App Service, Azure SQL) for reduced operational overhead. Lift-and-shift to IaaS would perpetuate patching burden.Requires .NET 6 upgrade; adds development effort but reduces long-term OpEx
Replatform (not refactor)Full microservices refactoring would extend timeline beyond hardware EOL. Monolithic architecture is retained for Phase 1.Limits scalability benefits; accepted as Phase 1 constraint
Azure SQL Database (not SQL Server on VM)Managed service eliminates OS and SQL patching, provides built-in geo-replication and automated backupsSome T-SQL features may need reworking; SQL Agent jobs replaced by Azure Data Factory
Retain Citrix for Phase 1Replacing Citrix VDI simultaneously would increase project risk and delay deliveryRequires transitional VPN from Azure to on-premises Citrix infrastructure
UK data residencyPayroll data includes NI numbers, salary, and bank details — must remain in UK datacentresConstrains deployment to Azure UK South and UK West regions only
Must complete before Dec 2026Hardware failure risk is increasing; Windows Server 2016 extended support ends Oct 2027Drives phased approach with firm migration window
FieldValue
Project NamePayrollPro Cloud Migration
Project Code / IDPRJ-2026-017
Project ManagerPolly Doe
Estimated Solution Cost (Capex)£185,000 (development, migration, testing, training)
Estimated Solution Cost (Opex)£4,200/month Azure consumption (production + DR)
Target Go-Live DateNovember 2026
TierDescription
Tier 1: CriticalService failure causes immediate, severe business impact
Tier 2: High ImpactService failure significantly impacts business operations
Tier 3: Medium ImpactService failure impacts operations but workarounds exist
Tier 4: Low ImpactService failure has limited business impact
Tier 5: MinimalService failure has negligible impact

Selected criticality: Tier 2 — High Impact

PayrollPro is classified as Tier 2 because a prolonged outage during the payroll processing window (typically days 22-25 of each month) would prevent statutory salary payments to 2,400 employees. Outside the payroll window, a short outage is tolerable (employee self-service and reporting can wait). The system does not directly process financial transactions in real time (Tier 1), but failure to pay staff on time carries significant legal, reputational, and employee welfare consequences.


StakeholderRole / GroupKey ConcernsRelevant Views
Betty BloggsHR Director (Business Sponsor)Payroll continuity, zero missed payments, minimal user disruption during cutoverExecutive Summary, Scenarios, Reliability
Mary BloggsPayroll Team LeadSystem performance at month-end, training on any UI changes, data accuracy after migrationScenarios, Performance, Lifecycle
Fred BloggsLead Solution ArchitectDesign integrity, standards compliance, migration riskAll views
Joe BloggsInfrastructure ArchitectAzure infrastructure, networking, VPN, environmentsPhysical View, Reliability
Jane DoeSecurity ArchitectData protection (PII/SPI), access controls, encryption, SIEM integrationSecurity View, Data View
Claire DoeDBA LeadDatabase migration, Azure SQL compatibility, stored procedure rework, data integrityData View, Logical View, Lifecycle
Polly DoeProject ManagerTimeline, budget, resource availability, dependenciesLifecycle, Decision Making
Sarah BloggsChange ManagerEnd-user communications, training plan, go/no-go criteriaLifecycle, Scenarios
IT OperationsInfrastructure & SupportOngoing monitoring, incident management, on-call supportOperational Excellence, Reliability
ConcernStakeholder(s)Addressed In
Payroll runs must complete without interruptionBetty Bloggs, Mary Bloggs3.6 Scenarios (UC-01), 4.2 Reliability
Payroll data (PII/SPI) must be protected during and after migrationJane Doe, Betty Bloggs3.4 Data View, 3.5 Security View
Migration must not cause data loss or corruptionClaire Doe, Mary Bloggs5.2 Transition Plan, 3.4 Data View
System must be recoverable within 4 hoursIT Operations, Betty Bloggs4.2 Reliability (RTO/RPO)
Azure costs must not exceed approved budgetPolly Doe4.4 Cost Optimisation
Team must be trained on Azure operationsIT Operations, Joe Bloggs5.6 Resourcing & Skills
Cutover must be reversible (rollback plan)Polly Doe, Fred Bloggs5.2 Transition Plan
Month-end batch performance must improveMary Bloggs4.3 Performance
Regulation / StandardApplicabilityImpact on Design
UK GDPR / Data Protection Act 2018Payroll data contains PII and SPI (salary, NI numbers, bank details)Field-level encryption for SPI; DPIA required; data residency in UK
HMRC PAYE regulationsStatutory obligation to report payroll via Real Time Information (RTI)HMRC API integration must be maintained throughout migration
Employment Rights Act 1996Statutory obligation to pay employees on timeDrives Tier 2 criticality and RTO requirements
FCA operational resilience (indirect)Meridian is FCA-regulated; critical internal systems must demonstrate resilienceDR capability required; documented RTO/RPO
StandardVersionApplicability
Meridian Information Security Standardv3.2All sections — encryption, access control, monitoring
Meridian Cloud Security Baselinev1.0Physical View, Security View — Azure-specific controls
Meridian Data Classification Policyv2.1Data View — classification and handling requirements

graph LR
  Browser[Browser via Citrix] --> AppSvc[App Service - PayrollPro .NET 6]
  AppSvc --> SQL[Azure SQL Database]
  AppSvc --> Blob[Blob Storage - payslips]
  AppSvc -- SFTP --> BACS[BACS Payment Gateway]
  AppSvc -- API --> Pension[Crestfield Pension]
  AppSvc -- API --> HMRC[HMRC]
  EntraID[Entra ID - SSO + MFA] --> AppSvc
  KeyVault[Azure Key Vault] --> AppSvc
ComponentTypeDescriptionTechnologyOwner
PayrollPro Web ApplicationApplicationMonolithic web application handling payroll processing, employee self-service, reporting, and payslip generationASP.NET Core (.NET 6), hosted on Azure App Service (P2v3)Payroll Development Team
PayrollPro DatabaseDatabaseRelational database storing employee records, payroll calculations, tax codes, and historical payroll dataAzure SQL Database (Business Critical, Gen5, 8 vCores)DBA Team
Payslip Document StoreStoragePDF storage for payslips, P60s, P45s, and other statutory documentsAzure Blob Storage (Hot tier, LRS)Payroll Development Team
BACS Payment File GeneratorApplication ModuleGenerates Standard 18 format payment files for BACS submissionComponent within PayrollPro (replaces legacy SSIS package)Payroll Development Team
Payroll Batch ProcessorApplication ModuleExecutes monthly payroll calculations, tax deductions, and NI contributionsComponent within PayrollPro (scheduled via Azure WebJobs)Payroll Development Team
HMRC RTI Submission ModuleApplication ModuleSubmits Full Payment Submission (FPS) and Employer Payment Summary (EPS) to HMRCComponent within PayrollPro using HMRC Government Gateway APIPayroll Development Team
Pension Contribution ModuleApplication ModuleCalculates and submits pension contributions to CrestfieldComponent within PayrollPro using Crestfield REST APIPayroll Development Team
Finance Export JobScheduled JobNightly CSV export of payroll journal entries to SAP finance shared folderAzure Data Factory pipeline (replaces legacy SQL Agent job)DBA Team
Service IDService NameCapability IDCapability Name
SVC-047Payroll ProcessingCAP-HR-003Employee Compensation
SVC-047Payroll ProcessingCAP-HR-004Statutory Reporting
SVC-048Employee Self-ServiceCAP-HR-005Employee Portal
SVC-049Payslip DistributionCAP-HR-006Document Management
Application NameApplication IDImpact TypeChange DetailsComments
Corporate Active DirectoryINFRA-001UseEntra ID Connect syncs identities; PayrollPro switches from Windows Auth to Entra ID OIDCDependency on Entra ID Connect deployment (D-001)
Citrix XenAppINFRA-042UseCitrix published app URL updated to point to Azure App Service endpoint via VPNTransitional — removed in Phase 2
SAP FinanceAPP-0112UseFinance export CSV delivery path changes from on-prem file share to Azure Blob + ADF pipelineRequires SAP team to update import job path
SCOM MonitoringINFRA-033ChangePayrollPro removed from SCOM monitoring; replaced by Azure MonitorSCOM agent decommissioned post-migration

3.1.6 Technology & Vendor Lock-in Assessment

Section titled “3.1.6 Technology & Vendor Lock-in Assessment”
Component / ServiceVendor / TechnologyLock-in LevelMitigationPortability Notes
Azure App ServiceMicrosoft AzureModerateApplication uses standard ASP.NET Core; could deploy to any container host or IaaS.NET 6 is cross-platform; no Azure-specific SDK dependencies in application code
Azure SQL DatabaseMicrosoft AzureModerateStandard T-SQL; data exportable via BACPAC or DMSSome Azure SQL-specific features (geo-replication) would need replacement on another platform
Azure Blob StorageMicrosoft AzureLowStandard REST API; data exportable via AzCopy or Storage ExplorerCould migrate to S3 or any object store with tooling
Azure Key VaultMicrosoft AzureLowSecrets and keys exportable; application uses abstraction layerCould replace with HashiCorp Vault or AWS Secrets Manager
Azure Data FactoryMicrosoft AzureModeratePipeline definitions are JSON-based; logic is simple CSV exportCould replace with any ETL tool; low complexity pipeline
Entra IDMicrosoft AzureHighMeridian is an Entra ID organisation; this is an enterprise-wide dependency, not PayrollPro-specificMigration away from Entra ID would be an enterprise programme, not a per-application decision
graph LR
  Entry[Employee Data Entry] --> PP[PayrollPro]
  PP --> Calc[Payroll Calculation]
  Calc -- Payment file --> BACS[BACS]
  Calc -- Pension --> Pension[Crestfield API]
  Calc -- RTI --> HMRC[HMRC API]
  Calc -- Payslip PDFs --> Blob[Blob Storage]
  Calc -- Finance journal --> ADF[ADF]
  ADF --> SAP[SAP]
Source ComponentDestination ComponentProtocol / EncryptionAuthentication MethodPurpose
PayrollPro Web AppAzure SQL DatabaseTDS / TLS 1.2Managed Identity (Entra ID token-based)Application data access
PayrollPro Web AppAzure Blob StorageHTTPS / TLS 1.2Managed IdentityPayslip PDF storage and retrieval
PayrollPro Web AppAzure Key VaultHTTPS / TLS 1.2Managed IdentityRetrieve secrets (API keys, connection strings)
Azure Data FactoryAzure SQL DatabaseTDS / TLS 1.2Managed IdentityFinance export pipeline reads payroll journal data
Azure Data FactoryAzure Blob StorageHTTPS / TLS 1.2Managed IdentityWrites finance CSV to blob for SAP pickup
Source ApplicationDestination ApplicationProtocol / EncryptionAuthenticationSecurity ProxyPurpose
PayrollProBACS Payment GatewaySFTP / SSHCertificate-based authenticationN/A (direct SFTP)Monthly salary payment file submission
PayrollProCrestfield Pension APIHTTPS / TLS 1.2OAuth 2.0 client credentialsN/AMonthly pension contribution submission
PayrollProHMRC Government GatewayHTTPS / TLS 1.2OAuth 2.0 (HMRC MTD)N/APAYE RTI submission (FPS, EPS, P60)
PayrollProOn-premises AD (via VPN)LDAPS / TLS 1.2Service accountAzure VPN GatewayTransitional — user directory lookup during Entra ID sync period
Azure Data FactorySAP Finance (on-prem)HTTPS / TLS 1.2 via VPNService accountSelf-hosted Integration RuntimeNightly finance journal CSV delivery
User TypeAccess MethodAuthenticationProtocol
Payroll operatorsCitrix XenApp published application (transitional)Entra ID SSO via OIDC (replaces Windows Auth)HTTPS via Citrix ICA
HR administratorsCitrix XenApp published application (transitional)Entra ID SSO via OIDCHTTPS via Citrix ICA
Employees (self-service)Citrix XenApp published application (transitional)Entra ID SSO via OIDCHTTPS via Citrix ICA
IT OperationsAzure Portal + App Service Kudu consoleEntra ID with MFA + PIMHTTPS
graph TD
  subgraph UKSouth[Azure UK South]
      subgraph Hub[Hub VNet]
          VPN[VPN Gateway]
      end
      subgraph Spoke[Spoke VNet]
          AppSvc[App Service]
          SQL[Azure SQL]
          Blob[Blob Storage]
          KV[Key Vault]
      end
  end
  VPN -- to on-prem --> OnPrem[On-Premises]
  subgraph UKWest[Azure UK West]
      SQLReplica[Azure SQL Geo-Replica]
  end
  SQL -- geo-replication --> SQLReplica
AttributeSelection
Hosting Venue TypeCloud
Hosting Region(s)UK South (primary), UK West (DR)
Service ModelPaaS
Cloud ProviderAzure
Account / Subscription TypeMeridian Production Subscription (sub-prod-001); Meridian Non-Production Subscription (sub-nonprod-001)

Not applicable — PaaS deployment; no IaaS virtual machines.

AttributeDetail
App Service PlanP2v3 (Premium v3)
vCPU4
Memory (GB)16
Instances (production)2 (minimum), 5 (maximum, auto-scale)
Instances (staging)1
Instances (dev)1 (B2 plan, lower tier)
Runtime.NET 6 on Windows
AttributeDetail
Service TierBusiness Critical
Compute TierProvisioned, Gen5
vCores (production)8
Max Data Size500 GB
Zone RedundantYes
Geo-ReplicationActive geo-replication to UK West (asynchronous)
vCores (staging)4 (General Purpose)
vCores (dev)2 (General Purpose, serverless)
  • Anti-Malware — Microsoft Defender for App Service
  • Endpoint Detection and Response (EDR) — Microsoft Defender for Cloud
  • Vulnerability Management — Microsoft Defender for Cloud (vulnerability assessment)
QuestionResponse
Is this an Internet-facing application?No — accessed via Citrix (Phase 1). App Service has VNet integration with no public endpoint.
Outbound Internet connectivity required?Yes — for BACS SFTP, Crestfield API, HMRC API
Cloud-to-on-premises connectivity required?Yes — VPN Gateway for Citrix connectivity and SAP finance export (transitional)
Wireless networking required?No
Third-party / co-location connectivity required?No — third-party integrations use Internet-facing APIs
Cloud network peering required?Yes — spoke VNet peered to Meridian hub VNet (Azure Landing Zone)
AttributeSelection
User access methodCitrix (transitional, Phase 1)
User locationsUK offices (6 sites), Remote (VPN to corporate network)
Administrator access methodAzure Portal (HTTPS), App Service Kudu (HTTPS), Azure SQL — SSMS via Private Endpoint
VPN requiredYes — site-to-site VPN from Azure to Meridian London datacentre
Direct Connect / ExpressRouteNo — VPN Gateway sufficient for transitional connectivity; ExpressRoute to be evaluated for Phase 2
ProtocolUsed?Purpose
HTTPS (TLS 1.2+)YesAll web traffic, API calls, Azure management
SFTPYesBACS payment file submission
TDS (TLS 1.2)YesAzure SQL Database connectivity
TCP (other)No
gRPCNo
WebSocketNo
ControlImplementedDetail
DDoS ProtectionYesAzure DDoS Protection (Basic, included with VNet)
Rate LimitingN/ANo public-facing endpoints in Phase 1
Source IP RestrictionsYesApp Service access restrictions — allow only Meridian hub VNet and Citrix subnet
Web Application Firewall (WAF)NoNot required — no public-facing endpoints. To be added in Phase 2 when Citrix is removed.
Client Verification ControlsN/A
File Upload ProtectionYesDefender for App Service scans uploaded payslip templates
EnvironmentDescriptionCount & VenueCompute Solution
DevelopmentSoftware development and unit testing1x Azure (Non-Production Subscription, UK South)App Service B2, Azure SQL Serverless (2 vCores)
StagingIntegration testing, UAT, and pre-production validation1x Azure (Non-Production Subscription, UK South)App Service P2v3 (1 instance), Azure SQL GP (4 vCores)
ProductionLive service environment1x Azure (Production Subscription, UK South)App Service P2v3 (2-5 instances), Azure SQL BC (8 vCores)
DRDisaster recovery (warm standby, database only)1x Azure (Production Subscription, UK West)Azure SQL geo-replica (read-only); App Service deployed on-demand via IaC
  • Yes — Staging environment connects to BACS sandbox and HMRC test gateway for integration testing. Production and non-production environments do not share any other connectivity.
QuestionResponse
Hosting regions chosen for low carbon intensityAzure UK South (London) primary and UK West (Cardiff) DR — both chosen for data residency. Microsoft has committed to 100% renewable energy matching across UK regions by 2025. Cardiff’s published grid mix is cleaner than London on average.
Non-production environments auto-shutdown out of hoursYes — Dev and UAT App Service plans set to free-tier-equivalent off-hours via Azure Automation runbook (19:00-07:00 weekdays + weekends). Non-prod Azure SQL auto-paused after 1 hour idle. Estimated saving £600/month.
Compute family chosen for performance-per-wattYes — Premium v3 App Service Plan SKUs (Pv3) selected over Pv2; Microsoft published data shows ~25% better performance-per-watt and faster warm-up. Azure SQL Business Critical tier uses latest-generation hardware.
Auto-scaling configured to release capacity when idleYes — App Service Plan auto-scale rules: scale-out at >70% CPU for 10 min; scale-in at <30% CPU for 20 min; minimum 2 instances during business hours, 1 instance overnight.
DR strategy proportionate to recovery objectivePilot light: Azure SQL geo-replica is read-only and continuously replicated; App Service in UK West is deployed on-demand via Bicep IaC during DR invocation. RTO 4 hours, RPO 15 minutes. Hot standby was rejected as the business RTO does not justify doubling the always-on compute footprint.
Data NameStore TechnologyAuthoritative?Retention PeriodData SizeClassificationPersonal Data?Encryption LevelKey Management
Employee recordsAzure SQL DatabaseYesDuration of employment + 7 years12 GBRestrictedYes (PII + SPI)Application (field-level for SPI) + Storage (TDE)Azure Key Vault (customer-managed key)
Payroll calculationsAzure SQL DatabaseYes7 years (statutory)85 GBRestrictedYes (PII + SPI)Application (field-level for SPI) + Storage (TDE)Azure Key Vault (customer-managed key)
Payslip PDFsAzure Blob StorageYes7 years (statutory)180 GB (migrated) + ~20 GB/year growthRestrictedYes (PII + SPI)Storage (SSE with CMK)Azure Key Vault (customer-managed key)
Audit logsAzure SQL Database + Log AnalyticsYes2 years (application), 1 year (platform)5 GB/yearInternalYes (PII — user IDs, actions)Storage (TDE / platform encryption)Microsoft-managed key
Application logsLog AnalyticsNo90 days2 GB/monthInternalNo (PII scrubbed before logging)Platform encryptionMicrosoft-managed key
AttributeDetail
Storage ProductAzure Blob Storage
Storage Size200 GB initial, projected 300 GB in 5 years
Storage TypeObject
Storage ProtocolHTTPS (REST API)
ReplicationLocally Redundant Storage (LRS) — UK South. Backup copies in geo-redundant vault.
Minimum RPO1 hour
Classification LevelData TypesHandling Requirements
InternalApplication logs, infrastructure metrics, non-sensitive configurationStandard access controls, no special encryption beyond platform defaults
RestrictedEmployee names, addresses, dates of birth, employee IDs, payroll amounts, tax codes, NI numbers, bank account details, pension contributionsEncrypted at rest (TDE + field-level for SPI), encrypted in transit (TLS 1.2), access audited, RBAC enforced, DPIA completed
StageDescriptionControls
Creation / IngestionEmployee data entered by HR via PayrollPro UI; payroll calculated monthly by batch processorInput validation, mandatory field checks, duplicate detection
ProcessingPayroll calculations, tax deductions, NI contributions, pension calculationsAudit trail of all calculations, dual-approval for manual adjustments
StorageEmployee records and payroll data in Azure SQL; payslips in Blob StorageTDE + field-level encryption, RBAC, managed identity access, private endpoints
Sharing / TransferBACS payment files (SFTP), pension data (API), HMRC submissions (API), finance CSV (ADF)TLS 1.2 / SSH encryption in transit, data minimisation (only required fields sent)
ArchivalRecords older than 2 years moved to Azure SQL long-term retention; payslips moved to Cool tier after 1 yearAutomated lifecycle policy, data remains encrypted and access-controlled
Deletion / PurgingRecords deleted after statutory retention period (7 years) via automated purge jobSoft delete followed by hard delete after 30-day grace period; deletion logged in audit trail
Assessment TypeIDStatusLink
DPIADPIA-2026-009CompleteSharePoint: /compliance/dpia/DPIA-2026-009
ApproachSelected
Only Public/Internal data is used
Restricted/Highly Restricted attributes are deleted first
Sensitive data is masked (describe method below)[x]
Sensitive production data is used (provide justification below)
Production data is not used for testing

Staging environment uses a masked copy of production data. Masking is applied via a custom SQL script that replaces NI numbers with generated values (format-preserving), randomises salary figures within bands, and replaces bank details with test account numbers. Names and addresses are replaced with synthetic data from Faker.js. The masked dataset is refreshed quarterly.

  • Yes — Payroll calculation checksums are computed and stored alongside each payroll run. Reconciliation reports compare calculated totals against BACS submission totals and pension contribution totals. Any discrepancy triggers an alert and blocks submission.
  • Yes — Employees can download their own payslip PDFs via the self-service portal (accessed through Citrix). Payslips are downloaded to the Citrix session local drive only; data-loss prevention policies prevent copying to personal devices.
DestinationData TypeClassificationTransfer MethodProtection
BACS (Vocalink)Payment instructions (employee names, sort codes, account numbers, amounts)RestrictedSFTP with SSH key authenticationData encrypted in transit; BACS contractual DPA in place
Crestfield (pension provider)Employee names, NI numbers, pension contribution amountsRestrictedREST API over HTTPS / TLS 1.2OAuth 2.0 authentication; Crestfield DPA in place
HMRCEmployee names, NI numbers, tax codes, pay amounts, tax deductedRestrictedREST API over HTTPS / TLS 1.2HMRC Government Gateway OAuth 2.0; statutory data sharing basis
  • Yes — All payroll data must reside within the United Kingdom. Azure SQL Database and Blob Storage are deployed in UK South (London) and UK West (Cardiff) regions only. Geo-replication is restricted to UK regions. Azure backup vaults are configured for UK geo-redundancy only.
QuestionResponse
Retention periods minimised to regulator + business needYes — payroll data and payslips retained 7 years (HMRC requirement); audit logs 7 years; transient session data ≤ 24 hours. Lifecycle policies on Blob Storage enforce automatic expiry; no “indefinite” retention.
Older data tiered to cold/archive storageYes — Blob Storage lifecycle policy: Hot tier for the current tax year, Cool tier for years 2-3, Archive tier for years 4-7. ~80% of payslip storage sits in Cool/Archive.
Unused or duplicate replicas identified and removedYes — quarterly review of Azure SQL replica count (currently primary + 1 DR replica only). No legacy unused storage accounts; verified via Azure Advisor recommendations.
Compression applied to reduce storage and transferYes — gzip on payslip PDFs at upload (~40% reduction); HTTPS responses use Brotli. SSIS packages use bulk insert with compression enabled.
Cross-region replication justified by recovery requirementYes — only Azure SQL geo-replica and Blob Storage RA-GRS replicate to UK West. Both are required by the documented RPO (15 min) and DR strategy. No replication to non-UK regions.
Large data transfers scheduled to off-peak windowsYes — monthly payroll batch and HMRC RTI submissions run between 02:00-05:00 UTC; nightly database backups run 23:00-01:00 UTC; both off-peak from a UK grid carbon intensity perspective.
QuestionResponse
Does the solution support regulated activities?Yes — payroll processing for an FCA-regulated firm; subject to UK GDPR, employment law
Is the solution SaaS or third-party hosted?No — hosted on Meridian’s own Azure subscription
Has a third-party risk assessment been completed?N/A — not a third-party solution
Impact CategoryBusiness Impact if Compromised
ConfidentialityHigh — Exposure of salary data, NI numbers, and bank details would trigger ICO notification, regulatory action, and severe reputational damage
IntegrityHigh — Corrupted payroll data could lead to incorrect payments, tax filing errors, and HMRC penalties
AvailabilityHigh — Prolonged unavailability during payroll window would delay statutory payments to 2,400 employees
Non-RepudiationMedium — Audit trail needed for payroll approvals, manual adjustments, and HMRC submissions
Access TypeRole(s)Destination(s)Authentication MethodCredential Protection
End Users (employees)Employee Self-ServicePayrollPro self-service portalEntra ID SSO (OIDC) with MFAEntra ID Conditional Access; MFA via Authenticator app
Payroll OperatorsPayroll OperatorPayrollPro payroll processing modulesEntra ID SSO (OIDC) with MFAEntra ID Conditional Access; MFA enforced for all access
HR AdministratorsHR AdminPayrollPro admin modulesEntra ID SSO (OIDC) with MFAEntra ID Conditional Access; MFA enforced
IT OperationsPlatform AdminAzure Portal, App Service, Azure SQLEntra ID with PIM (just-in-time)PIM activation with MFA + approval; sessions time-limited
Service AccountsApplication IdentityAzure SQL, Blob Storage, Key VaultManaged Identity (system-assigned)No credentials stored; token-based via Entra ID
ControlResponse
Does the application use SSO or group-wide authentication?Yes — Entra ID SSO via OIDC
What is the unique identifier for user accounts?Entra ID Object ID (GUID), mapped to employee ID in PayrollPro
What is the authentication flow?User authenticates via Entra ID OIDC; JWT token issued; PayrollPro validates token and extracts claims for authorisation
How are credentials issued to users?Entra ID self-service; MFA enrolled via Authenticator app
What are the credential complexity rules?Entra ID Password Protection; minimum 12 characters; banned password list
What are the credential rotation rules?No forced rotation (NIST 800-63B guidance); risk-based re-authentication
What are the account lockout rules?Entra ID Smart Lockout: 10 failed attempts, 60-second lockout
How can users reset forgotten credentials?Entra ID Self-Service Password Reset (SSPR)
Access TypeRole / ScopeEntitlement StoreProvisioning Process
Employee Self-ServiceView own payslips, personal detailsEntra ID security groupsAutomatic via HR onboarding workflow
Payroll OperatorRun payroll, generate payment files, submit to BACSEntra ID security groups + PayrollPro role tableRequested via ServiceNow, approved by Payroll Team Lead
HR AdminFull access to employee records, payroll configuration, reportingEntra ID security groups + PayrollPro role tableRequested via ServiceNow, approved by HR Director
Read-Only AuditorView-only access to all modules for audit purposesEntra ID security groups + PayrollPro role tableRequested via ServiceNow, approved by Compliance
Platform AdminAzure resource management (no application-level data access)Entra ID PIM rolesPIM just-in-time activation, approved by IT Manager
Account TypeManagement Approach
Azure subscription contributorEntra ID PIM; just-in-time activation; 4-hour maximum session; approval required; all activations logged
Azure SQL administratorEntra ID authentication only; no SQL authentication enabled; PIM-protected; queries logged in Azure SQL Auditing
Application admin (PayrollPro)Entra ID role assignment; no separate admin credentials; all actions audit-logged

3.5.3 Network Security & Perimeter Protection

Section titled “3.5.3 Network Security & Perimeter Protection”
ControlImplementation
Network segmentationApp Service deployed with VNet Integration into dedicated subnet; Azure SQL and Blob Storage accessible only via Private Endpoints; NSGs restrict traffic to required flows only
Ingress filteringApp Service access restrictions: allow only from Meridian hub VNet (Citrix subnet and VPN). No public access.
Egress filteringApp Service subnet uses UDR to route Internet-bound traffic through Azure Firewall in hub VNet; allowed destinations: BACS SFTP endpoint, Crestfield API, HMRC API
Encryption in transitTLS 1.2 minimum enforced on all endpoints; App Service configured with minimum TLS 1.2; Azure SQL enforces encrypted connections
AttributeDetail
Encryption deployment levelStorage (TDE for Azure SQL, SSE for Blob) + Application (field-level for SPI columns)
Key typeSymmetric (AES-256)
Algorithm / cipher / key lengthAES-256 (TDE, SSE); AES-256-GCM (field-level application encryption)
Key generation methodAzure Key Vault (software-protected keys; HSM-protected to be evaluated for Phase 2)
Key storageAzure Key Vault (customer-managed keys)
Key rotation scheduleAnnual automatic rotation for TDE and SSE keys; field-level encryption keys rotated annually with key versioning
AttributeDetail
Secret storeAzure Key Vault (per-workload vault: kv-payrollpro-prod)
Secret distributionRetrieved on-demand by application via Managed Identity
Secret protection on hostMemory only — secrets not written to disk or environment variables
Secret rotationBACS SFTP certificate: annual renewal; Crestfield/HMRC OAuth client secrets: annual rotation via Key Vault

3.5.5 Security Monitoring & Threat Detection

Section titled “3.5.5 Security Monitoring & Threat Detection”
CapabilityImplementation
Security event loggingEntra ID sign-in logs, Azure SQL Auditing, App Service access logs — all forwarded to Log Analytics
SIEM integrationMicrosoft Sentinel (Meridian corporate instance); custom analytics rules for PayrollPro-specific alerts
Infrastructure event detectionMicrosoft Defender for Cloud; Defender for App Service; Defender for SQL
Security alertingHigh-severity alerts routed to IT Security on-call via PagerDuty; medium-severity via email to security team

UC-01: Monthly Payroll Run

AttributeDetail
Actor(s)Payroll Operator (Mary Bloggs or team member)
TriggerScheduled monthly payroll processing date (typically day 22 of each month)
Pre-conditionsAll employee data changes for the month have been entered and approved; tax code updates from HMRC have been imported
Main Flow1. Payroll Operator logs in via Citrix, authenticated by Entra ID (MFA). 2. Operator initiates payroll run via PayrollPro UI. 3. Payroll Batch Processor (Azure WebJob) executes on App Service, reading employee and configuration data from Azure SQL. 4. Batch calculates gross pay, tax deductions (PAYE), NI contributions, pension deductions, student loan repayments for all 2,400 employees. 5. Payslip PDFs are generated and stored in Azure Blob Storage. 6. BACS Standard 18 payment file is generated. 7. Operator reviews summary report and approves. 8. BACS file is submitted via SFTP. 9. HMRC FPS is submitted via Government Gateway API. 10. Pension contributions are submitted to Crestfield via REST API.
Post-conditionsAll employees paid; HMRC notified; pension contributions submitted; payslips available in self-service portal; audit trail recorded
Views InvolvedLogical, Integration & Data Flow, Physical, Data, Security

UC-02: New Starter Onboarding

AttributeDetail
Actor(s)HR Administrator
TriggerNew employee joining Meridian
Pre-conditionsEmployee has accepted offer; Entra ID account created by IT; employee added to PayrollPro security group
Main Flow1. HR Administrator logs in via Citrix, authenticated by Entra ID (MFA). 2. Administrator creates new employee record in PayrollPro: personal details, contract terms, salary, tax code, bank details, pension opt-in. 3. Bank details and NI number are encrypted at field level before storage (AES-256-GCM via Key Vault). 4. Employee is included in the next payroll run. 5. Employee gains access to self-service portal via Entra ID group membership.
Post-conditionsEmployee record created with all required fields; SPI encrypted; employee visible in next payroll run; self-service access available
Views InvolvedLogical, Data, Security

3.6.2 Architecture Decision Records (ADRs)

Section titled “3.6.2 Architecture Decision Records (ADRs)”

ADR-001: Replatform over Rehost

FieldContent
StatusAccepted
Date2026-01-20
ContextPayrollPro must be migrated from on-premises to Azure before hardware end of life (Dec 2026). The team evaluated Rehost (lift-and-shift to Azure VMs) versus Replatform (upgrade to .NET 6, deploy to App Service and Azure SQL).
DecisionReplatform — upgrade the application to .NET 6 and deploy to Azure PaaS services (App Service + Azure SQL Database).
Alternatives Considered(1) Rehost to Azure VMs: Lower initial effort but perpetuates manual patching burden, does not address performance issues, and incurs higher ongoing IaaS costs. (2) Refactor to microservices: Best long-term architecture but timeline exceeds hardware EOL deadline; estimated 18+ months vs. 10 months for replatform. (3) Replace with SaaS payroll: Evaluated Workday and ADP; neither met Meridian’s bespoke BACS and pension integration requirements without significant customisation and data migration risk.
ConsequencesPositive: Managed patching, built-in geo-replication, auto-scaling, reduced OpEx. Negative: .NET 6 upgrade requires development effort (~6 weeks); some legacy stored procedures must be reworked for Azure SQL compatibility.
Quality Attribute TradeoffsImproves: Reliability (managed DR), Operational Excellence (managed patching), Performance (auto-scaling). Neutral: Security (equivalent controls). Cost: Higher initial capex but lower ongoing opex vs. rehost.

ADR-002: Azure SQL Database over SQL Server on VM

FieldContent
StatusAccepted
Date2026-01-25
ContextThe database tier could be deployed as SQL Server on an Azure VM (IaaS) or as Azure SQL Database (PaaS). The DBA team raised concerns about Azure SQL compatibility with existing T-SQL features.
DecisionUse Azure SQL Database (Business Critical tier) as the primary data store.
Alternatives Considered(1) SQL Server on Azure VM: Full SQL Server feature parity but requires manual patching, backup configuration, and HA setup (Always On Availability Groups). (2) Azure SQL Managed Instance: Closer to on-prem feature parity than Azure SQL DB but higher cost and slower provisioning; features not needed by PayrollPro.
ConsequencesPositive: Built-in automated backups (PITR 35 days), geo-replication, automatic patching, zone redundancy. Negative: SQL Agent jobs must be replaced with Azure Data Factory or WebJobs; some cross-database queries must be refactored; DBA team requires Azure SQL training.
Quality Attribute TradeoffsImproves: Reliability (built-in HA and DR), Operational Excellence (automated patching and backups). Cost: Lower than SQL on VM (no Windows Server licensing). Trade-off: Some DBA flexibility reduced vs. full SQL Server instance.

ADR-003: Retain Citrix in Phase 1

FieldContent
StatusAccepted
Date2026-02-05
ContextPayrollPro is currently accessed exclusively via Citrix XenApp. Migrating both the application and the access method simultaneously increases risk and extends the timeline.
DecisionRetain Citrix access for Phase 1. Users will access the Azure-hosted PayrollPro via Citrix, routed through a site-to-site VPN. Phase 2 will replace Citrix with direct browser access or Azure Virtual Desktop.
Alternatives Considered(1) Direct browser access from Phase 1: Eliminates Citrix dependency but requires WAF deployment, public endpoint exposure, and additional security review — adding 6-8 weeks. (2) Azure Virtual Desktop from Phase 1: Replaces Citrix but is a separate infrastructure project with its own timeline and budget.
ConsequencesPositive: Reduces migration scope and risk; maintains familiar user experience. Negative: Requires transitional VPN; Citrix becomes a dependency and single point of access; VPN adds latency for Azure-hosted application.
Quality Attribute TradeoffsPerformance: Slight increase in latency due to VPN hop (estimated +10-20ms, acceptable). Reliability: Citrix and VPN become dependencies; mitigated by existing Citrix HA. Cost: VPN Gateway adds ~£250/month.

Log TypeEvents LoggedLocal StorageRetention PeriodRemote Services
Application logsPayroll run start/complete, errors, warnings, user actions, batch job statusApp Service file system (transient)90 daysAzure Log Analytics (Meridian corporate workspace)
Data store logsQuery performance, deadlocks, audit events (all DML on sensitive tables)Azure SQL built-in90 days (diagnostic logs), 2 years (audit logs)Azure Log Analytics, Microsoft Sentinel
Infrastructure logsApp Service platform events, scaling events, health checks, deployment logsAzure platform90 daysAzure Log Analytics
Security event logsEntra ID sign-ins, failed authentications, PIM activations, Key Vault accessAzure platform1 yearMicrosoft Sentinel

4.1.2 Observability — Monitoring & Alerting

Section titled “4.1.2 Observability — Monitoring & Alerting”
Alert CategoryTrigger ConditionNotification MethodRecipient
Application error rate> 5% HTTP 5xx responses in 5-minute windowPagerDutyIT Operations on-call
Payroll batch failureWebJob exits with non-zero statusPagerDuty + EmailIT Operations on-call + Payroll Team Lead
Database DTU utilisation> 80% sustained for 15 minutesEmailDBA Team, IT Operations
App Service health check failure3 consecutive failed health probesPagerDutyIT Operations on-call
Storage account capacity> 80% of provisioned quotaEmailInfrastructure Team
Security alert (Defender)Any high-severity findingPagerDutyIT Security on-call
Certificate expiryBACS SFTP certificate within 30 days of expiryEmailIT Operations, DBA Team
CapabilityToolCoverage
Application Performance MonitoringAzure Application InsightsPayrollPro web application (request tracing, dependency tracking, exception logging)
Infrastructure MonitoringAzure MonitorApp Service, Azure SQL, Blob Storage, VPN Gateway
Log AggregationAzure Log AnalyticsAll application, platform, and security logs
AlertingAzure Monitor Alerts + PagerDuty integrationAll operational and security alerts

4.2.1 Geographic Footprint & Disaster Recovery

Section titled “4.2.1 Geographic Footprint & Disaster Recovery”
QuestionResponse
Is the application deployed across multiple hosting venues for continuity?Yes — Azure SQL geo-replicated from UK South to UK West. App Service can be deployed to UK West via IaC within 30 minutes.
What is the DR strategy?Warm Standby (database) / Pilot Light (application). Azure SQL active geo-replication provides a read-only replica in UK West. App Service is deployed on-demand via Bicep templates stored in Azure DevOps.
Are there data sovereignty requirements affecting geographic choices?Yes — UK data residency required. Both primary (UK South) and DR (UK West) regions are within the United Kingdom.
AttributeResponse
Scaling capabilityPartial auto-scaling
Scaling detailsApp Service auto-scales from 2 to 5 instances based on CPU utilisation (threshold: 70%) and HTTP queue length (threshold: 100). Scale-out is triggered during month-end payroll processing. Scale-in occurs after batch completion. Azure SQL is provisioned at 8 vCores (Business Critical); manual scale-up to 16 vCores available if needed (tested, takes < 2 minutes with no downtime).
AttributeResponse
Dependencies adequately sized?Yes (confirmed)
Dependency detailsBACS SFTP gateway and HMRC API are externally managed services with documented rate limits (BACS: no limit for Standard 18 files; HMRC: 1,000 requests/hour). Crestfield API has a 500 requests/hour limit, sufficient for monthly batch of ~2,400 records.
  • Yes
    • Component failures: App Service runs on minimum 2 instances; if one instance fails, traffic is routed to the healthy instance. Azure SQL Business Critical tier includes built-in local HA (3 replicas).
    • Graceful degradation: If Blob Storage is temporarily unavailable, payslip viewing returns an informative error but payroll processing continues. If a third-party API (BACS, HMRC, Crestfield) is unavailable, the submission is queued and retried with exponential backoff (3 retries, 5/15/60 minute intervals).
    • Health checks: App Service health check endpoint (/health) validates database connectivity and Key Vault access. Unhealthy instances are automatically removed from the load balancer.
Component / DependencyFailure ModeDetection MethodRecovery BehaviourUser Impact
App Service instanceInstance crash or unresponsiveHealth check probe (30s interval)Automatic restart; traffic routed to healthy instancesTransparent (brief request timeout for in-flight requests)
Azure SQL DatabasePrimary unavailableAzure SQL built-in monitoringAutomatic failover to local replica (Business Critical HA); < 30 secondsBrief connection interruption (< 30s)
Azure SQL — UK South region failureRegional outageAzure Service Health alertManual failover to UK West geo-replica; App Service deployed to UK West via IaC1-4 hour outage (manual DR invocation)
Azure Blob StorageService degradationApplication error logging; Azure Service HealthRetry with exponential backoff; payslip viewing degraded but payroll processing continuesPayslips temporarily unavailable; payroll unaffected
VPN GatewaySite-to-site VPN tunnel downAzure VPN monitoring; Citrix health checkAutomatic tunnel re-establishment (Azure VPN); users cannot access until restoredFull user outage (Citrix dependency)
BACS SFTP GatewayConnection timeoutApplication retry logic3 retries with exponential backoff; manual re-submission if all retries fail; alert to Payroll Team LeadDelayed payment submission; no data loss
HMRC APIService unavailableHTTP 503 responseRetry with exponential backoff; HMRC allows submissions up to 3 days after payrollDelayed statutory submission; no penalty if within HMRC window
AttributeDetail
Backup strategyAzure SQL: automated PITR backups (full, differential, transaction log). Blob Storage: soft delete + versioning.
Backup product/serviceAzure SQL built-in PITR; Azure Blob soft delete; Azure Backup vault (weekly long-term retention)
Backup typeContinuous (PITR); weekly full backups for long-term retention
Backup frequencyTransaction logs: every 5-10 minutes. Differential: every 12 hours. Full: weekly.
Backup retentionPITR: 35 days. Long-term retention (LTR): weekly backups for 7 years (statutory requirement). Blob soft delete: 30 days.
ControlDetail
ImmutabilityAzure SQL backups are managed by the platform and cannot be deleted by administrators. LTR backups stored in immutable vault.
EncryptionAll backups encrypted with TDE (customer-managed key in Key Vault)
Access controlBackup restore requires Azure SQL Contributor role (PIM-protected)
#ScenarioRecovery ApproachRTORPO
1UK South region failureFailover Azure SQL to UK West geo-replica; deploy App Service to UK West via Bicep; update DNS4 hours1 hour (geo-replication lag)
2App Service failurePlatform auto-heals; if persistent, redeploy via Azure DevOps pipeline15 minutes0 (no data in compute tier)
3Azure SQL failure (single instance)Automatic failover to Business Critical local replica< 30 seconds0
4VPN connectivity failureAzure VPN automatic tunnel re-establishment; if prolonged, configure direct browser access as emergency workaround30 minutes0
5Ransomware / cyber-attackIsolate affected resources; restore Azure SQL from PITR to last known good point; restore Blob from soft delete / versioning8 hoursVariable (restore to pre-attack point)
6Accidental data deletionAzure SQL PITR to specific point in time; Blob soft delete recovery1 hourMinutes (PITR granularity)
MetricTargetMeasurement Method
Web UI response time (P95)< 2 secondsApplication Insights (server-side request duration)
Monthly payroll batch duration< 2 hours (for 2,400 employees)WebJob execution time logged to Application Insights
Payslip PDF generation< 5 seconds per payslipApplication Insights custom metric
BACS file generation< 10 minutesApplication Insights custom metric
Concurrent users (steady state)50Application Insights concurrent session count
Concurrent users (month-end peak)150Application Insights concurrent session count
AttributeDetail
Performance testing approachLoad testing of month-end payroll batch; stress testing of concurrent user access during payroll window
Testing toolsAzure Load Testing (cloud-hosted JMeter)
Testing environmentStaging (reduced-scale; results extrapolated to production sizing)
Testing frequencyBefore initial go-live; before each quarterly release thereafter
MetricCurrent1 Year3 Years5 Years
Employees (total)2,4002,6003,0003,500
Concurrent users (peak)120150175200
Database size100 GB115 GB155 GB200 GB
Blob storage180 GB200 GB240 GB300 GB
QuestionResponse
Will the current design scale to accommodate projected growth?Yes — App Service auto-scaling to 5 instances and Azure SQL 8 vCores are sufficient for projected 5-year growth. Azure SQL can be scaled to 16 vCores without downtime if needed.
Are there known seasonal or cyclical demand patterns?Yes — Significant peak during monthly payroll window (days 22-25). Additional peaks at tax year end (April) for P60 generation.
PostureSelectedDetail
Design decisions chosen for specific reasons other than cost[x]Azure SQL Business Critical tier selected for built-in HA and zone redundancy, despite being more expensive than General Purpose. This decision is driven by the Tier 2 reliability requirement.
Most cost-effective options intentionally not selected[x]Azure SQL Serverless was evaluated for production but rejected due to cold-start latency incompatible with payroll batch SLA. Used for dev environment only.
Most cost-effective options selected[x]Blob Storage LRS (not GRS) selected for primary payslip storage; geo-redundancy provided via Azure Backup vault at lower cost than GRS.
  • Yes — Azure Pricing Calculator used to model production and non-production costs. TCO comparison performed against on-premises refresh cost (new Dell servers + 3-year licensing + datacentre costs).

Key findings: Azure monthly OpEx (£4,200) is approximately 30% lower than annualised on-premises TCO (£72,000/year including hardware refresh, licensing, datacentre hosting, and patching labour). Break-even on migration capex (£185,000) is reached within 3 years.

  • No — The design fully meets requirements; cost has not constrained the design. The Business Critical Azure SQL tier was selected despite higher cost to meet reliability requirements.
QuestionResponse
Has the hosting location been chosen to reduce environmental impact?Partially — UK South and UK West were selected primarily for data sovereignty. Microsoft Azure UK regions are powered by a mix of renewable and non-renewable energy; Microsoft has committed to 100% renewable energy by 2025.
What is the expected workload demand pattern?Variable — significant peak during monthly payroll window (days 22-25); low utilisation remainder of month
QuestionResponse
Must the application be available continuously?Yes — production must be available during business hours (07:00-20:00 UK). Out-of-hours access is required for month-end payroll runs.
Can the solution be shut down or scaled down during off-peak hours?Partially — App Service scales down to 2 instances outside peak periods via auto-scaling rules. Cannot be fully shut down due to employee self-service access.
Are non-production environments configured to downscale or shut down when not in use?Yes — Dev environment uses Azure SQL Serverless (auto-pause after 1 hour inactivity). Staging App Service scaled to 0 instances outside working hours via scheduled scaling rules.
QuestionResponse
Are resources rightsized to avoid overprovisioning?Yes — App Service tier (P2v3) and Azure SQL vCores (8) sized based on performance testing of production-equivalent payroll batch. Auto-scaling ensures minimum instances during quiet periods.
Is vCPU utilisation monitored?Yes — target average utilisation of 40-60% at steady state, rising to 70-80% during month-end peak (scaling trigger at 70%).
Are the highest performance-per-watt hardware options used?Azure manages underlying hardware selection. P2v3 plan uses latest-generation Dv3 series VMs with good performance-per-watt characteristics.

  • Yes — PayrollPro includes internally developed software (the web application and batch processing components).
AttributeDetail
Source control platformAzure DevOps Repos (Git)
CI/CD platformAzure DevOps Pipelines
Build automationAutomated build triggered on push to main branch; NuGet restore, .NET 6 build, unit tests, code coverage report
Deployment automationAzure DevOps release pipeline with stages: Build -> Deploy to Dev -> Deploy to Staging (manual gate) -> Deploy to Production (manual gate with approval)
Test automationUnit tests (xUnit, ~85% coverage), integration tests (run against staging), SCA (NuGet Audit), SAST (SonarQube)
ControlImplementation
Security requirements identificationThreat modelling performed during design phase; security requirements tracked in Azure DevOps backlog
Static Application Security Testing (SAST)SonarQube (integrated in CI pipeline; build fails on critical findings)
Dynamic Application Security Testing (DAST)Yes — OWASP ZAP scan run against staging after each deployment
Software Composition Analysis (SCA)NuGet Audit (integrated in CI pipeline; build fails on known critical vulnerabilities)
Container image scanningN/A — not containerised
Secure coding practicesOWASP Top 10 training for development team; mandatory code review by senior developer
Patch management.NET 6 LTS patches applied within 14 days of release; security patches within 7 days
ClassificationSelected?Description
RetainKeep as-is, not suitable for migration at this time
RetireDecommission; functionality no longer needed
RehostLift-and-shift to new infrastructure with minimal changes
ReplatformLift-and-shift with targeted optimisations: .NET Framework 4.8 upgraded to .NET 6; SQL Server on bare metal migrated to Azure SQL Database; file share migrated to Azure Blob Storage
RefactorRe-architect components to take advantage of new platform capabilities (deferred to Phase 2)
ReplaceReplace entirely with a new solution (evaluated and rejected — see ADR-001)
AttributeDetail
Deployment strategyBlue-Green. Production traffic remains on the on-premises system until cutover. Azure environment is fully deployed and validated in parallel. Cutover switches Citrix published app to the Azure endpoint.
Data migration modePhased
Data migration methodAzure Database Migration Service (DMS) for online migration with continuous sync. Initial full backup restore, then continuous replication of transaction log changes until cutover. Payslip files migrated via AzCopy from on-premises file share to Azure Blob Storage.
Data volume to migrateDatabase: ~100 GB. Blob (payslips): ~180 GB.
End-user cutover approachOne-off. All users switch to the Azure-hosted application simultaneously via Citrix published app update.
External system cutoverOne-off. BACS SFTP endpoint, HMRC API credentials, and Crestfield API credentials updated to originate from Azure.
Maximum acceptable downtime4 hours (scheduled weekend maintenance window)
Rollback planOn-premises servers retained for 30 days post-cutover. If critical issues found within rollback window: (1) Stop DMS continuous sync. (2) Revert Citrix published app to on-premises endpoint. (3) Apply any transactions from Azure SQL back to on-premises SQL Server via DMS reverse sync. Rollback tested during rehearsal.
Acceptance criteria(1) All payroll data verified via reconciliation checksums. (2) Test payroll run completes successfully on Azure. (3) BACS test file submitted to sandbox. (4) HMRC test submission accepted. (5) Performance test confirms batch completes in < 2 hours. (6) DR failover test completed. (7) Payroll Team Lead sign-off.
Transient infrastructure needed?Yes — Azure DMS instance (Standard tier, 4 vCores) provisioned for duration of migration (estimated 2 weeks). Decommissioned after cutover validation. On-premises servers retained for 30-day rollback window.
PhaseActivityDurationTarget Date
1.NET 6 upgrade and Azure SQL compatibility testing8 weeksJan-Mar 2026
2Azure infrastructure deployment (IaC) and configuration3 weeksMar 2026
3Application deployment to Azure staging; integration testing4 weeksApr-May 2026
4Performance testing and DR validation3 weeksMay-Jun 2026
5UAT with payroll team (parallel run in staging)4 weeksJun-Jul 2026
6Data migration rehearsal (DMS dry run)2 weeksAug 2026
7Go/no-go decision1 weekSep 2026
8Production data migration and cutover (weekend window)1 weekendOct 2026
9Hypercare and monitoring4 weeksOct-Nov 2026
10On-premises decommissioning (after 30-day rollback window)2 weeksDec 2026
Test TypeScopeApproachEnvironmentAutomated?
Integration testingAll external integrations (BACS, HMRC, Crestfield, SAP finance export)End-to-end test against sandbox/test APIsStagingPartially (triggered manually, execution automated)
Performance testingPayroll batch for 2,400 employees; 150 concurrent usersAzure Load Testing (JMeter); batch execution timedStagingYes (Azure DevOps pipeline)
Security testingOWASP Top 10; penetration test of App Service and Azure SQLOWASP ZAP (automated DAST); annual third-party pen testStagingPartially
DR testingRegion failover from UK South to UK WestSimulated regional failure; App Service deployment to UK West; SQL failover; end-to-end payroll validationProduction (scheduled maintenance window)No (manual, tested annually)
Data migration testingDMS full migration rehearsal with reconciliationFull DMS migration from on-prem to Azure staging; row count and checksum reconciliationStagingNo (manual rehearsal)
AttributeDetail
Release frequencyMonthly (aligned with post-payroll window; releases deployed in first week of each month to avoid payroll disruption)
Release processFeature branches merged to main; automated CI/CD pipeline deploys to Dev, then Staging (manual approval), then Production (manual approval with change ticket)
Release validationSmoke tests run automatically post-deployment; payroll team validates key functions in staging before production approval
Feature flags / togglesNot currently used; to be evaluated for Phase 2 refactoring
AttributeDetail
Support modelLevel 1: IT Service Desk (ServiceNow). Level 2: IT Operations (infrastructure and platform). Level 3: Payroll Development Team (application defects). DBA Team (database issues).
Support hoursBusiness hours (08:00-18:00 UK) with on-call escalation for P1/P2 incidents during payroll window (days 22-25 of month)
SLAsP1 (payroll processing blocked): 1-hour response, 4-hour resolution target. P2 (degraded service): 2-hour response, 8-hour resolution target. P3 (minor issue): next business day.
Escalation pathsService Desk -> IT Operations -> Development Team / DBA Team -> Lead Solution Architect -> IT Director
QuestionResponse
Non-prod auto-shutdown schedule and enforcementDev and UAT App Service plans scaled-in to F1 (free) tier 19:00-07:00 weekdays + weekends via Azure Automation runbook; non-prod Azure SQL auto-pauses after 1 hour idle. Azure Policy alerts FinOps if a non-prod resource runs without a tag/exception.
Periodic right-sizing review cadenceQuarterly via Azure Advisor; last review (2026-Q1) downgraded the staging App Service Plan from P1v3 to P0v3, recovering ~£90/month.
Unused / orphaned resource reclamationMonthly review of orphaned managed disks, unattached public IPs, stale snapshots; deleted after 30 days idle if no exception recorded.
Carbon footprint reported alongside costYes — Azure Emissions Impact Dashboard reviewed monthly alongside cost; tracked against a 2026 baseline established during migration cutover.
Environment retirement actually deletes (vs stops)Yes — decommissioning runbook requires Bicep destroy + Storage Account deletion + Key Vault soft-delete purge after retention. CMDB entry marked Retired only after Cost Management confirms zero spend for 30 days.
Skill AreaCurrent LevelAction Required
Azure platform (App Service, Azure SQL, Blob Storage)MediumAzure Administrator (AZ-104) training for 2 infrastructure engineers; completed by Apr 2026
Infrastructure as Code (Bicep)LowBicep training for infrastructure team; 2-day course scheduled Feb 2026
CI/CD pipeline management (Azure DevOps)HighNo action — team already proficient
Application technology stack (.NET 6)Medium.NET 6 migration training for 3 developers; completed by Mar 2026
Database administration (Azure SQL)MediumAzure SQL DBA training for Claire Doe + 1 DBA; DP-300 certification targeted by May 2026
Security & complianceHighNo action — Jane Doe (Security Architect) is Azure security certified
QuestionResponse
Can the team fully operate and support this solution in production?B: Partially capable — team has strong on-premises skills but limited Azure operational experience
If B, C, or D: what additional resources are required?Azure platform training (see above); 3-month engagement with Microsoft FastTrack for hands-on migration support; Meridian Cloud Centre of Excellence available for advisory support
Is a managed service being considered for ongoing operations?No — Meridian IT Operations will manage the solution with PaaS reducing operational burden
ConcernApproach
Keeping software versions current and supported.NET 6 LTS supported until November 2027; upgrade to .NET 8 LTS planned for 2027. Azure SQL patched automatically by Microsoft.
Hardware lifecycle managementN/A — PaaS deployment; no hardware to manage
Certificate managementBACS SFTP certificate stored in Key Vault with 30-day expiry alert. TLS certificates managed by Azure App Service (managed certificates for custom domains).
Dependency managementNuGet packages reviewed quarterly; SCA (NuGet Audit) runs on every build; critical vulnerabilities patched within 7 days
AttributeDetail
Exit strategyApplication is standard ASP.NET Core; can be deployed to any container host or IaaS. Database is standard T-SQL; exportable via BACPAC. Blob data exportable via AzCopy.
Data portabilityAzure SQL supports BACPAC export for full schema and data. Blob Storage supports AzCopy for bulk data transfer. All encryption keys are customer-managed and exportable.
Vendor lock-in assessmentModerate — see Section 3.1.6. Primary lock-in is Azure SQL managed features (geo-replication, automated backups) which would need replacement on another platform. Application code has no Azure-specific SDK dependencies.
Exit timeline estimate3-6 months to migrate to an alternative cloud or on-premises platform, including database export, application redeployment, and integration reconfiguration

IDConstraintCategoryImpact on DesignLast Assessed
C-001Migration must complete before December 2026TimeDrives phased migration approach and rules out full refactoring2026-01-15
C-002All payroll data must reside in UK datacentresRegulatoryLimits Azure deployment to UK South and UK West regions2026-01-15
C-003Must maintain BACS Standard 18 file format for payment submissionsTechnicalPayment file generation module must produce identical output format2026-01-20
C-004Budget ceiling of £200,000 capexCommercialLimits scope of Phase 1; defers refactoring and Citrix replacement2026-01-20
C-005Must use Meridian Azure Landing Zone (hub-spoke topology)OrganisationalNetwork design must conform to existing hub-spoke architecture; VPN Gateway deployed in hub2026-02-01
IDAssumptionImpact if FalseCertaintyStatusOwnerEvidence
A-001Entra ID Connect will be deployed and syncing on-premises AD by June 2026PayrollPro authentication cannot work without Entra ID; migration would be blockedHighOpenJoe BloggsIAM project plan (IAM-PRJ-0042) confirmed for Q2 2026 delivery
A-002Citrix XenApp can connect to Azure App Service via site-to-site VPN with acceptable latency (< 50ms round trip)Users would experience unacceptable performance; alternative access method neededHighClosedJoe BloggsVPN latency tested at 18ms round trip (test report TR-2026-003)
A-003Existing .NET Framework 4.8 code can be upgraded to .NET 6 within 8 weeksTimeline overrun; potential delay to cutover windowMediumClosedClaire Doe.NET Upgrade Assistant analysis completed; 14 breaking changes identified, all resolvable (DEV-2026-017)
A-004Azure SQL Database supports all T-SQL features used by PayrollPro stored proceduresStored procedures would need rework, potentially delaying migrationMediumClosedClaire DoeCompatibility assessment completed; 3 procedures require rework (linked user queries, cross-database joins); estimated 2 weeks effort
A-005BACS, HMRC, and Crestfield integrations will function from Azure without changes to their endIntegration reconfiguration needed; potential re-certification with providersHighOpenFred BloggsHMRC and Crestfield confirmed no IP allowlisting required. BACS gateway requires new SSH key registration (in progress).

Risk identification:

IDRisk EventCategorySeverityLikelihoodOwner
R-001.NET 6 upgrade introduces regression bugs affecting payroll calculationsTechnicalHighMediumFred Bloggs
R-002Data migration via DMS causes data loss or corruptionTechnicalHighLowClaire Doe
R-003Azure SQL performance for payroll batch is worse than on-premises SQL ServerTechnicalMediumLowClaire Doe
R-004DBA resource availability — Claire Doe is single point of expertise for PayrollPro databaseDeliveryHighMediumPolly Doe
R-005VPN connectivity instability between Azure and on-premises during Citrix accessTechnicalMediumLowJoe Bloggs
R-006Entra ID Connect deployment delayed beyond June 2026DeliveryHighLowJoe Bloggs

Risk response:

IDMitigation StrategyMitigation PlanResidual RiskLast Assessed
R-001MitigateParallel payroll run in staging with reconciliation against on-premises results for 2 months before cutover; comprehensive unit and integration tests for calculation engineLow2026-03-15
R-002MitigateDMS migration rehearsal with full data reconciliation (row counts, checksums, sample verification); rehearsal scheduled for Aug 2026Low2026-03-15
R-003MitigatePerformance testing on Azure SQL with production-scale data; Azure SQL can be scaled up (8 -> 16 vCores) within minutes if neededLow2026-03-15
R-004MitigateCross-train second DBA (Amir Patel) on PayrollPro database; document all migration procedures in runbookMedium2026-03-15
R-005MitigateVPN tested and proven stable (A-002). Monitoring and auto-reconnect configured. Emergency fallback: enable temporary public access to App Service with IP restrictions.Low2026-03-15
R-006MitigatePayrollPro migration plan has Entra ID Connect as a dependency; regular check-ins with IAM project team; fallback: temporary Azure AD-only authentication without on-prem syncLow2026-03-15
IDDependencyDirectionStatusOwnerEvidenceLast Assessed
D-001Entra ID Connect deployment (IAM-PRJ-0042) must be complete before PayrollPro cutoverInboundCommittedJoe BloggsIAM project plan confirms Q2 2026 delivery2026-03-01
D-002Azure Landing Zone hub VNet and VPN Gateway must be provisionedInboundResolvedJoe BloggsLanding zone deployed Feb 2026 (INFRA-CR-2026-008)2026-02-28
D-003BACS gateway must register new SSH public key for Azure-originated connectionsInboundCommittedFred BloggsBACS support ticket raised; confirmation pending2026-03-10
D-004SAP Finance team must update CSV import job to read from Azure Blob Storage (via ADF)OutboundNot CommittedPolly DoeMeeting scheduled with SAP team for April 20262026-03-15
IDIssueCategoryImpactOwnerResolution PlanStatusLast Assessed
I-001DBA resource conflict — Claire Doe is also committed to the SAP upgrade project (PRJ-2026-012) for April-May 2026DeliveryMediumPolly DoeEscalated to IT Director; agreed David will prioritise PayrollPro migration; SAP project to use contractor DBA for overlap periodIn Progress2026-03-20
I-002Three stored procedures use cross-database queries not supported by Azure SQLTechnicalLowClaire DoeProcedures rewritten to use single-database approach; two completed, one in progressIn Progress2026-03-25
QuestionResponse
Does this design create any exception to current policies and standards?No
If yes, have exceptions been logged and accepted through the exceptions process?N/A
QuestionResponse
Does this design create an issue against the process library?No
If yes, has this been acknowledged by the process owner?N/A
QuestionResponse
Does the design materially change the organisation’s technology risk profile?No — the migration improves the risk profile by adding DR capability, eliminating hardware EOL risk, and improving security posture (network segmentation, managed patching, field-level encryption)
If yes, has this been evaluated with Risk and Controls teams?N/A
ADR #TitleStatusDateImpact
ADR-001Replatform over RehostAccepted2026-01-20Drives .NET 6 upgrade and PaaS adoption; higher initial effort but lower ongoing OpEx
ADR-002Azure SQL Database over SQL Server on VMAccepted2026-01-25Requires DBA rework of some stored procedures; eliminates manual patching and backup management
ADR-003Retain Citrix in Phase 1Accepted2026-02-05Reduces migration scope; introduces transitional VPN dependency

TermDefinition
6 R’sSix common migration strategies: Retain, Retire, Rehost, Replatform, Refactor, Replace
BACSBankers’ Automated Clearing Services — the UK electronic payment system used for salary payments
BicepA domain-specific language for deploying Azure resources declaratively (Infrastructure as Code)
Blue-Green DeploymentA release strategy using two identical environments; traffic is switched from the old (blue) to the new (green) after validation
DMSAzure Database Migration Service — a managed service for migrating databases to Azure
Entra IDMicrosoft Entra ID (formerly Azure Active Directory) — cloud-based identity and access management service
Entra ID ConnectA tool that synchronises on-premises Active Directory identities to Entra ID
FPSFull Payment Submission — the HMRC Real Time Information submission made each time employees are paid
NI NumberNational Insurance Number — a unique identifier used in the UK tax and benefits system (Sensitive Personal Information)
PAYEPay As You Earn — the UK system for collecting income tax and National Insurance from employment
PIMPrivileged Identity Management — Entra ID feature providing just-in-time privileged access
PITRPoint-In-Time Restore — Azure SQL feature allowing database restoration to any point within the retention period
ReplatformA migration strategy that moves a workload to a new platform with targeted optimisations (e.g., adopting managed database services) without re-architecting the application
RTIReal Time Information — HMRC system requiring employers to report payroll data in real time
Standard 18The BACS file format specification for payment instruction files
TDETransparent Data Encryption — SQL Server and Azure SQL feature that encrypts data at rest
DocumentVersionDescriptionLocation
PayrollPro Database Migration Runbook0.3Step-by-step DMS migration proceduresAzure DevOps Wiki: PayrollPro/docs/migration-runbook
Meridian Azure Landing Zone SAD1.2Hub-spoke network architecture and shared servicesSharePoint: /architecture/sads/INFRA-SAD-0091
Meridian Entra ID Connect Deployment Plan1.0Identity synchronisation project plan and designSharePoint: /projects/IAM-PRJ-0042
DPIA — PayrollPro Cloud Migration1.0Data Protection Impact AssessmentSharePoint: /compliance/dpia/DPIA-2026-009
Azure SQL Compatibility Assessment1.0T-SQL compatibility analysis resultsAzure DevOps: PayrollPro/docs/azure-sql-compat
Standard / Pattern IDNameVersionApplicability
ADSArchitecture Description Standard1.0Document structure and compliance scoring
MSIS-3.2Meridian Information Security Standard3.2Sections 3.4, 3.5 — data protection and security controls
MCSB-1.0Meridian Cloud Security Baseline1.0Sections 3.3, 3.5 — Azure-specific security controls
MDCP-2.1Meridian Data Classification Policy2.1Section 3.4 — data classification and handling
OWASP Top 10OWASP Top 10 Web Application Security Risks2021Section 5.1 — application security testing
RoleNameDateSignature / Approval Reference
Lead Solution ArchitectFred Bloggs2026-03-28Pending
Security ArchitectJane DoePending
DBA LeadClaire DoePending
ARB / Design AuthorityArchitecture Review BoardPending
Business SponsorBetty BloggsPending

SectionScore (0–5)AssessorDateNotes
1. Executive Summary4Fred Bloggs2026-03-28Strong business context, current state well-documented, strategic alignment demonstrated. Scored 4 not 5: reuse assessment could include more detail on rejected platforms.
3.1 Logical View3Fred Bloggs2026-03-28Components documented with technology choices; vendor lock-in assessed. Scored 3 not 4: component interactions could be more formally specified (e.g., API contracts between modules). Monolithic architecture limits decomposition detail.
3.2 Integration & Data Flow4Fred Bloggs2026-03-28All internal and external integrations documented with protocols and authentication. End user access documented.
3.3 Physical View4Joe Bloggs2026-03-28Deployment architecture complete, compute sized, networking documented, environments listed. Connectivity protocols specified.
3.4 Data View4Jane Doe2026-03-28All data stores classified, retention and encryption specified, PII/SPI identified, data sovereignty addressed, data transfers documented.
3.5 Security View4Jane Doe2026-03-28Business impact assessed, authentication and authorisation fully documented, encryption at rest and in transit specified, secrets management documented, SIEM integration confirmed. Scored 4 not 5: formal threat model (STRIDE) not yet completed.
3.6 Scenarios3Fred Bloggs2026-03-28Key use cases documented with flows; ADRs capture significant decisions with rationale and alternatives. Scored 3 not 4: use cases could cross-reference views more explicitly.
4.1 Operational Excellence3Joe Bloggs2026-03-28Centralised logging, monitoring, and alerting in place. Scored 3 not 4: operational runbooks not yet fully documented (in progress).
4.2 Reliability4Fred Bloggs2026-03-28DR strategy documented with RTO/RPO targets, backup configured with immutability, auto-scaling defined, fault tolerance designed with failure modes.
4.3 Performance3Fred Bloggs2026-03-28Targets defined, growth projected. Scored 3 not 4: performance testing not yet executed (planned for May-Jun 2026).
4.4 Cost Optimisation3Polly Doe2026-03-28Cost analysis performed using Azure Pricing Calculator, TCO comparison documented. Scored 3 not 4: FinOps practices (tagging, rightsizing reviews) not yet formalised.
4.5 Sustainability3Fred Bloggs2026-03-28Non-production auto-shutdown enabled, resources right-sized, demand patterns documented.
5. Lifecycle4Fred Bloggs2026-03-28CI/CD documented, migration plan detailed with 6 R’s classification, phased timeline, rollback plan, skills assessment with training plan. Strong migration section.
6. Decision Making3Fred Bloggs2026-03-28Constraints, assumptions, risks, and dependencies documented with ownership. ADRs captured. Scored 3 not 4: some assumptions still open; compliance traceability not yet complete.
Overall3Fred Bloggs2026-03-28Weakest-link scoring. Multiple sections at 3 reflect the pre-go-live state: operational runbooks, performance testing, and FinOps practices are in progress and will improve scores to 4 before production approval.