Design Rot
-“No one knows what that does”
-“No one knows why it works”
-“No one knows where that
(network) goes”
8
“Where should this new thing go?”
“Not sure… chuck it wherever”.
“Portability” might only be skin-deep
-It’s (relatively) easy to move containerized applications around.
-Applications front things that are not-so-easy to move around.
-Or moving them around could be costly.
-Eg. Databases, Queues, …so on and so forth.
-Replicated architectures... on hybrid clouds... for high availability and/or
portability – Is your stack really portable?
9
10
can you spot the problem?
A simplified example, but
Developer
Adversity
11
Fancy CI/CD for the cloud, SSH and cp (copy) to that
on-prem box.
-Observability? What observability?
-Guesswork
-Frustration
-Processes and tools designed to fight you; not support you.
-Too many tools. Too little time to get actual work done.
12
Getting it right
●Design to optimize the benefits of a Hybrid Cloud.
○You can also design to make your life miserable.
●Prefer domain-driven partitioning over replication (if possible)
●Cell-based architecture gives you a scalable framework to build,
reason with and visualize your enterprise architecture.
○A framework to model your enterprise architecture into self-contained
implementation units.
○Controlled ingress and egress points:
■Observability
■Access controls
■…towards zero-trust
Avoiding design rot.
14
●You now have self-contained, portable* units of business/functional
capability – loose coupling.
●*Portability can still be restricted by technology choices.
Eg. Being backed by a proprietary database.
●A great read: Google–“Don't get locked up into avoiding lock-in”
⦿Reference: https://martinfowler.com/articles/oss-lockin.html
Portable units of deployment
18
A centralized control plane
19
●
Disclaimer: This is definitely not “scientific” ;)
●Centralize control - distribute capability.
●Be (reasonably) opinionated.
○Finding the golden path can take a long time.
○What you think is right today can be wrong tomorrow.
○This will be a continuous, ever-evolving process.