Let’s try to make some more or less reasonable guesses about the possible AI implications on the tech sector, more specifically on DevOps.
People Mentioned
As Artificial Intelligence (AI) technology continues to advance, many people become aware that this might affect their jobs. In a survey published last year by the Organisation for Economic Co-operation and Development (OECD), three out of five workers said they feared they could lose their job to AI over the next 10 years. The survey covered 5,300 workers in 2,000 firms in manufacturing and finance across seven OECD countries. In a more recent study, the 2023 Employment Outlook, the OECD stated that up to 27% of the jobs in 38 member countries could be at high risk as they rely on skills that could be easily automated in the coming AI revolution. OECD experts note that there is little evidence of the AI impact on jobs at the moment, but it may be because the technology is still in its early development stage. Once it gets mature, change may happen really fast, as was the case with the introduction of personal computers and the Internet. Let’s try to make some more or less reasonable guesses about the possible AI implications on the tech sector, more specifically on DevOps.
AI versus Dev
Different rankings of the most “AI-vulnerable” jobs have been a buzz lately. Many of them (like , for instance) place software engineers and developers on top as one of the most “risky” professions. Indeed, AI tools, especially the latest ChatGPT 4, have demonstrated some success in writing code. There have been that ChatGPT creator, Open AI, has been working intensively to enhance features enabling automated code generation and possibly reinvent the basics of software development. Moreover, recent experiments that ChatGPT can actually pass a Google coding interview for Level 3 Engineer, a position with a $183K annual salary.
Just in case you are not aware of Google Dev hierarchy, it ranges from Level 2 to Level 11. While L2 and L3 are considered entry-level positions, higher-grade L9 software engineers are notably scarce. So, on the one hand, it is clear that AI can complete some basic coding tasks. But on the other hand, is it correct to state that the entire profession is in danger? Not exactly so, because this notion doesn't hold true across the board. Intermediate and high-profile developers are not as easily replaceable. Why, you might ask? Well, ChatGPT, for all its capabilities, remains incapable of resolving novel issues or addressing problems that were not encountered before. The challenges that advanced developers confront are perpetually open-ended, necessitating critical and profound deliberation. In essence, while ChatGPT might be akin to a Stanford student armed with knowledge across 16 units, each representing a different field, it still lacks the intrinsic human intuition crucial for tackling intricate development conundrums.
So let’s sum things up:
AI is incapable of handling intricate problems.
Developers consistently encounter real-world open-ended questions and challenges.
AI lacks the depth of thought exhibited by professional engineers.
AI is deficient in critical thinking capabilities.
AI struggles to engage in real-world collaboration and communication across various departments and teams. Soft skills, like communication and interpersonal skills, leadership, problem solving, forging and maintaining work ethic, time management, teamwork – all these are called ‘people skills’ for a good reason. No AI can master that at the moment.
AI versus Ops
So, we seem to be done with the Dev part: while it is theoretically possible to replace some of the most basic coding with AI, higher levels of human expertise still hold their ground and will probably do so for an indefinite period of time. In fact, AI can come as an aid to human Dev engineers saving them time just as computers and specialised software aids accountants, managers and people of many other professions compared to the old paper era. But DevOps consists of two sides: Dev + Ops. What about the Ops part?
In a classical definition, Ops specialists typically work closer to particular industry applications and/or IT infrastructure. Their work involves repairs and upgrades to hardware, coordination with other departments to fine-tune the IT infrastructure. Operations engineers interact with computer and software engineers, quality control specialists, and others to increase efficiency and establish best practices. They can train managers and other personnel. They identify operational priorities by assessing operational objectives and determine project objectives, including energy, time, and cost saving. It is also important to keep in mind that IT operations within the context of DevOps are not the same as the traditional IT Ops. In DevOps, there is no traditional Ops role per se, so both Dev and Site Reliability Engineers (SRE) may share operational responsibilities. With this trend emerging, DevOps specialists became highly skilled in performing operational tasks employing new tools and procedures like Continuous Integration/Continuous Delivery (CI/CD) that traditional Ops did not use. We will speak more about that in the next chapter.
In theory, with the current level of diagnostic hardware and software employed by modern industrial machinery and tech infrastructure, AI could analyse the data and suggest (maybe even perform) some minor adjustments. But as we go up the expertise ladder, we encounter the same situation as with Dev. At its current state, AI stumbles upon complex problems, questions that require non-conventional solutions and, most of all, defining business objectives and priorities.
AI versus DevOps
As we see, Dev and Ops perspectives in times of an AI revolution look rather similar, differing maybe just in expertise scale. Dev, especially high-level Dev, is not easily replaceable, whereas Ops can be relatively easier to replace when compared to similar level of Dev. Now let us come to the most interesting part, the DevOps. Initially, there was little to no intersection between Dev and Ops work. DevOps is a rather young definition, although the role itself appeared quite a while ago. It combines these two different work types under a common goal: ensuring quality and stable work of tech tools in all possible practical applications. In fact, DevOps is a set of practices, tools, and a cultural philosophy that enables automating and integrating the processes of software development and IT teams. It emphasises team empowerment, cross-team communication and collaboration, and technology automation.
When discussing DevOps, it is essential to mention the concept of CI/CD, which stands for Continuous Integration and Continuous Delivery/Continuous Deployment. This concept is an integral part of the entire DevOps lifecycle with a special emphasis on the CD part, of course. You may often come across CI/CD tools in the context of DevOps, as DevOps professionals regularly work with these tools and associated processes and mechanisms.
Leveraging CI/CD tools helps efficiently develop large and complex projects, a huge step up from simpler procedures used for smaller projects in the past. Earlier, operations work was relatively straightforward, and developers could focus solely on their code without a need for extensive IT knowledge. However, as projects became bigger and more complex, DevOps have become an all-encompassing role. In order to perform effectively, a true DevOps professional should actually know everything.
How CI/CD works in China
A classic combination for building a CI/CD process is Gitlab + Jenkins. Jenkins is an open-source tool for automating CI/CD, while GitLab is an online code repository software based on Git. With GitLab, you can create a repository similar to the well known GitHub, which is currently the world's largest code hosting platform. It facilitates communication and learning among programmers. Just as GitHub, GitLab provides a platform for sharing open-source projects and serves as centralised cloud storage for development teams to store, share, publish, and collaborate on projects. However, being based on the same git core, GitLab is different as it offers a comprehensive management interface and permission control. Also, GitLab is a better choice when code privacy is important. So GitLab is the first and best choice for enterprise level and it is commonly used to set up Git servers within internal networks of companies, schools, and other organisations.
In China, connection to Github and Gitlab may be slow, or sometimes these platforms may be unreachable altogether. For this reason, China’s open-source community, OSChina, developed its own project management, code hosting server and code repository, known as Gitee. It is open-source, free and generally similar to GitHub. It is best to use in China for self-education or managing small projects. Otherwise, you may have to independently build a GitHub/GitLab-type infrastructure and maintain it by yourself.
This is just a small illustration for you of an idea why DevOps can successfully manage such complex and enormous projects.
The DevOps movement began around 2007 when the software development and IT operations communities raised concerns about the traditional software development model, where developers who wrote code worked apart from operations who deployed and supported the code. The term DevOps reflects the process of integrating these disciplines into one, continuous process. DevOps is the combination of cultural philosophies, practices, and tools that increases an organisation’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organisations using the traditional ways of divided software development and infrastructure management processes. This speed enables organisations to better serve their customers and compete more effectively in the market.
According to a company, a DevOps engineer is an “IT generalist who should have a wide-ranging knowledge of both development and operations, including coding, infrastructure management, system administration, and DevOps toolchains. DevOps engineers should also possess interpersonal skills since they work across company silos to create a more collaborative environment”.
A mature DevOps engineer should possess these 9 major skills:
Communication and collaboration
System administration
Experience with DevOps tools
Configuration management
Containers and container orchestration
Continuous integration and continuous deployment
System architecture and provisioning
Familiarity with coding and scripting
Collaborative management skills
So, we have seen that Dev and Ops separately can theoretically be replaced by AI, but only at the lower end of the expertise spectrum. But DevOps engineers are by definition more high-profile specialists. What’s more, they must possess interdisciplinary knowledge and also soft skills to bring people together and find the most effective solutions. As AI advances, its ability to cope with higher and higher levels of human technical expertise can be discussed. But when it comes to interpersonal communication, AI is of no help at all.
DevOps plus AI
Sometimes I think that the entire AI discussion of today has gone the wrong way of hype and clickbait. Instead of talking of “robots replacing humans”, just like the 19th century luddites, we should probably envision a future, where AI, like industrial machinery, computers and the Internet can aid humans, increase productivity and contribute to creating new jobs and professions rather than just eliminating old ones. An example of a new role born with the help of AI is MLOps, which basically stands for Machine Learning + DevOps. It is a new field dedicated to building the same repeatable and reliable product life cycles as conventional DevOps does, but specialised in machine learning. Compared with DevOps, MLOps promises to be a field with a and creativity since retraining and readjusting the learning models lies at its very basis.
Another benefit of AI for DevOps (and basically the entire tech community) is the opportunity to leave the relatively easy, but bulky and boring routine work (like simple coding) to machines. Instead, human engineers could focus on more advanced and intricate architectural aspects. Finally, as we have seen, enhancing communication is crucial within the scope of DevOps work. AI can reinvent the way this work is done by transforming complex code or requirements into easily comprehensible images, diagrams, videos, or 3D presentations, facilitating effective communication with other teams, particularly with non-technical individuals and customers. No matter how vividly you describe something to the customer, it can't compare to showing them a 3D model, especially when this is done almost instantly.
Last, but not least (and maybe most importantly), as DevOps engineers extend their knowledge of ML and other AI technology, it will further expand their scope and will make them even more difficult to replace. After all, lifelong learning is what a DevOps profession is about. And this will probably keep it some steps ahead of artificial intelligence.
Further reading:
TopAI website – You could find all AI tools in the market.
For developers: the best AI tools are Alpha Code and Github Copilot.