Information Technology Reference
In-Depth Information
Figure 9-1. Chef Server architecture
Web server
The nginx web server is a simple reverse proxy server that acts as the front-end interface
for Chef Server (Erchef). It also performs load balancing for Chef Server. All requests to
the Chef Server API are routed through the nginx web server.
WebUI
The WebUI is the consumer-facing web application. It is a Ruby on Rails application that
provides a web-guided user interface for interacting with Chef Server.
Chef Server
Erchef is the component of Chef Server that processes API requests. As its name sug-
gests, Chef Server is written in Erlang for high concurrency and reliability. Even though
Chef Server is written in Erlang, it is still capable of running Ruby code. In fact, writing
Erlang Chef recipes is not supported at this writing. Erchef is the core API for Chef Serv-
er.
Bookshelf
The Bookshelf is the central store for all Chef cookbooks and cookbook contents (such as
files, templates, definitions, metadata, and recipes). Each cookbook is automatically
checksummed and versioned. Bookshelf is a flat-file database and is intentionally stored
outside of Chef Server's index.
Search Index
The Search Index is an Apache Solr server that handles the indexing and searching mech-
anism for various API calls, both internally and externally. The server is wrapped by
chef-solr , which exposes a RESTful API.
Message queues
The queues handle all messages that are sent to the Search Index for parsing. The queues
are managed by RabbitMQ, an open source queuing system. chef-expander pulls mes-
sages from the message queues, formats the messages, and then sends the messages to
the Search Index.
Search WWH ::




Custom Search