Professional Development in ServiceNow · 2021. 3. 16. · CI/CD Process Overview with ServiceNow...

Preview:

Citation preview

Professional Development in ServiceNow

Bosshard & Partner Tech Talk - 12. März 2021

Customer & Platform Lifecycle

Vanilla

Apps & Changes

Plattform Upgrade

Back to the box

2

Use of OOB features and plugins

+ Customer enhancements and customizations on the platform

+ ServiceNow release cycle introduces new features and plugins

- Adapt customizations to make use of the new platform features

Customer & Platform Changes over Time

3

0

10

20

30

40

50

60

0 2 4 6 8 10 12 14

ServiceNow Customer Ideal

• Customers not trying to stay close to the box will divert over time and have limited access to new features

• Important to stay as close to out of the box as possible from day 1

• Not wrong to change and enhance the platform but requires strict rules

• Track customizations and plan for platform upgrade

Software Development Lifecycle

Req. Analyse Design Impl. Test Review Deploy Maint.

Classic Implementation

Classic Way

Req. Analyse Design Impl. Test Review Deploy Maint.

Source Change Code Test Cases UAT

Cost estimation

ServiceNow Implementation

ServiceNow Way

Req. Analyse Design Impl. Test Review Deploy Maint.

Change

Costs

Today ServiceNow Development Challenges

Planning

What is the baseline to plan and design customizations and enhancements?

Review

How to review structural changes on the platform from update set XML?

Quality Audit

Are changes implemented and deployed as originally designed?

Costs

What do I get and are the cost estimates correct?

Professional Tools & Processes

Req. Analyse Design Impl. Test Review Deploy Maint.

ERM4SN

Establish Quality Gates

CICD Server

ERM4SN

ERM4SN Features Overview

• Baseline Class & ER Diagram• Assist to understand the object

structure

• Support the design phase of enhancements

• Code Review of Structural Changes• Capture changes in release sets

• Track and review changes over releases

• Schema Health• Customization & configuration

dashboard

• Indicate modified tables and attributes

• Verify Changes and Costs• Validate modifications across multiple

environment

• Identify implementation faults on early stage

Planning

Baseline Class & ER Diagram• Help to understand the object

structure

• Support the design phase of enhancements

• Are key for larger applications like Config Management (CMDB)

Review

Structural Changes• Capture changes in release sets

• Track and review changes over releases

• Never miss a change on an attribute

Health

Schema Configuration• Customization & configuration

dashboard

• Indicate modified tables and attributes

Quality

Verify Changes• Validate modifications across

multiple environment

• Ensure design consistency

• Identify implementation faults on early stage

Customer Benefits

Be professional• Plan, design and verify in one place

Be fast• Quicker access to change relevant information

Be safe• Reduce platform maintenance and upgrade costs

• Bring transparency into ServiceNow development and cost estimates

ERM4SNhttps://demo.erm4sn.com

Try ERM4SN for 30 days, for free

https://www.erm4sn.com/free-trial

CI/CD Introduction

?

Feature branch

Create

Unit Tests

Push to

origin

Run Tests

Merge to

Master

Master

Deploy

Raise Pull

Request

CI/CD Process Overview with ServiceNow

DEV

CI/CD Server

Build Tool

PROD TEST

Refresh “Master”Extract update set

to branch

Build (doc, quality, test)

on DEV

Push branch to origin

Raise pull request

Deliver to PRODDeploy / Test on

TEST

Export Update set

Run ATF

Reject

Approve

ATF

Close update set

Run CI/CD pipeline

Release TestUAT

All files

Peer-Review

Run ATF

Benefits of CICD

• Transparency and traceability of development process• Add version control to update-set deployment

• Automation aids fast release of new features

• Improved quality at relatively lower costs• enable easy code review

• run and rerun test cases (ATF, Tosca)

• Decoupled CICD process enabling easy switch off to return to OOB

• Enable people to adopt DevOps

CICD Server Features

• Emulate local developer

• Set up Git repository & webhooks automatically

• Extract update set XML as human-readable files (js, html, css, json)

• Pre-flight deployment to test environment to resolve conflicts

• Embedded build on source environment

• Run ATF suites & tests with headless test runner

• Trigger pull request on build run

• Git diff-based deployment to target (merged update set)

Open Source and freely available.

To get your own CICD Server, clone example projecthttps://github.com/bmoers/sn-cicd-example

The CICD—Integration Applicationhttps://github.com/bmoers/sn-cicd-integration

To contribute to project, fork GIT Projecthttps://github.com/bmoers/sn-cicd

Demo Videohttps://www.youtube.com/watch?v=u5I-fxvMcX4

CICD Server—Source Code

© Hulatocat by Haley Carroll

Key takeaways

Design & plan changes properly

Monitor customization

level

In the long run, quality is crucial

Establish code review process

No change without ATF test

No change in Global

Thank You

.. -. / -.-. --- -.. . / .-- . / - .-. ..- ... -

As a ServiceNow Customer, you want to …

24

… Know how the ServiceNow way of things works

… Understand the benefits and risks of changes from the first day on

… Get a deep understanding how the platform works and ensure that all design decisions and implementations are correct

… Ensure the quality of changes is high and follows best practices

… Avoid making irreversible mistakes

… Ensure that Investments in the platform and enhancements are sustainable

Today ServiceNow Development Challenges

Planning / Design• What is best practice?

• How is a similar application structured and implemented?

• What features brings ServiceNow out of the box?

• How does the OOB CMDB model look like?

• Does a CI already exist with a similar name?

• How are tables related to each other?

• How does the hierarchy of a table look like?

• What siblings does a table have?

• Is there already an existing field?

Quality / Review• How close are we out of the box?

• Why was there a new CI class / table introduced?

• Was a change implemented as designed?

• What table or filed has changed?

• Who was in charge of a change?

• Are environments in sync?

Requirements to run CICD on ServiceNow Development

• Everything must be in code• no manual tasks• all data loads• system configuration changes• data sources

• Dynamic Configuration• use system name (host name) in system properties

• Test cases must be in place• ATF or external test tool

• Grouped in Application (scoped or global)• build against “global” will just not make an sense

Tech Stack

• Jira• Plan Releases• Link Jira Task to GIT Branch / Update set

• Bitbucket / GitLab / GitHub• GIT Repository• Pull-Request web hook to CICD Server

• Bamboo / GitHub Actions• CICD Pipeline Execution• Run additional stages like Tosca test

automation• Deploy / Deliver Update set

• CI/CD Server• Dockerized NodeJs Application

• Express.js, Socket.io

• Gulp for embedded Build• EsLint, JsDoc3, Gulp-Git

• Mocha for embedded Testing• ATF Mocha wrapper / ATF REST API in

ServiceNow• Headless Puppeteer ATF test runner

(Chrome)

• CICD Integration• Scoped application in ServiceNow

Recommended