FIT3077 Lecture Notes - Lecture 15: Continuous Delivery, Version Control, Microservices
Evolutionary Architecture
●About architecng a system specifically for change
●About have a goal to head towards
●Helps think about quality
○Is scalability and security something to consider?
○What level of scalability is needed?
○What level of data protecon is needed?
●Define architectural fitness funcon
○What maers to your system?
■Security
■Upme
■Mean me to repair
●Delay decision as long as you can
●Understand various forms of technical debt
●Implement evidence-based re-use
○Not the center of architectural decisions though
●Create and maintain the tesng safety net - quality assurance
●Monitor your system
Why?
●Pace of change is increasing rapidly
●Business model lifemes are shortening
●Business need to be able to respond to change more quickly that before
Evolutionary vs Emergent
Evolutionary
Emergent
●About engineering architectures in such a
way that we can connuously evolve them
●Having a goal towards which the
architecture evolves
●Well defined fitness which guides the
evoluon
●Fitness funcon help evaluate architectural
decision and respond to changes in a more
informed way
●Changes are addressed more at ad-hoc
basis
●No clear criteria for change
Fiteness Function
Specifies important characteriscs of a system
Document Summary
A(cid:271)out a(cid:396)(cid:272)hite(cid:272)(cid:415)(cid:374)g a s(cid:455)ste(cid:373) spe(cid:272)i (cid:272)all(cid:455) fo(cid:396) (cid:272)ha(cid:374)ge. A(cid:271)out ha(cid:448)e a goal to head to(cid:449)a(cid:396)ds. Dela(cid:455) de(cid:272)isio(cid:374) as lo(cid:374)g as (cid:455)ou (cid:272)a(cid:374) Not the (cid:272)e(cid:374)te(cid:396) of a(cid:396)(cid:272)hite(cid:272)tu(cid:396)al de(cid:272)isio(cid:374)s though. C(cid:396)eate a(cid:374)d (cid:373)ai(cid:374)tai(cid:374) the tes(cid:415)(cid:374)g safet(cid:455) (cid:374)et - (cid:395)ualit(cid:455) assu(cid:396)a(cid:374)(cid:272)e. Busi(cid:374)ess (cid:374)eed to (cid:271)e a(cid:271)le to (cid:396)espo(cid:374)d to (cid:272)ha(cid:374)ge (cid:373)o(cid:396)e (cid:395)ui(cid:272)kl(cid:455) that (cid:271)efo(cid:396)e. A(cid:271)out e(cid:374)gi(cid:374)ee(cid:396)i(cid:374)g a(cid:396)(cid:272)hite(cid:272)tu(cid:396)es i(cid:374) su(cid:272)h a (cid:449)a(cid:455) that (cid:449)e (cid:272)a(cid:374) (cid:272)o(cid:374)(cid:415)(cid:374)uousl(cid:455) e(cid:448)ol(cid:448)e the(cid:373) Ha(cid:448)i(cid:374)g a goal to(cid:449)a(cid:396)ds (cid:449)hi(cid:272)h the a(cid:396)(cid:272)hite(cid:272)tu(cid:396)e e(cid:448)ol(cid:448)es. Well de (cid:374)ed t(cid:374)ess (cid:449)hi(cid:272)h guides the e(cid:448)olu(cid:415)o(cid:374) Fit(cid:374)ess fu(cid:374)(cid:272)(cid:415)o(cid:374) help e(cid:448)aluate a(cid:396)(cid:272)hite(cid:272)tu(cid:396)al de(cid:272)isio(cid:374) a(cid:374)d (cid:396)espo(cid:374)d to (cid:272)ha(cid:374)ges i(cid:374) a (cid:373)o(cid:396)e i(cid:374)fo(cid:396)(cid:373)ed (cid:449)a(cid:455) Cha(cid:374)ges a(cid:396)e add(cid:396)essed (cid:373)o(cid:396)e at ad-ho(cid:272) (cid:271)asis. Ma(cid:454)i(cid:373)izes the i(cid:374)fo(cid:396)(cid:373)a(cid:415)o(cid:374) (cid:455)ou ha(cid:448)e to (cid:373)ake a good de(cid:272)isio(cid:374)s. De(cid:272)ide ea(cid:396)l(cid:455) (cid:449)hat (cid:455)ou d(cid:396)i(cid:448)e(cid:396)s a(cid:396)e, a(cid:374)d p(cid:396)io(cid:396)i(cid:415)ze de(cid:272)isio(cid:374)s a(cid:272)(cid:272)o(cid:396)di(cid:374)g. Dela(cid:455) de(cid:272)isio(cid:374) that do(cid:374)"t ha(cid:448)e a(cid:374)(cid:455)thi(cid:374)g to do (cid:449)ith (cid:455)ou(cid:396) fu(cid:374)da(cid:373)e(cid:374)tal d(cid:396)i(cid:448)e(cid:396)s. A(cid:396)(cid:272)hite(cid:272)tu(cid:396)e should ha(cid:448)e the a(cid:271)ilit(cid:455) to (cid:272)ha(cid:374)ge - (cid:373)aki(cid:374)g the s(cid:455)ste(cid:373) as adapta(cid:271)le as possi(cid:271)le. Do this (cid:271)(cid:455) (cid:271)(cid:396)eaki(cid:374)g do(cid:449)(cid:374) the fu(cid:374)(cid:272)(cid:415)o(cid:374)alit(cid:455)