DevOps is a set of practices that ensures speedy and reliable delivery of business requirements. Popular use of Agile delivery methodologies such as SCRUM and Kanban requiring faster and more frequent release cycles can put a strain on release management processes. Adoption of DevOps practices can greatly ease this strain by improving collaboration between development and operations teams, and by automating key aspects of the development and delivery process.
Appian, a leading low-code platform, makes it easy to build enterprise grade apps at least 10x faster than traditional approaches. Agile methodologies such as SCRUM and Kanban are especially well-suited as the delivery methodology for building applications on Appian’s low-code platform. We discuss below some of the DevOps practices across the Appian development and delivery processes.
Continuous Integration (CI)
Continuous integration is an approach that advocates developers to check-in or integrate their developed objects into a common repository several times during the development stage, which are verified by an automated build. The benefit of continuous integration is that by integrating regularly, we can avoid the potential for cumbersome conflict resolution arising from larger less frequent check-ins and also detect errors quickly.
Appian provides a tool, Appian Versioning Manager, which enables frequent check-ins of developed objects into a common repository such as SVN or GIT to avoid the potential for cumbersome conflict resolution. Appian’s recent releases also provide a number of out-of-the-box capabilities to prevent conflicts that may arise from multiple designers editing the same object such as notifications about other edits taking place on the same object, and warnings before saving a new version of an out of date object. These intelligent features are especially helpful to manage shared development objects that are a part of multiple features marked for delivery on the same timeline. If shared objects are a part of multiple features marked for delivery on different timelines, then too conflicts can be managed through feature toggles with conditional logic to control visibility of not yet released features.
Appian’s Versioning Manager can also be used to create a consolidated build package either encompassing all developed objects in the specified branch or trunk, or encompassing a subset of developed objects typically only corresponding to the features ear-marked for delivery. A tool such as Jenkins or Bamboo can then work with Appian’s Versioning Manager to automate package builds based on pre-defined triggers.
Continuous Delivery (CD)
Continuous delivery is an approach in which teams produce software in short cycles, ensuring software can be reliably released more frequently.
Appian provides a tool, Appian Import Manager, which can be used to automate the deployment of package builds comprising application and patch contents to any environment. A tool such as Jenkins or Bamboo can then work with Appian’s Import Manager to automate deployment of builds into a target environment such as Test or Production environment, and enable continuous delivery.
Release Management and Automation
Once development has been completed, and code has been reviewed using Appian project implementation best practices checklists and Appian’s automated Health Check utility, a build can then automatically be delivered to Test environment using above described CI/CD practices for further testing and validation. Appian supports multiple automated testing approaches such as use of FitNesse Tool for automated end-user, system, integration, and regression testing, and automated testing of Appian Rules by executing a library of test cases. In case test results fail, necessary changes can be made to resolve identified defects in the development environment, and another validation cycle for a new build package can then be triggered. After tests are successful, the package can be marked as eligible for release to production, and all corresponding changed objects can be merged from branch to trunk in the repository. A build from trunk can then be released to the Production environment.
This overview is intended to provide an insight into how DevOps practices can ensure a more reliable and speedy development and delivery of applications built on the Appian platform by implementing practices such as continuous integration, continuous delivery and release automation using various tools. For a more detailed understanding of how DevOps practices can speed up your next Appian implementation, please feel free to contact us at firstname.lastname@example.org.