Configuration Management
- To Understand configuration management lets take an example of a growing application like practo.
- Initially when they start, less resources (hardware) might be enough
- As the users increase we might need more servers to handle the load, so doing the configuration/installation on multiple servers becomes manadatory
- Along with this user increase or traffic increase new features are added to the application and we need to deploy them to servers.
- To handle these kind of variables we need a disciple(or process) that ensures all the software and hardware assets of the application are tracked and any future changes of the assets are also tracked.
How to do Configuration Management (CM)
- Procedural:
- We need to describe CM steps in how it has to done
- Examples: Shell, Powershell Scripting
- Scenario: Creating a file and adding some content to it
touch file.txt echo "some content" >> file.txt
- Declarative:
- We need to describe CM Steps in what has to be done
- Examples: Ansible, Chef
- Scripts are written to maintain state
- Scenario: Creating a file and adding some content to it
Ensure a file called as file.txt is present with "some content"
Configuration Management Architecture
-
There are two kinds of Servers
- Configuration Management Servers:
- They are responsible for ensuring the configuration on nodes
- Change history is maintained over here
- Nodes:
- These are the servers where the configurations/deployments/installations have to be done
- These are the servers where the configurations/deployments/installations have to be done
- Configuration Management Servers:
-
In CM We have two popular architectures
- PULL:
- Nodes will communicate with CM Server to understand what has to be executed
- In this mode nodes will have an agent installed and this agent is responisble for communication with CM Server.
- PUSH
- CM Server will communicate with Node to inform what has to be execute
- CM Server will login into the node and execute configuration, so credentials have to be maintained
- PULL:
Work to be done
- Create an Hosted Chef Account over here
- Create an AWS/Azure Account Account Refer Video Content section