SlideShare a Scribd company logo
1 of 22
Download to read offline
©KMD
Public - KMD A/S
1
@ sitNL, June 11th 2022
Automate your Cloud
Integration governance with
CPILint
©KMD
Public - KMD A/S
INTERNT
WHO AM I?
2
_ Morten Wittrock
_ Principal architect at KMD in Denmark
_ SAP Mentor
_ SAP PRESS author
_ SAP Inside Track Copenhagen co-organizer
_ Frequent speaker at other SAP Inside Track events
_ SAP Community: https://people.sap.com/mortenw
_ Twitter: @mwittrock
©KMD
Public - KMD A/S
INTERNT
INTERNT
A BRIEF INTRODUCTION TO CPI
3
_ SAP Cloud Integration (or CPI) is SAP’s integration
middleware for the cloud
_ Similar in concept to e.g. SAP PO, but built for the cloud
from the ground up
_ CPI is a capability of the SAP Integration Suite product
_ Based on the Apache Camel open source integration
framework
_ Integrations are modelled visually using integration flows
(iflows for short)
©KMD
Public - KMD A/S
INTERNT
INTERNT
INTEGRATION FLOW EXAMPLE
4
©KMD
Public - KMD A/S
INTERNT
INTERNT
INTEGRATION GOVERNANCE
5
_ CPI gives you a lot of options for modelling your
integrations, which is good
_ On the flip side, achieving coherence across your
integrations requires governance
_ Part of your integration governance is guidelines for how to
build integration flows
_ Examples:
_ What are the naming conventions?
_ Which scripting languages should be used?
_ Which adapters are allowed?
_ Which Java libraries are allowed?
©KMD
Public - KMD A/S
INTERNT
INTERNT
INTEGRATION GOVERNANCE
6
_ There is an inherent problem with such guidelines
_ They often sit in a Word document in SharePoint or
Solution Manager
_ Are your integrations compliant with the rules set out in
the guidelines?
_ The only way to know is to manually check each iflow
_ Obviously, that does not scale
_ The size of the problem is proportional to the number of
developers and the amount of integration content
_ This is the problem CPILint exists to solve
©KMD
Public - KMD A/S
INTERNT
INTERNT
WHAT IS CPILINT?
7
_ CPILint is a tool that enables you write executable
developer guidelines
_ You select the rules, that your iflows should comply
with
_ The tool does the heavy lifting of checking each
iflow for compliance
_ You are then presented with a report of the iflows
that are not compliant
_ You can run the tool interactively from your
computer or scheduled in e.g. a CI pipeline
_ Your guidelines will no longer be gathering dust in
SharePoint o/
©KMD
Public - KMD A/S
INTERNT
INTERNT
WHAT IS CPILINT?
8
_ CPILint ships with a number of rules built in
_ The rules cover:
_ Naming
_ Adapters
_ Security
_ Mappings
_ Scripting
_ And more
_ Not all rules are relevant to everybody; apply the
ones that make sense in your situation!
©KMD
Public - KMD A/S
INTERNT
INTERNT
WHAT’S IN A NAME?
9
_ So why is the tool called CPILint, anyway?
_ Let’s break down the name:
_ CPI: SAP Cloud Integration
_ Lint: A tool that detects “programming errors, bugs,
stylistic errors, and suspicious constructs” (Wikipedia)
_ You may know other linters like ESLint (JavaScript)
and abaplint (ABAP)
_ So: CPILint is a linter for Cloud Integration
©KMD
Public - KMD A/S
INTERNT
INTERNT
THE DEMO SCENARIO
10
_ We’re going to check one of SAP’s suggested naming conventions
_ The names of all iflow participants (= senders and receivers) should have
one of the following prefixes:
_ OP_ (for on-premise systems)
_ B2B_ (for business partners)
_ CP_ (for cloud providers)
©KMD
Public - KMD A/S
INTERNT
INTERNT
THE DEMO IFLOW
11
©KMD
Public - KMD A/S
INTERNT
INTERNT
THE DEMO NAMING RULE
12
©KMD
Public - KMD A/S
13
Demo
©KMD
Public - KMD A/S
INTERNT
INTERNT
HOW DOES IT WORK?
15
_ Rules are at the core of CPILint
_ The rules inspect integration flow artifacts
_ The artifacts contain:
_ Metadata
_ Resources (such as scripts, XML Schema files etc.)
_ The iflow BPMN2 XML document
_ Some rules only inspect resources
_ But most examine the iflow XML
©KMD
Public - KMD A/S
INTERNT
INTERNT
HOW DOES IT WORK?
16
_ Some examples of rules:
_ Naming conventions
_ Allowed/disallowed adapters
_ Duplicate resources check
_ Unencrypted HTTP endpoints not allowed
_ Allowed/disallowed mapping types
_ Client certificate in sender channels not allowed
_ Iflow description required
_ Basic authentication in cleartext not allowed
©KMD
Public - KMD A/S
INTERNT
INTERNT
HOW DOES IT WORK?
17
_ Some rules only look at a single iflow at a time
_ Other rules inspect all iflows to determine compliance
_ If an iflow is not compliant with a rule, an issue is
created
_ The issue contains the information you need to do
something about the problem
_ Like:
_ Which iflow
_ Which channel, mapping step etc.
_ Which resource
©KMD
Public - KMD A/S
INTERNT
INTERNT
HOW DOES IT WORK?
18
_ At the moment, all issues are written to the console
_ Future possibilities:
_ Add the issue to an incident tracking system like Jira
_ Log the issue to a file
_ Post the issue to e.g. Slack or Microsoft Teams
_ Send a text/email
©KMD
Public - KMD A/S
INTERNT
INTERNT
CPILINT IS OPEN SOURCE
19
_ CPILint is free and open source
_ What does that mean for you?
_ First, you have access to the complete source code
_ On GitHub and included in every CPILint release.
_ Want to learn how the tool works? You can.
_ Second, the license allows you to modify the code
_ CPILint is released under the MIT License.
_ Want to change or add something? Go right ahead; the
license lets you do that.
©KMD
Public - KMD A/S
INTERNT
INTERNT
SYSTEM REQUIREMENTS
20
_ To run CPILint all you need is a Java 11 runtime
_ Everything else is included in the download
_ To build the code you will need:
_ A Java 11 JDK
_ Apache Ant
_ Apache Ivy
©KMD
Public - KMD A/S
INTERNT
INTERNT
HOW TO GET STARTED
21
_ Three easy steps to CPILint
_ Step 1: Go to GitHub and download the latest release
_ Step 2: Follow the installation instructions in the wiki
_ Step 3: There is no step three
©KMD
Public - KMD A/S
INTERNT
INTERNT
WHAT’S NEXT FOR CPILINT?
22
_ Even more rules
_ Extensibility
_ Documentation for developers
_ Exceptions for rules
_ Support for more names you can check
_ Do you have a suggestion or an idea? Create a GitHub
issue!
©KMD
Public - KMD A/S
23
Questions?

More Related Content

What's hot

【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...Deep Learning JP
 
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...Deep Learning JP
 
自然言語処理によるテキストデータ処理
自然言語処理によるテキストデータ処理自然言語処理によるテキストデータ処理
自然言語処理によるテキストデータ処理Yuki Arase
 
Pythonでキャッシュを活用する話①
Pythonでキャッシュを活用する話①Pythonでキャッシュを活用する話①
Pythonでキャッシュを活用する話①iPride Co., Ltd.
 
CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"
CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"
CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"Hiroharu Kato
 
統計的音声合成変換と近年の発展
統計的音声合成変換と近年の発展統計的音声合成変換と近年の発展
統計的音声合成変換と近年の発展Shinnosuke Takamichi
 
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...Deep Learning JP
 
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical ReportDeep Learning JP
 
つぶやきGLSLとは
つぶやきGLSLとはつぶやきGLSLとは
つぶやきGLSLとはGearsRenard
 
Wandb Monthly Meetup August 2023.pdf
Wandb Monthly Meetup August 2023.pdfWandb Monthly Meetup August 2023.pdf
Wandb Monthly Meetup August 2023.pdfYuya Yamamoto
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobileyusuke shibui
 
Rosbag search system
Rosbag search systemRosbag search system
Rosbag search systemyusuke shibui
 
音声認識の基礎
音声認識の基礎音声認識の基礎
音声認識の基礎Akinori Ito
 
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったCommon Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったt-sin
 
若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)
若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)
若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)MitsuoKobayashi2
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?京大 マイコンクラブ
 
MS COCO Dataset Introduction
MS COCO Dataset IntroductionMS COCO Dataset Introduction
MS COCO Dataset IntroductionShinagawa Seitaro
 
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionHow to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionKiyoshi Ogawa
 
DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相Takuya Yoshioka
 
単振り子と二重振り子のコンピュータシミュレーション
単振り子と二重振り子のコンピュータシミュレーション単振り子と二重振り子のコンピュータシミュレーション
単振り子と二重振り子のコンピュータシミュレーションdc1394
 

What's hot (20)

【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
 
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
 
自然言語処理によるテキストデータ処理
自然言語処理によるテキストデータ処理自然言語処理によるテキストデータ処理
自然言語処理によるテキストデータ処理
 
Pythonでキャッシュを活用する話①
Pythonでキャッシュを活用する話①Pythonでキャッシュを活用する話①
Pythonでキャッシュを活用する話①
 
CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"
CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"
CVPR 2015 読み会 "Understanding Deep Image Representations by Inverting Them"
 
統計的音声合成変換と近年の発展
統計的音声合成変換と近年の発展統計的音声合成変換と近年の発展
統計的音声合成変換と近年の発展
 
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
 
【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report【DL輪読会】GPT-4Technical Report
【DL輪読会】GPT-4Technical Report
 
つぶやきGLSLとは
つぶやきGLSLとはつぶやきGLSLとは
つぶやきGLSLとは
 
Wandb Monthly Meetup August 2023.pdf
Wandb Monthly Meetup August 2023.pdfWandb Monthly Meetup August 2023.pdf
Wandb Monthly Meetup August 2023.pdf
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
 
Rosbag search system
Rosbag search systemRosbag search system
Rosbag search system
 
音声認識の基礎
音声認識の基礎音声認識の基礎
音声認識の基礎
 
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったCommon Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
 
若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)
若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)
若手インフラエンジニアの課題と教育(クラウド全盛期の時代にインフラエンジニアをどのように育てるか?)
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
MS COCO Dataset Introduction
MS COCO Dataset IntroductionMS COCO Dataset Introduction
MS COCO Dataset Introduction
 
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionHow to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
 
DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相DNN音響モデルにおける特徴量抽出の諸相
DNN音響モデルにおける特徴量抽出の諸相
 
単振り子と二重振り子のコンピュータシミュレーション
単振り子と二重振り子のコンピュータシミュレーション単振り子と二重振り子のコンピュータシミュレーション
単振り子と二重振り子のコンピュータシミュレーション
 

Similar to Automate your Cloud Integration governance with CPILint @ SIT Netherlands 2022

Automate Your Integration Governance with Open Source Software
Automate Your Integration Governance with Open Source SoftwareAutomate Your Integration Governance with Open Source Software
Automate Your Integration Governance with Open Source SoftwareMorten Wittrock
 
Automate checking your integration flows with CPILint
Automate checking your integration flows with CPILintAutomate checking your integration flows with CPILint
Automate checking your integration flows with CPILintMorten Wittrock
 
Open source in the SAP world @ SIT Walldorf 2020
Open source in the SAP world @ SIT Walldorf 2020Open source in the SAP world @ SIT Walldorf 2020
Open source in the SAP world @ SIT Walldorf 2020Morten Wittrock
 
Open source in the SAP world
Open source in the SAP worldOpen source in the SAP world
Open source in the SAP worldMorten Wittrock
 
The environments of SAP Cloud Platform
The environments of SAP Cloud PlatformThe environments of SAP Cloud Platform
The environments of SAP Cloud PlatformMorten Wittrock
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Kiko Monteverde
 
Cloud Connector @ SCP user group, May 2019
Cloud Connector @ SCP user group, May 2019Cloud Connector @ SCP user group, May 2019
Cloud Connector @ SCP user group, May 2019Morten Wittrock
 
How to start your open source project
How to start your open source projectHow to start your open source project
How to start your open source projectEslam Diaa
 
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"..."Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...Edge AI and Vision Alliance
 
The ins and outs of SAP Cloud Platform's environments
The ins and outs of SAP Cloud Platform's environmentsThe ins and outs of SAP Cloud Platform's environments
The ins and outs of SAP Cloud Platform's environmentsMorten Wittrock
 
A Data Integration Case Study - Avoid Creating a “Franken-Beast”
A Data Integration Case Study - Avoid  Creating a “Franken-Beast”A Data Integration Case Study - Avoid  Creating a “Franken-Beast”
A Data Integration Case Study - Avoid Creating a “Franken-Beast”DATAVERSITY
 
Api led connectivity_brazil
Api led connectivity_brazilApi led connectivity_brazil
Api led connectivity_brazilAnupam Gogoi
 
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialLotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialRyan Baxter
 
GitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyGitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyWeaveworks
 
Clone Clone Make: a better way to build
Clone Clone Make: a better way to buildClone Clone Make: a better way to build
Clone Clone Make: a better way to buildDanHeidinga
 
How dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalHow dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalpsluaces
 
Session 1908 connecting devices to the IBM IoT Cloud
Session 1908   connecting devices to the  IBM IoT CloudSession 1908   connecting devices to the  IBM IoT Cloud
Session 1908 connecting devices to the IBM IoT CloudPeterNiblett
 

Similar to Automate your Cloud Integration governance with CPILint @ SIT Netherlands 2022 (20)

Automate Your Integration Governance with Open Source Software
Automate Your Integration Governance with Open Source SoftwareAutomate Your Integration Governance with Open Source Software
Automate Your Integration Governance with Open Source Software
 
CPILint @ #sitWRO 2019
CPILint @ #sitWRO 2019CPILint @ #sitWRO 2019
CPILint @ #sitWRO 2019
 
Automate checking your integration flows with CPILint
Automate checking your integration flows with CPILintAutomate checking your integration flows with CPILint
Automate checking your integration flows with CPILint
 
Open source in the SAP world @ SIT Walldorf 2020
Open source in the SAP world @ SIT Walldorf 2020Open source in the SAP world @ SIT Walldorf 2020
Open source in the SAP world @ SIT Walldorf 2020
 
Open source in the SAP world
Open source in the SAP worldOpen source in the SAP world
Open source in the SAP world
 
The environments of SAP Cloud Platform
The environments of SAP Cloud PlatformThe environments of SAP Cloud Platform
The environments of SAP Cloud Platform
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
 
Cloud Connector @ SCP user group, May 2019
Cloud Connector @ SCP user group, May 2019Cloud Connector @ SCP user group, May 2019
Cloud Connector @ SCP user group, May 2019
 
OmnibusCloud.short
OmnibusCloud.shortOmnibusCloud.short
OmnibusCloud.short
 
How to start your open source project
How to start your open source projectHow to start your open source project
How to start your open source project
 
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"..."Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
 
The ins and outs of SAP Cloud Platform's environments
The ins and outs of SAP Cloud Platform's environmentsThe ins and outs of SAP Cloud Platform's environments
The ins and outs of SAP Cloud Platform's environments
 
A Data Integration Case Study - Avoid Creating a “Franken-Beast”
A Data Integration Case Study - Avoid  Creating a “Franken-Beast”A Data Integration Case Study - Avoid  Creating a “Franken-Beast”
A Data Integration Case Study - Avoid Creating a “Franken-Beast”
 
Api led connectivity_brazil
Api led connectivity_brazilApi led connectivity_brazil
Api led connectivity_brazil
 
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialLotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
GitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyGitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott Rigby
 
Clone Clone Make: a better way to build
Clone Clone Make: a better way to buildClone Clone Make: a better way to build
Clone Clone Make: a better way to build
 
How dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalHow dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity final
 
Session 1908 connecting devices to the IBM IoT Cloud
Session 1908   connecting devices to the  IBM IoT CloudSession 1908   connecting devices to the  IBM IoT Cloud
Session 1908 connecting devices to the IBM IoT Cloud
 

Recently uploaded

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Automate your Cloud Integration governance with CPILint @ SIT Netherlands 2022

  • 1. ©KMD Public - KMD A/S 1 @ sitNL, June 11th 2022 Automate your Cloud Integration governance with CPILint
  • 2. ©KMD Public - KMD A/S INTERNT WHO AM I? 2 _ Morten Wittrock _ Principal architect at KMD in Denmark _ SAP Mentor _ SAP PRESS author _ SAP Inside Track Copenhagen co-organizer _ Frequent speaker at other SAP Inside Track events _ SAP Community: https://people.sap.com/mortenw _ Twitter: @mwittrock
  • 3. ©KMD Public - KMD A/S INTERNT INTERNT A BRIEF INTRODUCTION TO CPI 3 _ SAP Cloud Integration (or CPI) is SAP’s integration middleware for the cloud _ Similar in concept to e.g. SAP PO, but built for the cloud from the ground up _ CPI is a capability of the SAP Integration Suite product _ Based on the Apache Camel open source integration framework _ Integrations are modelled visually using integration flows (iflows for short)
  • 4. ©KMD Public - KMD A/S INTERNT INTERNT INTEGRATION FLOW EXAMPLE 4
  • 5. ©KMD Public - KMD A/S INTERNT INTERNT INTEGRATION GOVERNANCE 5 _ CPI gives you a lot of options for modelling your integrations, which is good _ On the flip side, achieving coherence across your integrations requires governance _ Part of your integration governance is guidelines for how to build integration flows _ Examples: _ What are the naming conventions? _ Which scripting languages should be used? _ Which adapters are allowed? _ Which Java libraries are allowed?
  • 6. ©KMD Public - KMD A/S INTERNT INTERNT INTEGRATION GOVERNANCE 6 _ There is an inherent problem with such guidelines _ They often sit in a Word document in SharePoint or Solution Manager _ Are your integrations compliant with the rules set out in the guidelines? _ The only way to know is to manually check each iflow _ Obviously, that does not scale _ The size of the problem is proportional to the number of developers and the amount of integration content _ This is the problem CPILint exists to solve
  • 7. ©KMD Public - KMD A/S INTERNT INTERNT WHAT IS CPILINT? 7 _ CPILint is a tool that enables you write executable developer guidelines _ You select the rules, that your iflows should comply with _ The tool does the heavy lifting of checking each iflow for compliance _ You are then presented with a report of the iflows that are not compliant _ You can run the tool interactively from your computer or scheduled in e.g. a CI pipeline _ Your guidelines will no longer be gathering dust in SharePoint o/
  • 8. ©KMD Public - KMD A/S INTERNT INTERNT WHAT IS CPILINT? 8 _ CPILint ships with a number of rules built in _ The rules cover: _ Naming _ Adapters _ Security _ Mappings _ Scripting _ And more _ Not all rules are relevant to everybody; apply the ones that make sense in your situation!
  • 9. ©KMD Public - KMD A/S INTERNT INTERNT WHAT’S IN A NAME? 9 _ So why is the tool called CPILint, anyway? _ Let’s break down the name: _ CPI: SAP Cloud Integration _ Lint: A tool that detects “programming errors, bugs, stylistic errors, and suspicious constructs” (Wikipedia) _ You may know other linters like ESLint (JavaScript) and abaplint (ABAP) _ So: CPILint is a linter for Cloud Integration
  • 10. ©KMD Public - KMD A/S INTERNT INTERNT THE DEMO SCENARIO 10 _ We’re going to check one of SAP’s suggested naming conventions _ The names of all iflow participants (= senders and receivers) should have one of the following prefixes: _ OP_ (for on-premise systems) _ B2B_ (for business partners) _ CP_ (for cloud providers)
  • 11. ©KMD Public - KMD A/S INTERNT INTERNT THE DEMO IFLOW 11
  • 12. ©KMD Public - KMD A/S INTERNT INTERNT THE DEMO NAMING RULE 12
  • 13. ©KMD Public - KMD A/S 13 Demo
  • 14. ©KMD Public - KMD A/S INTERNT INTERNT HOW DOES IT WORK? 15 _ Rules are at the core of CPILint _ The rules inspect integration flow artifacts _ The artifacts contain: _ Metadata _ Resources (such as scripts, XML Schema files etc.) _ The iflow BPMN2 XML document _ Some rules only inspect resources _ But most examine the iflow XML
  • 15. ©KMD Public - KMD A/S INTERNT INTERNT HOW DOES IT WORK? 16 _ Some examples of rules: _ Naming conventions _ Allowed/disallowed adapters _ Duplicate resources check _ Unencrypted HTTP endpoints not allowed _ Allowed/disallowed mapping types _ Client certificate in sender channels not allowed _ Iflow description required _ Basic authentication in cleartext not allowed
  • 16. ©KMD Public - KMD A/S INTERNT INTERNT HOW DOES IT WORK? 17 _ Some rules only look at a single iflow at a time _ Other rules inspect all iflows to determine compliance _ If an iflow is not compliant with a rule, an issue is created _ The issue contains the information you need to do something about the problem _ Like: _ Which iflow _ Which channel, mapping step etc. _ Which resource
  • 17. ©KMD Public - KMD A/S INTERNT INTERNT HOW DOES IT WORK? 18 _ At the moment, all issues are written to the console _ Future possibilities: _ Add the issue to an incident tracking system like Jira _ Log the issue to a file _ Post the issue to e.g. Slack or Microsoft Teams _ Send a text/email
  • 18. ©KMD Public - KMD A/S INTERNT INTERNT CPILINT IS OPEN SOURCE 19 _ CPILint is free and open source _ What does that mean for you? _ First, you have access to the complete source code _ On GitHub and included in every CPILint release. _ Want to learn how the tool works? You can. _ Second, the license allows you to modify the code _ CPILint is released under the MIT License. _ Want to change or add something? Go right ahead; the license lets you do that.
  • 19. ©KMD Public - KMD A/S INTERNT INTERNT SYSTEM REQUIREMENTS 20 _ To run CPILint all you need is a Java 11 runtime _ Everything else is included in the download _ To build the code you will need: _ A Java 11 JDK _ Apache Ant _ Apache Ivy
  • 20. ©KMD Public - KMD A/S INTERNT INTERNT HOW TO GET STARTED 21 _ Three easy steps to CPILint _ Step 1: Go to GitHub and download the latest release _ Step 2: Follow the installation instructions in the wiki _ Step 3: There is no step three
  • 21. ©KMD Public - KMD A/S INTERNT INTERNT WHAT’S NEXT FOR CPILINT? 22 _ Even more rules _ Extensibility _ Documentation for developers _ Exceptions for rules _ Support for more names you can check _ Do you have a suggestion or an idea? Create a GitHub issue!
  • 22. ©KMD Public - KMD A/S 23 Questions?