SlideShare a Scribd company logo
1 of 60
1
Evolutionary Architecture as
Product
Rob Zuber
CTO, CircleCI
@z00b
InfoQ.com: News & Community Site
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
circleci-evolutionary-architecture/
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
2
3
😃
4
😞
5
🤬
6
A Brief History of io.js
7
2014-11-26 io.js is forked from Node.js
A Brief History of io.js
8
2014-11-26 io.js is forked from Node.js
2015-02-10 io.js devs are sad about CircleCI
A Brief History of io.js
9
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
A Brief History of io.js
10
2014-11-26 io.js is forked from Node.js
2015-02-10 io.js devs are sad about CircleCI
2015-06-16 io.js and Node.js form "Node Foundation" and merge
2015-02-24 CircleCI releases support and docs for io.js
11
12
My Biases
Customer Tech
Software Systems
Scrappy Scaling
Design For Change
13
14
GitHub
> git push
origin
CircleCI
15
GitHub
> git push
origin
CircleCI
16
GitHub
> git push
origin
CircleCI
17
GitHub
> git push
origin
CircleCI
18
GitHub
> git push
origin
AWS
19
…
Application
Ixc1
lxc2
lxc3
lxcN
20
…
Application
Ixc1
lxc2
lxc3
lxcN
All containers from one image
• Ubuntu 12.04
• Ruby + rvm
• Python + virtualenv
• Node.js + nvm
• ...
• MySQL (fixed)
• Postgres (fixed)
• Mongo (fixed)
• ...
21
22
23
…
Application
Ixc1
lxc2
lxc3
lxcN
…
Application
Ixc1
lxc2
lxc3
lxcN
Ubuntu 12.04 Ubuntu 14.04
24
…
Agent
ruby-2.6.5-stretch
mysql-8.0.18
redis-4.0.12
elasticsearch-6.8.4
Hook Receiver
Scheduler
Output Processor
Head Up
25
26
27
28
…
Agent
ruby-2.6.5-stretch
mysql-8.0.18
redis-4.0.12
elasticsearch-6.8.4
Hook Receiver
Workflow Conductor
Scheduler
Output Processor
29
30
31
According to StackShare
32
7856 Companies report using React
18312 Developers report using React
According to StackShare
33
7856 Companies report using React
18312 Developers report using React
8 Developers report using Om
3 Companies report using Om
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.
35
John Ousterhout – A Philosophy of Software Design
“
Essential Complexity is inherent in, and the essence of, the problem
(as seen by the users).
36
“
Ben Moseley & Peter Marks – Out of the Tar Pit
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).
37
Ben Moseley & Peter Marks – Out of the Tar Pit
“
38
Q.E.D.
39
40
41
…
Application
Ixc1
lxc2
lxc3
lxcN
Remember me?
42
…
Application
Ixc1
lxc2
lxc3
lxcN
Remember me? "Docker LXC Driver"
43
…
Application
Ixc1
lxc2
lxc3
lxcN
Remember me? "Docker LXC Driver"
2014-03-10: libcontainer launched (v0.9.0)
44
…
Application
Ixc1
lxc2
lxc3
lxcN
Remember me? "Docker LXC Driver"
2014-03-10: libcontainer launched (v0.9.0)
2015-08-11: lxc deprecated (v1.8.0)
45
…
Application
Ixc1
lxc2
lxc3
lxcN
Remember me? "Docker LXC Driver"
2014-03-10: libcontainer launched (v0.9.0)
2015-08-11: lxc deprecated (v1.8.0)
2016-02-04: lxc deleted (v1.10.0)
46
…
Agent
ruby-2.6.5-stretch
mysql-8.0.18
redis-4.0.12
elasticsearch-6.8.4
Hook Receiver
Workflow Conductor
Scheduler
Output Processor
47
AgentHook Receiver
Workflow Conductor
Scheduler
Output Processor
Cloud Block Store Mount
48
…
Agent
ruby-2.6.5-stretch
mysql-8.0.18
redis-4.0.12
elasticsearch-6.8.4
Hook Receiver
Workflow Conductor
Scheduler
Output Processor
Remote Docker Engine
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
57
Thank you.
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
circleci-evolutionary-architecture/

More Related Content

More from C4Media

More from C4Media (20)

Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in Adtech
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven Utopia
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?
 
CockroachDB: Architecture of a Geo-Distributed SQL Database
CockroachDB: Architecture of a Geo-Distributed SQL DatabaseCockroachDB: Architecture of a Geo-Distributed SQL Database
CockroachDB: Architecture of a Geo-Distributed SQL Database
 
A Dive into Streams @LinkedIn with Brooklin
A Dive into Streams @LinkedIn with BrooklinA Dive into Streams @LinkedIn with Brooklin
A Dive into Streams @LinkedIn with Brooklin
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Evolutionary Architecture as Product @ CircleCI