In today’s digital-first world, the demand for skilled developers and IT professionals has never been higher. A recent study by Korn Ferry found that by 2030, more than 85 million jobs could go unfilled because of a lack of skilled labor.
Low code poses an interesting question: Can technology be used to replace tech talent? If the keyboard could replace handwriting, then why not use GUI-based platforms to replace the need to learn code?
Historically, “low-code solutions” has been primary used to describe technology platforms that enabled non-technical uses to create new applications without knowing how to code. Used this way, low code is more core to the theories of agile than DevOps. Where agile strives to accelerate the delivery of business value via applications, the focus of DevOps is on the delivery and maintenance of an application once it is built.
If low-code app development platforms are used by non-IT personnel, how are low-code solutions used within DevOps by IT professionals?
For many hard-core DevOps practioners the concept of low code is a DevOps anti-pattern. DevOps may have started as a cultural evolution in the way Development and Operations team work together, but today it has evolved into world of automated pipelines and integrated toolchains.
Code is used as the common language enabling DevOps teams to use the same tools and practices to deliver and maintain a vast sea of applications and technologies. DevOps teams use code to bring the same level of agility found in dev teams building apps to the ops teams responsible for delivering and maintaining infrastructure and applications.
To understand how low-code solutions are being used by DevOps teams, we need to expand our thinking and look at how the principles of low code can be applied to “code-based” solutions to make them easier to learn, use and maintain. By doing this we can come up with three types of low-code solutions:
- Low-Code Application Development Platforms
- Robotic Process Automation (RPA) Platforms
- Low-Code Development Languages
Let’s examine each of the three different types of low-code solutions most prevalent in DevOps today, along with the pros and cons of each.
Low-Code Application Development Platforms
Low-code application development platforms have become a standard set of technologies with comprehensive industry analyst coverage. Gartner produces Gartner Magic Quadrant for Enterprise Low-Code Application Platforms and predicts a 23% growth rate in 2021. Probably one of the most cited low-code platforms in the market today is the Salesforce Lightning Platform Mobile.
Low-code application development platforms not only help address the developer skills gap but enable line of business subject matter experts to design and build systems that meet their exact needs, while bypassing the cumbersome process of working with IT to define requirements and prioritize their project. The blog “The Future of Mobile App Development at Salesforce,” cites an example related to the Salesforce platform in which Jumbo, a Dutch supermarket chain, was able to build an internal collaboration and task management system, customer nutrition app, and same day-delivery order system all within eight weeks.
The major pros of solutions in this space are related to ease of use. Within a few clicks, non-developers can create simple apps, configure UIs and deploy to App Stores. Low-code tools require no/minimal training and can enable businesses to be more agile and react more quickly to changing market dynamics, making them more competitive.
Low-code app development platforms usually follow the waterfall pattern of development. Once an app is created to meet a specific need and delivered, there is no real plan for continued development or enhancement. Customization capabilities, flexibility and integration options are limited. Security concerns can also arise.
Typically, complex apps and/or apps with high security concerns are not good candidates. Long-term ownership of the app can also be an issue and result in “app sprawl” if not managed at an enterprise level.
Robotic Process Automation (RPA) Platforms
RPA programs enable companies to automate repetitive tasks by creating software scripts using a recorder. For those of us who remember using the macro recorder in Microsoft Excel, it’s a similar concept.
Once the script is created, users can then use a visual editor to modify, reorder and edit its steps. Speaking to the growing popularity of these solutions was the UiPath IPO on April 21, 2021, which ended up being one of the largest software IOPs in history.
The use cases for RPA programs are unlimited—any repetitive task done via a UI is a candidate. RPA is an area where we’ve seen an intersection of business-user designed apps (UiPath and Blue Prism) with more traditional DevOps tools specifically in the test automation space (Tricentis, Worksoft, and Egglplant) and new conversational-based solutions like Krista.
In the case of test automation, a lightweight recorder is given to a business user who can then record a business process. The recording is then fed to the automation team, which creates a hardened test case that in turn is fed into a CI/CD system. This eliminates the challenge of getting accurate documentation to build a test case and enables LOB orders to ensure that their most critical business processes are tested as part of any new change.
Solutions like Krista have the possibility of being used in DevOps toolchains. Consider the all too familiar question, “Where are we with a release?” Using Krista, you can text your question to the system and Krista will retrieve the info via structured conversations to find out where the release is and respond back.
Enables business users to quickly and easily create automation just by recording their daily activities. Repetitive tasks can easily be automated, and associated user errors can be eliminated. RPA can also be a great fit for “one time” projects where it does not make sense to invest developer resources.
RPA built workflows can be a Band-Aid for long-term system changes and updates that need to be made and may not scale. In addition, ownership of long-term maintenance of the automation can become unclear along with security and compliance requirements.
Low-Code Development Languages: Codified Commands
Tools based on low-code development languages include many of the most well-known DevOps tools, including Ansible, Chef, Hashi, Puppet, Jenkins and many others. Low-code development languages comply to the fundamental belief that a “coded approach” does not mean that everyone has to be a “coder.”
Just as GUI-based solutions come with “user friendly” buttons for executing various commands, code-based solutions in this category come with pre-built commands, helpers and resources.
For example, the Chef Language includes a robust set of technology-agnostic commands that provide robust automation for configuring, testing, and validating systems. No matter what technology you are working with, the commands remain the same. Using these commands users can execute complex functions across 1,000s of devices with little code knowledge.
In addition to using human-readable languages, pre-populated automated templates for easy editing, and a robust set of pre-built integrations with other DevOps tools, providers in this space have started delivering more visual dashboards and UI-driven functionality that enable functional leaders to monitor deployments and ensure systems are secure. Chef Infra Client 17 is a good example of this where new infrastructure management dashboards and UI-driven capabilities were added to Chef Automate.
This hybrid approach delivers the best of both worlds by providing users with an easy-to-learn code-based platform that can be easily integrated with CI/CD systems, and also providing non-technical users and managers with visibility and analytics across their enterprise.
Low-code development languages offer maximum flexibility and scalability. Because they are based on an underlying language like Ruby, Python, or Yaml, they can easily be extended and customized to handle even the most complex automation scenarios. These tools also sit as part of a large established ecosystem and are often community driven, so there are 1,000s of pre-built content templates and integration plug-ins that make it easy to build automation and integrate into CI/CD Pipelines.
Low-code development languages are still script-based and require a basic understanding of development practices. Tools need to be upgraded and maintained as does the automation. Because they are built to focus on solving IT management specific challenges, they are not well suited for non-technical business users.
On the Horizon: Hyperautomation—The Next Big Driver of Low-Code DevOps Platforms
Fueled in part by the COVID-19 pandemic, the need for digital operational efficiency has never been greater. Companies must be able to support and deliver services to customers and workers anywhere.
The only way to meet the growing demands of a digital–first world is through automation that is not only easy to create, but easy to maintain and scale. Automation providers in the DevOps space will need to continue to move towards low-code solutions that enable organizations to hyperautomate, that is automate everything and anything they can.
About the Author:
Heather Peyton is the product marketing director at Progress Software