# Infrastructure as Code Manage configurations by either using containers everywhere or with configuration management systems like Puppet, Chef, CFEngine, Ansible... Configure everything through definition files (Puppet manifests, dockerfiles...) Use IaC as source of truth (primary documentation) Use a VCS for everything -> easily see history, revert to specific version, find bugs, collaborate... CI/CD -> actually test your configurations Start small, try automating contents of /etc/motd (risk-free)