This is part 3 of 6 in a series discussing the principles behind the “ready state” and other concepts implemented in OpenCrowbar. The content is reposted from the OpenCrowbar docs repo.
Ops Late Binding
In terms of computer science languages, late binding describes a class of 4th generation languages that do not require programmers to know all the details of the information they will store until the data is actually stored. Historically, computers required very exact and prescriptive data models, but later generation languages embraced a more flexible binding.
Ops is fluid and situational.
Many DevOps tooling leverages eventual consistency to create stable deployments. This iterative approach assumes that repeated attempts of executing the same idempotent scripts do deliver this result; however, they are do not deliver predictable upgrades in situations where there are circular dependencies to resolve.
It’s not realistic to predict the exact configuration of a system in advance –
- the operational requirements recursively impact how the infrastructure is configured
- ops environments must be highly dynamic
- resilience requires configurations to be change tolerant
Even more complex upgrade where the steps cannot be determined in advanced because the specifics of the deployment direct the upgrade.
Late Binding is a foundational topic for Crowbar that we’ve been talking about since mid-2012. I believe that it’s an essential operational consideration to handle resiliency and upgrades. We’ve baked it deeply into OpenCrowbar design.
Continue Reading > post 4
Pingback: OpenCrowbar Design Principles: The Ops Challenge [Series 2 of 6] | Rob Hirschfeld