Infrastructure as a Service^WBy-product
Quoting wikipedia:
Infrastructure as a service (IaaS) refers to online services that provide high-level APIs used to dereference various low-level details of underlying network infrastructure like physical computing resources, location, data partitioning, scaling, security, backup etc.
IaaS is a game changer. No question. Near-instant provisioning of infrastructure has fundamentally changed how things are done… but I don’t want to keep talking about it. Sure, it need to be there, but if you’re still actually interacting with your IaaS, you’re missing the point.
Infrastructure should be a by-product. Your applications should specify at a high level what they need in terms of connectivity, external services, etc. Some of those things will translate into backend calls to your IaaS, but if you’re still thinking about infrastructure (physical or virtual), you’re doing it wrong.
My favorite analogy is lawn mowers. If you’re still dealing with on-prem, physical infrastucture, you’re using an old-school, non-motorized push lawn mower like this:
If you’ve moved to virtual infrastructure, you’ve upgraded to this:
You still have to push it around, making all the same decisions as before (like avoiding obstacles), and MORE! You have an extra layer of complexity now. You need to add fuel, change the oil sometimes, etc. There’s less effort total on your part, but you haven’t really changed anything about your workflow.
Moving all your virtual machines to the cloud gives you this:
Much faster. You don’t even have to push anything. You can mow a much bigger lawn in the same amount of time. But you’re still at the wheel.
What you should be aiming for is this:
As long as its charging station is working, it just its own thing. You are free to worry about actually productive things.
If, during the course of building or even deploying your application, you have to think about infrastructure, you’re almost certainly wasting time. You’re still pushing your lawn mower around. Stop it.