Humans possess a remarkable ability to nostalgically reminisce about dark times as if they were the best of times.
I remember a time before cloud computing. I remember having to manually spin up and configure servers, maintain and support them myself, with only google as an aid. I remember the cognitive load it put upon me, I remember the burden of responsibility. I remember cobbling together deployment processes and build processes when I was woefully ill-equipped to do so. I remember out-of-hours calls when the servers went down under high load, and I remember staying up all night after servers had been hacked.
I remember a time before cloud computing; it was sh*t.
Yet on LinkedIn and other internet media, there seems to be a romanticized idea of taking products from the cloud and moving them back on-premises. As well as just moving away from AWS & Azure in general.
The disingenuous promise usually goes something like this...
“We save thousands and so can you”
And I will concede, that at a certain size, and in specific edge cases, taking cloud infrastructure back on premises may be the right thing to do. But for the majority of small business owners; it is not, it would, in fact, be a really daft thing to do.
Cloud services such as Azure and AWS give developers a framework in which to work, and they drag you toward best practices. These services are built upon the knowledge, and the suffering, of all the developers who came before. It is unfortunate that we have come so far from those times, that some people either don’t know about them or have forgotten how much they stung.
I have live client environments in AWS that have not gone down in six years; six years! Back in the day, we would be lucky to go six weeks, let alone six months, without a major server outage, and oh the stress it caused.
When people look at a large AWS bill, they are quick to forget all the other money these services continue to save them indirectly in dev hours, uptime, staff retention, and onboarding.
The DevOps movement, Continuous integration, and continuous delivery. These things have changed the way we code and scale products.
While cloud services can’t claim sole responsibility for inventing these things, they did put these technologies within reach of everyone. If your staff cannot emulate the quality of the services and workflows provided by the major cloud operators, you are putting yourself at a competitive disadvantage to those who are still using the services. While many developers may think they know better than AWS, I would suggest very few actually do.
For most (not all), to move from the cloud to on-premises, or just to generally move away from the major cloud service providers, is to put yourself at a competitive disadvantage. It might save you some money in the short term but will cost you more in the long run.
Also published here.