Table of Contents
If your DevOps teams are using ServiceNow, you may be wondering how to implement CI/CD or Continuous Integration/Continuous Deployment (or Delivery). Is it even doable? And if so, what is the best way to do it? Firstly—yes, implementing CI/CD on ServiceNow is possible. However, because ServiceNow isn’t as mature as other platforms, it’s much more difficult to do pure CI/CD.
Shifting your development model from global to scoped apps
The release of ServiceNow Orlando allowed users to manage application changes through the Source Control system (GitHub repositories) and release processes through a ServiceNow CI/CD pipeline. That said, this requires you to configure and shift your development model from global to scoped apps.
Doing so makes the development process more modular and isolated. Scoped applications in ServiceNow allow for better control and management of the application lifecycle.
Each scoped app acts as a standalone entity, ensuring that any changes or developments made within one app do not impact others. A scoped application setup aligns perfectly with the principles of CI/CD, facilitating smoother and more efficient development workflows.
Introducing a Source Control system in the development process allows you to:
- Collaborate better: Effectively manage code changes for multiple developers on your team by using Git repo integration.
- Optimize and streamline ServiceNow DevOps: Automate change deployment and get them from development so you can run tests and go into production faster.
- Accelerate development: Deliver applications rapidly so your team can iterate on feedback early and often.
So, what does CI/CD mean in ServiceNow terms? For starters, development teams can work in a shared Git repository for better collaboration. Managers also have full transparency of the work being done. And excitingly, deployment pipelines can be automated from development all the way to production.
Is this part of the agile model?
Agile development teams need a CI/CD-enabled platform to automate end-to-end development and deployment processes. CI/CD enables ServiceNow developers to leverage modern-day Continuous Integration and Continuous Delivery toolsets. As such, they can innovate with the agility needed to meet the increasing demands of today’s users and scale with the growing complexity of unique business objectives and KPIs.
The benefits include:
Improved developer collaboration with selective commits and collision avoidance. When multiple developers are working on different features of the same application, they can individually commit their changes to the Git repository.
Let’s say one developer is working on improving the user interface, while another focuses on backend logic. They can separately commit their changes without overwriting each other’s work, significantly reducing the risk of code conflicts.
Simplified application development with branching and merging within Git repositories. This facilitates developers to work on different versions or features of an application simultaneously.
For example, a developer can create a new branch in the Git repository to develop a new feature while the main branch remains stable. Once the feature is ready and tested, it can be merged back into the main branch, streamlining the development process and ensuring that new features are integrated smoothly.
Automated deployments with IntegrationHub Spokes and CI/CD REST APIs. You can streamline the process of moving code from development to production.
For instance, once a developer commits code, it can automatically trigger a series of actions like code analysis, testing, and deployment to a staging environment. After successful testing, the code can be deployed to production through automated pipelines, reducing manual effort and speeding up the deployment process.
ServiceNow CI/CD: The setup
The setup is straightforward in any ServiceNow instance upgraded to Orlando or beyond.
Open the App Engine Studio app, create a new Application, and configure the Source Control repository (external services like GitHub, BitBucket, and others are free with private and public options).
From there, you can use the Studio functions such as:
- Create a repository
- Create branches
- Link an application to source control
- Commit application changes to source control
- Compare application file differences
- Include application table records in an application
- Merge committed changes from a branch
- Create and manage stashes
- Create tags
- Avoid and resolve conflicts when working collaboratively
Working with ServiceNow CI/CD
Development of business rules, UI scripts, and other components can continue as usual, but now you use the Studio to push your changes. That way, any changes can be pulled from other instances and tested without the need to publish the application into the internal apps repository.
Different teams have the ability to work in different branches without conflicts until they decide to merge their changes into the main branch to be deployed in a user testing instance.
Promoting high quality app development
Implementing CI/CD can be extremely beneficial for DevOps teams, as it streamlines the development process and ensures a higher standard of code quality before reaching the user testing phase.
This approach encourages regular, smaller updates rather than large, infrequent ones, which then leads to a more agile and responsive development cycle. During this phase, rigorous quality controls become crucial. At this stage, we recommend implementing Quality Gates.
Quality Gates helps ServiceNow platform owners to separate and prevent new quality issues introduced since the baseline, putting the focus on new issues instead of legacy issues and save time on code reviews.
Recognized as a critical component of IT projects, Quality Gates come in the form of a checklist that you review at specific phases of the project. This enables teams to spot and reject code with high-severity issues from being merged into the main branch. Gates are previously shown to the developers during their regular activities, but it is not compulsory to fix them until they are happy with the functionality or during their development.
At Quality Clouds, we implement Quality Gates on ServiceNow by checking for items like:
- Business Rules defined on the Global table
- Unused Inactivity Monitors
- Potential Recursive Business Rules
- GlideRecord usage on Client Scripts
- High Security Settings plugin disabled and more.
Correcting these items before deployment ensures the application’s performance and security are optimized, reducing the risk of critical issues in the production environment.
For instance, addressing unused inactivity monitors can prevent unnecessary resource consumption. Meanwhile, handling recursive business rules helps you sidestep system crashes or performance degradation.
By proactively resolving these high-severity items, you can guarantee a smoother and more reliable user experience post-deployment.
We help automate quality control in ServiceNow
At Quality Clouds, we believe Continuous Quality (CQ) is the best way to build clean code proactively. Accomplishing this uses CI/CD tooling to detect and reject potential quality violations that may imply technical debt and hidden risks.
Now, the state of a ServiceNow application may be checked into GitHub source control, and the same application may be deployed onto any number of ServiceNow instances. The result? You reduce human error and enable a rapid /agile development paradigm where features are continuously developed and tested. Teams implement a fast feedback loop that’s achieved by automating the testing and release process (i.e., the DevOps model).
Quality Clouds helps software development teams maintain quality control on ServiceNow by giving you tools to implement a ServiceNow CI/CD pipeline. From real-time code checking to analytics and reporting, these features provide comprehensive oversight and control over the development process.