I’ve spent the past few years designing systems that can meet the most rigurous requirements in terms of availability and scalability. And I have the battle scars to prove it.
Once it’s all set up, it’s great. But until you get there, you have to prepare yourself for a death-march of frustration, research and support tickets.
You need to have a lot of expertise about your infrastructure building blocks. You need to know about load balancers and which ones can be active-active and which ones only do active-passive. If you want to be fiscally conservative and use a software based load balancers you need to know that all your nodes have to be in the same subnet, and consequentially you take on a bit of additional risk. You can roll out your own web farm with shared storage, but you have to navigate centralized certificate storage and iSCSI powered volumes or DFS Replication. You can provision your own SQL Server cluster with synchronous replication and readable secondaries, but make sure you block off at least two days in your calendar, and be aware that you’re committing yourself to hosting your own DNS and AD infrastructure. Which also needs to be redundant. But at this point you’re too far down the rabbit hole to even consider going back.
This is worse than owning a car. It’s closer to ordering a bunch of parts, putting the whole thing together, and then servicing it yourself.
Taking an UBER is a distinctly superior model. The IT equivalent of a ride-sharing system is a public cloud Platform-as-a-Service. That allows you to build your software and let a 3rd party vendor run it for you. You just specify how many instances you want, and how large you want them to be. Think t-shits: I’ll take 3 XL’s please! No more IT staff, no more maintenance windows, no more risky software upgrades.
If that’s going too far, then a good intermediate stop is Infrastructure-as-a-Service. This is akin to ZipCar or Pony. Someone else maintains the car, but you still have to drive, park, and fill it up with gas.
Whatever you do, please don’t build your own car!
Silviu Niculita, Head of Technology @Yonder