SlideShare a Scribd company logo
1 of 64
GETTING
STARTED w/
TDI
Hello!
I AM CARLOS MEZA
Sysadmin that wants to
do things better.
Carlos@digitalr00ts.com
@digitalr00ts
ROADMAP
My journey learning TDI
1. The Promise of TDI
2. Configuration
Management
3. Principles of Test
and Behavior Driven
Development
4. Continuous
Integration
5. Test Driven
Infrastructure
6. Continuous Delivery
7. Continuous
Deployment
8. Challenges
1.
TEST DRIVEN
INFRASTRUCTURE
Why TDI?
WHY TDI
TDI applies agile development
to infrastructure.
○Minimizes Risk
○Builds Confidence
○Maintains Focus
WHY TDI
TDI applies agile development
to infrastructure.
○Verifiable Behavior - Consistency
○Increased Code Quality - Confidence
○Safe Refactoring - Speed
○Improved Design - Adaptability
SYSADMIN ANTI-PATTERNS
Issues with system
deployment and maintenance
○Lack of Process
○Manual Process
○Poor Code
2.
Configuration
Management
Infrastructure As Code
CONFIGURATION MANAGEMENT
CM ensures that a system is in a
known, good, and trusted state
○Visibility
○Reliability
○Productivity
○Scalability
CHEF WORKFLOW
TOOL OPTIONS
○Puppet
○Chef
○Salt
○Ansible
CHEF RECIPE EXAMPLE
package 'explicit_action' do
action :remove
end
package 'with_attributes' do
version '1.0.0'
action :remove
end
CM SHORTCOMINGS
CM does not prevent bad
infrastructure code
○Incomplete Code
○Unclear Code
○Unintended Consequences
3.
TEST / BEHAVIOR
DRIVEN
DEVELOPMENT
Principles and Methods
TEST
DRIVEN DEVELOPMENT
A framework to
manage evolving environments with
highly reliable and maintainable code.
○Maintains Scope
○Faster Feedback
○Reduces Risk and
Builds Trust
BEHAVIOR
DRIVEN DEVELOPMENT
Facilitates collaboration between
stakeholders and developers by describing
requirements as system behaviors.
○Business Values Prioritized
○Tests are Documentation
○Improves Communication
SERVERSPEC EXAMPLE
describe port(80) do
it { should be_listening }
end
describe command("lsb_release -d") do
it { should return_stdout /wheezy/ }
end
RED, GREEN, REFACTOR
http://www.agileapps.co.uk/methodology/continuous.html
4.
CONTINUOUS
INTEGRATION
Automating Failure
CONTINUOUS INTEGRATION
A practice with short development cycles,
automated testing and
code integration
○Detect Issues Sooner
○Faster to Implement
TESTING
Unit Test
Verifies that individual parts of your code
continue to work (Pre-Convergence)
Integration Test
Verifies the end state of the system post
integration (Post-Convergence)
CI WORKFLOW
https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html
1
CI WORKFLOW
https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html
2
CI WORKFLOW
https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html
3
5
4
CI WORKFLOW
https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html
6
TOOL OPTIONS
○Jenkins
○Travis CI
○Go (ThoughtWorks)
CODE REVIEW
http://explosm.net/comics/2083/
CODE REVIEW
Peer review of source code
○Readability
○Maintainability
○Knowledge Sharing
TOOL ASSISTED OPTIONS
○Garret
○Review Board
○Phabricator
5.
TEST DRIVEN
INFRASTRUCTURE
Agile Infrastructure
PRINCIPLES AND PRACTICES
○Document - Requirements
○Test - Describe behavior
○Script - Code to pass test
○Audit - Version control
○Continuous - Automatically test and
integrate changes
TDI WORKFLOW
FORK
TDI WORKFLOW
CODE
TDI WORKFLOW
COMMIT
TDI WORKFLOW
TEST TRIGGERED
TDI WORKFLOW
TEST JOB
TDI WORKFLOW
INTEGRATION TEST
TDI WORKFLOW
FEEDBACK
TDI WORKFLOW
PULL REQUEST
TDI WORKFLOW
TO CODE REVIEW
6.
CONTINUOUS
DELIVERY
Delivering to staging
environments
CONTINUOUS DELIVERY
A practice of delivering every change to a
production-like environment.
○Increases Ability to Adapt
○Increases Reliability
○Lowers Risk
○Faster to Production
CD WORKFLOW
COMMIT PULL REQUEST
CD WORKFLOW
TEST TRIGGERED
CD WORKFLOW
TEST JOB
CD WORKFLOW
iNTEGRATION TEST
CD WORKFLOW
FEEDBACK
CD WORKFLOW
DELIVER
7.
CONTINUOUS
DEPLOYMENT
Automating to Production
CONTINUOUS DEPLOYMENT
Automating acceptance testing to promote
code through pre-productions
environments to production.
○Quicker Return on Investment
○Faster Client Feedback
CD WORKFLOW
Dev Staging Prod
CD WORKFLOW
Dev Staging Prod
CD WORKFLOW
Dev Staging Prod
CD WORKFLOW
Dev Staging Prod
Manual
(Continuous Delivery)
TOOL OPTIONS
Jenkins Plugins:
○Workflow
○Pipelines
Chef
○Delivery Truck
○Go (ThoughtWorks)
8.
CHALLENGES
This Will All Fail
CHALLENGES
Cultural shift
○Workflow Changes
○Time Investment
○Full Adoption
CHALLENGES
Poor Testing
○Lack of Understanding
○Overlooking Test Parameters
○Trivial Tests
9.
CONCLUSION
Wrap It Up
Conclusion
○Improves Reliability
○Increases Speed
○Increases in Productivity
○Adaptability
○Reduces Cost
SOURCES AND
MORE INFORMATION
○5 Things About Configuration
Management Your Boss Needs To Know
https://www.scriptrock.com/blog/5-configuration-management-boss
○Overview of Test Driven Infrastructure
with Chef
https://www.chef.io/blog/2015/04/21/overview-of-test-driven-
infrastructure-with-chef/
○Agile DevOps: Test-driven infrastructure
http://www.ibm.com/developerworks/library/a-devops5/
SOURCES AND
MORE INFORMATION
○Guide to Agile Practices -
http://guide.agilealliance.org
○ThoughtWorks Insights on CD
https://www.thoughtworks.com/insights/continuous-delivery
THANKS!
Special thank you to
Ned Harris of Chef.io
FOLLOW
ME
@digitalr00ts
Carlos@digitalr00ts.com

More Related Content

Viewers also liked

IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...
IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...
IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...Emma Griffiths
 
Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...
Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...
Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...NhatHai Phan
 
MOOC: ISE101x Knowledge Management and Big Data in Business
MOOC: ISE101x Knowledge Management and Big Data in BusinessMOOC: ISE101x Knowledge Management and Big Data in Business
MOOC: ISE101x Knowledge Management and Big Data in Business2016
 
A Dozen 'Startup Health' Start Ups
A Dozen 'Startup Health' Start UpsA Dozen 'Startup Health' Start Ups
A Dozen 'Startup Health' Start UpsGary Monk
 
Expansion of solar energy electricity production using hybrid systems
Expansion of solar energy electricity production using hybrid systemsExpansion of solar energy electricity production using hybrid systems
Expansion of solar energy electricity production using hybrid systemsJacob Belson
 
Beautiful Israel
Beautiful IsraelBeautiful Israel
Beautiful Israelrandom13579
 
Technology Factor: Accelerating Your Journey to As a Service
Technology Factor: Accelerating Your Journey to As a ServiceTechnology Factor: Accelerating Your Journey to As a Service
Technology Factor: Accelerating Your Journey to As a Serviceaccenture
 

Viewers also liked (9)

Code review
Code reviewCode review
Code review
 
IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...
IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...
IRIDA's Genomic epidemiology application ontology (GenEpiO): Genomic, clinica...
 
What 2012 food allergy
What 2012 food allergyWhat 2012 food allergy
What 2012 food allergy
 
Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...
Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...
Ontology-based Deep Learning for Human Behavior Prediction in Health Social N...
 
MOOC: ISE101x Knowledge Management and Big Data in Business
MOOC: ISE101x Knowledge Management and Big Data in BusinessMOOC: ISE101x Knowledge Management and Big Data in Business
MOOC: ISE101x Knowledge Management and Big Data in Business
 
A Dozen 'Startup Health' Start Ups
A Dozen 'Startup Health' Start UpsA Dozen 'Startup Health' Start Ups
A Dozen 'Startup Health' Start Ups
 
Expansion of solar energy electricity production using hybrid systems
Expansion of solar energy electricity production using hybrid systemsExpansion of solar energy electricity production using hybrid systems
Expansion of solar energy electricity production using hybrid systems
 
Beautiful Israel
Beautiful IsraelBeautiful Israel
Beautiful Israel
 
Technology Factor: Accelerating Your Journey to As a Service
Technology Factor: Accelerating Your Journey to As a ServiceTechnology Factor: Accelerating Your Journey to As a Service
Technology Factor: Accelerating Your Journey to As a Service
 

Similar to Getting Started with Test Driven Infrastructure - SCaLE 14x

DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)Cygnet Infotech
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1G R VISHAL
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in PracticeDerek Chen
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Introduction to 5w’s of DevOps
Introduction to 5w’s of DevOpsIntroduction to 5w’s of DevOps
Introduction to 5w’s of DevOpsCygnet Infotech
 
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)Serena Software
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseDBmaestro - Database DevOps
 
8 Essential DevOps Tools for Salesforce
8 Essential DevOps Tools for Salesforce8 Essential DevOps Tools for Salesforce
8 Essential DevOps Tools for SalesforceAutoRABIT
 
Essential Aspects of a Salesforce CI/CD Suite
Essential Aspects of a Salesforce CI/CD SuiteEssential Aspects of a Salesforce CI/CD Suite
Essential Aspects of a Salesforce CI/CD SuiteAutoRABIT
 
Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...People10 Technosoft Private Limited
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionFlorian Wilhelm
 
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday Kumar
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday KumarAgile Gurugram 2016 | Conference | Demystifying DevOps | Uday Kumar
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday KumarAgileNetwork
 
Agile Secure Development
Agile Secure DevelopmentAgile Secure Development
Agile Secure DevelopmentBosnia Agile
 
Measure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryMeasure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryAnand Chauhan
 
Ibm innovate adoption of continuous delivery at scale at a large telco - pr...
Ibm innovate   adoption of continuous delivery at scale at a large telco - pr...Ibm innovate   adoption of continuous delivery at scale at a large telco - pr...
Ibm innovate adoption of continuous delivery at scale at a large telco - pr...Mirco Hering
 
Curiosity Software, Infuse and Kumoco present: The Democratisation of Testing
Curiosity Software, Infuse and Kumoco present: The Democratisation of TestingCuriosity Software, Infuse and Kumoco present: The Democratisation of Testing
Curiosity Software, Infuse and Kumoco present: The Democratisation of TestingCuriosity Software Ireland
 
Transform your DevOps practices with Security
Transform your DevOps practices with SecurityTransform your DevOps practices with Security
Transform your DevOps practices with SecurityPaul Czarkowski
 

Similar to Getting Started with Test Driven Infrastructure - SCaLE 14x (20)

DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
 
IT Metrics in Real Life
IT Metrics in Real LifeIT Metrics in Real Life
IT Metrics in Real Life
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in Practice
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Introduction to 5w’s of DevOps
Introduction to 5w’s of DevOpsIntroduction to 5w’s of DevOps
Introduction to 5w’s of DevOps
 
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
DevOps CD and Multispeed IT in regulated industries (FUG Presentation)
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterprise
 
8 Essential DevOps Tools for Salesforce
8 Essential DevOps Tools for Salesforce8 Essential DevOps Tools for Salesforce
8 Essential DevOps Tools for Salesforce
 
Essential Aspects of a Salesforce CI/CD Suite
Essential Aspects of a Salesforce CI/CD SuiteEssential Aspects of a Salesforce CI/CD Suite
Essential Aspects of a Salesforce CI/CD Suite
 
Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to Production
 
Compliance as Code
Compliance as CodeCompliance as Code
Compliance as Code
 
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday Kumar
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday KumarAgile Gurugram 2016 | Conference | Demystifying DevOps | Uday Kumar
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday Kumar
 
Agile Secure Development
Agile Secure DevelopmentAgile Secure Development
Agile Secure Development
 
Measure and Accelerate Your Software Delivery
Measure and Accelerate Your Software DeliveryMeasure and Accelerate Your Software Delivery
Measure and Accelerate Your Software Delivery
 
DevTestOps
DevTestOpsDevTestOps
DevTestOps
 
Ibm innovate adoption of continuous delivery at scale at a large telco - pr...
Ibm innovate   adoption of continuous delivery at scale at a large telco - pr...Ibm innovate   adoption of continuous delivery at scale at a large telco - pr...
Ibm innovate adoption of continuous delivery at scale at a large telco - pr...
 
Curiosity Software, Infuse and Kumoco present: The Democratisation of Testing
Curiosity Software, Infuse and Kumoco present: The Democratisation of TestingCuriosity Software, Infuse and Kumoco present: The Democratisation of Testing
Curiosity Software, Infuse and Kumoco present: The Democratisation of Testing
 
Transform your DevOps practices with Security
Transform your DevOps practices with SecurityTransform your DevOps practices with Security
Transform your DevOps practices with Security
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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 Nanonetsnaman860154
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Getting Started with Test Driven Infrastructure - SCaLE 14x

Editor's Notes

  1. Welcome to GETTING STARTED w/ TDI
  2. HELLO I am Carlos A sysadmin trying to do things better mix environment Linux manage Windows
  3. ROADMAP - my journey working on deploying what i have learned TDI incorporates several concepts no empirical definitions, general idea Slides will be available. The Promise of TDI Configuration Management Principles of Test and Behavior Driven Development Continuous Integration Infrastructure Continuous Delivery Continuous Deployment Challenges
  4. 1. TEST DRIVEN INFRASTRUCTURE what is why worth effort
  5. WHY TDI Test driven infrastructure (TDI) DI applies agile development principles and practices to infrastructure. Bringing Benefits minimize risk build confidence in code and process and efforts stay on task, outcome focused It does this with...
  6. WHY TDI -Verifiable Behavior - check results against requirements - Consistency -Increased Code Quality - change are incremental, easier to improve, increasing reliability - Confidence -Safe Refactoring - applying good practices, sped up - Speed -Improved Design - Adaptability - being able to adopt enables design improvements Efficiencies = low I.T. costs
  7. SYSADMIN ANTI-PATTERNS Issues w/ system deployment and maintenance Lack of process Inefficient / chaotic, difficult to repeat, cannot verify, does not scale Manual process (docs) repeatable but prone to errors / inconsistencies, documentation outdated. introduces risk = deteriorating trust Poor code myriad of scripts, difficult to understand, unmaintainable configuration management can help
  8. 2. CONFIGURATION MANAGEMENT translates infrastructure into code
  9. CONFIGURATION MANAGEMENT Configuration management ensures that systems are in a known, good and trusted state. Visibility of config Auditable/trackable - version control Reliability maintaining state. Predictable Productivity Faster resolutions, Fewer outages = less firefighting = I.T. cost reduction Confidence to deploy and scale faster more efficient change management.
  10. CHEF WORKFLOW This is from Chef but the idea is similar for other CM. Top: Repository (version control) with infrastructure code Blue: Dev station change configurations and related attributes Orange: CM server. Policies and config to enforce Right: devices/nodes CM deploys to
  11. CM OPTIONS Puppet/Chef Puppet Nondeterministic run sequence Salt/Ansible attuned for Sysadmins CHEF: History Windows Large Community Out of the box tools Innovative Improving workflow Developing and adopting tools
  12. CHEF RECIPE EXAMPLE Remove package package 'explicit_action' do action :remove end Remove package with version attribute package 'with_attributes' do version '1.0.0' action :remove end
  13. CM SHORTCOMINGS does not prevent bad infrastructure code that is poorly created and maintained. Incomplete Code (To Dos, Sloppy Quick Fixes) Unclear Code (Duplicate or Contradicting) Unintended Side Effects that could catastrophic = lack of confidence CM on its own is not a complete solution
  14. 3. TEST and BEHAVIOR DRIVEN DEVELOPMENT to the rescue
  15. TEST DRIVEN DEVELOPMENT A framework for managing evolving environments that facilitates the creation of highly reliable and maintainable code. Maintain Scope: Test are written first. specific requirements. Tests provide faster feedback Tests reduce risk help builds trust in the process and code
  16. BEHAVIOR DRIVEN DEVELOPMENT BDD is an extension of TDD Facilitates collaboration between stakeholders and developers by describing requirements as system behaviors. business values are prioritized because the requirements correlated to business outcomes Tests are describing the system becoming documentation Communications are Improved as documentation is more readable for experts across different domains. Acceptance test
  17. SERVERSPEC EXAMPLE Example of test Serverspec allows writing of readable, to validate that a server is correctly configure -- describe port(80) do it { should be_listening } end describe command("lsb_release -d") do it { should return_stdout /wheezy/ } end
  18. RED, GREEN, REFACTOR mnemonic for remembering the basic TDD cycle RED: write a "single" unit test describing a requirement. make it fail. this is documentation GREEN: write "just enough" code to pass test REFACTOR: cleanup code change implementation, not behavior Rise and Repeat
  19. 4. CONTINUOUS INTEGRATION CI is a practice from XP (a type of agile development), to speed up development. Automating TDD
  20. CONTINUOUS INTEGRATION A practice w/ short development cycles automated testing code integration Detect Issues Sooner Immediate feedback with automated testing aka Failing Fast Chages Faster to Implement changes are small, verified and integrated automatically
  21. TESTING 2 notably types of tests (there are more types) Unit Test Verifies that individual parts of your codebase independent of other changes (Pre-Convergence, before integration) Integration Test Post integration verification end state of the system is as expected (Post-Convergence)
  22. CI WORKFLOW 1-Commit Code
  23. CI WORKFLOW 2-CI server fetches changes
  24. CI WORKFLOW 3-Build 4-Test 5-Pass/Fail
  25. CI WORKFLOW 6-Feedback with notifications of results
  26. CI SOFTWARE OPTIONS Jenkins is probably the most popular tool for this task. I currently using Travis CI is what I initially started with. it’s hosted platform is free for opensource project and easily integrates with GitHub. Go is a tool opensourced by ThoughtWorks and looks interesting and I intend to investigate
  27. CODE REVIEW Just because we are moving towards automating all the the things, Code review should not be overlooked. The creators of cyanide and happiness seem to agree.
  28. CODE REVIEW Peer review of source code to improve software quality. Ensuring readability and maintainability Knowledge sharing of the code, new team members up to speed Exposure to different approaches
  29. TOOL ASSISTED OPTIONS act as gatekeepers More popular options Garret Review Board Phabricator They assist with comments/discussion auditing/tracking difs
  30. 5. TEST DRIVEN INFRASTRUCTURE Agile Infrastructure
  31. PRINCIPLES AND PRACTICES Document specifications and requirements Components and version how tos install Test Write tests to describe those requirements Script Code to pass test. Audit and track code w/ Version control to track changes. Continuous process Automatically test every change and integrate http://www.ibm.com/developerworks/library/a-devops5/
  32. TDI WORKFLOW There is not a definitive way to implement. I am not going to say this is the “right” way to do it. just how I’m doing it Fork/Branch from version control
  33. TDI WORKFLOW Code: creating test code to pass test
  34. TDI WORKFLOW Commit and git hook will trigger
  35. TDI WORKFLOW call to CI (Jenkins)
  36. TDI WORKFLOW Jenkins sends jobs to slaves with Test Kitchen (a chef tool)
  37. TDI WORKFLOW Jenkins slaves spins up environment for integration testing. VMs, containers, etc
  38. TDI WORKFLOW Feedback Jenkins notifies us whether or not if the job passed email, chat, etc
  39. TDI WORKFLOW If it passes Jenkins will issue a pull request
  40. TDI WORKFLOW Code Review manual committed another team member. and code is integrate
  41. 6. CONTINUOUS DELIVERY Delivering code changes to staging environments
  42. CONTINUOUS DELIVERY A practice of delivering every change to a production-like environment. Increases Ability to Adapt by providing more feedback Increases Reliability as effect of every incremental change can be seen Lowers Risk as a result Faster to Production
  43. CD WORKFLOW Passes code review and pull request committed
  44. CD WORKFLOW Test triggered using git hooks
  45. CD WORKFLOW Slaves Jenkins sends jobs to slaves with Test Kitchen (a chef tool)
  46. CD WORKFLOW Integration Test Jenkins slaves spins up environment for integration testing of master branch. VMs, containers, etc
  47. CD WORKFLOW Feedback Jenkins notifies us whether or not the job passed. email, chat, etc
  48. CD WORKFLOW Push to Chef staging environment If passed
  49. 7. CONTINUOUS DEPLOYMENT Automating to Production the holy grail
  50. CONTINUOUS DEPLOYMENT Automating acceptance testing to promote code through pre-productions environments to production (i.e. dev->staging->prod). acceptance test determine if the requirements of a specification or contract are met Provides Quicker Return on Investment Faster Client Feedback
  51. CD WORKFLOW Continuous delivery can automate the process through staging environments like development and QA.
  52. CD WORKFLOW The difference between continuous delivery and continuous deployment is
  53. CD WORKFLOW Continuous deployment automates the push to production.
  54. CD WORKFLOW As long final step is to production is manual it is continuous delivery few implement actual continuous deployment where its 100% automated
  55. TOOL OPTIONS for CD Jenkins plugins: -Workflow -Pipelines Native Chef solutions Delivery Truck in Go pipelines are first class built-in concepts Pipelines are a series of stages with visibility, feedback, and continuous deployment
  56. 8. CHALLENGES Why this wont work and will fail
  57. CHALLENGES Cultural shift Requires: workflow changes time investment Adoption Not doing proper practicing Writing too many tests at once Writing tests that are too large or coarse-grained Not writing tests
  58. CHALLENGES Poor Testing Not knowing/understanding what to test for Overlooking what needs to be tested Writing overly trivial tests or writing tests for trivial code
  59. 9. CONCLUSION
  60. CONCLUSION Improved reliability test 1st process current readable documentation automation speed Increase in productivity maintaining scope adaptability less firefighting change management reduces cost
  61. SOURCES AND MORE INFORMATION
  62. SOURCES AND MORE INFORMATION
  63. THANKS Thank you to Ned Harris for allowing me to pick his brain.