- Learning PowerShell DSC(Second Edition)
- James Pogran
- 575字
- 2021-07-02 18:31:24
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.
- GAE編程指南
- Mastering AWS Lambda
- Visual Basic 6.0程序設計計算機組裝與維修
- Python for Secret Agents:Volume II
- Apache Spark 2.x Machine Learning Cookbook
- INSTANT CakePHP Starter
- Troubleshooting PostgreSQL
- UI設計全書(全彩)
- Modern C++ Programming Cookbook
- Learning iOS Security
- 創意UI Photoshop玩轉移動UI設計
- 數據分析與挖掘算法:Python實戰
- TypeScript圖形渲染實戰:2D架構設計與實現
- SQL Server 2012 數據庫應用教程(第3版)
- Python面試通關寶典