This article addresses the most common challenges encountered by Appian experts when working with customers on their DevOps journeys. It emphasizes the importance of learning to use Appian's out-of-the-box Compare & Deploy capabilities, as well as integrating Appian's embedded DevOps capabilities with external or specialized tools and practices.
Additionally, it references how Appian's internal IT department empowers their DevOps developers and suggests implementing measures to track your DevOps success.
For organizations new to Appian, we recommend deploying your first applications with Direct Deployments within Appian using Compare & Deploy. This'll enable you to push your objects from one Appian environment to another and leverage Appian’s out-of-the-box DevOps features to:
In this early stage, it may be tempting to manually deploy changes. However, as the use of Appian increases across an organization, automating deployments and simplifying change and release processes eases the burden in a more scaled DevOps model. Furthermore, using agile delivery practices coupled with enhanced automation can allow for the early detection of code issues in an environment that supports more frequent application releases.
Organizations often overlook Appian's out-of-the-box deployment capabilities while trying to standardize their DevOps tool suite. While popular tools like Jenkins and Azure offer many features, forcing-fit Appian low-code objects into existing DevOps pipelines can cause issues. Assess how much of your organization's needs can be fulfilled by Appian's out-of-the-box DevOps capabilities before looking to alternative options.
As you develop and deploy more applications on Appian, you may need to use external DevOps tools to manage your deployment pipeline. This can help with source control, change auditing, and regulatory obligations. Using these tools can also make it easier to scale deployments due to customizable pipelines and automation. Consider how to implement these tools with your Appian applications.
The main advantage of using external tools is typically allowing the code for your applications to be source-controlled in a repository (such as GIT) and then building your patches and/or packages from there. However, managing Appian code in GIT is very different from managing high-code (such as Java) in GIT and can be extremely difficult. This can be done with your Appian applications through the Appian Version Manager (AVM).
The other main benefit of external tool integration is the ability to orchestrate automated test and regression suites post-deployment to ensure functionality is working as expected. This can take the form of executing test cases against your Appian expression rules or invoking automation suites built using tools such as Fitnesse or Cucumber. Be sure to have these results feed back into your pipeline and trigger exceptions if any failures occur.
When using other DevOps tools, challenges arise when exporting Appian objects as compressed files with non-deterministic XML. These are difficult to read outside of Appian, and comparing different versions using traditional text comparison tools is challenging. Unlike Appian's intuitive comparison features, comparing XML is resource-intensive and not user-friendly. Additionally, checking in Appian packages using a 'high code' approach can be complicated and time-consuming for developers, taking away from development time and causing potential deployment issues.
Appian's internal IT teams substantially increased their development and delivery velocity to meet growing project demand from lines of business. They identified manual processes, handoffs, and repetitive tasks within the DevOps pipeline that were limiting developers. One issue developers noted was the bottleneck created by manual steps and reviews to promote applications across environments.
To address this, Appian created a self-service capability that allowed developers to directly promote applications and code across Development (Dev), Test, and Production (Prod) environments in real time. Prior to this, Appian developers often reported having to "hurry up and wait" for code reviews and for a governance body to manually promote code from one environment to the next.
Read the full story about how Appian implemented these changes and tips for your organization on Empowering Developers Across the CI/CD Pipeline.
To implement DevOps effectively, it is crucial to understand and measure key outcomes. Streamlining deployments through DevOps can significantly reduce deployment time and free up developers to work on new features or enhancements. Appian suggests tracking the following metrics as a baseline in most cases:
It’s important to track the success of your approach to ensure that what you’re implementing is doing more good than harm. DevOps shouldn’t just be implemented for the sake of ticking a box. By tracking the metrics mentioned above, you should be able to demonstrate how your team is becoming more agile and productive.
DevOps is and will continue to be an important aspect of software development. Organizations are looking to deliver features to end users faster and more efficiently. However, this can be a challenge when contrasting Appian's low-code platform with traditional high-code development.
To overcome this challenge, Appian offers a robust out-of-the-box set of DevOps features. These should be your go-to solution for your initial Appian application. Once your development cycle has matured, you may look to implement external tools. However, be sure to define and measure what success looks like for your organization.
© 2023 Appian. All rights reserved.