3 ms·
I'm involved with a project that is built out using colocation space in a traditional datacenter, running on VMware Vsphere. Up to now, they've been doing this
by gregmac 4y ago
I'm involved with a project that is built out using colocation space in a traditional datacenter, running on VMware Vsphere. Up to now, they've been doing this very manually: customers assigned to specific, named servers; servers provisioned manually (largely scripted, but not automated); networking configured manually; etc. Worse, they have two deployments in different regions of the world, but they're managed mostly by separate teams and there's a lot of implementation details that are very different. I come from an AWS infrastructure-as-code world, and it's shocking how primitive this stuff all feels.
They had considered switching to AWS or Azure in the past, but ultimately deccided to stay on this setup for cost reasons, and frankly I don't think anyone understood the benefits of infrastructure-as-code let alone taking advantage of all the other thing in the cloud providers.
I came in to help modernize it. Just as we were getting going with some Terraform-based proof-of-concept, a couple things happened: some sales opportunities came up that would require running in another region, and there were some harder questions on the disaster recovery plan (eg: "what happens if the datacenter burns down?"). The company doesn't want to invest in building out another traditional datacenter, let alone redundant ones, so we took this opportunity to discuss shifting this project over to AWS or Azure.
Once built with infrastructure-as-code on the cloud providers a bunch of these problems just disappear, even without making the app itself "cloud-native". Having a dev environment that mirrors production is easy. Having multiple multi-tenant environments in different regions -- and adding new regions -- is also easy. Recovering from a major disaster would also be relatively painless, provided you have a good backup strategy (deploy to new region, restore backups).