← All posts

Good cloud architecture survives contact with delivery

A lot of cloud architecture looks fine right up until somebody has to use it.

That is the problem.

It is not especially difficult to produce architecture that looks coherent in a diagram, aligns to vendor guidance, and sounds sensible in a meeting. The real test comes later, when real teams have to operate inside it, deliver through it, work around its constraints, and deal with what happens when reality does not follow the happy path.

That is where a lot of architecture quietly falls apart.

Good cloud architecture survives contact with delivery.

Architecture fails when it models the diagram instead of the reality

A lot of architecture goes wrong because people model the wrong thing.

They think they are designing:
- a landing zone
- a network pattern
- an environment strategy
- an identity boundary
- a deployment path

What they are actually designing is a set of constraints that real teams will have to live inside while still being expected to ship.

That is not the same thing.

It is perfectly possible to produce an architecture that is technically defensible, aligned to vendor guidance, nice-looking in a diagram, and still deeply hostile to delivery.

Why? Because the model stopped at structure and never extended into operation.

If the design assumes a level of coordination, discipline, staffing, or platform maturity that the organisation does not actually have, then it is already cracked. It just has not had the decency to show it yet.

The diagram is the easy part

One of the reasons architecture goes wrong is that diagrams are emotionally satisfying.

Boxes. Arrows. Zones. Layers. Trust boundaries. Shared services. A nice little legend. Everyone nods. Very serious. Very grown-up.

The hard part is not drawing the architecture.

The hard part is answering questions like:
- who owns this
- who is allowed to change it
- what happens when the exception arrives
- how does a team actually onboard
- what breaks if the dependency is late
- where does the temporary access end
- how does this get operated at 2am by someone who was not in the meeting

That is architecture too.

A design that cannot answer those questions is not complete. It is just visually tidy.

Temporary architecture has a habit of becoming permanent

There should be a graveyard for things that were only meant to be temporary.

Temporary public access.
Temporary network rules.
Temporary shared subscriptions.
Temporary identity shortcuts.
Temporary manual deployment steps.
Temporary bypasses because “we just need to get moving”.

Sometimes temporary is rational. Fine.

The problem is that most organisations are excellent at introducing temporary exceptions and terrible at retiring them. So the temporary thing sticks around, attracts dependencies, becomes socially normal, and eventually gets defended as if it was a deliberate design choice all along.

That is how a lot of bad cloud architecture forms.

Not through one giant catastrophic decision. Through a series of tolerated shortcuts that outlive the urgency that created them.

Governance that cannot survive implementation is theatre

This is a big one.

A lot of governance sounds good right up until a real team has to implement it under time pressure with actual dependencies and delivery pressure in the mix.

That is where a lot of cloud standards reveal themselves to be decorative.

If a policy set is so rigid, confusing, or disconnected from delivery reality that teams immediately start working around it, then it is not functioning as governance. It is functioning as theatre.

The same goes for architecture patterns that technically exist but are so painful to adopt that nobody wants to touch them without specialist support.

Good governance should make the system safer without making the path unusable.

Good architecture should reduce bad decisions by design, not by hoping people stay disciplined forever.

If your standard only works in ideal conditions, then it is not a standard. It is a wish.

Architecture fails where ownership gets vague

A lot of cloud problems live in the grey zone between teams.

Not broken enough to be escalated properly.
Not owned enough for someone to clean up.
Not unowned enough to force a conversation.

That is where rubbish accumulates:
- unclear platform responsibilities
- half-owned shared services
- identity awkwardness
- network dependencies everyone resents
- access models nobody really likes
- exceptions nobody feels authorised to eliminate

This is one of the places where architecture and operating model are inseparable.

If the ownership boundary is weak, the architecture will decay around it.

You cannot keep drawing clean technical boundaries on top of blurry organisational ones and expect the result to stay stable. Eventually the social reality wins.

Flexibility is one of the most abused words in cloud

People love saying something is flexible.

Usually what they mean is one of three things:
- we have not made the decision yet
- we are avoiding conflict by keeping this vague
- we are leaving the hard trade-off for somebody else later

Real flexibility is valuable. Fake flexibility is how a lot of architecture becomes incoherent.

Sometimes the right answer is not maximum optionality. Sometimes the right answer is to be opinionated enough that people can actually move.

That is one of the reasons I like golden paths and explicit patterns. Not because every team should be boxed in forever, but because unmanaged freedom turns into drift very quickly.

A platform that supports ten ways of doing the same thing is often less flexible in practice than a platform that supports two good ones properly.

Good architecture makes the right path easier

This is the test I keep coming back to.

Good cloud architecture should make the right thing easier to do, not merely possible to describe.

It should reduce cognitive load.
It should reduce exception handling.
It should reduce the amount of tribal knowledge required to move safely.
It should make access, deployment, identity, networking, and service boundaries clearer, not murkier.

Most teams are busy. They are under pressure. They are not operating in a perfect vacuum of discipline and calm. So if the architecture relies on everyone doing the hard thing manually every time, it is badly shaped.

The right design is usually the one that lets ordinary people do sensible things consistently without needing a high priesthood to interpret the platform.

That is what good architecture buys you.

Not elegance for its own sake. Usability under pressure.

Final thought

Most cloud architecture does not fail because the technology is impossible.

It fails because reality was deferred.

The trade-offs were not made explicit. The ownership was not nailed down. The temporary fix was allowed to harden. The governance was too decorative. The architecture was treated as a static design artefact instead of a living structure people would have to operate inside.

That is why the best architecture work is usually less about drawing cleverer diagrams and more about forcing clarity where the system would otherwise prefer vagueness.

A lot of cloud pain is just unresolved reality with a bill attached.

Good architecture is supposed to reduce that bill, not hide it for later.