What is software-defined infrastructure, and what are its benefits and challenges?
Infrastructure (better known as cloud computing) where bare-metal and virtual compute, storage and network are requested, configured, deployed and managed through software. It brings self-service, consistency and abstraction, but demands careful design, strict access control and cost management.
Instead of racking a server and cabling it, a developer or operator calls an API and the resource appears. That is a natural target for automation, because anything reachable through software can be scripted.
| Benefits | Self-service: platform on demand Tight specification, consistency, repeatability: the same definition gives the same result every time Platform abstraction: you work with "a VM" or "a network", not with specific hardware |
| Challenges | Design, architecture and security of the platform need close attention Access control is critical: a user with the wrong permissions can do great damage to the company's resources Cost control: when resources can be self-served quickly and manually, consumption is hard to manage and costs are hard to calculate |
The challenges are the flip side of the benefits. The same ease that lets a developer create ten VMs in a minute lets a careless or malicious user create a thousand, or delete production. That is why permissions and cost tracking matter far more in the cloud than in a data centre where every server needed a purchase order.
Go deeper:
Software-defined infrastructure — Wikipedia — compute, storage and network managed purely through software.
Cloud computing — Wikipedia — self-service, elasticity and the service models built on it.