Evolutionary Architecture as Product Rob Zuber CTO, CircleCI @z00b 1
2
😄 3
😟 4
🤭 5
6
A Brief History of io.js 2014-11-26 io.js is forked from Node.js 7
A Brief History of io.js 2014-11-26 io.js is forked from Node.js 2015-02-10 io.js devs are sad about CircleCI 8
A Brief History of io.js 2014-11-26 io.js is forked from Node.js 2015-02-10 io.js devs are sad about CircleCI 2015-02-24 CircleCI releases support and docs for io.js 9
A Brief History of io.js 2014-11-26 io.js is forked from Node.js 2015-02-10 io.js devs are sad about CircleCI 2015-02-24 CircleCI releases support and docs for io.js 2015-06-16 io.js and Node.js form "Node Foundation" and merge 10
11
My Biases Software Systems Customer Tech Scrappy Scaling 12
Design For Change 13
> git push GitHub origin 14
> git push GitHub CircleCI origin 15
> git push GitHub CircleCI origin 16
> git push GitHub CircleCI origin 17
> git push GitHub CircleCI AWS origin 18
Ixc 1 lxc 2 Application lxc 3 … lxc N 19
Application All containers from one image • Ubuntu 12.04 • Ruby + rvm lxc N Ixc 1 lxc 2 lxc 3 • Python + virtualenv … • Node.js + nvm • ... • MySQL (fixed) • Postgres (fixed) • Mongo (fixed) • ... 20
21
22
Application Application lxc N lxc N Ixc 1 Ixc 1 lxc 2 lxc 3 lxc 2 lxc 3 … … Ubuntu 12.04 Ubuntu 14.04 23
Output Processor Hook Receiver Scheduler ruby-2.6.5-stretch mysql-8.0.18 Agent redis-4.0.12 … elasticsearch-6.8.4 24
Head Up 25
26
27
Hook Receiver Agent elasticsearch-6.8.4 ruby-2.6.5-stretch Workflow Conductor mysql-8.0.18 redis-4.0.12 … Scheduler Output Processor 28
29
30
31
According to StackShare 7856 Companies report using React 18312 Developers report using React 32
According to StackShare 7856 Companies report using React 18312 Developers report using React 3 Companies report using Om 8 Developers report using Om 33
You are a Product Manager 34
“ If we want to make it easier to write software, so that we can build more powerful systems more cheaply, we must find ways to make software simpler. John Ousterhout – A Philosophy of Software Design 35
“ Essential Complexity is inherent in, and the essence of, the problem (as seen by the users ). Ben Moseley & Peter Marks – Out of the Tar Pit 36
“ Accidental Complexity is all the rest — complexity with which the development team would not have to deal in the ideal world (e.g. complexity arising from performance issues and from suboptimal language and infrastructure). Ben Moseley & Peter Marks – Out of the Tar Pit 37
Q.E.D. 38
39
40
Application Remember me? lxc N Ixc 1 lxc 2 lxc 3 … 41
Application Remember me? "Docker LXC Driver" lxc N Ixc 1 lxc 2 lxc 3 … 42
Application Remember me? "Docker LXC Driver" lxc N Ixc 1 lxc 2 lxc 3 … 2014-03-10: libcontainer launched (v0.9.0) 43
Application Remember me? "Docker LXC Driver" lxc N Ixc 1 lxc 2 lxc 3 … 2014-03-10: libcontainer launched (v0.9.0) 2015-08-11: lxc deprecated (v1.8.0) 44
Application Remember me? "Docker LXC Driver" lxc N Ixc 1 lxc 2 lxc 3 … 2014-03-10: libcontainer launched (v0.9.0) 2015-08-11: lxc deprecated (v1.8.0) 2016-02-04: lxc deleted (v1.10.0) 45
Hook Receiver Agent elasticsearch-6.8.4 ruby-2.6.5-stretch Workflow Conductor mysql-8.0.18 redis-4.0.12 … Scheduler Output Processor 46
Hook Receiver Agent Workflow Conductor Scheduler Output Processor Cloud Block Store Mount 47
Hook Receiver Agent elasticsearch-6.8.4 ruby-2.6.5-stretch Workflow Conductor mysql-8.0.18 redis-4.0.12 … Scheduler Output Processor Remote Docker Engine 48
Where Are We Now? 49
50
😖 51
52
Design For Change 53
Simplify the Basics & Look Ahead 54
Think Like a Product Manager 55
Meet Your Customers, Understand Their Goals, Architect Better 56
Thank you. 57
Recommend
More recommend