官术网_书友最值得收藏!

Push and pull modes

First and foremost, you must understand how DSC gets the information required to configure a target node from the place it's currently stored to the target node. This may sound counter-intuitive; you may be thinking we should be covering syntax or the different file formats in use first. Before we get to where we're going, we have to know how we are getting there.

The more established CM products available on the market have coalesced into two approaches: push and pull. Push and pull refer to the directions and methods used to move information from the place where it is stored to the target nodes. It also describes the direction commands being sent to or received by the target nodes.

Most CM products primarily use the pull method, which means they rely on agents to schedule, distribute, and rectify configurations on target nodes but have a central server that holds configuration information and data. The server maintains the current state of all the target nodes, while the agent periodically executes configuration runs on the target nodes. This is a simplistic but effective approach, as it enables several highly important features. Because the server has the state of every machine, a query-able record of all servers exists that a user can utilize.

At any one point in time, you can see the state of your entire infrastructure at a glance or in granular detail. Configuration runs can be executed on demand against a set of nodes or all nodes. Other popular management products that use this model are Puppet and Chef.

Other CM products primarily use the push method, where a single workstation or user calls the agent directly. The user is solely responsible for scheduling executions and resolving all dependencies that the agent needs. It's a loose but flexible network as it allows the agents to operate even if there isn't a central server to report the status to. This is called a master-less deployment, in that there isn't anything keeping track of things. An example of management products that use this model is Ansible.

The benefit of this model largely depends on your specific use cases. Some environments need granularity in scheduling and a high level of control over how and when agents perform actions, so they benefit highly from the push model. They choose when to check for drift and when to correct drift on a server-to-server basis or an entire environment. Common uses for this approach are test and QA environments, where software configurations change frequently and there is a high expectation of customization.

Other environments are less concerned with low-level customization and control and are more focused on ensuring a common state for a large environment (thousands and thousands of servers). Scheduling and controlling each individual server among thousands is less important than knowing that eventually, all servers will be in the same state no matter how new or old they are. These environments want a new server quickly that conforms to an exacting specification without human intervention, so new servers are automatically pointed to a pull server for a configuration assignment.

Both DSC and other management products, such as Puppet and Chef, can operate with and without a central server. Products such as Ansible support are only a push method of agent management. Choosing which product to use is more a choice of which approach fits your environment best rather than which product is best.

主站蜘蛛池模板: 侯马市| 阿拉尔市| 郁南县| 福鼎市| 墨江| 河曲县| 岳池县| 尼木县| 托里县| 垦利县| 丹江口市| 沈丘县| 遂平县| 阳朔县| 韶关市| 沁阳市| 宁津县| 金寨县| 蕉岭县| 潢川县| 长汀县| 五河县| 张家口市| 马边| 吴堡县| 石嘴山市| 铜梁县| 舞钢市| 阿巴嘎旗| 墨脱县| 两当县| 夏津县| 新源县| 信宜市| 景谷| 凤凰县| 搜索| 肇州县| 花垣县| 离岛区| 宿松县|