Story of an Enterprise
- This is a story of a ficticious IT Enterprise LearningThoughts which is developing an HRMS application
- The architecture of the application is as follows

- Dev Team is working on building new features across all the server components
- The basic idea is to deploy the application into servers everyday at 11:00 PM and start running automated tests. This will give confidence to testing team to work on new version.
- Every weekend we need to create an environment and deploy the work of the complete week run the whole tests and make this version available for demo & customer usage (beta)
- So, this organization is looking out for a solution to handle deployments (daily, weekly) effectively
- Lets explore different options
- Manual Deployments: This is not a sensible option is it time taking and there is chance of human error
- Deployment using Shell/Bash scripts:
- Better than manual
- Shell scripts are not readable & maintable
- Writing a script which when executed n times gives the same result is challenging.
- Scripting is a procedural approach (We need to tell what & how it has to be done)
- Configuration Management:
- We use the declarative approach (We specify what has to be done/what we want)
- When we use CM the script is readable.
- When we run CM n times we always get the same result (idempotence)

Configuration Management
- Basic Models of Configuration Management (PULL vs PUSH)

- Push based CM needs node information such as Hostnames/ip addresses and credentials to login

- Pull based CM needs node to install agents which are responsible for communication

Exercise
- Watch 1-7 videos of DevOps Essentials Refer Here
- Linux class room videos Refer Here
- System Setup for DevOps on your system (Windows): Refer Here
- For Windows 10/11 users setup Windows Terminal Refer Here
