EDUCAÇÃO E TECNOLOGIA

Integration suite extension – Part 1 – Introduction – with SAP BTP, HANA, Azure, and GO

In implementation projects, sometimes we see testing integrations is not given as much focus and effort as it deserve. This some times is true for production integrations as well where changes are moved to production by testing few handful of scenarios, but not all possible scenarios like negative scenarios, regression testing, edge case scenarios, and volume testing. Being a fan of SAP integration suite, I wanted to write a blog series as I work through to build an extension application that automates the testing of integrations for us. This helps us to move our integration changes more frequently with more confidence that our integrations will not break with the changes we incorporate. If you are interested and want to be part of the journey, grab a coffee and read along. I hope this will be fun 🙂

Coming to technical details, this extension application will be built using GO programming language because I like GO. Just kidding :). GO is a simple programming language very well suited for building applications on cloud because of its simplicity in handling complex topics like concurrency. If you did not work on Go before, do not worry. Just follow the blog and check the code in repository. I am sure it will be self explanatory with some help from Google. For persistence, We use HANA for structured data and Azure blob storage for unstructured data like files. Application will be deployed on SAP BTP Kyma runtime. Like the approach? Yeah. All goodies. What not to like right!! 🙂

I like CAP and its simplicity, but in this application we will not use CAP and do it on our own. Some times it is good to DIY (do it yourself). Moreover CAP does not support GO yet.

In this blog we will start small by writing a Hello World application first and deploy it to Kyma.

STEP 1 – Create the GO application by cloning the repository

git clone https://github.com/ravipativenu/integration-suite-extention.git

STEP 2 – Install and run the application locally

go install ravipativenu/integration-suite-extension integration-suite-extension

STEP 3 – Test the application running locally

http://localhost:8080/api/hello

you will see the “Hello World!” output

STEP 4 – Run application unit tests

  • A unit test is written to test /hello endpoint. Run unit tests and make sure they are successful.
go test

STEP 5 – Create Dockerfile for Docker image

This file already exists in the repo

STEP 6 – Build docker image

docker build -t ravipativenu/integration-suite-extention:latest -f Dockerfile .

STEP 7 – Publish docker image to Docker hub

docker push ravipativenu/integration-suite-extention:latest

STEP 8 – Update your Kyma runtime parameters

  • Download kyma runtime parameters from Kyma console and update local kyma config C:\Users\<user>\.kube

STEP 9 – Deploy to Kyma

  • Create credentials for docker access from Kyma
kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v2/ --docker-username=<username>--docker-password=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --docker-email=<emailid>
  • deployment.yaml is descriptor file to deploy to Kyma
  • Deploy to Kyma
kubectl replace --force -f deployment.yaml -n default

STEP 10 – Test application deployed on Kyma

Next we will include persistence and start building our application further.