SlideShare a Scribd company logo
1 of 14
Testing Infrastructure
Code Using Test-
kitchen, Docker & Chef-
zero
Kamalika Majumder
https://twitter.com/mjkamalika
Who Am I
I am an Infrastructure Automation Specialist and a Senior
Consultant with Thoughtworks. Started my career as a
System/Network Administrator for three years, continued the
journey in Infrastructure Automation and Configuration
Management across private and public clouds
(AWS, Openstack). Interested in Infrastructure and Application
Security, IaaS, PaaS and Continuous delivery and usually
present at various conferences.
Read me at : http://www.kamalika.net/
https://twitter.com/mjkamalika
Topics to be covered
 Why TDD for infra code
 What is test-kitchen
 Provision instances on demand => kitchen-docker
 Configure the instances => Chef-zero
 Test the infra code => Test-kitchen
 Quick Demo
https://twitter.com/mjkamalika
Problems Solutions
https://twitter.com/mjkamalika
What are we trying to solve
I. Manual setups per server.
Each Server becomes a
"work of art".
II. No track of what
changes were made
when.
III. Code works in local host
, not in production.
IV. Testing takes forever.
I. Model server
configs, relationships with
other servers, packages in
code.(Configuration
Management)
II. Infra as Code, Code to be
version controlled.
III. Host production like
environment locally.
IV. Scalable Environment On
Demand .
Infrastructure As Code
 Treat your infrastructure as Code
 Server configuration, packages installed, relationships with
other servers etc should be modeled with code to be
automated, removing manual steps prone to errors.
 Use version controlling for that code.
 For instance we can (and should!)
 tag, branch and release the code that define our servers.
 have a lifecycle that covers different stages through the
infrastructure code, ie. dev, QA, production.
 continuously test our infrastructure as we make changes.
https://twitter.com/mjkamalika
Sample Infra Code
Environment
Production,
Qa,Dev
Recipes(run_list)
node
Recipes(run_list)
node
Recipes(run_list)
node
Roles
Web, DB, App
Chef Workflow
Databags
https://twitter.com/mjkamalika
Why Test Driven Development for
Infrastructure Code
Code works in my machine as well as in my
production server.
Quick feedback for testing Infra code.
 Faster you test code , faster you deploy in
Production.
Shorter Release Cycle for apps.
https://twitter.com/mjkamalika
Some Real World
Scenarios/Examples
Changing web ports
Adding new app metrics
Changing app user
Add a new user
Add basic authentication
Configuring a new machine
Adding additional node to cluster
https://twitter.com/mjkamalika
Example Workflow
https://twitter.com/mjkamalika
Test-Kitchen:
Test Kitchen is a test harness tool to
execute your configured code on one or
more platforms in isolation.
Drivers for
cloud/virtualization
platforms
Configuration
Management
Support for test
frameworks
https://twitter.com/mjkamalika
Detailed Demo
https://twitter.com/mjkamalika
What do we achieve:
 More stable and tested build .
 Production like environment on your machine in minutes is a
reality now.
 Consistency across all environments.
 Automated and Scalable Environment On Demand
 Fully Tested Configuration management.
 Production go live from 3 weeks to 1 week to multi
deployment per week.
 Overall testing time reduction went down by multifold. Build
pipeline time cycle reduction.
https://twitter.com/mjkamalika
Questions ?
https://twitter.com/mjkamalika
Thank you
@mjkamalika
http://www.kamalika.net/
https://twitter.com/mjkamalika

More Related Content

What's hot

Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with ChefJonathan Weiss
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and YouBryan Berry
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeJosh Padnick
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsJohn Smith
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with ChefJohn Ewart
 
Chef Automate Workflow Demo
Chef Automate Workflow DemoChef Automate Workflow Demo
Chef Automate Workflow DemoChef
 
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 StuffChef
 
Chef Workflow Demo
Chef Workflow DemoChef Workflow Demo
Chef Workflow DemoChef
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlabChef
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February markghiasy
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Chef
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6Chef
 
Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014Michael Lihs
 

What's hot (20)

Chef Cookbook Workflow
Chef Cookbook WorkflowChef Cookbook Workflow
Chef Cookbook Workflow
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The Basics
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
 
Chef introduction
Chef introductionChef introduction
Chef introduction
 
Chef Automate Workflow Demo
Chef Automate Workflow DemoChef Automate Workflow Demo
Chef Automate Workflow Demo
 
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
 
Docker
DockerDocker
Docker
 
Chef Workflow Demo
Chef Workflow DemoChef Workflow Demo
Chef Workflow Demo
 
Understand Chef
Understand ChefUnderstand Chef
Understand Chef
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlab
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
 
Learning chef
Learning chefLearning chef
Learning chef
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
 
Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014
 

Viewers also liked

Quelle métrique pour fédérer Dev & Ops ?
Quelle métrique pour fédérer Dev & Ops ? Quelle métrique pour fédérer Dev & Ops ?
Quelle métrique pour fédérer Dev & Ops ? Jacky Galicher
 
Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015
Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015
Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015Chef
 
Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Amico Fabien
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devopsEvans Ye
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local ModeMichael Goetz
 
Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1Ash Winter
 
Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...
Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...
Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...Savvius, Inc
 
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & MonitoringAWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & MonitoringIan Massingham
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codeAxel Quack
 
Network testing and debugging
Network testing and debuggingNetwork testing and debugging
Network testing and debuggingSADEED AMEEN
 
Extending your Storage Infrastructure into the AWS Cloud
Extending your Storage Infrastructure into the AWS CloudExtending your Storage Infrastructure into the AWS Cloud
Extending your Storage Infrastructure into the AWS CloudAmazon Web Services
 
Testing and troubleshooting networks
Testing and troubleshooting networksTesting and troubleshooting networks
Testing and troubleshooting networksOnline
 
The Basics of Network Troubleshooting
The Basics of Network TroubleshootingThe Basics of Network Troubleshooting
The Basics of Network Troubleshootingzaisahil
 
Network testing course
Network testing courseNetwork testing course
Network testing coursetcpipguru
 
Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016Skelton Thatcher Consulting Ltd
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeAmazon Web Services
 
Network Troubleshooting - Part 1
Network Troubleshooting - Part 1Network Troubleshooting - Part 1
Network Troubleshooting - Part 1SolarWinds
 

Viewers also liked (20)

Forrester Infra as code TLP_April2015
Forrester Infra as code TLP_April2015Forrester Infra as code TLP_April2015
Forrester Infra as code TLP_April2015
 
Quelle métrique pour fédérer Dev & Ops ?
Quelle métrique pour fédérer Dev & Ops ? Quelle métrique pour fédérer Dev & Ops ?
Quelle métrique pour fédérer Dev & Ops ?
 
Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015
Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015
Infra-as-Code and Enterprise ITSM Governance - ChefConf 2015
 
Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local Mode
 
Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1
 
Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...
Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...
Network Network Visibility - The Key to Rapidly Troubleshooting Network Perfo...
 
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & MonitoringAWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Network testing and debugging
Network testing and debuggingNetwork testing and debugging
Network testing and debugging
 
Extending your Storage Infrastructure into the AWS Cloud
Extending your Storage Infrastructure into the AWS CloudExtending your Storage Infrastructure into the AWS Cloud
Extending your Storage Infrastructure into the AWS Cloud
 
Testing and troubleshooting networks
Testing and troubleshooting networksTesting and troubleshooting networks
Testing and troubleshooting networks
 
The Basics of Network Troubleshooting
The Basics of Network TroubleshootingThe Basics of Network Troubleshooting
The Basics of Network Troubleshooting
 
Network testing course
Network testing courseNetwork testing course
Network testing course
 
Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as Code
 
Mobile App Testing Strategy
Mobile App Testing StrategyMobile App Testing Strategy
Mobile App Testing Strategy
 
Network Troubleshooting - Part 1
Network Troubleshooting - Part 1Network Troubleshooting - Part 1
Network Troubleshooting - Part 1
 
(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code
 

Similar to Testing Infrastructure Code Using Test-kitchen, Docker & Chef-zero

Create Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the CloudCreate Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the CloudRightScale
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAmazon Web Services
 
DevOps Tooling - Pop-up Loft TLV 2017
DevOps Tooling - Pop-up Loft TLV 2017DevOps Tooling - Pop-up Loft TLV 2017
DevOps Tooling - Pop-up Loft TLV 2017Amazon Web Services
 
Infrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & AnsibleInfrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & Ansiblewajrcs
 
Testing distributed systems in production
Testing distributed systems in productionTesting distributed systems in production
Testing distributed systems in productionPaul Bakker
 
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 AWSAmazon Web Services
 
Just kill it
Just kill itJust kill it
Just kill itpwhitdog
 
Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAmazon Web Services
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Emerson Eduardo Rodrigues Von Staffen
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build PipelineSamuel Brown
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Wojciech Barczyński
 
ServerTemplate Deep Dive
ServerTemplate Deep DiveServerTemplate Deep Dive
ServerTemplate Deep DiveRightScale
 
Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Florent BENOIT
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...Skytap Cloud
 
Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Daniel Toomey
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerAmazon Web Services
 

Similar to Testing Infrastructure Code Using Test-kitchen, Docker & Chef-zero (20)

Create Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the CloudCreate Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the Cloud
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
DevOps Tooling - Pop-up Loft TLV 2017
DevOps Tooling - Pop-up Loft TLV 2017DevOps Tooling - Pop-up Loft TLV 2017
DevOps Tooling - Pop-up Loft TLV 2017
 
Infrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & AnsibleInfrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & Ansible
 
Testing distributed systems in production
Testing distributed systems in productionTesting distributed systems in production
Testing distributed systems in production
 
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
 
Just kill it
Just kill itJust kill it
Just kill it
 
Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWS
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
 
ServerTemplate Deep Dive
ServerTemplate Deep DiveServerTemplate Deep Dive
ServerTemplate Deep Dive
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 
Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 

More from kamalikamj

Anatomy of a Continuous Delivery Pipeline
Anatomy of a Continuous Delivery PipelineAnatomy of a Continuous Delivery Pipeline
Anatomy of a Continuous Delivery Pipelinekamalikamj
 
DevOps Not A Toolbox
DevOps Not A ToolboxDevOps Not A Toolbox
DevOps Not A Toolboxkamalikamj
 
Back To Basics
Back To BasicsBack To Basics
Back To Basicskamalikamj
 
Change Can Be Good
Change Can Be GoodChange Can Be Good
Change Can Be Goodkamalikamj
 
Automating Dev Environment - Introduction to Docker and Chef
Automating Dev Environment - Introduction to Docker and ChefAutomating Dev Environment - Introduction to Docker and Chef
Automating Dev Environment - Introduction to Docker and Chefkamalikamj
 
Identity management
Identity managementIdentity management
Identity managementkamalikamj
 

More from kamalikamj (6)

Anatomy of a Continuous Delivery Pipeline
Anatomy of a Continuous Delivery PipelineAnatomy of a Continuous Delivery Pipeline
Anatomy of a Continuous Delivery Pipeline
 
DevOps Not A Toolbox
DevOps Not A ToolboxDevOps Not A Toolbox
DevOps Not A Toolbox
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
 
Change Can Be Good
Change Can Be GoodChange Can Be Good
Change Can Be Good
 
Automating Dev Environment - Introduction to Docker and Chef
Automating Dev Environment - Introduction to Docker and ChefAutomating Dev Environment - Introduction to Docker and Chef
Automating Dev Environment - Introduction to Docker and Chef
 
Identity management
Identity managementIdentity management
Identity management
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Testing Infrastructure Code Using Test-kitchen, Docker & Chef-zero

  • 1. Testing Infrastructure Code Using Test- kitchen, Docker & Chef- zero Kamalika Majumder https://twitter.com/mjkamalika
  • 2. Who Am I I am an Infrastructure Automation Specialist and a Senior Consultant with Thoughtworks. Started my career as a System/Network Administrator for three years, continued the journey in Infrastructure Automation and Configuration Management across private and public clouds (AWS, Openstack). Interested in Infrastructure and Application Security, IaaS, PaaS and Continuous delivery and usually present at various conferences. Read me at : http://www.kamalika.net/ https://twitter.com/mjkamalika
  • 3. Topics to be covered  Why TDD for infra code  What is test-kitchen  Provision instances on demand => kitchen-docker  Configure the instances => Chef-zero  Test the infra code => Test-kitchen  Quick Demo https://twitter.com/mjkamalika
  • 4. Problems Solutions https://twitter.com/mjkamalika What are we trying to solve I. Manual setups per server. Each Server becomes a "work of art". II. No track of what changes were made when. III. Code works in local host , not in production. IV. Testing takes forever. I. Model server configs, relationships with other servers, packages in code.(Configuration Management) II. Infra as Code, Code to be version controlled. III. Host production like environment locally. IV. Scalable Environment On Demand .
  • 5. Infrastructure As Code  Treat your infrastructure as Code  Server configuration, packages installed, relationships with other servers etc should be modeled with code to be automated, removing manual steps prone to errors.  Use version controlling for that code.  For instance we can (and should!)  tag, branch and release the code that define our servers.  have a lifecycle that covers different stages through the infrastructure code, ie. dev, QA, production.  continuously test our infrastructure as we make changes. https://twitter.com/mjkamalika
  • 7. Why Test Driven Development for Infrastructure Code Code works in my machine as well as in my production server. Quick feedback for testing Infra code.  Faster you test code , faster you deploy in Production. Shorter Release Cycle for apps. https://twitter.com/mjkamalika
  • 8. Some Real World Scenarios/Examples Changing web ports Adding new app metrics Changing app user Add a new user Add basic authentication Configuring a new machine Adding additional node to cluster https://twitter.com/mjkamalika
  • 10. Test-Kitchen: Test Kitchen is a test harness tool to execute your configured code on one or more platforms in isolation. Drivers for cloud/virtualization platforms Configuration Management Support for test frameworks https://twitter.com/mjkamalika
  • 12. What do we achieve:  More stable and tested build .  Production like environment on your machine in minutes is a reality now.  Consistency across all environments.  Automated and Scalable Environment On Demand  Fully Tested Configuration management.  Production go live from 3 weeks to 1 week to multi deployment per week.  Overall testing time reduction went down by multifold. Build pipeline time cycle reduction. https://twitter.com/mjkamalika