Cloud

The foundations cloud workloads sit on

I design landing zones, hybrid connectivity, resilience and automation across AWS, Azure and Google Cloud. This page shows how those pieces fit together and the decisions I make along the way.

  • AWS
  • Azure
  • Google Cloud
  • Landing zones
  • Transit Gateway
  • Direct Connect
  • ExpressRoute
  • Terraform
A cloud region with a transit hub An on premises data centre and SD-WAN branches connect to a transit hub in a cloud region. The hub links production, development, shared services and data networks, so every connection passes one governed point. CLOUD REGION privateconnection SD-WAN Data centreon premises BranchesSD-WAN Transit hubinspection Prodworkloads Devand test SharedDNS, identity Dataanalytics one governed path in and out
Live view · every connection passes one governed hub
Overview

Who looks after which layer

Every cloud decision I make starts with the shared responsibility model. The provider takes over more layers as you move from infrastructure as a service (IaaS) to platform as a service (PaaS) and software as a service (SaaS), but some layers always stay with the customer.

The shared responsibility model Eight layers from data at the top to the physical data centre at the bottom. On premises the customer manages all eight. With infrastructure as a service the customer manages five, with platform services three, and with software as a service two: data and identity, which always stay with the customer. Customer manages Provider manages On premisesmy own data centre IaaSAmazon EC2, Azure VMs PaaSmanaged databases SaaSMicrosoft 365 Data Identity and access Applications Runtime and middleware Operating system Virtualisation Physical network and storage Physical data centre CUSTOMER SHARE 8 5 3 2 of 8 layers Data and identity stay

Swipe sideways to see the whole diagram.

On premises. The customer owns every layer, from the building and the power to the data. Full control and full responsibility, including every hardware refresh.

Infrastructure as a service. The provider runs the facilities, physical network, storage and hypervisor. The customer still owns the operating system, patching, network design and firewall rules, and everything above them.

Platform as a service. The provider also runs the operating system and the runtime. The customer focuses on the application, its data and who can reach it.

Software as a service. The customer only owns the data and identity: who has access, how it is protected and how it is governed. Those two never move to the provider.

Animation

Identity comes first

In the cloud, a stolen credential does more damage than an open port. I design identity, roles and guardrails before the first network.

Foundations before workloads

Accounts, addressing, connectivity, logging and policy go in first. Retrofitting them after teams have built on top costs far more.

Cost is part of the design

Data transfer, idle capacity and duplicated services add up quietly. I treat cost like resilience: designed in, measured and reviewed.

Placement

Where each workload should live

Cloud is a placement decision, made one workload at a time. I weigh five things: latency and where the data sits, recovery needs, the cost model, regulation, and what the teams can run. Most estates end up hybrid, and the boundary between the two is designed, not left to chance. Pick a workload to see how it lands.

Deciding where four example workloads should run A workload on the left flows to one of three places: on premises, hybrid, or public cloud. A panel on the right lists how it scores on latency, data, cost, regulation and recovery. A trading engine stays on premises near the exchange. A customer website goes to public cloud. Plant analytics runs hybrid, at the edge and in the cloud. Disaster recovery uses the cloud as a pilot light. Trading engineCustomer websitePlant analyticsDisaster recovery workload On premisesdata centre Hybridedge and cloud Public cloudone or two regions LatencyDataCost modelRegulationRecovery microseconds to the exchangemarket feeds land on sitesteady, heavy load all daytight control and clock accuracysecond site, synchronous users everywhere, edge cachinglittle data, mostly readspiky: pay for peaks onlystandard controlstwo zones, a second region control stays at the plantterabytes made on site dailysteady edge, bursts in cloudOT stays segmentededge buffers, cloud copies matters only after failoverreplicated continuouslypay for capacity on the daytested at least once a yearrebuilt by code, pilot light

Swipe sideways to see the whole diagram.

Trading engine: on premises. Every microsecond to the exchange counts, the load is steady all day, and the regulator expects tight control, including clocks traceable to UTC (Coordinated Universal Time). A colocated data centre wins on latency and on cost at that steady load.

Customer website: public cloud. Users are everywhere and demand jumps during sales. Managed services, edge caching and paying for peaks only make the cloud the natural home.

Plant analytics: hybrid. Data is made at the plant in large volumes and control must stay local, so collection and first processing run at the edge. Training and group dashboards run in the cloud, fed outbound through the DMZ (demilitarised zone).

Disaster recovery: public cloud. Data replicates continuously, but servers are built by code only when needed, a pilot light. The organisation pays for full capacity only on the day, and tests it at least once a year.

Animation

Why not everything in public cloud

Regulation and data residency, the cost of steady heavy loads, latency to people or machines, and concentration risk. UK financial firms also have to manage reliance on a few providers, which is why the UK now has a critical third parties regime.

Cloud patterns on premises

I borrow the hyperscalers' ideas for private data centres: a data hall acts like an availability zone, a pod like a cell, and a pair of data centres like a region. Blast radius stays small, and running workloads carry on even if management tools fail.

Landing zones

A landing zone, layer by layer

A landing zone is the ready made structure that every workload lands in. I build it in a fixed order, because each layer depends on the one before.

Building a multi account landing zone An organisation with security, network, production and non production accounts. Single sign on reaches every account. A transit hub joins on premises, shared services, production and non production networks, with a firewall inspecting traffic between them. Every account sends logs to the security account, and guardrails apply to all of them. GUARDRAILS Organisationmanagement account Securityand logging Networkconnectivity Productionworkloads Non productiondev and test IdentitySSO, roles, MFA SSO SSO SSO SSO Transit hubTGW · vWAN · NCC On premisesprivate connection Shared servicesDNS, directory Production VPC10.20.0.0/16 Non production VPC10.30.0.0/16 Firewalleast west Accounts set blast radius One identity, roles not keys Hub and spoke, no overlaps East west inspected in the hub Every account logs centrally Guardrails written as code

Swipe sideways to see the whole diagram.

Step 1
  1. I start with the account structure, not the network. Separate accounts, subscriptions or projects for security, networking, production and non production give clean boundaries for access, billing and blast radius.

  2. One identity source with single sign on (SSO), roles and multi factor authentication (MFA) reaches every account. Access is granted to roles, not individuals, and nobody works with long lived keys.

  3. A transit hub joins the workload networks and on premises: AWS Transit Gateway, Azure Virtual WAN or a hub virtual network (VNet), or Google Cloud Network Connectivity Center (NCC). Each spoke often uses a shared VPC (virtual private cloud). I plan addressing across every cloud and site up front, because overlapping ranges are expensive to fix once workloads are live.

  4. Traffic between spokes, and to and from on premises, passes a firewall in the hub. One policy point and one set of logs, while the spokes stay simple.

  5. Every account sends audit logs, flow logs and configuration history to a protected logging account that workload teams cannot change or delete.

  6. Guardrails block bad configuration before it is deployed: service control policies, Azure Policy or organisation policies, written as code and reviewed like any other change.

Hybrid connectivity

Four ways in, chosen on purpose

How sites reach the cloud decides performance, resilience and cost. I choose the pattern per workload, and production almost always gets more than one path.

Ways to connect sites to a cloud region A data centre reaches a cloud transit hub over an internet VPN, over one private connection, or over a resilient pair of private connections in two colocation sites with a VPN as backup. Branches can also reach the cloud through a virtual SD-WAN edge in the region. CLOUD REGION IPsec VPN VPN as last resort BGP Internet Colocation Aprovider edge Colocation Bprovider edge Data centreon premises BranchesSD-WAN fabric WorkloadsVPCs and VNets Transit hubor virtual WAN Virtual SD-WAN edgecloud on ramp Quick to set up, internet performance Private and predictable, but one path Two locations, two links, BGP decides Branches reach the cloud directly

Swipe sideways to see the whole diagram.

Site to site VPN (virtual private network). IPsec (IP security) tunnels over the internet. Quick to set up and fine for small or temporary needs, but performance follows the internet and throughput per tunnel is limited.

Private connection. AWS Direct Connect, Azure ExpressRoute or Google Cloud Interconnect gives a dedicated, predictable path with private BGP (Border Gateway Protocol) peering. On its own, though, one connection in one location is a single point of failure.

Resilient pair. Two private connections in two separate locations, ideally from diverse carriers, with BGP steering traffic and a VPN as the last resort. This is my default for production workloads.

SD-WAN on ramp. A virtual SD-WAN edge in the region lets branches reach cloud workloads directly over the fabric, with the same segmentation and application policy as every other site. More on the SD-WAN page.

Animation

One border for every connection

WAN, internet and cloud connections all land in one controlled place, a border or edge pod, never in a compute pod. WAN links use VRF (virtual routing and forwarding) lite per zone, the internet has two providers, and cloud private connections arrive in pairs.

Routing between cloud and site

Private connections use BGP. I set local preference and AS (autonomous system) path prepending so both directions use the same path, and filter what each side may advertise, so a mistake in the cloud cannot pull traffic away from a site.

Branches straight to the cloud

With an SD-WAN on ramp, branches reach cloud workloads over the fabric. The same segments and policies apply, and the data centre stops carrying traffic it does not need to see.

Resilience

Recovery matched to what it costs

Every service needs a recovery time and a recovery point, and every option has a price. Pick a pattern, then take region A offline and watch how quickly the service comes back.

Disaster recovery patterns across two regions Users reach an application and database in region A. Region B holds backups only, a pilot light with a running database replica, a scaled down warm standby, or a full active copy. When region A fails, the database in region B becomes the primary and traffic moves there after a delay that depends on the pattern. REGION A · PRIMARY REGION B · RECOVERY Users App tierrunning Databaseprimary Nothing running App tieroff, ready to start App tierscaled down App tierfull size, live App tierserving users Backupscopied every few hours Databasereplica running Databaseactive replica Database restoredfrom the last backup Databasepromoted to primary Region A lost

Swipe sideways to see the whole diagram.

Recovery time
Hours
Data loss
Hours
Relative cost
£
Suits
Internal tools that can wait
Recovery time
Tens of minutes
Data loss
Seconds to minutes
Relative cost
££
Suits
Important systems that can be down for up to an hour
Recovery time
Minutes
Data loss
Seconds to minutes
Relative cost
£££
Suits
Customer facing services
Recovery time
Near zero
Data loss
Near zero
Relative cost
££££
Suits
Services where any outage costs real money

Region A is serving users.

These are typical ranges. The right pattern comes from each service's agreed recovery objectives, and it is only real once it has been tested.

Animation

Active and active data centres

Both sites serve live traffic. Global load balancing answers DNS with health checks and short time to live values, and anycast suits stateless services such as DNS resolvers. Data is the hard part: either one writer with synchronous copies within a metro area, or asynchronous copies further away.

Beyond one metro area

Past about 100 km, or about 5 ms round trip, synchronous replication usually slows writes too much, so replication becomes asynchronous. Some data loss is then possible and must be agreed. Regions are joined at Layer 3 only, never by stretching a Layer 2 network.

Each region stands alone

Every region has its own management, DNS, identity and time services, so it keeps running if the link to the rest of the estate fails. Circular dependencies, such as DNS needing a server that needs DNS, are found and broken before go live.

Automation

Changes that go through the pipeline

I treat cloud and network configuration as code. Every change follows the same path, so it is visible, reviewed and repeatable, and the console stays read only for day to day work.

An infrastructure as code pipeline A change is committed to Git, planned with Terraform, checked against policy, reviewed by a peer and applied by the pipeline to AWS, Azure and Google Cloud, with Ansible configuring network devices. A daily drift check feeds any difference back as a new change. AWS Azure Google Cloud Ansibleconfiguration Network kitand servers CommitGit PlanTerraform Policyas code Reviewpull request Applypipeline only Driftdaily check Git is the source of truth See every change before it happens Risky changes blocked automatically Small changes, peer reviewed Applied by the pipeline, not a person Drift becomes a change, not a hotfix

Swipe sideways to see the whole diagram.

Step 1
  1. Every change starts as code in Git: accounts, networks, policies and firewall rules. The repository is the source of truth, not the console.

  2. Terraform shows exactly what will be created, changed or destroyed before anything happens. The plan goes with the change record.

  3. Automated checks block risky changes, such as public storage, wide open security groups or overlapping address ranges, before a person even looks.

  4. A peer reviews the code and the plan. Small, frequent changes are easier to review and easier to roll back than big ones.

  5. The pipeline applies the change to AWS, Azure or Google Cloud with its own service identity, not a person's credentials. Ansible handles configuration on network devices and servers.

  6. A scheduled check compares what is running with what is in code. Any difference becomes a new change through the same pipeline, never a quiet fix in the console.

Multi cloud

Same pattern, different names

The three big clouds offer the same building blocks under different names. I design to the pattern first, then map it to each provider.

Building blockAWSAzureGoogle Cloud
Network hubTransit GatewayVirtual WAN or hub VNetShared VPC and Network Connectivity Center
Private connectionDirect ConnectExpressRouteCloud Interconnect
Internet VPNAWS Site-to-Site VPNVPN GatewayCloud VPN
IdentityIAM Identity CenterMicrosoft Entra IDCloud Identity and IAM
Private DNSRoute 53 ResolverAzure DNS Private ResolverCloud DNS
InspectionNetwork Firewall or partner firewallsAzure Firewall or partner firewallsCloud NGFW or partner firewalls
GuardrailsService control policiesAzure PolicyOrganisation policies
Infrastructure as codeTerraform across all three, so one way of working covers every provider

When multi cloud is worth it

  1. Only with a clear reason. A specific service, a regulator, an acquisition or a customer need. Spreading by default doubles the work.
  2. Standardise the edges. One identity source, one way of writing infrastructure as code, one network pattern and one logging approach.
  3. Mind the data. Moving data between clouds costs money and time. Keep processing close to where the data lives.
  4. Regions before clouds. Most resilience needs are met by two regions of one provider. A second cloud is rarely the cheapest way to get it.
  5. Plan addressing once. Non overlapping address ranges across every cloud and site keep future connections simple.
  6. Use what each does best. Designs that use only what all three clouds share give up the managed services that make each one worth using.
Engagement

How I run a cloud programme, from placement to migration waves

This is the programme view: which workloads move, where they land, in what order and at what cost. The building blocks of each provider, and how packets flow through them, are on the AWS, Azure and Google Cloud page.

How an engagement runs, from first conversation to lifecycle Seven stages from left to right: engage (outcomes), requirements (FR and NFR), discovery (estate data), design (placement), build and test (waves), support (hypercare), lifecycle (optimise). For each stage the panel shows who I work with and what comes out of it. After the lifecycle stage the loop returns to the start. Engageoutcomes RequirementsFR and NFR Discoveryestate data Designplacement Buildwaves Supporthypercare Lifecycleoptimise Step 1 · EngageWhy move, and what good looks likeWho I work withWhat comes outCIO and application ownersFinance and procurementSecurity and riskBusiness drivers and measuresWorkloads in scopeCloud principles and guardrailsDecision log and RACI Step 2 · RequirementsPer workload, with numbersWho I work withWhat comes outApplication ownersPlatform and operationsCompliance and data ownersPlacement decision per workloadRPO, RTO and availability targetsData residency and controlsConnectivity and latency needs Step 3 · DiscoveryWhat runs today, and what it talks toWho I work withWhat comes outInfrastructure teamsApplication supportNetwork and securityServer and application inventoryDependency and traffic mapRight sized capacityMove groups and waves Step 4 · DesignA home and a route for every workloadWho I work withWhat comes outDesign authorityCloud security architectsApplication ownersPlacement decision per workloadMigration pattern per workloadLanding zone and hybrid patternsWave plan and dependencies Step 5 · Build and testMove in waves, each with a way backWho I work withWhat comes outMigration engineersApplication teamsChange advisory boardPilot workload migratedWaves with rollback pointsPerformance checked after moveOld servers retired Step 6 · SupportHypercare after every waveWho I work withWhat comes outCloud platform teamApplication supportFinOps and financeHypercare per waveSupport model per layerCost against forecastLessons fed to the next wave Step 7 · LifecycleRight sized and reviewed after the moveWho I work withWhat comes outPlatform teamApplication ownersDesign authorityRightsizing after migrationModernisation backlogPlacement reviewsExit plans kept current

Swipe sideways to see the whole diagram.

Step 1
  1. I start with the reason for moving: speed, cost, resilience, exiting a data centre or a specific service. I agree the measures of success, the principles, such as which providers and regions, and who decides what.

  2. Functional requirements cover what each workload needs from the platform. Non functional ones set recovery point and recovery time objectives, availability, latency to users and sites, data residency, and the cost each workload may carry.

  3. I gather what really runs today with discovery tools rather than old spreadsheets and memory: servers, sizes and use, and above all the dependencies between them. Applications that talk constantly move together, in the same wave.

  4. Each workload gets a placement and a migration pattern: rehost, replatform, refactor, replace, retain or retire. Workloads that talk constantly are grouped into the same wave, and the landing zone and hybrid patterns are chosen to suit them.

  5. A pilot workload proves the path. Migration waves follow, each with a cutover plan, a rollback point and a go or no go decision. After each wave I compare performance and cost with the baseline, and retire what was left behind.

  6. Every wave gets a short hypercare period with the application team. I track performance and cost against the forecast, agree who supports each layer, and feed what we learn into the plan for the next wave.

  7. After the move, sizes and commitments are adjusted to real use, and rehosted workloads join a modernisation backlog. Placement is reviewed when costs, regulation or the business change, and exit plans stay current for critical services.

Functional requirements

What it must do.

  • Give every workload a home in a governed account or subscription, built from a standard landing zone.
  • Connect sites and data centres to the cloud over resilient private links, with a VPN as backup.
  • Inspect traffic between zones, to the internet and to on premises, through a central hub.
  • Resolve names both ways between cloud and on premises with private DNS.
  • Use one identity source with single sign on and multi factor authentication.
  • Recover each critical workload in a second zone or region, as its tier requires.

Non functional requirements

How well it must do it, with a number wherever one can be agreed.

Availability
Production across at least two availability zones, and 99.95% or better for critical services.
Recovery
Recovery point and recovery time objectives (RPO and RTO) agreed per tier, for example under 15 minutes and under 4 hours for tier one.
Latency
Round trip from main sites to the region within an agreed limit, such as under 20 ms in the UK.
Security
Guardrails enforced by policy, logs kept centrally, and no public endpoints without review.
Data
Data stays in agreed regions, encrypted at rest and in transit.
Cost
A budget and alerts for every account, and monthly review of waste and commitments.
Operability
Every change through the pipeline, with drift detected and reported.

Typical starting targets. Each workload's tier sets its real numbers, and each one is checked again after its wave.

Projects

Where I have delivered it

Cloud work for me has always been joined up with networks, security and the data centre, never treated as a separate project.

Certification

AWS Solutions Architect Professional

My cloud architecture certification. I have also trained in Microsoft Azure and Google Cloud Platform.

XIDA · 2025 to now

Multi cloud transformation

Led network and security transformation from discovery to provisioning across Cisco Nexus, Catalyst SD-WAN, SD-Access and AWS, Azure and Google Cloud environments.

XIDA · 2021 to 2024

Plant data to the cloud

For Dyson, supported secure MQTT data paths from production lines to MES (manufacturing execution systems) and cloud data platforms, with industrial network segmentation and OT (operational technology) security controls around them.

AVEVA · 2020 to 2021

Industrial data, secured

Shaped network security for AVEVA Historian and, during the OSIsoft acquisition, the PI System, moving process data for oil and gas, chemicals and food customers securely to data centre and cloud.

iSystems Integration · three engagements, 2015 to 2019

Cloud and disaster recovery

Cloud, SDN (software defined networking), disaster recovery and security architecture for enterprise clients, then directed architecture and delivery across AWS, Google Cloud, Azure and disaster recovery while leading and mentoring a team of 4 engineers.

Toolset

How I build it

Hybrid and multi cloud design, Terraform, Ansible and Python, with VMware on premises as a VMware Certified Professional in data centre virtualisation.

Backed by AWS Certified Solutions Architect Professional. I have also trained in Microsoft Azure and Google Cloud Platform. See all credentials