When starting out in automating processes and functions in infrastructure management and software deployment, typically much time is spent in putting the nuts and bolts of the system together through declarative commands from such tools as Ansible or Terraform.
Once typical patterns have been encountered and documented, an additional level of abstraction can be used to manage the intent of these deployments. Rather than building single-purpose scripts to handle individual elements, these purpose built patterns can be aggregated (like subroutines) to start to assemble and configure multiple integrated components of infrastructure.
These assemblies can then be used to ensure that test scenarios are consistent across pre-prod environments such as development, quality assurance, performance optimization and on into production.
High level abstraction designs become the defacto documentation for how something is built.
Network Automation Is More than Just Ansible
Start at the Beginning-Automating Network Design: Claudia de Luna’s AutoCon3 Opening Keynote Summary