SlideShare uma empresa Scribd logo
1 de 29
Architecting for Continuous Delivery
Russ Barnett, Chief Architect
John Esser, Director of Engineering Productivity
Ancestry.com
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/ancestry-SOA-continuous-delivery
Presented at QCon San Francisco
www.qconsf.com
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
Background
2
Growth at Ancestry.com
• Subscribers have doubled in the past 3 years
– (~1M to > 2M)
• Page views have doubled in the past 3 years
– (~25M/day to ~50M/day)
• Development head count has tripled
– (100 to 300)
• Feature throughput has dramatically increased
3
Continuous Delivery
is consistently and reliably
releasing business value increments
fast
through automated build, test, configuration and
deployment.
What is the value of going fast?
A LOT!
Evolution to Continuous Delivery
Agile
Boot Up
(Scrum)
Enterprise
Agile
Framework
Agile
Architecture
Standards
Continuous
Delivery
Adoption
Future –
“Agile v2”
Two year period (2010 – present)
Typical Impediments to Continuous Delivery
• Cultural
• Technical practices
• Quality ownership
• Infrastructure
• Architectural
Limiting Factors
• Pipeline serialized at integration
– Errors that occurred in this stage
stalled the pipeline
• Stalls in integration induced
additional problems
• Increasing frequency of stalls
– As number of development
teams grew, frequency of stalls
increased
7
Integration
Source Control
Build
Unit Testing
System Testing
Deployment
Team A Team B Team C
error
causes
stall
Everything was coupled!
(Aka, large batch size)
(It became known as the “big blob!”)
8
9
Little’s Law
𝑊𝑎𝑖𝑡 𝑇𝑖𝑚𝑒 =
𝑄𝑢𝑒𝑢𝑒 𝑠𝑖𝑧𝑒
𝑃𝑟𝑜𝑐𝑒𝑠𝑠𝑖𝑛𝑔 𝑅𝑎𝑡𝑒
𝑄𝑢𝑒𝑢𝑒 𝑠𝑖𝑧𝑒 ∝ 𝐵𝑎𝑡𝑐ℎ 𝑠𝑖𝑧𝑒
We can reduce wait time (cycle time)
by reducing batch size
without changing demand or capacity.
10
Problems with Large Batches
• Increases cycle time
• Increases variability non-linearly as 2n
• Increases risk
• Reduces efficiency
• Limited by its worst element.
from Principles of Product Development Flow, Don Reinertsen
11
Answer?
Utilize small batches.
12
Fluidity Principle
Loose coupling
between product systems
enables small batches
“Once a product developer realizes that small batches are
desirable, they start adopting product architectures that permit
work to flow in small, decoupled batches.”
from Principles of Product Development Flow, Don Reinertsen
13
Fluidity Principle
Loose coupling
between product systems
enables small batches
“Once a product developer realizes that small batches are
desirable, they start adopting product architectures that permit
work to flow in small, decoupled batches.”
from Principles of Product Development Flow, Don Reinertsen
14
Creating an Architecture for Agility
15
Architectural Impediments
• Cross-Component Coupling
– Creates groups of systems that must be deployed together
• Insufficient Rollback Capability
– Causes teams to resort to cascading rollback
• Poor Testing and Monitoring
– Requires a long testing period
– Lengthens feedback cycle
– Allows quality problems to escape to and affect customers
16
Architectural Methods for Removing Impediments
• Partition into small single-responsibility components
“There should only be one reason for a [component] to change”
- Robert Martin
• Decouple deployment of components
– Separately deploy components
– Remove order dependent deployment
• Support Independent Rollback
– Enforce strict backward and forward compatibility
17
Backward and Forward Compatibility
Client
Version 1
Service
Version 1
Service
Version 2
Client
Version 2
Deployment
Rollback
Deployment
Rollback
Backward
Compatibility
Backward
Compatibility
Forward
Compatibility
Forward
Compatibility
• Server Backward Compatibility
– Newer servers work with clients
written to old interface
• Server Forward Compatibility
– Existing servers work with clients
written to newer interface
– Supports early client deployment
• Client Backward Compatibility
– Newer clients work with servers
that implement old interface
– Supports server rollback
• Client Forward Compatibility
– Old clients work with servers that
implement new interface
Enforcing Decoupled Components
• Implementing standards is insufficient
– Independent deployment forces some decoupling
– High rate of deployment issues indicate remaining coupling
• Improve integration testing
– Verify backward and forward compatibility
– Identify breaking changes quickly
– Make writing integration tests easier
19
Improving Interface Verification
20
Server
Client
In Process
Client/Server
Server
Client
• Remember when you could run your
entire application in one process?
• How do we get better interface
verification with services?
In Process
Thrift
SOAP/WSDL
REST
Verifiable
Decoupled
Google
Protocol Buffers
Interface Verification using Proxies and Stubs
21
Stub
Proxy
Client
Server
Client/Server
with
Proxy/Stub
• Verifies interface at compile time
• Isolates code from versioning issues
• Easier to provide mock implementations
• Can test backward and forward
compatibility
Managing a Complex Network of Services
• Ancestry Scale
– About 40 different teams
– Over 300 separate application or service systems
– Stack is 5+ levels deep
• Historical Diagnostics
– Presented a client centric or top down view
– Insufficient for identifying problems in a network of services
• Solution: Deep Status Check
– Components provide dynamic status information for each
client and dependency
– Report traverses dependencies up to a given depth
22
Ancestry Deep Status Check
23
Service
1
Service
A
Service
C
Service
B
App 2
Service
2
GetStatus
Monitor App 1
Unidentified
Client
Unregistered
Client
Connection Error
Database
File
System
Level 1
Level 2
Level 3
Level 4
< 2 s
95%
< 4 s
fail
99.9%
SLA
Service Level Agreements
• Understand Business Expectations
– Each application and service establishes a contract with each
client specifying the expected performance characteristics
24
• Methodology
– Use percentile
buckets rather than
an average
– Performance is a
component of
availability
Verify Client Identity
Check Circuit Breaker
Track Each Incoming Request
Report Compliance
Incoming Requests
Check Circuit Breaker
Provide Fallback Mechanism
Track Each Outgoing Request
Report Compliance
Outgoing Requests
Service Level Agreement System
• Compare incoming and outgoing SLA compliance
Service
Conclusion
• Architecture affects agility and continuous delivery
capability as much or more than other factors.
• Process and tool improvements alone are insufficient.
• Good architecture techniques enable effective
continuous delivery at large scale.
– Partition to single-responsibility components.
– Decouple deployment
– Support independent rollback
– Improve testing and monitoring infrastructure
26
• Questions?
Contact info:
jesser@ancestry.com.
rbarnett@ancestry.com.
Ancestry is hiring in San Francisco and Utah
27

Mais conteúdo relacionado

Mais de C4Media

Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
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/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
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 SystemsC4Media
 
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.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
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 ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
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 EverywhereC4Media
 
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 ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
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 MoreC4Media
 
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 TeamsC4Media
 
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 AdtechC4Media
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/awaitC4Media
 
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 UtopiaC4Media
 
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/DayC4Media
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?C4Media
 

Mais de C4Media (20)

Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
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?
 

Último

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Architecting for Continuous Delivery

  • 1. Architecting for Continuous Delivery Russ Barnett, Chief Architect John Esser, Director of Engineering Productivity Ancestry.com
  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /ancestry-SOA-continuous-delivery
  • 3. Presented at QCon San Francisco www.qconsf.com 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
  • 5. Growth at Ancestry.com • Subscribers have doubled in the past 3 years – (~1M to > 2M) • Page views have doubled in the past 3 years – (~25M/day to ~50M/day) • Development head count has tripled – (100 to 300) • Feature throughput has dramatically increased 3
  • 6. Continuous Delivery is consistently and reliably releasing business value increments fast through automated build, test, configuration and deployment. What is the value of going fast? A LOT!
  • 7. Evolution to Continuous Delivery Agile Boot Up (Scrum) Enterprise Agile Framework Agile Architecture Standards Continuous Delivery Adoption Future – “Agile v2” Two year period (2010 – present)
  • 8. Typical Impediments to Continuous Delivery • Cultural • Technical practices • Quality ownership • Infrastructure • Architectural
  • 9. Limiting Factors • Pipeline serialized at integration – Errors that occurred in this stage stalled the pipeline • Stalls in integration induced additional problems • Increasing frequency of stalls – As number of development teams grew, frequency of stalls increased 7 Integration Source Control Build Unit Testing System Testing Deployment Team A Team B Team C error causes stall
  • 10. Everything was coupled! (Aka, large batch size) (It became known as the “big blob!”) 8
  • 11. 9
  • 12. Little’s Law 𝑊𝑎𝑖𝑡 𝑇𝑖𝑚𝑒 = 𝑄𝑢𝑒𝑢𝑒 𝑠𝑖𝑧𝑒 𝑃𝑟𝑜𝑐𝑒𝑠𝑠𝑖𝑛𝑔 𝑅𝑎𝑡𝑒 𝑄𝑢𝑒𝑢𝑒 𝑠𝑖𝑧𝑒 ∝ 𝐵𝑎𝑡𝑐ℎ 𝑠𝑖𝑧𝑒 We can reduce wait time (cycle time) by reducing batch size without changing demand or capacity. 10
  • 13. Problems with Large Batches • Increases cycle time • Increases variability non-linearly as 2n • Increases risk • Reduces efficiency • Limited by its worst element. from Principles of Product Development Flow, Don Reinertsen 11
  • 15. Fluidity Principle Loose coupling between product systems enables small batches “Once a product developer realizes that small batches are desirable, they start adopting product architectures that permit work to flow in small, decoupled batches.” from Principles of Product Development Flow, Don Reinertsen 13
  • 16. Fluidity Principle Loose coupling between product systems enables small batches “Once a product developer realizes that small batches are desirable, they start adopting product architectures that permit work to flow in small, decoupled batches.” from Principles of Product Development Flow, Don Reinertsen 14
  • 17. Creating an Architecture for Agility 15
  • 18. Architectural Impediments • Cross-Component Coupling – Creates groups of systems that must be deployed together • Insufficient Rollback Capability – Causes teams to resort to cascading rollback • Poor Testing and Monitoring – Requires a long testing period – Lengthens feedback cycle – Allows quality problems to escape to and affect customers 16
  • 19. Architectural Methods for Removing Impediments • Partition into small single-responsibility components “There should only be one reason for a [component] to change” - Robert Martin • Decouple deployment of components – Separately deploy components – Remove order dependent deployment • Support Independent Rollback – Enforce strict backward and forward compatibility 17
  • 20. Backward and Forward Compatibility Client Version 1 Service Version 1 Service Version 2 Client Version 2 Deployment Rollback Deployment Rollback Backward Compatibility Backward Compatibility Forward Compatibility Forward Compatibility • Server Backward Compatibility – Newer servers work with clients written to old interface • Server Forward Compatibility – Existing servers work with clients written to newer interface – Supports early client deployment • Client Backward Compatibility – Newer clients work with servers that implement old interface – Supports server rollback • Client Forward Compatibility – Old clients work with servers that implement new interface
  • 21. Enforcing Decoupled Components • Implementing standards is insufficient – Independent deployment forces some decoupling – High rate of deployment issues indicate remaining coupling • Improve integration testing – Verify backward and forward compatibility – Identify breaking changes quickly – Make writing integration tests easier 19
  • 22. Improving Interface Verification 20 Server Client In Process Client/Server Server Client • Remember when you could run your entire application in one process? • How do we get better interface verification with services? In Process Thrift SOAP/WSDL REST Verifiable Decoupled Google Protocol Buffers
  • 23. Interface Verification using Proxies and Stubs 21 Stub Proxy Client Server Client/Server with Proxy/Stub • Verifies interface at compile time • Isolates code from versioning issues • Easier to provide mock implementations • Can test backward and forward compatibility
  • 24. Managing a Complex Network of Services • Ancestry Scale – About 40 different teams – Over 300 separate application or service systems – Stack is 5+ levels deep • Historical Diagnostics – Presented a client centric or top down view – Insufficient for identifying problems in a network of services • Solution: Deep Status Check – Components provide dynamic status information for each client and dependency – Report traverses dependencies up to a given depth 22
  • 25. Ancestry Deep Status Check 23 Service 1 Service A Service C Service B App 2 Service 2 GetStatus Monitor App 1 Unidentified Client Unregistered Client Connection Error Database File System Level 1 Level 2 Level 3 Level 4
  • 26. < 2 s 95% < 4 s fail 99.9% SLA Service Level Agreements • Understand Business Expectations – Each application and service establishes a contract with each client specifying the expected performance characteristics 24 • Methodology – Use percentile buckets rather than an average – Performance is a component of availability
  • 27. Verify Client Identity Check Circuit Breaker Track Each Incoming Request Report Compliance Incoming Requests Check Circuit Breaker Provide Fallback Mechanism Track Each Outgoing Request Report Compliance Outgoing Requests Service Level Agreement System • Compare incoming and outgoing SLA compliance Service
  • 28. Conclusion • Architecture affects agility and continuous delivery capability as much or more than other factors. • Process and tool improvements alone are insufficient. • Good architecture techniques enable effective continuous delivery at large scale. – Partition to single-responsibility components. – Decouple deployment – Support independent rollback – Improve testing and monitoring infrastructure 26