SlideShare a Scribd company logo
TDD with
Chef, DSC and Pester
on Windows
About Me
 Robb Schiefer - @chief7
 Microsoft MVP – Visual Studio & Dev Tech
 Blog – dotnetcatch.com
 BHM.NET Meetup Co-founder
 10 years with EBSCO Industries, Inc.
 500+ developers
 Internal Business Systems
 100+ applications/services
 Solution Architect for 3 years
 CD – Deploy to PROD every 9 hours
Why use Chef? Why use TDD with Chef?
 Manual server configuration is
 Slow
 Error prone
 Inconsistent
 Manual
 Adhoc
 Chef/DSC provides
 Speed
 Consistency
 Repeatability
 Automation
 Scheduling
Test Driven Development increases velocity
and produces better designs.
Intro to Chef
 Infrastructure Automation via Ruby
 Benefits
 Automated/repeatable server configuration
 Avoid configuration drift
 Versioning of configuration
 Testable
 Components
 Chef Server
 Chef Client
 Cookbooks
 Recipes
Intro to Chef
Intro to Chef
Intro to Chef
Chef and Windows/DSC
 Linux supported first
 Windows support came slowly
 Meanwhile PowerShell DSC was released
 Chef added support for DSC
 Chef Server benefits
 Reporting
 Roles/Environments
 Admin UI
 Attributes
Chef Cookbook
Unit Testing – ChefSpec & rSpec
 Cookbook/recipe evaluated in ChefSpec sandbox
 Chef-Client not fully executed
 Provides
 Syntax checking for Ruby/Chef
 Verify logic in recipe
 Guards
 Expectations
 Property
 Re-evaluates cookbook for each test by default
 Berkshelf provides dependent cookbooks
Unit Test DEMO
Integration Testing - Kitchen
 Testing framework
 Create - Provisions test environment with Drivers
 Vagrant
 HyperV
 OpenStack
 AzureRM
 Converge – Applies cookbook to VM
 Verify - Executes integration tests
 InSpec
 Pester
 ServerSpec
 Destroy – Deletes test environment
Create
Converge
Verify
Kitchen Timings (2008R2)
 Finished creating <default-w2008r2> (2m44.22s).
 Finished converging <default-w2008r2> (4m27.82s).
 Chef Client finished, 2/4 resources updated in 01 minutes 44 seconds
 Finished converging <default-w2008r2> (0m47.00s).
 Chef Client finished, 2/5 resources updated in 16 seconds
 Finished verifying <default-w2008r2> (0m36.66s).
 Tests Passed: 2 Failed: 0 Skipped: 0 Pending: 0 Inconclusive: 0
 Roughly 10 minutes total, 60-90 sec feedback loop in DEV
 20 GB VM image
Kitchen Timings (Nano)
 Finished creating <acme-win-webdefault-nano> (0m38.53s).
 Finished converging <acme-win-webdefault-nano> (3m48.33s).
 Finished verifying <acme-win-webdefault-nano> (0m6.46s).
 Roughly 5 minutes total, 30-40 sec feedback loop in DEV
 600MB VM image
Pester & Kitchen
 PowerShell testing framework
 Runs across WinRM on the test target
 Provides assertions, mocks, test results
 All the power of PowerShell
 Test organization
Kitchen DEMO
Setup
 OS - Windows10 (10.0.15063)
 ChefDK v2.0.26
 Hyper-V
 PowerShell v5.1.15063.296
 Pester 3.4
 DSC 1.1
 Ruby Gems
 kitchen-hyperv
 kitchen-pester
Source on
http://bit.ly/tddchef
Troubleshooting Chef/Kitchen
 Kitchen debug info
 kitchen converge -l debug
 Verify Gem versions
 Cookbooks continually changing
 3/17 – Windows Resource 3.0
 Destroy and recreate VM
 Networking issues
 Chef on Windows Experts
 Matt Wrock - @mwrockx
 Steven Murawski - @StevenMurawski
Questions
Please complete your session evaluations with helpful feedback so I can
improve!
Robb Schiefer
@chief7
dotnetcatch.com

More Related Content

What's hot

London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffLondon Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef Stuff
Chef
 
CLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with JenkinsCLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with Jenkins
Zachary Stevens
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
Chef
 
Docker Docker Docker Chef
Docker Docker Docker ChefDocker Docker Docker Chef
Docker Docker Docker Chef
Sean OMeara
 
Application Automation with Habitat
Application Automation with HabitatApplication Automation with Habitat
Application Automation with Habitat
Chef
 
Chef Workflow Demo
Chef Workflow DemoChef Workflow Demo
Chef Workflow Demo
Chef
 
Test-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with Chef
Michael Lihs
 
Chef Automate Workflow Demo
Chef Automate Workflow DemoChef Automate Workflow Demo
Chef Automate Workflow Demo
Chef
 
Chef Hack Day Denver
Chef Hack Day Denver Chef Hack Day Denver
Chef Hack Day Denver
Chef
 
Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2
Chef
 
Intermediate/Compliance training Guide
Intermediate/Compliance training GuideIntermediate/Compliance training Guide
Intermediate/Compliance training Guide
Chef
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with Chef
Raimonds Simanovskis
 
Chef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rbChef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rb
Nicolas Ledez
 
Tips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with ChefTips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with Chef
Chef Software, Inc.
 
Understand Chef
Understand ChefUnderstand Chef
Understand Chef
devopsjourney
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlab
Chef
 
Chef Cookbook Workflow
Chef Cookbook WorkflowChef Cookbook Workflow
Chef Cookbook Workflow
Amazon Web Services
 
Test kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher NicholTest kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher Nichol
Devopsdays
 
Compliance as Code
Compliance as CodeCompliance as Code
Compliance as Code
Matt Ray
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
Nathen Harvey
 

What's hot (20)

London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffLondon Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef Stuff
 
CLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with JenkinsCLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with Jenkins
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
 
Docker Docker Docker Chef
Docker Docker Docker ChefDocker Docker Docker Chef
Docker Docker Docker Chef
 
Application Automation with Habitat
Application Automation with HabitatApplication Automation with Habitat
Application Automation with Habitat
 
Chef Workflow Demo
Chef Workflow DemoChef Workflow Demo
Chef Workflow Demo
 
Test-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with Chef
 
Chef Automate Workflow Demo
Chef Automate Workflow DemoChef Automate Workflow Demo
Chef Automate Workflow Demo
 
Chef Hack Day Denver
Chef Hack Day Denver Chef Hack Day Denver
Chef Hack Day Denver
 
Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2
 
Intermediate/Compliance training Guide
Intermediate/Compliance training GuideIntermediate/Compliance training Guide
Intermediate/Compliance training Guide
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with Chef
 
Chef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rbChef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rb
 
Tips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with ChefTips and Tricks for Automating Windows with Chef
Tips and Tricks for Automating Windows with Chef
 
Understand Chef
Understand ChefUnderstand Chef
Understand Chef
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlab
 
Chef Cookbook Workflow
Chef Cookbook WorkflowChef Cookbook Workflow
Chef Cookbook Workflow
 
Test kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher NicholTest kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher Nichol
 
Compliance as Code
Compliance as CodeCompliance as Code
Compliance as Code
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpec
 

Similar to TDD with Chef, DSC and Pester - 2.0.26

OSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan Ulferts
OSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan UlfertsOSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan Ulferts
OSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan Ulferts
NETWAYS
 
DevOps and Chef
DevOps and ChefDevOps and Chef
DevOps and Chef
PiXeL16
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5
Chef
 
Cookbook testing with KitcenCI and Serverrspec
Cookbook testing with KitcenCI and ServerrspecCookbook testing with KitcenCI and Serverrspec
Cookbook testing with KitcenCI and Serverrspec
Daniel Paulus
 
CI for Chefs
CI for ChefsCI for Chefs
CI for Chefs
Nikolay Yurin
 
VMWare Lab For Training, Testing or Proof of Concept
VMWare Lab For Training, Testing or Proof of ConceptVMWare Lab For Training, Testing or Proof of Concept
VMWare Lab For Training, Testing or Proof of Concept
Virtual Infrastructure Administrator
 
Automated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWSAutomated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWS
Amazon Web Services
 
Improving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingImproving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester Training
Anna Russo
 
Designing For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps SlideshareDesigning For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps Slideshare
Dean Willson
 
DevOps and Chef improve your life
DevOps and Chef improve your life DevOps and Chef improve your life
DevOps and Chef improve your life
Juan Vicente Herrera Ruiz de Alejo
 
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef AutomateAWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate
Amazon Web Services
 
Configuration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateConfiguration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef Automate
Amazon Web Services
 
How to become a chef
How to become a chefHow to become a chef
How to become a chef
Aleksandr Simonov
 
How to Become a Сhef
How to Become a СhefHow to Become a Сhef
How to Become a Сhef
Amoniac OÜ
 
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech TalksAnnouncing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Amazon Web Services
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeAcademy
 
Chef
ChefChef
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
STePINForum
 
ASPNET-in-Production.pptx
ASPNET-in-Production.pptxASPNET-in-Production.pptx
ASPNET-in-Production.pptx
maa77
 

Similar to TDD with Chef, DSC and Pester - 2.0.26 (20)

OSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan Ulferts
OSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan UlfertsOSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan Ulferts
OSDC 2016 - Kaiten Zushi - Chef at Goodgame Studios by Jan Ulferts
 
DevOps and Chef
DevOps and ChefDevOps and Chef
DevOps and Chef
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5
 
Cookbook testing with KitcenCI and Serverrspec
Cookbook testing with KitcenCI and ServerrspecCookbook testing with KitcenCI and Serverrspec
Cookbook testing with KitcenCI and Serverrspec
 
CI for Chefs
CI for ChefsCI for Chefs
CI for Chefs
 
VMWare Lab For Training, Testing or Proof of Concept
VMWare Lab For Training, Testing or Proof of ConceptVMWare Lab For Training, Testing or Proof of Concept
VMWare Lab For Training, Testing or Proof of Concept
 
Automated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWSAutomated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWS
 
Improving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingImproving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester Training
 
Designing For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps SlideshareDesigning For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps Slideshare
 
DevOps and Chef improve your life
DevOps and Chef improve your life DevOps and Chef improve your life
DevOps and Chef improve your life
 
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef AutomateAWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate
 
Configuration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateConfiguration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef Automate
 
How to become a chef
How to become a chefHow to become a chef
How to become a chef
 
How to Become a Сhef
How to Become a СhefHow to Become a Сhef
How to Become a Сhef
 
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech TalksAnnouncing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
 
Chef
ChefChef
Chef
 
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Bring it all togethe...
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
 
ASPNET-in-Production.pptx
ASPNET-in-Production.pptxASPNET-in-Production.pptx
ASPNET-in-Production.pptx
 

Recently uploaded

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 

Recently uploaded (20)

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 

TDD with Chef, DSC and Pester - 2.0.26

  • 1. TDD with Chef, DSC and Pester on Windows
  • 2. About Me  Robb Schiefer - @chief7  Microsoft MVP – Visual Studio & Dev Tech  Blog – dotnetcatch.com  BHM.NET Meetup Co-founder  10 years with EBSCO Industries, Inc.  500+ developers  Internal Business Systems  100+ applications/services  Solution Architect for 3 years  CD – Deploy to PROD every 9 hours
  • 3. Why use Chef? Why use TDD with Chef?  Manual server configuration is  Slow  Error prone  Inconsistent  Manual  Adhoc  Chef/DSC provides  Speed  Consistency  Repeatability  Automation  Scheduling Test Driven Development increases velocity and produces better designs.
  • 4. Intro to Chef  Infrastructure Automation via Ruby  Benefits  Automated/repeatable server configuration  Avoid configuration drift  Versioning of configuration  Testable  Components  Chef Server  Chef Client  Cookbooks  Recipes
  • 8. Chef and Windows/DSC  Linux supported first  Windows support came slowly  Meanwhile PowerShell DSC was released  Chef added support for DSC  Chef Server benefits  Reporting  Roles/Environments  Admin UI  Attributes
  • 10. Unit Testing – ChefSpec & rSpec  Cookbook/recipe evaluated in ChefSpec sandbox  Chef-Client not fully executed  Provides  Syntax checking for Ruby/Chef  Verify logic in recipe  Guards  Expectations  Property  Re-evaluates cookbook for each test by default  Berkshelf provides dependent cookbooks
  • 12. Integration Testing - Kitchen  Testing framework  Create - Provisions test environment with Drivers  Vagrant  HyperV  OpenStack  AzureRM  Converge – Applies cookbook to VM  Verify - Executes integration tests  InSpec  Pester  ServerSpec  Destroy – Deletes test environment Create Converge Verify
  • 13. Kitchen Timings (2008R2)  Finished creating <default-w2008r2> (2m44.22s).  Finished converging <default-w2008r2> (4m27.82s).  Chef Client finished, 2/4 resources updated in 01 minutes 44 seconds  Finished converging <default-w2008r2> (0m47.00s).  Chef Client finished, 2/5 resources updated in 16 seconds  Finished verifying <default-w2008r2> (0m36.66s).  Tests Passed: 2 Failed: 0 Skipped: 0 Pending: 0 Inconclusive: 0  Roughly 10 minutes total, 60-90 sec feedback loop in DEV  20 GB VM image
  • 14. Kitchen Timings (Nano)  Finished creating <acme-win-webdefault-nano> (0m38.53s).  Finished converging <acme-win-webdefault-nano> (3m48.33s).  Finished verifying <acme-win-webdefault-nano> (0m6.46s).  Roughly 5 minutes total, 30-40 sec feedback loop in DEV  600MB VM image
  • 15. Pester & Kitchen  PowerShell testing framework  Runs across WinRM on the test target  Provides assertions, mocks, test results  All the power of PowerShell  Test organization
  • 17. Setup  OS - Windows10 (10.0.15063)  ChefDK v2.0.26  Hyper-V  PowerShell v5.1.15063.296  Pester 3.4  DSC 1.1  Ruby Gems  kitchen-hyperv  kitchen-pester Source on http://bit.ly/tddchef
  • 18. Troubleshooting Chef/Kitchen  Kitchen debug info  kitchen converge -l debug  Verify Gem versions  Cookbooks continually changing  3/17 – Windows Resource 3.0  Destroy and recreate VM  Networking issues  Chef on Windows Experts  Matt Wrock - @mwrockx  Steven Murawski - @StevenMurawski
  • 19. Questions Please complete your session evaluations with helpful feedback so I can improve! Robb Schiefer @chief7 dotnetcatch.com

Editor's Notes

  1. EBSCO has partnered with libraries for more than 70 years, providing quality research content, powerful search technologies and intuitive delivery platforms. leading provider of research databases, e-journals, magazine subscriptions, ebooks and discovery service for the academic, medical, corporate libraries
  2. ChefDK comes with everything you need
  3. Review folder structure Review recipe Review test folders (unit vs integration) Review Berks file Review Metadata file
  4. Review unit test Run unit test Create new test for another directory (RED, GREEN) Quickly discuss platforms Quickly discuss stubbing Quickly show caching
  5. Review Kitchen file Kitchen list Kitchen verify nano Break a test, run verify Fix and rerun
  6. Show log file Run gem list