This demo application was created to showcase the concept of adding automated performance quality gates using Keptn Pitometer
Once provisioned, the sample nodejs application will look like this for both a "staging" and "production" webapp intances.
root folder and img/
- location of demoapp.js
nodejs demo applicationperfspec/
- folder containing sample perfspec filepipeline/
- folder containing scripts that can be used in DevOps pipelinesarm/
- folder containing scripts and templates to provision demo Azure resources
azure-pipelines.yml
- this pipeline will build a zip artifact that is used to deploy to a staging and production web app. A dyntrace deployment event is done for both. A call to a pitometer web service acts as a quality gate to productionazure-pipelines-create-resources.yml
- this pipeline is be run one-time as to setup the envionment. This will just call arm/provision.shazure-pipelines-delete-resources.yml
- this pipeline is be run one-time as to delete the envionment. This will just call arm/remove.sh
Required Pipeline variables
app-problem-number
= value from 1 to 4azure-location
= value such as 'East US'azure-location-code
= value such as 'eastus'azure-resource-prefix
= use your last name such as 'smith'azure-subscription-name
= use name of your Azure subscription such as 'My account'dynatrace-api-token
= generated value from your environmentdynatrace-base-url
= value such as 'https://.live.dynatrace.com'dynatrace-environment-id
= value such as gan12345dynatrace-paas-token
= generated value from your environmentloadtest-duration-seconds
= number value such as 300 (5 minutes)pitometer-image
= docker image. Use pre-build image of 'robjahn/pitometer-web-service'pitometer-url
= url to your azure container app such as 'http://:8080/api/pitometer'quality-gate-status-override
= value of 'pass' or 'fail'
Recommend creating a 'Variable Group'
then linking the variable group to each pipeline
- You must have node installed locally.
- Once you clone the repo, you need to run
npm install
to download the required modules - run
npm update
- run
npm start
- access the application @
http://127.0.0.1:8080/