Is Chef Ready for the Enterprise?
During last month’s first Chef conference in San Francisco, Chris Brown, Opscode CTO, presented the “state of the union” regarding the future of Chef, claiming that the known infrastructure management tool is now ready to use in complex enterprise environments running on heterogeneous platforms.
User management integration with Windows Active Directory, native installation packages for non-Linux platforms (multiple AIX and Solaris versions) and MySQL/PostgreSQL as datastore are some of the new features announced by Opscode to promote Private Chef as an enterprise-ready tool for managing complex infrastructures.
The move from CouchDB to MySQL and PostgreSQL was justified by performance issues due to high frequency of read/write operations on the DB. But the lack of familiarity with NoSQL in many enterprise ops teams also contributed to the migration.
Native package installers will deploy an “embedded” environment in the Chef installation which isolates Chef’s software dependencies from the remaining system dependencies, thus solving typical problems such as requiring a specific Ruby to run Chef and also making life easier for Opscode support team (Chef will run with same environment either in private infrastructure or on the cloud).
Other features announced during the talk refer to reporting and use of (non-Ruby) scripts:
· “why-runs” (a dry-run reporting desired vs. current state of the infrastructure and actions required to merge the gap between them)
· simplified output (actions taken and updates to the system, fatal error and minimal reporting)
· legacy scripts can be included in cookbooks and versioned as resources
· partial searches for nodes in the infrastructure (by single-attribute values)
At InfoQ we are interested to know what other enterprise issues you think are blocking adoption of DevOps at technical level?
“why-runs” is a great feature, but undo feature is also useful
when a recipe is removed from the node's run_list(e.g. a role is removed from node's role list or a recipe is removed from a role's run_list), chef-client is able to detect the change between node's new run_list and last ran run_list, and undo the changes made by the removed recipe(e.g. stop services and remove packages/files installed by the removed recipe).
Please see more details on tickets.opscode.com/browse/CHEF-3502