cHAnGe sUpPORt c O n S T a N t cHAnGe cHAnGe cHAnGe nealford.com @neal4d
to make di ff erent in some particular to undergo a modi fi cation of to give a di ff erent position, course, or direction to cHAnGe to replace with another to make a shift from one to another to make radically di ff erent
cHAnGe
bUSineSs dRiVEn
bUSineSs dRiVEn
tEcHnoLoGy DriVEn bUSineSs dRiVEn
dYNaMic eqUiLiBRiuM
dYNaMic eqUiLiBRiuM ¯
How is long term planning possible when things constantly unEXpECtEd unEXpECtEd change in unEXpECtEd ways?
everything in architecture is a tradeo ff
code use, reuse, & abuse reuse
Software reuse is more like an organ transplant than snapping together Lego blocks. John D. Cook http://www.johndcook.com/blog/2011/02/03/lego-blocks-and-organ-transplants/
two reuse solutions
ESB-driven SOA
customer customer auto and life homeowners insurance insurance division division customer customer commercial disability customer insurance insurance service division division customer customer casualty travel insurance insurance division division
The more re usable something is, the less usable it is.
reuse coupling
ESB-driven SOA
microservices architecture client requests client requests client requests api layer service component module module
service service component component module module module module
service templates/sidecars logging monitoring service component module module A&A http://www.dropwizard.io/ https://projects.spring.io/spring-boot/
the rise of service meshes
the rise of service meshes
the rise of service meshes
the rise of service meshes service service component component module module module module
the rise of service meshes
everything in architecture is a tradeo ff
Last 10% Trap “Users always want 100% of what they want (& are never satis fi ed with less).” 80% 10% 10% what the user wants
What Happened to the 4GLs? DSL
see also: Vendor King Anti-pattern
Current 10% Trap? ? serverless ! “low code” environments
sUpPORt cOnSTaNt cHAnGe
ConStRAinT
Not a good kind snowflake servers of vAriABiLitY
reMoVe vAriAbiLitY
kNigHt cApiTaL
dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/ “bankrupt in 45 minutes”
Architectural governance
@neal4d @rebeccaparsons @patkua nealford.com
Evolutionary Architecture An evolutionary architecture supports guided, incremental change across multiple dimensions.
Evolutionary Architecture An evolutionary architecture supports guided, guided incremental change across multiple dimensions.
guided An architectural fi tness function provides an objective integrity assessment of some architectural characteristic(s).
Cyclic Dependencies application clarkware.com/software/JDepend.html
Governing Layered Architecture
ArchUnit https://www.archunit.org/
ArchUnit https://www.archunit.org/ layer dependency
Legality of Open Source Libraries Penultima ⬆e
Legality of Open Source Libraries Penultima ⬆e
Legality of Open Source Libraries Penultima ⬆e
Legality of Open Source Libraries Penultima ⬆e
incremental commit/ functional UAT staging unit test test 01001001010101 improved 01010101010101 star rating 00101010010010 00100100010001 unit functionally tested tested star rating code code database deployed code shipping survey catalog Production
Deployment Pipeline + Fitness Functions holistic atomic commit/ functional fitness fitness UAT unit test test functions functions 01001001010101 01010101010101 00101010010010 00100100010001 unit functionally architecturally tested tested tested code code code database deployed quantum integration environment
evolutionary architecture governance Security fitness atomic holistic functions replicating containerize deploy to fitness fitness CI & deploy production functions functions EA 01001001010101 fitness 01010101010101 functions 00101010010010 00100100010001 database database database
sUpPORt cOnSTaNt cHAnGe
incremental commit/ functional UAT staging unit test test 01001001010101 improved 01010101010101 star rating 00101010010010 00100100010001 unit functionally tested tested star rating code code database deployed code shipping survey catalog Production
moVe faSt & fi X tHiNgs
https://github.com/github/scientist
▫︎ It decides whether or not to run the try block, ▫︎ Randomizes the order in which use and try blocks are run, ▫︎ Measures the durations of all behaviors, ▫︎ Compares the result of try to the result of use, ▫︎ Swallows (but records) any exceptions raised in the try block ▫︎ Publishes all this information.
4 days 24 hours/ no mismatches or slow cases > 10,000,000 > 10,000,000 comparisons comparisons
sUpPORt cOnSTaNt cHAnGe
sUpPORt cOnSTaNt cHAnGe remove needless variability
sUpPORt cOnSTaNt cHAnGe automation = platform
sUpPORt cOnSTaNt cHAnGe everything is a tradeoff
sUpPORt cOnSTaNt cHAnGe
nealford.com @neal4d nealford.com/videos www.oreilly.com/software-architecture-video-training-series.html nealford.com/books
Recommend
More recommend