DevOps Pipeline and Configuration Management
- Once the Developer commits the code to the VCS, the build system picks the code and generates the software package.

- We need to take this software package and then create the Test Environments

- In Enterprise:
- Lot of developers will be committing the code and then we need make lot of software deployments in the servers before we go for the live environment
- We need to deploy the package into various environments
- Environment for System Tests
- Environment for Performance Tests
- Environment for UAT
- Live/Production Environment
- To Summarize:
- We need to do this activity of deploying and configuring application repetitively
- Manual deployments are ruled out
Possible Solutions for automating deployments
- Solution 1: Write a Shell/PowerShell Script to deploy and configure the application
- The effectiveness of the script largely depends on the developer
- Shell Scripts are not readable
- It becomes difficult to handle changes and maintaining the solution
- Making the script work on different Linux Distributions is slightly complex
- Solution 2: Configuration Management (CM)
- In Shell Scripts, we script on the basic philosophy
How to dobut CM works on philosophyWhat has to be donei.e. we specify a desired state.
- In Shell Scripts, we script on the basic philosophy
Configuration Management
- An effective configuration management solution can benefit your environment in a number of ways including
- Saving Time
- Improving Availability
- Improve Control
- Allow us to Do more with Less
- Configuration Management Architectures

- Ansible, Salt uses Push Based CM
- Chef, Puppet follows the Pull Based CM
PULL BASED CM
- In Pull based CM for the nodes to communicate with the CM server, there will be a software agent (chef agent, puppet agent) which will trigger the communication from node to CM Server
- DevOps/IT Engineers need to express the desired state in the supported format by the CM Server and upload the configurations to the server
- So lets learn about how to write the configurations in Chef and upload them to the chef CM Server and make that configuration work on some node.
Exercise
- Create an account in manage.chef.io Refer Here
- Create an Azure free tier account Refer Here
- Refer Here to create AWS account
- Install necessary software’s on your system Refer Here
- Installing Windows Terminal Refer Here
