Data has weight
An application can be deployed in another region in minutes. Moving several terabytes of data takes hours or days, costs money in transfer and may be restricted by law. That is why, in a cloud architecture, data attracts everything else: compute ends up going to where the data is, not the other way round.
Designing by starting with the applications and leaving data until the end is the surest way to end up with expensive transfers, unexpected latency and compliance problems.
Four questions per piece of data
- Where does it live? Region, provider and service. And if it has copies, where they are.
- Who reads it and from where? Every read from another region or from outside the provider has a cost and a latency.
- How much moves? The monthly volume transferred between zones, between regions and outbound. Normally what comes in is free and what goes out is paid for.
- What constrains it? Data protection regulation, residency required by contract or by sector, retention periods.
Mistakes that are paid for every month
- Separating the application from its database into different regions: every query crosses the network and it shows in latency and on the bill.
- Copying data 'just in case' to other regions or providers with nobody reading it.
- Taking raw data out of the provider to analyse it elsewhere, when it could be aggregated before leaving.
- Forgetting residency until the first audit.
The right order
- Inventory the data: what there is, how much, whose it is and how sensitive.
- Decide where each set lives, with its legal and recovery requirement.
- Place compute close to the data it uses most.
- Design the unavoidable flows between zones and estimate their cost before deploying them.
Once the data is placed properly, most of the other decisions become obvious.
How we apply it: Cloud Architecture.