You can’t open a technology magazine nowadays without seeing some mention of ‘innovation’. And while it’s happening everywhere, it’s most probably in the field of software development that we’re seeing the greatest rate of change. In the old days – and we’re talking only a couple of years – developers would have their local development environment sitting on their machines. Now, developers are more likely to log on to a GitHub repository and then code, and deploy, directly into the cloud.
For example, a developer will program something in, say, Javascript, and the code is then stored in GitHub, which will connect to a service such as frontend platform Vercel, which is just one among many. After it’s been tested or staged, the code can go live, without, as one developer told me, ‘having to do any of the grunt work’. This would involve FTPing files across to a server, which is now thankfully a thing of the past.
It also means the new enterprise hires can get to work immediately. All the tools will be pre-configured in the cloud when they arrive on the first day, and they won’t need to install anything. They’ll click on a link, which will open a repository with all its dependencies and tools. Developers can also work directly in Gitpod, or Github Codespaces.
Karl Fischer, CTO at Obsidian Systems, an open source software company, says that in the past, a developer could wait some time to get their hands on a machine, as long as two months in some cases; you put in an order, it was approved, the machine was ordered, and then it took another month for it be put in the rack and configured.
“Now you can have a new server in seconds, and it can infinitely scale. You want to add an extra core? That will cost a couple more cents. The cloud providers nickel and dime each thing you do with that machine, and that stops when you turn it off.”
Insurance policy
Fischer says developers will always need to provision an environment to test their code. While this used to be done on a local server, they can now provision 10 servers on a cloud provider, and call that ‘test1’, and then repeat the exercise with another environment, which they’ll then compare against one another.
“It’s so easy and you only get the bill at the end of the month.”
But people forget, and ‘they go away for a weekend’.
“We have engineers who will be testing and they’ll provision environments and install additional monitoring software, and then our monitoring bill blows up. They’ll say, `Oh, I accidentally provisioned 100 machines with 100 monitoring agents, and each of those agents costs $29…’ That has happened,” he says.
“They’ll say it was a mistake, but it’s a quarter-of-a-million-rand mistake. We call that skool geld (school fees).”
For a company with very predictable spend, it may make sense to run the workload on its own machines. But as for software development companies in South Africa, with loadshedding, Fischer suggests they ‘make it somebody else’s problem’.
“Running in the cloud is an insurance policy; they worry about the bandwidth and the electricity. You’ll pay for it, but it’s one less thing for a business owner in South Africa to worry about.”
You’ll pay for it, but it’s one less thing for a business owner in South Africa to worry about.
Karl Fisher, Obsidian Systems
He says that cloud compute is now a commodity, and remembers it would take two or three days to set up a server for a customer when he started at Obsidian just over a decade ago.
“Now the same thing takes 10 seconds because of configuration management and cloud provisioning.”
Function-as-a-Service
Developers also don’t need to spin up a machine to run a database; they can just run the database service directly from, for example, Amazon.
“It’s like a buffet; they can choose whatever they want, except with a buffet, you pay one price; here, you get charged a dime for each prawn you put on your plate. All the developer needs to do is work on the glue between the database and the app; they don’t even need to worry about the elastic compute server; they’re just joining multiple services.”
Higher up the cloud stack there’s Function-as-a-Service, which will execute code when triggered, and this is much more efficient that running machine all the time.
Fischer says cloud providers are now bending over backwards to cater for their customers.
“It’s Hotel California. You can almost never leave. They have to make onboarding as simple and as efficient as possible, and then you’ll consume more, and they’ll nickel and dime you for each little bit you use. The easier it is for you to get going, the easier it for you to use the platform. That’s why they focus on the software developers these days.”
He does, however, warn of the short-sighted decision to only use a single cloud, or making software that will only work on one cloud.
As to the future, Fischer thinks emerging AI tools will be able to assist the developer.
He recounts the tale of a recalcitrant developer who’d been instructed to write some complicated automation using Ansible software during the lockdown, and which, as it turned out, was not forthcoming.
“For three months we couldn’t get any code out of him, and then we asked ChatGPT to write it. It came back in three seconds with the answer in the language that we wanted. That’s what’s going to happen, and developers will need to hold onto their pants. Context is king: if I’m a software person who understands computers and I need a particular service, ChatGPT will translate that and will provision something for me. What does the developer need to do?
“Is Bing the only place Microsoft is going to integrate it? In a search engine nobody uses? I’ll tell it that I need a fleet of 50 Linux machines with this configuration...and while it does that, I can make a cup of coffee and sit in another management meeting.”
* This feature was first published in the May edition of ITWeb's Brainstorm magazine.
* Article first published on brainstorm.itweb.co.za
Share