30
Chef 11 Preview/Chef for OpenStack Boston 1/22/2013 Matt Ray [email protected] @mattray Tuesday, January 22, 13

Chef 11 Preview/Chef for OpenStack

Embed Size (px)

DESCRIPTION

Presentation at the combined Boston Chef and OpenStack Meetups on January 22, 2013. Overview of the new features and changes coming in the upcoming Chef 11 release, as well as a quick state of the union for Chef for OpenStack.

Citation preview

Page 1: Chef 11 Preview/Chef for OpenStack

Chef 11 Preview/Chef for OpenStack

Boston 1/22/2013

Matt [email protected]

@mattray

Tuesday, January 22, 13

Page 2: Chef 11 Preview/Chef for OpenStack

What's New Since Chef 0.10?

• Windows support

• Librarian

• Spiceweasel

• Foodcritic

• Cookbooks in separate repositories

• Private Chef

• Food Fight podcast

• knife plugins for openstack, hp, azure, gce

• 0.10 renumbered to Chef 10

• full-stack client

• why-run

• output formatters

• Test Kitchen

• Solaris support

• Chef Developer Summit(2!)

• Berkshelf

• ChefConf

• Fauxhai

• docs.opscode.com

• Hangouts for reviews

• nyan-cat output formatter

Tuesday, January 22, 13

Vaguely chronological, so much good stuff in the Chef Community

Page 3: Chef 11 Preview/Chef for OpenStack

What is NOT in Chef 11

• CouchDB

• Ruby-based chef-server-api

• depsolver, gecode, treetop

• Merb

• OpenID support in Web UI

• Migration tooling (coming soon)

http://trainweb.org/carl/Pullman150/IMG_3380.jpgTuesday, January 22, 13

Page 4: Chef 11 Preview/Chef for OpenStack

What’s NEW in Chef 11

• PostgreSQL

• erchef

• nginx

• Rails

• bookshelf

• omnibus-chef server

• chef-apply

• partial search

• users with key pairs

• partials in templates

• knife-essentials

Tuesday, January 22, 13

Page 5: Chef 11 Preview/Chef for OpenStack

nginx

erchef

solr(lucene)

bookshelf

PostgreSQLfilesystemcookbookstore

filesystemsearchindex

RabbitMQ

chef-expander

chef-webui

Chef Server Architecture

Tuesday, January 22, 13

Postgres has replaced Couch (who knew SQL was so good?)Erlang-based erchef has replaced Ruby-based chef-server-apichef-webui has been upgraded to Rails 3 from MerbBookshelf is our S3-compatibilish storage service

Page 6: Chef 11 Preview/Chef for OpenStack

erchef

chef_wm

chef_index chef_dbchef_authnchef_objects

solrbookshelfPostgreSQL

RabbitMQ

erchef Architecture

Tuesday, January 22, 13

Erlang applications, each on GitHub

Page 7: Chef 11 Preview/Chef for OpenStack

CPU Usage on Chef Server

Tuesday, January 22, 13

These are old graphs from last year. Code is actually much faster and more efficient now that we've had a year of tuning.This is with erchef and Ruby code on the same box3 CPU vm graph is aggregate

Page 8: Chef 11 Preview/Chef for OpenStack

CouchDB Uptime

Tuesday, January 22, 13

the smaller spikes were when we chron'd restarts

Page 9: Chef 11 Preview/Chef for OpenStack

Database CPU

CouchDB MySQL

Tuesday, January 22, 13

Postgres is about the same performance, but we've found we're able to focus optimizations on a single rdbms and put time that we would otherwise have to spend on ensuring both backend dbs work properly into other areas of the code for fixes, enhances, features.

Page 10: Chef 11 Preview/Chef for OpenStack

Database Memory

CouchDB MySQL

Tuesday, January 22, 13

Nice and flat

Page 11: Chef 11 Preview/Chef for OpenStack

Database Load Average

CouchDB MySQL

Tuesday, January 22, 13

Licensing is much better for us with Postgres

Page 12: Chef 11 Preview/Chef for OpenStack

API Average Latency

Tuesday, January 22, 13

And things have gotten better from here with Private Chef and Open Source Chef. Not everything has been ported to Opscode Hosted Chef yet. Work has started to complete the migration of OHC to the OPC code base, things with OHC will get far better.

Page 13: Chef 11 Preview/Chef for OpenStack

omnibus-chef server

• full-stack for the Chef server, everything you need

• installs to /opt/chef-server

• RPMs, DEBs for now

• build your own packages

• chef-server-ctl

• status

• start/stop

• tail

http://apod.nasa.gov/apod/astropix.html

Tuesday, January 22, 13

Much of the same tooling OPC

Page 14: Chef 11 Preview/Chef for OpenStack

chef-apply

• run a single recipe file

• without modifying the node's run_list

• included with Chef gem, /usr/bin/chef-apply

• chef-apply /path/to/recipe_file

• chef-apply "content of a recipe file"

http://www.flickr.com/photos/albill/sets/72157628046395000/

Tuesday, January 22, 13

http://tickets.opscode.com/browse/CHEF-3571

Page 15: Chef 11 Preview/Chef for OpenStack

partial search

http://www.flickr.com/photos/albill/sets/72157628046395000/

partial_search(:node,  'role:web',      :keys  =>  {  'name'  =>  [  'name'  ],                            'ip'      =>  [  'ipaddress'  ],                            'kernel_version'  =>  [  'kernel',  'version'  ]                        }).each  do  |result|    puts  result['name']    puts  result['ip']    puts  result['kernel_version']end

• instead of entire node, just the pieces you want

• massive reduction in bandwidth and memory

• http://community.opscode.com/cookbooks/partial_search

• to use with Chef 10 and Hosted Chef today

Tuesday, January 22, 13

Page 16: Chef 11 Preview/Chef for OpenStack

users with keypairs

• users can have key pairs, just like clients

• knife actions as a user instead of a client

• post a public key when you create a user/client

http://www.flickr.com/photos/albill/sets/72157628046395000/

Tuesday, January 22, 13

For users in Chef 11, the key point is:Before: users were just a concept of the webui. If you wanted a knife setup, you needed a client.After: users can have key pairs just like clients. So you can do knife actions as your user.

Page 17: Chef 11 Preview/Chef for OpenStack

<?xml version='1.0' encoding='UTF-8'?>

<server xmlns="urn:jboss:domain:1.2"> <extensions> <% if @infinispan -%> <extension module="org.jboss.as.clustering.infinispan"/> <% end -%> <extension module="org.jboss.as.web"/> <% if @webservices -%> <extension module="org.jboss.as.webservices"/> <% end -%> <extension module="org.jboss.as.weld"/> </extensions> <% if @infinispan include_template "infinispan.xml.erb" end -%> <% if @webservices include_template "webservices.xml.erb" end -%> <socket-binding-group name="standard-sockets" > ...... </socket-binding-group></server>

• Thanks to Andrea Campi!

partials in templates

http://www.flickr.com/photos/modern_fred/2095565021/

Tuesday, January 22, 13

Page 18: Chef 11 Preview/Chef for OpenStack

knife-essentials

• Unified commands that work on everything

• https://github.com/jkeiser/knife-essentials

• knife download [pattern1 pattern2 ...]

• knife download roles data_bags cookbooks/emacs

• knife diff cookbooks/*apache*

• knife show *base*

• knife upload apache*

• knife list data_bags/users

• knife deps roles/base.json

http://photography.nationalgeographic.com/photography/photo-of-the-day/Tuesday, January 22, 13

knife downloadknife diffknife showknife listknife upload

Page 19: Chef 11 Preview/Chef for OpenStack

Chef 11 Breaking Changes

• http://wiki.opscode.com/display/chef/Breaking+Changes+in+Chef+11

• chef-shell (formerly shef)

• no implicits node attributes (no more node['blah'] = 'foo')

• attribute files may access role and environment attributes

• delayed notifications run after failed converge

• encrypted data bag item format change

• chef-client lock so safe from simultaneous runs

http://www.flickr.com/photos/modern_fred/2096352938/Tuesday, January 22, 13

More changes on the wiki page

Page 20: Chef 11 Preview/Chef for OpenStack

Chef 11 Server Preview

• http://wiki.opscode.com/display/chef/Chef+11+Server+Preview

• Nightly Builds

• Centos 5 & 6

• Ubuntu 10.04, 11.04 and 12.04

• Everything is on GitHub

• More testing means better releases!

• Client is in beta: http://lists.opscode.com/sympa/arc/chef-dev/2013-01/msg00028.html

http://www.brandonbird.com/lazysunday.html

Tuesday, January 22, 13

Coming soon!

Page 21: Chef 11 Preview/Chef for OpenStack

Overview & Status of Chef for OpenStack

Tuesday, January 22, 13

Page 22: Chef 11 Preview/Chef for OpenStack

Chef for OpenStack: Who

Tuesday, January 22, 13

These companies are currently involved to some extent

Page 23: Chef 11 Preview/Chef for OpenStack

Chef for OpenStack: Why

• Community for the automated deployment and management of OpenStack

• Reduce fragmentation and encourage collaboration

• Deploying OpenStack is not "secret sauce"

• Project not a product

• Apache 2 license

Tuesday, January 22, 13

Page 24: Chef 11 Preview/Chef for OpenStack

Chef for OpenStack: What

• Chef Repository for Deploying OpenStack

• Documentation for Chef for OpenStack

• Cookbooks• Keystone

• Glance

• Nova

• Horizon

• Swift

• Quantum

• Cinder

• knife-openstackTuesday, January 22, 13

Page 25: Chef 11 Preview/Chef for OpenStack

Chef for OpenStack: Where

• groups.google.com/group/opscode-chef-openstack

• #openstack-chef on irc.freenode.net

• github.com/opscode/openstack-chef-repo

• github.com/mattray/openstack-chef-docs

• github.com/opscode-cookbooks/

• keystone, glance, nova, horizon, swift,quantum,cinder

• github.com/opscode/knife-openstack

• @chefopenstack

Tuesday, January 22, 13

Page 26: Chef 11 Preview/Chef for OpenStack

• Chef repo for Essex (2012.1.1 tag)

• Operating Systems (Ubuntu 12.04)

• Hypervisors (KVM, LXC)

• Databases (MySQL)

• FlatDHCP & VLAN networking

• manual floating IPs documented

• Test Kitchen integration

Chef for OpenStack: When (Today)

Tuesday, January 22, 13

Page 27: Chef 11 Preview/Chef for OpenStack

Chef for OpenStack: When (Tomorrow)

• Documentation (docs.opscode.com)

• Folsom is under active development

• AT&T, DreamHost and Rackspace have active branches

• Move to openstack-common

• Cinder (lvm, Netapp)

• Quantum (Nicira with Open vSwitch)

Tuesday, January 22, 13

Page 28: Chef 11 Preview/Chef for OpenStack

• Documentation (docs.opscode.com)

• Continuous Integration testing

• Grizzly & trunk(!?)

• Cinder (Ceph)

• Quantum (Midokura)

• Hypervisors (Hyper-V, bare metal)

• Databases (PostgreSQL)

• Operating Systems (RHEL, Debian, SUSE)

• HA Configurations

Chef for OpenStack When: (Roadmap)

Tuesday, January 22, 13

Page 29: Chef 11 Preview/Chef for OpenStack

github.com/mattray/openstack-chef-docsmoving to

github.com/opscode/chef-docs

Chef for OpenStack: How

Tuesday, January 22, 13

Working on a permanent URLHTML, PDF, Epub for your iPad

Page 30: Chef 11 Preview/Chef for OpenStack

Questions?

Boston 1/22/2013

Matt [email protected]

@mattray

Tuesday, January 22, 13

ChefConf 2013 April 2013 "OPSCODE-MEETUP"Metarepo and CI work