SlideShare una empresa de Scribd logo
1 de 24
The Hard and Soft Skills
Required to Avoid Outages


              @pascallouis
Code   Bless   Ship   Maintain   Profit!   git rm
Tactics



       • Entity bound ids (e.g. Id<T>)
       • Textual ids MWDN-YP89-OLVL-USER
       • Testable configurations
       • etc.
Code       Bless   Ship       Maintain   Profit!   git rm
TDD



       • Not controversial (anymore)
       • Living code documentation
       • Enables collaboration
       • Technique to encode invariants
Code       Bless     Ship    Maintain     Profit!   git rm
Gold Tests



       • Tests which can be changed by a (small)
         subset of engineering
       • Enforced via policy or technology

Code       Bless     Ship     Maintain   Profit!    git rm
Expressive Tests



       • “Change your language and you change
         your thoughts” — Karl Albrecht
       • Can be implementation agnostic

Code       Bless     Ship   Maintain   Profit!   git rm
...
             Given feed PaymentEventFeedListener receives:
       """
               {
                   "payment_id": "EPT-300",
                   "isTivoReplay": false,
                   "merchant": {
                      "token": "m-1"
                   },
                   ...
               }
       """
             Then expect table balance_changing_events order by id:
               | event_type | status      | process_attempts |
               | HOLD       | UNPROCESSED | 1                |
               | CAPTURE    | UNPROCESSED | 0                |
             When then the time is 2012-01-06 17:10:00
             And balance changing event queue processes items
             Then expect table balance_changing_events order by id:
               | event_type | status      | process_attempts |
               | HOLD       | UNPROCESSED | 2                |
               | CAPTURE    | PROCESSED   | 1                |



Code           Bless           Ship           Maintain   Profit!       git rm
Automated

            Manual

  Quality




                               or              or




                                                             Time



Code            Bless   Ship        Maintain        Profit!      git rm
Code Analysis




       • In theory: static vs dynamic
       • In practice: pre vs post-production

Code       Bless     Ship     Maintain   Profit!   git rm
Pre Analysis



       • Type Checking
       • Testing, CI
       • Linters
       • Forbidden Call Analysis
Code       Bless     Ship     Maintain   Profit!   git rm
Post Analysis



       • Logging
       • Metrics
       • Invariant Checking

Code       Bless     Ship     Maintain   Profit!   git rm
Alerting & Reporting

                   Sign
               Res
                  pon
                          al
                                      Precise       Imprecise
                     se


       Immediate                      Alert           Oups!

         Deferred                 Report             Report




Code   Bless                   Ship             Maintain      Profit!   git rm
Metrics vs Checks
    OK

                   ?
WARNING



     1


     0



  200ms



   0ms




 Code     Bless        Ship   Maintain   Profit!   git rm
Code   Bless   Ship   Maintain   Profit!   git rm
Post-Mortem



       • When Anytime there are issues!
       • Why Learn and avoid mistakes of the past
       • How Blameless

Code        Bless     Ship    Maintain   Profit!     git rm
Post-Mortem



       • Go through the timeline
       • The Good, The Bad and the Ugly
       • Action Items

Code        Bless    Ship    Maintain     Profit!   git rm
Root Cause Analysis




Code   Bless   Ship   Maintain   Profit!   git rm
Code   Bless   Ship   Maintain   Profit!   git rm
Proportional Investing



       • When you lose N hours to maintenance, you
         spend an equivalent N hours on improving
         things.



Code        Bless    Ship     Maintain   Profit!     git rm
Wrap Up


• Safety unleashes creativity
• Many touch points, many ways to do it —
  find what’s right for you
• It’s not all about technology, most is about
  the culture and the people

Más contenido relacionado

Similar a Developing an Immune System — The Hard and Soft Skills required to avoid Outages

Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
OpenBlend society
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
Eonblast
 
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
OdessaJS Conf
 
London devops logging
London devops loggingLondon devops logging
London devops logging
Tomas Doran
 
Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations
DVClub
 

Similar a Developing an Immune System — The Hard and Soft Skills required to avoid Outages (20)

Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
 
Circonus: Design failures - A Case Study
Circonus: Design failures - A Case StudyCirconus: Design failures - A Case Study
Circonus: Design failures - A Case Study
 
API Days 2012 - 1 billion SMS through an API !
API Days 2012 - 1 billion SMS through an API !API Days 2012 - 1 billion SMS through an API !
API Days 2012 - 1 billion SMS through an API !
 
Be armed to the teeth to maintain a high quality iOS code
Be armed to the teeth to maintain a high quality iOS codeBe armed to the teeth to maintain a high quality iOS code
Be armed to the teeth to maintain a high quality iOS code
 
The Pill for Your Migration Hell
The Pill for Your Migration HellThe Pill for Your Migration Hell
The Pill for Your Migration Hell
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
 
Architecting for the Cloud: Hoping for the Best, Prepared for the Worst
Architecting for the Cloud: Hoping for the Best, Prepared for the WorstArchitecting for the Cloud: Hoping for the Best, Prepared for the Worst
Architecting for the Cloud: Hoping for the Best, Prepared for the Worst
 
Defensive Coding Crash Course
Defensive Coding Crash CourseDefensive Coding Crash Course
Defensive Coding Crash Course
 
Agile metrics and quality
Agile metrics and qualityAgile metrics and quality
Agile metrics and quality
 
London devops logging
London devops loggingLondon devops logging
London devops logging
 
Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations
 
The Wix Microservice Stack
The Wix Microservice StackThe Wix Microservice Stack
The Wix Microservice Stack
 
優化開發環境 無料提升戰鬥力
優化開發環境 無料提升戰鬥力優化開發環境 無料提升戰鬥力
優化開發環境 無料提升戰鬥力
 
The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
 
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
 
Discovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and ProfitDiscovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and Profit
 
Performance optimization (balancer optimization)
Performance optimization (balancer optimization)Performance optimization (balancer optimization)
Performance optimization (balancer optimization)
 

Más de Pascal-Louis Perez

SLL Conf - Continuous Deployment
SLL Conf - Continuous DeploymentSLL Conf - Continuous Deployment
SLL Conf - Continuous Deployment
Pascal-Louis Perez
 
Alchemist Startup Primer - Lean Development Practices
Alchemist Startup Primer - Lean Development PracticesAlchemist Startup Primer - Lean Development Practices
Alchemist Startup Primer - Lean Development Practices
Pascal-Louis Perez
 
Xignite's Dedicate kaChing Api
Xignite's Dedicate kaChing ApiXignite's Dedicate kaChing Api
Xignite's Dedicate kaChing Api
Pascal-Louis Perez
 

Más de Pascal-Louis Perez (13)

Fuchsia RFCs
Fuchsia RFCsFuchsia RFCs
Fuchsia RFCs
 
Products’ Love Story with Biz
Products’ Love Story with BizProducts’ Love Story with Biz
Products’ Love Story with Biz
 
Corporate Finance Primer
Corporate Finance PrimerCorporate Finance Primer
Corporate Finance Primer
 
SLL Conf - Continuous Deployment
SLL Conf - Continuous DeploymentSLL Conf - Continuous Deployment
SLL Conf - Continuous Deployment
 
Alchemist Startup Primer - Lean Development Practices
Alchemist Startup Primer - Lean Development PracticesAlchemist Startup Primer - Lean Development Practices
Alchemist Startup Primer - Lean Development Practices
 
Database compatibility
Database compatibilityDatabase compatibility
Database compatibility
 
Applying Compiler Techniques to Iterate At Blazing Speed
Applying Compiler Techniques to Iterate At Blazing SpeedApplying Compiler Techniques to Iterate At Blazing Speed
Applying Compiler Techniques to Iterate At Blazing Speed
 
Iterate Like a Whirling Dervish
Iterate Like a Whirling DervishIterate Like a Whirling Dervish
Iterate Like a Whirling Dervish
 
Extreme Testing at kaChing
Extreme Testing at kaChingExtreme Testing at kaChing
Extreme Testing at kaChing
 
Type Checking JavaScript
Type Checking JavaScriptType Checking JavaScript
Type Checking JavaScript
 
Xignite's Dedicate kaChing Api
Xignite's Dedicate kaChing ApiXignite's Dedicate kaChing Api
Xignite's Dedicate kaChing Api
 
Add (Syntactic) Sugar To Your Java
Add (Syntactic) Sugar To Your JavaAdd (Syntactic) Sugar To Your Java
Add (Syntactic) Sugar To Your Java
 
kaChing's API garage event
kaChing's API garage eventkaChing's API garage event
kaChing's API garage event
 

Último

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
 

Último (20)

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 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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Developing an Immune System — The Hard and Soft Skills required to avoid Outages

  • 1. The Hard and Soft Skills Required to Avoid Outages @pascallouis
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Code Bless Ship Maintain Profit! git rm
  • 7. Tactics • Entity bound ids (e.g. Id<T>) • Textual ids MWDN-YP89-OLVL-USER • Testable configurations • etc. Code Bless Ship Maintain Profit! git rm
  • 8. TDD • Not controversial (anymore) • Living code documentation • Enables collaboration • Technique to encode invariants Code Bless Ship Maintain Profit! git rm
  • 9. Gold Tests • Tests which can be changed by a (small) subset of engineering • Enforced via policy or technology Code Bless Ship Maintain Profit! git rm
  • 10. Expressive Tests • “Change your language and you change your thoughts” — Karl Albrecht • Can be implementation agnostic Code Bless Ship Maintain Profit! git rm
  • 11. ... Given feed PaymentEventFeedListener receives: """ { "payment_id": "EPT-300", "isTivoReplay": false, "merchant": { "token": "m-1" }, ... } """ Then expect table balance_changing_events order by id: | event_type | status | process_attempts | | HOLD | UNPROCESSED | 1 | | CAPTURE | UNPROCESSED | 0 | When then the time is 2012-01-06 17:10:00 And balance changing event queue processes items Then expect table balance_changing_events order by id: | event_type | status | process_attempts | | HOLD | UNPROCESSED | 2 | | CAPTURE | PROCESSED | 1 | Code Bless Ship Maintain Profit! git rm
  • 12. Automated Manual Quality or or Time Code Bless Ship Maintain Profit! git rm
  • 13. Code Analysis • In theory: static vs dynamic • In practice: pre vs post-production Code Bless Ship Maintain Profit! git rm
  • 14. Pre Analysis • Type Checking • Testing, CI • Linters • Forbidden Call Analysis Code Bless Ship Maintain Profit! git rm
  • 15. Post Analysis • Logging • Metrics • Invariant Checking Code Bless Ship Maintain Profit! git rm
  • 16. Alerting & Reporting Sign Res pon al Precise Imprecise se Immediate Alert Oups! Deferred Report Report Code Bless Ship Maintain Profit! git rm
  • 17. Metrics vs Checks OK ? WARNING 1 0 200ms 0ms Code Bless Ship Maintain Profit! git rm
  • 18. Code Bless Ship Maintain Profit! git rm
  • 19. Post-Mortem • When Anytime there are issues! • Why Learn and avoid mistakes of the past • How Blameless Code Bless Ship Maintain Profit! git rm
  • 20. Post-Mortem • Go through the timeline • The Good, The Bad and the Ugly • Action Items Code Bless Ship Maintain Profit! git rm
  • 21. Root Cause Analysis Code Bless Ship Maintain Profit! git rm
  • 22. Code Bless Ship Maintain Profit! git rm
  • 23. Proportional Investing • When you lose N hours to maintenance, you spend an equivalent N hours on improving things. Code Bless Ship Maintain Profit! git rm
  • 24. Wrap Up • Safety unleashes creativity • Many touch points, many ways to do it — find what’s right for you • It’s not all about technology, most is about the culture and the people