Difference between revisions of "Newsletter:8/If You Cant Take the DevOps Heat"

From Zenoss Wiki
Jump to: navigation, search
Line 5: Line 5:
 
|Cover image=Zenoss Masters.gif
 
|Cover image=Zenoss Masters.gif
 
}}
 
}}
Virtualization, and the Cloud is changing how applications are deployed.  Application orchestration and deployment is an order of magnitude more complex than ever before.  IT Operations staff have been turned into virtual plumbers, ensuring all the bits of underlying infrastructure are connected together properly, and don’t leak.  This is tedious work, and one mistake dooms the next rollout to failure, and an unplanned outage.  Utilizing the test suite in Chef can save you from having Zenoss wake you up at 3AM.
+
Virtualization and the Cloud are changing how applications are deployed.  Application orchestration and deployment is an order of magnitude more complex than ever before.  IT Operations staff have been turned into virtual plumbers, ensuring all the bits of underlying infrastructure are connected together properly, and don’t leak.  This is tedious work, and one mistake dooms the next rollout to failure, and an unplanned outage.  Utilizing the test suite in Chef can save you from having Zenoss wake you up at 3AM.
 
==Getting Back in the Kitchen==
 
==Getting Back in the Kitchen==
  
 
[https://www.chef.io/chef/ Chef] is an infrastructure configuration management system.  To help make the process of testing before deploying infrastructure and basic underlying services easier, they have created a suite of automated testing tools.  
 
[https://www.chef.io/chef/ Chef] is an infrastructure configuration management system.  To help make the process of testing before deploying infrastructure and basic underlying services easier, they have created a suite of automated testing tools.  
 
   
 
   
'''FoodCritic''' is a part of the ChefDK.  FoodCritic is a lint-like tool (url for lint) which will check your Chef cookbook for syntax and best practices.  Testing with FoodCritic is a very fast first step, and can be scripted/automated with very simple syntax.
+
'''FoodCritic''' is a part of the ChefDK.  FoodCritic is a lint-like tool (url for lint) that will check your Chef cookbook for syntax and best practices.  Testing with FoodCritic is a very fast first step and can be scripted/automated with very simple syntax.
  
'''ChefSpec''' is an independent project which can be found over at [http://sethvargo.github.io/chefspec/ The ChefSpec Github repo].  ChefSpec is a unit testing framework for testing Chef Cookbooks, which will allow you to rapidly produce unit testing coverage of your entire Cookbook.  
+
'''ChefSpec''' is an independent project that can be found at [http://sethvargo.github.io/chefspec/ The ChefSpec Github repo].  ChefSpec is a unit testing framework for testing Chef Cookbooks, which will allow you to rapidly produce unit testing coverage of your entire Cookbook.  
  
ChefSpec and Food Critic are quick checks to make sure everything is sane before running tests that will take more time.  Because they are so fast, it is highly recommended that FoodCritic, and ChefSpec be run against your Cookbook before you go to the Kitchen.  With a large enough OS/server/configuration testing grid, Kitchen can take quite awhile.
+
ChefSpec and Food Critic are quick checks to make sure everything is sane before running tests that will take more time.  Because they are so fast, it is highly recommended that FoodCritic and ChefSpec be run against your Cookbook before you go to the Kitchen.  With a large enough OS/server/configuration testing grid, Kitchen can take quite awhile.
  
 
Speaking of the '''Kitchen''', Chef’s Kitchen framework can be found in the ChefDK (URL).  Kitchen is an orchestration tool for testing Chef Cookbooks in Docker, Vagrant, and dozens of other virtualization systems.  Kitchen allows you to test the underlying infrastructure and reduce hardware costs as your dev/staging environment can be run on a developer’s (or operations engineer’s) laptop if it has sufficient memory and CPU.  It does take some time to run, as it generates every environment you want to test.
 
Speaking of the '''Kitchen''', Chef’s Kitchen framework can be found in the ChefDK (URL).  Kitchen is an orchestration tool for testing Chef Cookbooks in Docker, Vagrant, and dozens of other virtualization systems.  Kitchen allows you to test the underlying infrastructure and reduce hardware costs as your dev/staging environment can be run on a developer’s (or operations engineer’s) laptop if it has sufficient memory and CPU.  It does take some time to run, as it generates every environment you want to test.
  
'''Serverspec''' is an integration testing tool that can be run in the Kitchen.  Once you’ve configured Kitchen you can use Serverspec tests (written in YAML, and run automatically) to run integration tests against the virtual infrastructure that Kitchen has created.  Serverspec examine the output, and generate reports of what’s going on in the Kitchen.  As the list of combinations of Operating Systems, and software increases, ServerSpec really shines by reducing output to what you need to know, instead of what you had to search for.
+
'''Serverspec''' is an integration testing tool that can be run in the Kitchen.  Once you’ve configured Kitchen you can use Serverspec tests (written in YAML and run automatically) to run integration tests against the virtual infrastructure that Kitchen has created.  Serverspec examines the output and generate reports of what’s going on in the Kitchen.  As the list of combinations of Operating Systems, and software increases, Serverspec really shines by reducing output to what you need to know, instead of what you had to search for.
==Test it Before you Deploy It!==
+
==Test It Before you Deploy It!==
  
 
Now you have the tools to test your infrastructure before you deploy your app on it.  You know the plumbing is all there, and all of it works.  This knowledge is also repeatable on demand, automatically.  This seems like the best way ever to avoid having Zenoss Core wake you up at 3AM because something broke!
 
Now you have the tools to test your infrastructure before you deploy your app on it.  You know the plumbing is all there, and all of it works.  This knowledge is also repeatable on demand, automatically.  This seems like the best way ever to avoid having Zenoss Core wake you up at 3AM because something broke!

Revision as of 18:07, 1 June 2015

Community-header.jpg

If You Can't Take the DevOps Heat, Stay Out Of The Kitchen

IT Operations staff have been turned into virtual plumbers, ensuring all the bits of underlying infrastructure are connected together properly, and don’t leak. This is tedious work, and one mistake dooms the next rollout to failure, and an unplanned outage. Utilizing the test suite in Chef can save you from having Zenoss wake you up at 3AM.
Zenoss Masters.gif

Virtualization and the Cloud are changing how applications are deployed. Application orchestration and deployment is an order of magnitude more complex than ever before. IT Operations staff have been turned into virtual plumbers, ensuring all the bits of underlying infrastructure are connected together properly, and don’t leak. This is tedious work, and one mistake dooms the next rollout to failure, and an unplanned outage. Utilizing the test suite in Chef can save you from having Zenoss wake you up at 3AM.

Getting Back in the Kitchen

Chef is an infrastructure configuration management system. To help make the process of testing before deploying infrastructure and basic underlying services easier, they have created a suite of automated testing tools.

FoodCritic is a part of the ChefDK. FoodCritic is a lint-like tool (url for lint) that will check your Chef cookbook for syntax and best practices. Testing with FoodCritic is a very fast first step and can be scripted/automated with very simple syntax.

ChefSpec is an independent project that can be found at The ChefSpec Github repo. ChefSpec is a unit testing framework for testing Chef Cookbooks, which will allow you to rapidly produce unit testing coverage of your entire Cookbook.

ChefSpec and Food Critic are quick checks to make sure everything is sane before running tests that will take more time. Because they are so fast, it is highly recommended that FoodCritic and ChefSpec be run against your Cookbook before you go to the Kitchen. With a large enough OS/server/configuration testing grid, Kitchen can take quite awhile.

Speaking of the Kitchen, Chef’s Kitchen framework can be found in the ChefDK (URL). Kitchen is an orchestration tool for testing Chef Cookbooks in Docker, Vagrant, and dozens of other virtualization systems. Kitchen allows you to test the underlying infrastructure and reduce hardware costs as your dev/staging environment can be run on a developer’s (or operations engineer’s) laptop if it has sufficient memory and CPU. It does take some time to run, as it generates every environment you want to test.

Serverspec is an integration testing tool that can be run in the Kitchen. Once you’ve configured Kitchen you can use Serverspec tests (written in YAML and run automatically) to run integration tests against the virtual infrastructure that Kitchen has created. Serverspec examines the output and generate reports of what’s going on in the Kitchen. As the list of combinations of Operating Systems, and software increases, Serverspec really shines by reducing output to what you need to know, instead of what you had to search for.

Test It Before you Deploy It!

Now you have the tools to test your infrastructure before you deploy your app on it. You know the plumbing is all there, and all of it works. This knowledge is also repeatable on demand, automatically. This seems like the best way ever to avoid having Zenoss Core wake you up at 3AM because something broke!