Chef and EIS
CONFIGURATION MANAGEMENT, WINDOWS INTEGRATION AND
COOKBOOK DESIGN
 Automation
 Delivery
 Acceleration
 Performance
 Tools
Automation doesn’t stop with
Configuration Management
 BuiId Automation: Automated builds and job creation
 Test Automation: – Unit – Functional – Non Functional
 Publishing Automation: CI publishing to Artifactory and Supermarket
 Imaging/Provisioning Automation: Automated physical and virtual server builds
 Configuration Automation: Automated configuration and installation of -
applications, OS components, and utilities
 Enterprise Policy Automation: Automated policy application
 Security/Compliance Automation:
 Environment Automation:
 Performance Automation
 Delivery Automation:
 Service State Automation: Load balancing and monitoring automation
Implementation Concepts
 Base Image Contract
 Limit Base images supported across the enterprise for less Chef conditionals
 Transport Layer for Chef Execution
 What is a Cookbook?
 Design Hierarchy
 Cookbook Builds
 Delivery Pipeline
 Expedited vs Reprovision
Base Image Contract
 Simplify integration of Chef into our
deployment process.
 Creating a consistent starting point
 We needed to support RHEL (6/7)
and Windows (2008 R2/ 2012)
 Windows
 Sysprep requirement 
 Windows Updates ~4-5 hours
 Reboots
Transport Layer for Chef Execution
 All platforms are being pushed instead
of polled
 Linux
 SSH
 Username/Password
 Username/Identity File
 That was easy
 Windows
 WinRM
 Knife-Windows – works in most use cases
 MSFT FTW – No Windows Update calls via
WinRM context
 EIS Workaround
 Another common workaround is
Scheduled Tasks
Quick Overview of Cookbooks
Cookbook Component OOO Component Documentation
Attributes Public Property • Used to change the behavior internally within
the cookbook
• Link
Libraries Protected Classes • Performs the heavy lifting.
• Typically these are not accessible from the
outside and are usually considered
an implementation detail in code.
Providers Interface
Implementation
• Private Methods
• Ruby and Chef DSL
Recipes Public Static
Methods
• Performs an action that is configurable only by
attributes
• Link
Resources Interface • Contract to use within Recipes
• Chef - It describes the desired state of an
element of your infrastructure.
• Link
Quick Overview of Cookbooks Cont
Cookbook Component Class Component Documentation
Templates No Mapping • Nothing more than taking a string and
tokenizing it. Then it can be evaluated at
converge time.
Handlers Event Handlers • Events thrown from specific use cases in Chef
• Start, Successful Execution, and Error
• Link
Definitions No Mapping • Nothing more than a wrapper around multiple
resource calls.
Files No Mapping • Distribute files based on a File specificity
pattern.
• Distribute files based on naming convention to
specific platforms
Cookbook Design
Cookbook Builds
 Lots of Tools
 Knife-Supermarket
 Berks
 Kichen
 ChefSpec
 FoodCritic
 Knife-Spork
 App Build Integration
Cookbook Builds
 100+ Repositories
 Automated Build Job creation. On a Per Branch basis
 Automated Repository configuration
 Automated Jenkins Cluster – No manual intervention
 Windows Slave
 Chef DK
 VS 2010 - 2015
 Linux Slave
 Maven
 Java
 ChefDK
Pipeline

Chef at EIS

  • 1.
    Chef and EIS CONFIGURATIONMANAGEMENT, WINDOWS INTEGRATION AND COOKBOOK DESIGN
  • 2.
     Automation  Delivery Acceleration  Performance  Tools
  • 3.
    Automation doesn’t stopwith Configuration Management  BuiId Automation: Automated builds and job creation  Test Automation: – Unit – Functional – Non Functional  Publishing Automation: CI publishing to Artifactory and Supermarket  Imaging/Provisioning Automation: Automated physical and virtual server builds  Configuration Automation: Automated configuration and installation of - applications, OS components, and utilities  Enterprise Policy Automation: Automated policy application  Security/Compliance Automation:  Environment Automation:  Performance Automation  Delivery Automation:  Service State Automation: Load balancing and monitoring automation
  • 4.
    Implementation Concepts  BaseImage Contract  Limit Base images supported across the enterprise for less Chef conditionals  Transport Layer for Chef Execution  What is a Cookbook?  Design Hierarchy  Cookbook Builds  Delivery Pipeline  Expedited vs Reprovision
  • 5.
    Base Image Contract Simplify integration of Chef into our deployment process.  Creating a consistent starting point  We needed to support RHEL (6/7) and Windows (2008 R2/ 2012)  Windows  Sysprep requirement   Windows Updates ~4-5 hours  Reboots
  • 6.
    Transport Layer forChef Execution  All platforms are being pushed instead of polled  Linux  SSH  Username/Password  Username/Identity File  That was easy  Windows  WinRM  Knife-Windows – works in most use cases  MSFT FTW – No Windows Update calls via WinRM context  EIS Workaround  Another common workaround is Scheduled Tasks
  • 7.
    Quick Overview ofCookbooks Cookbook Component OOO Component Documentation Attributes Public Property • Used to change the behavior internally within the cookbook • Link Libraries Protected Classes • Performs the heavy lifting. • Typically these are not accessible from the outside and are usually considered an implementation detail in code. Providers Interface Implementation • Private Methods • Ruby and Chef DSL Recipes Public Static Methods • Performs an action that is configurable only by attributes • Link Resources Interface • Contract to use within Recipes • Chef - It describes the desired state of an element of your infrastructure. • Link
  • 8.
    Quick Overview ofCookbooks Cont Cookbook Component Class Component Documentation Templates No Mapping • Nothing more than taking a string and tokenizing it. Then it can be evaluated at converge time. Handlers Event Handlers • Events thrown from specific use cases in Chef • Start, Successful Execution, and Error • Link Definitions No Mapping • Nothing more than a wrapper around multiple resource calls. Files No Mapping • Distribute files based on a File specificity pattern. • Distribute files based on naming convention to specific platforms
  • 9.
  • 10.
    Cookbook Builds  Lotsof Tools  Knife-Supermarket  Berks  Kichen  ChefSpec  FoodCritic  Knife-Spork  App Build Integration
  • 11.
    Cookbook Builds  100+Repositories  Automated Build Job creation. On a Per Branch basis  Automated Repository configuration  Automated Jenkins Cluster – No manual intervention  Windows Slave  Chef DK  VS 2010 - 2015  Linux Slave  Maven  Java  ChefDK
  • 12.

Editor's Notes

  • #3 The purpose of the argument should not be victory, but progress.
  • #4 From continuous integration, to continuous monitoring, to continuous delivery and continuous improvements.