Architecture and engineering
A system is read layer by layer
For technical leaders and teams who want to know how we design a system: the layers we examine, the principles we apply and the practices that come with every delivery.
The layers we design
Identity and access
Who can do what, and what trail it leaves.
Network and exposure
What is visible from the Internet, and why.
Applications and APIs
The code, its contracts, its dependencies, its secrets.
Data and backups
Where the data lives, and whether restoring it has been tested.
Observability and costs
What we measure, what we pay for, what raises an alert.
Six architecture principles
Simplicity first
The simplest solution that meets the need; complexity only when it is justified.
Written decisions
Every important choice is documented with its options and trade-offs.
Security by design
Threats, identities and secrets handled from the architecture stage.
Reversibility
Replaceable providers and infrastructure described as code.
Readable costs
Every service has a reason to exist and a tracked cost.
Separate environments
Development, pre-production and production never mix.
What comes with every delivery
Infrastructure as code
The foundation can be rebuilt from a versioned repository.
Continuous integration and delivery
Automated tests, analysis and deployment, with approval before production.
Code and security review
Every change is reviewed before it is merged.
Tests reported as they are
Passed, failed or not run: success is never assumed.
Handover documentation
Architecture, operations and recovery procedures.
Have your architecture reviewed
Azure assessment, target architecture or security review: pick the solution in the catalogue, or describe your need in a quote request.
