Ansible for AIX: Developing for an Open-source Collection to Modernize an Operating System’s Offerings; Low-Code’s effects as Abstraction and Automation

Author:
Taylor, Richard, School of Engineering and Applied Science, University of Virginia
Advisors:
Morrison, Briana, University of Virginia
Wayland, Kent, University of Virginia
Abstract:

A business, individual, or organization’s ability to quickly create the most efficient solutions to problems is the key to their success. In the modern world, software has been providing these solutions, from simplifying how complex systems are used and controlled to automation of tasks previously done manually by humans. However, there are barriers to the development of software, leaving almost all development being done by in-house IT departments or contracted out to software-specific companies, making application development time-consuming and expensive. This is the driver for one of the newest innovations in software engineering: Low-Code. Low-Code development allows for those with far less experience, to no experience at all, develop and integrate applications for their own need, resulting in a new class of “Citizen Developers”, who work in different fields than traditional software developers, and develop their own custom applications and tools. Such tools allow for specific applications and software artifacts to be created more efficiently, and eliminates much of the ambiguity created when non-technical users must describe their desired product to outside developers. This portfolio includes two reports on revolving around how Low-Code and other automation techniques are affecting the development and use of software. The technical report describes the development for and use of Ansible, an IT automation tool, as a method to modernize the offerings of IBM’s AIX operating system. The research report explores how the advent of Low-Code will affect the overall field of software development, the traditional Software Developer, and the values that are desired in a “good programmer” through the analysis of Low-Code as both an advancement in abstraction of software detail and knowledge, and as a more complex form of “high-skill automation” that is spreading to other, previously un-automatable fields.
Automation of various computer and system administration tasks is quickly becoming one of the most valued developments in the IT world. IBM found that customers utilizing their operating system AIX desired more modern tools to allow for this type of automation, making routine tasks and controlling AIX machines easier and more efficient. A team of developers was tasked with creating and maintaining an Open-Source collection of Ansible modules to support automation of AIX processes, including my task of creating modules for managing encryption settings of storage device partitions. To develop these encryption modules, I gathered information about the features of the AIX commands that needed to be automated and followed a template of the structure of other modules in the collection to construct two modules that allow users to automate various encryption processes and settings. In addition, I created an extensive test suite to ensure the modules’ functionalities prior to every new deployment of the collection. These modules afforded AIX users increased efficiency in handling encryption tasks and modernized the way AIX could be controlled.
Market forecasts and analysts have predicted that the large-scale adoption of Low-Code platforms as the solution to creating software more efficiently will continue in the future, leading to more and more developments of the technology. Analyzing the changes to the role and values of the software developer answers the question of how the further adoption of low-code may be a way to advance the ability to automate a technical, high-skill field, addressing how the software developer and new, citizen developer will be affected by these changes in the near future. Many other fields have recently experienced the advent of ‘high-skill automation’, with research showing that new technologies can further what will be able to be automated, including software development. Low-code platforms, however, are primarily seen as more of a democratization of the ability to create software, rather than a new ability to automate its creation. With this, most technical professionals believe it to be more akin to former abstraction of detail that has been seen throughout the history of Software Development as a profession. Citizen Developers using Low-Code, in its current state, are still unable to create complex, advance systems that traditional developers can, which rely on greater understanding of how software components work together, and require technical knowledge to understand the code written when issue arise, a major limitation that Low-Code platforms cannot address. Low-Code instead acts as a further abstraction from the low-level knowledge and detail previously required to create and control software. This will shift the values of the software developer, allowing for more efficient development as less time must be devoted to low-level detail, in the same was that past abstraction of this detail has.
Overall, this portfolio addresses questions arising as new technology changes the way we create software. I successfully utilized and advanced automation in the control of software and computer systems with the development of Ansible modules, and experienced how modern automation tools greatly increase efficiency of older software products, learning more about how simple tasks can be programmatically made more efficient. Research into the effects Low-Code platforms will have on the field of Software Development was affective in better understanding the capabilities and limitations that the platforms offer, as well as how they relate to the future of the software developer. Future research into how Low-Code, Citizen Developers, and Traditional Developers will interact in the future should attempt to better understand what kind of software tools and artifacts Citizen developers are creating with Low-Code, and how current Low-Code platforms should continue to advance, whether focusing on expanding the ability to different kinds of software or becoming more of a tool for complete automation of the tasks their users complete now.

Degree:
BS (Bachelor of Science)
Notes:

School of Engineering and Applied Science
Bachelor of Science in Computer Science
Technical Advisor: Brianna Morrison
STS Advisor: Kent Wayland

Language:
English
Rights:
All rights reserved (no additional license for public reuse)
Issued Date:
2023/05/13