There are numerous definitions of coding ranging from developing entire applications in Java or C++ to scripting in PowerShell to editing YAML configuration files. But people rarely believe that any of these is an essential skill for the operations teams.
Panelists at the recent Cloud Field Day event anticipated during the Delegate Roundtable conversation that soon artificial intelligence (AI) would take over coding, making the primary skill, the ability to articulate requirements to AI. They acquired their understanding by working with physical hardware before virtualization, followed by writing infrastructure automation. However, they do not think newer or future IT professionals will take the same route.
Eric Wright, chief content officer at GMT Delta, who spoke of his experience writing his first infrastructure code, said, “Writing that code taught me to think differently about the problem.”
The fundamental change in approach usually moves to a declarative approach: Writing a file describing how a system should be configured and using a software tool such as Ansible to ‘make it so.’ The description is usually a configuration file written in a specific format for the tool; Ansible uses YAML-formatted text files. When we must change the system with a declarative approach, we change the description and use the software tool to ‘make it so’ again. The description becomes the source of truth, and these descriptions are stored in a source control repository, the same way that the application’s source files are maintained. The prior approach was imperative, where a series of instructions are written to achieve a state rather than describing the state.
Eric and I both had experience with physical servers before virtualization and moved on to cloud infrastructure as that trend emerged. Our experience of these changes shaped how we view current technologies and innovations. There were no declarative tools for deploying a rack full of physical servers or upgrading to a new version of Windows. Declarative tools were new, and we learnt to use them.
More recently, many people entering the IT workforce have probably started with declarative tools and authoring configurations under version management for deploying onto public cloud platforms. These professionals do not need to understand server hardware assembly or rack cabling as they consume resources through software. The rites of passage for my generation of infrastructure and operations professionals are as irrelevant to them as my father’s mini-computer experience of the 1980s is to me.
But coming back to whether coding is required or if AI tools are good enough to create these declarative source files, the consensus was that the current generative AI tools such as ChatGPT-4 require careful prompting to produce usable configurations. Jon Myer, content creator and podcaster, asked ChatGPT to create an AWS CloudFormation template for a simple three-tier application. The resulting template was well-formatted but incomplete. He had to add more instructions for it to provide a usable template. The time and effort required for prompt engineering were nearly the same as those required for manually writing the template.
Other panel members had similar experiences of needing to know how to describe requirements in detail before ChatGPT could create a usable template.
Technical educator Ned Belevance described a near future when generative AI tools would improve and more abstract descriptions would suffice: “Deploy a website for me” is a more abstract prompt and removes the need to code. The real abstraction is when the prompt is a business requirement: “Build me a system to increase sales of my widgets in Japan by 30% within six months.”
As Eric advised, for our generation of professionals learning source management and writing infrastructure as code (IaC) is valid, but the current and next generations of IT professionals begin their careers with coding. They are adopting AI as a core part of their toolkit. None of us expect to be replaced by AI, but we are all at risk of being replaced by someone who knows how to use AI to be more efficient. Maybe, after all, we should be learning to AI or die.