WITHCURIOSITYLEAD
Qlik Sense® DevOps –Event-driven App Promotion, Approval, Alerting, & Versioning
Daniel Pilla
Sr. Enterprise Architect
Levi Turner
Enterprise Architect
2
Open Source Statement
• This presentation contains information about project(s) utilizing opensource. Qlik does not provide maintenance or support services for opensource projects.
• Information about open source projects may be found on the applicableopen source community, Qlik Branch® and/or Qlik Community.
• For customers and partners current on maintenance fees, Qlik doesprovide maintenance and support services relating to Qlik Sense® APIs,in accordance with Qlik’s Maintenance Policy and procedures.
3
DevOps includes core practices such as planning and tracking, development, build and test, delivery, and monitoring and operations. These practices, along with DevOps tools and technologies, help automate the application lifecycle. Processes that used to be manual and slow for your teams—like updating code or provisioning a new environment—you can do quickly and continuously when you use DevOps tooling and practices.
DevOps
4
Art of the PossibleDeep-dive Exploration
5
• What is this project about?
• Why is it different?
• How does it work?
6
Context
• Example solution
- Not intended for production use
• Built using Python
- Personal language of choice – not required
Open Source
7
So What’s it Do?
8
Project Scope
• Approval Management
- Ability to “approve” (promote) and “deny” (unpublish) applications
• Cross-site Application Promotion
- Promote apps cross-site to target stream(s) -- replace or duplicate options
• Roles
- Security rule definitions allowing for only certain users to approve/deny and promote apps
• Email alerts
- On new apps to streams
- On app promoted or denied
• Versioning
- Export apps without data and store in versioned S3 bucket
• Auditing
- Qlik® monitoring dashboard included that reads program’s logs
9
Workflow
Sales
Approved
Denied
Published
Dev
Sales
Published
Test
Approved
Denied
owner
ownerOptional Unpublish Optional Unpublish
Unpublish Unpublish
S3
BucketS3
Bucket
10
Why is it Different?
11
Common Solutions
• Scheduled or triggered externally
- Do xyz nightly
- Do abc hourly
• Polling
- Is this criteria met?
- Is this criteria met?
- Is this criteria met?
• Qlik External Program Tasks (chained or scheduled)
- Ok, this one isn’t _that_ simple
And quite frankly, simpler
12
The Event-Driven Difference
• Actions fire in direct response to events within Qlik Sense
- App is reloaded
- App is published
- New user added
- Task succeeds/fails
- … pretty much anything
Because we all love real-time
13
How Does it Work?
14
Main Concept
• QRS API
- Notification endpoint
• Definition
• “Add a change subscription that makes the QRS call a URL when the specified entity has changed.”
• Examples
• Any app update:
• /qrs/notification?name=app&changeType=update
• Any app publish:
• /qrs/notification?name=app&changeType=update&propertyName=publishTime
Notifications
15
Notifications
• Name
• changeType
• (optional) filter
• (optional) PropertyName
• (optional) Condition
Parameters
16
Components & Topology
Flask Flask
17
DemoFinally
18
Resources
• Open Source Project on GitHub: https://github.com/eapowertools/qs-event-driven-cross-site-app-promoter
• Blog on QRS Notification Endpoint: https://eablog.qlik-poc.com/2018/11/01/qlik-sense-repository-notification-api/
Q&A
Thank You
Stay in the know on Qlik product innovations. Register for our quarterly webinar series.
qlik.com/QlikInsider
Want to learn more? Check out these resources:
Connect with Qlik enthusiasts around the world. Learn, share and explore. Register today.
community.qlik.com
21
Breakout Session Survey
We strive to improve the event each
year and are interested in hearing
your feedback on this session.
To access the session survey please
log into the mobile app and click this
session on your personal agenda.
Click the Survey button in the top
menu to complete the survey.
We thank you in advance!
Thank You