SlideShare a Scribd company logo
1 of 50
Download to read offline
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
AEM DevOps –
AEM Infrastructure
Automation with Chef
Cookbooks
Drew Glass
Hero Digital
AEM Practice Lead
•  Director, Engineering and AEM
Practice Lead at Hero Digital
http://herodigital.com/
•  San Francisco AEM
Community Leader
http://www.meetup.com/Adobe-
Experience-Manager-Adobe-
Marketing-Cloud/
•  MS in Computer Science from
University of Illinois Urbana-
Champaign
drew@herodigital.com
@drewglass
https://
www.linkedin.com/in/
drewglass1
Agenda
•  What is DevOps
•  DevOps with Chef
•  AEM Cookbook
•  Deployment Scenarios with Chef
What Is DevOps
•  Use code and automation to increase
collaboration between development and
operations
•  Consistent, testable, repeatable
infrastructure
The Value in DevOps
•  Reduce cost and risk
•  Increase throughput and delivery speed
DevOps with Chef
•  Tool to automate infrastructure
provisioning through code 
•  Thin Domain Specific Language built on
top of Ruby 
•  Provides abstraction for infrastructure 
•  https://www.chef.io/chef/
Chef Basics
•  Develop cookbooks on Chef workstation
using ChefDK
•  Knife Cookbooks and Policies to Chef
Server
•  Chef client provisions nodes using
cookbooks and policies and records that
information on Chef Server
Chef Basics Illustrated
Chef	
  Server	
  
Nodes,	
  cookbooks,	
  
policies	
  
Worksta/on	
  	
  
ChefDK,	
  Knife,	
  
cookbooks	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Chef Workstation
Chef	
  Server	
  
Nodes,	
  cookbooks,	
  
policies	
  
Worksta/on	
  	
  
ChefDK,	
  Knife,	
  
cookbooks	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Chef Workstation
•  Develop cookbooks and policies
•  Store cookbooks in chef-repo which is synced
with version control
•  ChefDK - development kit which includes Kitchen,
ChefSpec, Berkshelf
https://downloads.chef.io/chef-dk/ 
•  Knife – used to upload items such as cookbooks
to Chef server and interact with nodes
•  Kitchen - test cookbooks across different
platforms
•  ChefSpec - simulate convergence of resources on
a node
•  Berkshelf - manage cookbook dependencies
Cookbooks
•  Fundamental unit of configuration
•  Contains attributes, recipes, templates,
files, providers, and resources
•  Kinds of cookbooks: base and wrapper
AEM Community Base Cookbook
h6ps://github.com/tacitknowledge/aem-­‐cookbook	
  	
  
AEM Community Base Cookbook
AEM Wrapper Cookbook
•  Depends on base cookbook
•  Overrides base attributes and may include
new recipes, files, providers and templates
Example	
  metadata.rb	
  
Attributes in a Cookbook
•  Configuration data
•  Defined in a cookbook and can override
attributes on a node
•  When chef-client is run, attributes in
cookbook are compared against attributes
on node
•  Attributes in default.rb are loaded first
Attributes in the AEM Cookbook
default[:aem][:version] = nil
default[:aem][:jvm_opts] = {}
default[:aem][:jar_opts] = []
default[:aem][:enable_webdav] = false
default[:aem][:jar_name] = nil
default[:aem][:use_yum] = false
default[:aem][:download_url] = nil
default[:aem][:license_url] = nil
default[:aem][:base_dir] = "/opt/aem"
default[:aem][:cluster_name] = nil
default[:aem][:author] = {
:default_context => "/opt/aem/
author",
:port => "4502",
:runnable_jar => "aem-author-
p4502.jar",
:base_dir => "/opt/aem/author/crx-
quickstart",
:jvm_opts => {},
:ldap => {
:enabled => false,
:options => {}
},
:validation_urls => [
"http://localhost:4502/libs/cq/
core/content/login.html",
"http://localhost:4502/
damadmin",
"http://localhost:4502/
miscadmin",
"http://localhost:4502/system/
console/bundles"
],
:deploy_pkgs => [],
#You changed these, right?
:admin_user => "admin",
:admin_password => "admin",
:new_admin_password => nil,
:replication_hosts => [],
:find_replication_hosts_dynamical
ly => false
}
default[:aem][:author][:startup]
[:max_attempts] = 20
default[:aem][:author][:startup]
[:wait_between_attempts] = 30
Attributes in the AEM Cookbook
Recipes in a Cookbook
•  Fundamental configuration element 
•  Authored with Ruby and used to define
everything to configure part of system
•  Executed in order specified in run list
•  In AEM, we have recipes for author,
publish and dispatcher
Author Recipe in the AEM Cookbook
Author Recipe in an AEM Cookbook
Files and Templates in Cookbooks
•  Templates - file written in markup
language to solve a more complex
configuration scenario
•  Files - can be transferred from cookbooks
to nodes
Dispatcher Attributes
Dispatcher Template in the AEM Cookbook
Dispatcher Template in the AEM Cookbook
Resources and Providers
•  Resources - package, service, etc. that
tells chef-client which provider to use
during a during a chef client run for
various tasks
•  Provider  - defines steps to bring part of
system into desired state
Author Recipe Calls Init Provider
Init Script Provider in the AEM Cookbook
Author Recipe Calls Replication Agent Provider
Replication Agent Provider in the AEM Cookbook
Chef Server
Chef	
  Server	
  
Nodes,	
  cookbooks,	
  
policies	
  
Worksta/on	
  	
  
ChefDK,	
  Knife,	
  
cookbooks	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Chef Server
•  Hub of configuration data
•  Stores cookbooks, node information and
policies
•  Chef-client running on nodes queries Chef
server for configuration information like
recipes 
•  Chef-client does the actual configuration
on the node
•  Allows for distribution of work
•  Also includes search
Chef-client
Chef	
  Server	
  
Nodes,	
  cookbooks,	
  
policies	
  
Worksta/on	
  	
  
ChefDK,	
  Knife,	
  
cookbooks	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Node	
  
Chef-­‐client	
  
Chef-client
•  Agent that runs on a node managed by Chef
•  Chef-client is run to bring a node into a
desired state
•  Typical chef-client run:
–  register and authenticate node with Chef server
(RSA public key-pairs)
–  builds the node object
–  synchronizes cookbooks
–  compiles resource collection by loading required
cookbooks (recipes, attributes, and all other
dependencies)
–  provisions node
Chef-client Run for Author Node in Dev Environment
Node
•  Physical, virtual or cloud machine that is
configured and maintained by chef-client
•  Physical nodes are typically a server or
virtual machine that has to have a network
interface for chef-client to communicate
with Chef server
•  Cloud node could be Amazon EC2,
Google Compute Engine, Backspace, etc.
•  Chef-client can be used to deploy,
configure and maintain
Nodes in AEM
AEM	
  
Author	
  
AEM	
  
Publish	
  
Apache	
  
with	
  
Dispatcher	
  
Node Objects
• 
 Attributes – configuration data for a node
– Describe the current state of a node
– Can be defined by: cookbooks, roles,
environments
•  Run List - ordered list of roles and/or
recipes that defines all of the information
Chef needs to configure a node to a
certain state
Runlist in AEM
Policy
•  Map business and operational
requirements to settings and objects on
Chef server 
•  Roles - define server types
– A role has zero or more attributes and  a run
list
•  Environments
– Define attributes for environments -
Integration, QA, Staging, Production
Roles in AEM
Environments in AEM
Deployment Scenarios
•  AEM sandbox using Vagrant, Chef and
Berkshelf
•  Local AEM development environment
using a AEM site wrapper cookbook
•  AEM demo environment in the cloud using
Chef and Kitchen
•  Continuous delivery pipeline with Chef and
Chef provisioning
Worksta/on	
  
Local Dev VM or Cloud Instance
VM	
  or	
  Cloud	
  Instance	
  
Vagrant	
  
or	
  	
  
Kitchen	
  	
  
Cookbooks	
  and	
  
Berkshelf	
  
Chef-­‐solo	
  
AEM	
  
Author	
  
AEM	
  
Publish	
  
Dispatcher	
  
Vagrant and Chef Demo
AEM Environment with Chef
Chef	
  
Server	
  
with	
  Nodes,	
  
Cookbooks,	
  
and	
  Policies	
  
Node	
  
AEM	
  
Author	
  
Chef-­‐	
  
client	
  
Node	
  
AEM	
  
Publish	
  
Chef-­‐
client	
  
Node	
  
Dispat-­‐
cher	
  
Chef-­‐
client	
  
Chef Provisioning
•  Allows clusters to be managed with chef-
client and Chef server using recipes
•  Collection of resources to enable creation
of machines using chef-client
•  Bootstrap operations that are done
against an infrastructure like VirtualBox,
Amazon EC2, Docker, etc. using drivers
•  Machines – Chef provisioning runs
multiple machine processes in-parallel in
most situations
Scaling with Chef Provisioning
Chef	
  
Server	
  
with	
  Nodes,	
  
Cookbooks,	
  
and	
  Policies	
  
Node	
  
AEM	
  
Author	
  
Chef-­‐	
  
client	
  
Dispatcher	
  
Node	
  
Publish	
  	
  
Node	
  
Dispatcher	
  
Node	
  
Publish	
  	
  
Node	
  
Scaling with Chef Provisioning
Chef	
  
Server	
  
with	
  Nodes,	
  
Cookbooks,	
  
and	
  Policies	
  
Node	
  
AEM	
  
Author	
  
Chef-­‐	
  
client	
  
Dispatcher	
  
Node	
  
Publish	
  	
  
Node	
  
Dispatcher	
  
Node	
  
Publish	
  	
  
Node	
  
Dispatcher	
  
Node	
  
Publish	
  	
  
Node	
  
Dispatcher	
  
Node	
  
Publish	
  	
  
Node	
  
Wrapping Up
•  Infrastructure as code
•  AEM DevOps with Chef
•  Deploying AEM with Chef
Q & A
Send any questions to drew@herodigital.com

More Related Content

What's hot

Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefChef Software, Inc.
 
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...Chef Software, Inc.
 
AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAndrew Khoury
 
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
 
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...Chef Software, Inc.
 
AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013Andrew Khoury
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBMongoDB
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Chef
 
Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )Pravin Mishra
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAlberto Molina Coballes
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February markghiasy
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6Jukka Zitting
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and YouBryan Berry
 

What's hot (20)

Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with Chef
 
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
 
AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser Caching
 
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
 
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
 
Learning chef
Learning chefLearning chef
Learning chef
 
Aem maintenance
Aem maintenanceAem maintenance
Aem maintenance
 
Aem offline content
Aem offline contentAem offline content
Aem offline content
 
AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDB
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
 
Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )
 
Chef introduction
Chef introductionChef introduction
Chef introduction
 
How Flipkart scales PHP
How Flipkart scales PHPHow Flipkart scales PHP
How Flipkart scales PHP
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
 

Viewers also liked

AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentGabriel Walt
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an IntroductionSanjeev Sharma
 
Aem authentication vs idp
Aem authentication vs idpAem authentication vs idp
Aem authentication vs idpSaroj Mishra
 
AEM Client Context Customisation
AEM Client Context CustomisationAEM Client Context Customisation
AEM Client Context CustomisationAnkit Gubrani
 
It Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software DevelopmentIt Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software DevelopmentCarlos Perez
 
EC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and PackerEC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and PackerGeorge Miranda
 
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure StandardizationAmazon Web Services
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesICF CIRCUIT
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev TricksGabriel Walt
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content RepositoryGabriel Walt
 
When dispatcher caching is not enough...
When dispatcher caching is not enough...When dispatcher caching is not enough...
When dispatcher caching is not enough...Jakub Wadolowski
 
AEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UIAEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UIGilles Knobloch
 
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based LayoutsCIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based LayoutsICF CIRCUIT
 
Introducing Apache Jackrabbit OAK
Introducing Apache Jackrabbit OAKIntroducing Apache Jackrabbit OAK
Introducing Apache Jackrabbit OAKYash Mody
 

Viewers also liked (19)

AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
(Re)discover your AEM
(Re)discover your AEM(Re)discover your AEM
(Re)discover your AEM
 
Aem authentication vs idp
Aem authentication vs idpAem authentication vs idp
Aem authentication vs idp
 
AEM - Client Libraries
AEM - Client LibrariesAEM - Client Libraries
AEM - Client Libraries
 
AEM Client Context Customisation
AEM Client Context CustomisationAEM Client Context Customisation
AEM Client Context Customisation
 
It Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software DevelopmentIt Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software Development
 
EC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and PackerEC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and Packer
 
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
Chef: Smart infrastructure automation
Chef: Smart infrastructure automationChef: Smart infrastructure automation
Chef: Smart infrastructure automation
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev Tricks
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
 
When dispatcher caching is not enough...
When dispatcher caching is not enough...When dispatcher caching is not enough...
When dispatcher caching is not enough...
 
AEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UIAEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UI
 
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based LayoutsCIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
 
Cqcon
CqconCqcon
Cqcon
 
Introducing Apache Jackrabbit OAK
Introducing Apache Jackrabbit OAKIntroducing Apache Jackrabbit OAK
Introducing Apache Jackrabbit OAK
 

Similar to CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks

Managing Servers with Chef
Managing Servers with ChefManaging Servers with Chef
Managing Servers with ChefJoe Kepley
 
Configuration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech TalksConfiguration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech TalksAmazon Web Services
 
AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)
AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)
AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)Amazon Web Services
 
Introduction to OpsWorks for Chef Automate
Introduction to OpsWorks for Chef AutomateIntroduction to OpsWorks for Chef Automate
Introduction to OpsWorks for Chef AutomateAmazon 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 AutomateAmazon Web Services
 
Chef for Openstack
Chef for OpenstackChef for Openstack
Chef for OpenstackMohit Sethi
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and FriendsBen McRae
 
Chef - Infrastructure Automation for the Masses
Chef - Infrastructure Automation for the Masses�Chef - Infrastructure Automation for the Masses�
Chef - Infrastructure Automation for the MassesSai Perchard
 
CHEF - by Scott Russel
CHEF - by Scott RusselCHEF - by Scott Russel
CHEF - by Scott RusselKangaroot
 
Chef at EIS
Chef at EISChef at EIS
Chef at EIScarpnick
 
Chef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scaleChef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scaleBiju Nair
 
AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013
AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013
AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013Amazon Web Services
 
Compliance Automation with InSpec
Compliance Automation with InSpecCompliance Automation with InSpec
Compliance Automation with InSpec Nathen Harvey
 
Introduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & RemediationIntroduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & RemediationNicole Johnson
 
DOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your InfrastructureDOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your Infrastructuredecode2016
 
Chef Intro @ SF Bay Area LSPE meetup
Chef Intro @ SF Bay Area LSPE meetupChef Intro @ SF Bay Area LSPE meetup
Chef Intro @ SF Bay Area LSPE meetupPromet Source
 

Similar to CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks (20)

Managing Servers with Chef
Managing Servers with ChefManaging Servers with Chef
Managing Servers with Chef
 
Configuration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech TalksConfiguration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech Talks
 
AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)
AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)
AWS re:Invent 2016: Configuration Management in the Cloud (DEV305)
 
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef AutomateAWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate
 
Introduction to OpsWorks for Chef Automate
Introduction to OpsWorks for Chef AutomateIntroduction to OpsWorks for Chef Automate
Introduction to 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
 
Chef for Openstack
Chef for OpenstackChef for Openstack
Chef for Openstack
 
Chef for openstack
Chef for openstackChef for openstack
Chef for openstack
 
Chef fundamentals
Chef fundamentalsChef fundamentals
Chef fundamentals
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
 
Chef - Infrastructure Automation for the Masses
Chef - Infrastructure Automation for the Masses�Chef - Infrastructure Automation for the Masses�
Chef - Infrastructure Automation for the Masses
 
CHEF - by Scott Russel
CHEF - by Scott RusselCHEF - by Scott Russel
CHEF - by Scott Russel
 
Chef at EIS
Chef at EISChef at EIS
Chef at EIS
 
Chef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scaleChef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scale
 
AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013
AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013
AWS OpsWorks Under the Hood (DMG304) | AWS re:Invent 2013
 
Compliance Automation with InSpec
Compliance Automation with InSpecCompliance Automation with InSpec
Compliance Automation with InSpec
 
Introduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & RemediationIntroduction To Continuous Compliance & Remediation
Introduction To Continuous Compliance & Remediation
 
DOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your InfrastructureDOO-009_Powering High Velocity Development for your Infrastructure
DOO-009_Powering High Velocity Development for your Infrastructure
 
Chef Intro @ SF Bay Area LSPE meetup
Chef Intro @ SF Bay Area LSPE meetupChef Intro @ SF Bay Area LSPE meetup
Chef Intro @ SF Bay Area LSPE meetup
 
Chef
ChefChef
Chef
 

More from ICF CIRCUIT

CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsICF CIRCUIT
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai:  Caching and BeyondCIRCUIT 2015 - Akamai:  Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and BeyondICF CIRCUIT
 
CIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and TestingCIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and TestingICF CIRCUIT
 
CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1ICF CIRCUIT
 
CIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diffCIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diffICF CIRCUIT
 
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
CIRCUIT 2015 -  Orchestrate your story with interactive video and web contentCIRCUIT 2015 -  Orchestrate your story with interactive video and web content
CIRCUIT 2015 - Orchestrate your story with interactive video and web contentICF CIRCUIT
 
How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)ICF CIRCUIT
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM ICF CIRCUIT
 
CIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can DoCIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can DoICF CIRCUIT
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten ZiegelerICF CIRCUIT
 

More from ICF CIRCUIT (10)

CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM Apps
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai:  Caching and BeyondCIRCUIT 2015 - Akamai:  Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and Beyond
 
CIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and TestingCIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and Testing
 
CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1
 
CIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diffCIRCUIT 2015 - Glimpse of perceptual diff
CIRCUIT 2015 - Glimpse of perceptual diff
 
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
CIRCUIT 2015 -  Orchestrate your story with interactive video and web contentCIRCUIT 2015 -  Orchestrate your story with interactive video and web content
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
 
How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 
CIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can DoCIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can Do
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 

Recently uploaded

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
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
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Recently uploaded (20)

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks

  • 1. CIRCUIT – An Adobe Developer Event Presented by ICF Interactive AEM DevOps – AEM Infrastructure Automation with Chef Cookbooks Drew Glass Hero Digital AEM Practice Lead
  • 2. •  Director, Engineering and AEM Practice Lead at Hero Digital http://herodigital.com/ •  San Francisco AEM Community Leader http://www.meetup.com/Adobe- Experience-Manager-Adobe- Marketing-Cloud/ •  MS in Computer Science from University of Illinois Urbana- Champaign drew@herodigital.com @drewglass https:// www.linkedin.com/in/ drewglass1
  • 3. Agenda •  What is DevOps •  DevOps with Chef •  AEM Cookbook •  Deployment Scenarios with Chef
  • 4. What Is DevOps •  Use code and automation to increase collaboration between development and operations •  Consistent, testable, repeatable infrastructure
  • 5. The Value in DevOps •  Reduce cost and risk •  Increase throughput and delivery speed
  • 6. DevOps with Chef •  Tool to automate infrastructure provisioning through code •  Thin Domain Specific Language built on top of Ruby •  Provides abstraction for infrastructure •  https://www.chef.io/chef/
  • 7. Chef Basics •  Develop cookbooks on Chef workstation using ChefDK •  Knife Cookbooks and Policies to Chef Server •  Chef client provisions nodes using cookbooks and policies and records that information on Chef Server
  • 8. Chef Basics Illustrated Chef  Server   Nodes,  cookbooks,   policies   Worksta/on     ChefDK,  Knife,   cookbooks   Node   Chef-­‐client   Node   Chef-­‐client   Node   Chef-­‐client  
  • 9. Chef Workstation Chef  Server   Nodes,  cookbooks,   policies   Worksta/on     ChefDK,  Knife,   cookbooks   Node   Chef-­‐client   Node   Chef-­‐client   Node   Chef-­‐client  
  • 10. Chef Workstation •  Develop cookbooks and policies •  Store cookbooks in chef-repo which is synced with version control •  ChefDK - development kit which includes Kitchen, ChefSpec, Berkshelf https://downloads.chef.io/chef-dk/ •  Knife – used to upload items such as cookbooks to Chef server and interact with nodes •  Kitchen - test cookbooks across different platforms •  ChefSpec - simulate convergence of resources on a node •  Berkshelf - manage cookbook dependencies
  • 11. Cookbooks •  Fundamental unit of configuration •  Contains attributes, recipes, templates, files, providers, and resources •  Kinds of cookbooks: base and wrapper
  • 12. AEM Community Base Cookbook h6ps://github.com/tacitknowledge/aem-­‐cookbook    
  • 13. AEM Community Base Cookbook
  • 14. AEM Wrapper Cookbook •  Depends on base cookbook •  Overrides base attributes and may include new recipes, files, providers and templates Example  metadata.rb  
  • 15. Attributes in a Cookbook •  Configuration data •  Defined in a cookbook and can override attributes on a node •  When chef-client is run, attributes in cookbook are compared against attributes on node •  Attributes in default.rb are loaded first
  • 16. Attributes in the AEM Cookbook default[:aem][:version] = nil default[:aem][:jvm_opts] = {} default[:aem][:jar_opts] = [] default[:aem][:enable_webdav] = false default[:aem][:jar_name] = nil default[:aem][:use_yum] = false default[:aem][:download_url] = nil default[:aem][:license_url] = nil default[:aem][:base_dir] = "/opt/aem" default[:aem][:cluster_name] = nil default[:aem][:author] = { :default_context => "/opt/aem/ author", :port => "4502", :runnable_jar => "aem-author- p4502.jar", :base_dir => "/opt/aem/author/crx- quickstart", :jvm_opts => {}, :ldap => { :enabled => false, :options => {} }, :validation_urls => [ "http://localhost:4502/libs/cq/ core/content/login.html", "http://localhost:4502/ damadmin", "http://localhost:4502/ miscadmin", "http://localhost:4502/system/ console/bundles" ], :deploy_pkgs => [], #You changed these, right? :admin_user => "admin", :admin_password => "admin", :new_admin_password => nil, :replication_hosts => [], :find_replication_hosts_dynamical ly => false } default[:aem][:author][:startup] [:max_attempts] = 20 default[:aem][:author][:startup] [:wait_between_attempts] = 30
  • 17. Attributes in the AEM Cookbook
  • 18. Recipes in a Cookbook •  Fundamental configuration element  •  Authored with Ruby and used to define everything to configure part of system •  Executed in order specified in run list •  In AEM, we have recipes for author, publish and dispatcher
  • 19. Author Recipe in the AEM Cookbook
  • 20. Author Recipe in an AEM Cookbook
  • 21. Files and Templates in Cookbooks •  Templates - file written in markup language to solve a more complex configuration scenario •  Files - can be transferred from cookbooks to nodes
  • 23. Dispatcher Template in the AEM Cookbook
  • 24. Dispatcher Template in the AEM Cookbook
  • 25. Resources and Providers •  Resources - package, service, etc. that tells chef-client which provider to use during a during a chef client run for various tasks •  Provider  - defines steps to bring part of system into desired state
  • 26. Author Recipe Calls Init Provider
  • 27. Init Script Provider in the AEM Cookbook
  • 28. Author Recipe Calls Replication Agent Provider
  • 29. Replication Agent Provider in the AEM Cookbook
  • 30. Chef Server Chef  Server   Nodes,  cookbooks,   policies   Worksta/on     ChefDK,  Knife,   cookbooks   Node   Chef-­‐client   Node   Chef-­‐client   Node   Chef-­‐client  
  • 31. Chef Server •  Hub of configuration data •  Stores cookbooks, node information and policies •  Chef-client running on nodes queries Chef server for configuration information like recipes •  Chef-client does the actual configuration on the node •  Allows for distribution of work •  Also includes search
  • 32. Chef-client Chef  Server   Nodes,  cookbooks,   policies   Worksta/on     ChefDK,  Knife,   cookbooks   Node   Chef-­‐client   Node   Chef-­‐client   Node   Chef-­‐client  
  • 33. Chef-client •  Agent that runs on a node managed by Chef •  Chef-client is run to bring a node into a desired state •  Typical chef-client run: –  register and authenticate node with Chef server (RSA public key-pairs) –  builds the node object –  synchronizes cookbooks –  compiles resource collection by loading required cookbooks (recipes, attributes, and all other dependencies) –  provisions node
  • 34. Chef-client Run for Author Node in Dev Environment
  • 35. Node •  Physical, virtual or cloud machine that is configured and maintained by chef-client •  Physical nodes are typically a server or virtual machine that has to have a network interface for chef-client to communicate with Chef server •  Cloud node could be Amazon EC2, Google Compute Engine, Backspace, etc. •  Chef-client can be used to deploy, configure and maintain
  • 36. Nodes in AEM AEM   Author   AEM   Publish   Apache   with   Dispatcher  
  • 37. Node Objects •  Attributes – configuration data for a node – Describe the current state of a node – Can be defined by: cookbooks, roles, environments •  Run List - ordered list of roles and/or recipes that defines all of the information Chef needs to configure a node to a certain state
  • 39. Policy •  Map business and operational requirements to settings and objects on Chef server •  Roles - define server types – A role has zero or more attributes and  a run list •  Environments – Define attributes for environments - Integration, QA, Staging, Production
  • 42. Deployment Scenarios •  AEM sandbox using Vagrant, Chef and Berkshelf •  Local AEM development environment using a AEM site wrapper cookbook •  AEM demo environment in the cloud using Chef and Kitchen •  Continuous delivery pipeline with Chef and Chef provisioning
  • 43. Worksta/on   Local Dev VM or Cloud Instance VM  or  Cloud  Instance   Vagrant   or     Kitchen     Cookbooks  and   Berkshelf   Chef-­‐solo   AEM   Author   AEM   Publish   Dispatcher  
  • 45. AEM Environment with Chef Chef   Server   with  Nodes,   Cookbooks,   and  Policies   Node   AEM   Author   Chef-­‐   client   Node   AEM   Publish   Chef-­‐ client   Node   Dispat-­‐ cher   Chef-­‐ client  
  • 46. Chef Provisioning •  Allows clusters to be managed with chef- client and Chef server using recipes •  Collection of resources to enable creation of machines using chef-client •  Bootstrap operations that are done against an infrastructure like VirtualBox, Amazon EC2, Docker, etc. using drivers •  Machines – Chef provisioning runs multiple machine processes in-parallel in most situations
  • 47. Scaling with Chef Provisioning Chef   Server   with  Nodes,   Cookbooks,   and  Policies   Node   AEM   Author   Chef-­‐   client   Dispatcher   Node   Publish     Node   Dispatcher   Node   Publish     Node  
  • 48. Scaling with Chef Provisioning Chef   Server   with  Nodes,   Cookbooks,   and  Policies   Node   AEM   Author   Chef-­‐   client   Dispatcher   Node   Publish     Node   Dispatcher   Node   Publish     Node   Dispatcher   Node   Publish     Node   Dispatcher   Node   Publish     Node  
  • 49. Wrapping Up •  Infrastructure as code •  AEM DevOps with Chef •  Deploying AEM with Chef
  • 50. Q & A Send any questions to drew@herodigital.com