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 the major cloud services; it was awful.
Yet on LinkedIn and other internet media, there seems to be a romanticised idea of taking products from the cloud and moving them back to on premises.
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.
The major cloud services such as Azure and AWS give developers a framework in which to work, and they drag you towards best practise. 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 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 did cause.
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, Continous 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 in 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 / Azure, 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.