Image for post
Image for post
A man standing on top of a mountain — Le Ngoc Tan

Updated Jan 2019: Azure Container Service (ACS) has been replaced by Azure Kubernetes Service (AKS). Please refer to this guide on how to easily create an AKS cluster.

Table of Contents

1. Create Application ID

1) Go to Azure Active DirectoryApp registrations and click New application registration

Image for post
Image for post

2) Name your app and URL then click Create

Image for post
Image for post

3) Note the Application ID and click Settings

Image for post
Image for post

4) Go to Keys. Fill in key description and expires then click Save

Image for post
Image for post

5) Note the secret key generated

Image for post
Image for post

6) Go to your SubscriptionAccess control (IAM) and click…


Image for post
Image for post

Introduction

SSH is the way to connect and command your Linux machine. Doing this from Windows is even more painful as you need a client like Putty installed (Or enable built-in SSH if you’re using Windows 10).

What if you can do it right from your web browser from any OS without installing anything!?!

What is Wetty?

Wetty = Web + tty.

Terminal over HTTP and HTTPS. Wetty uses ChromeOS’ terminal emulator (hterm) which is a full fledged implementation of terminal emulation written entirely in Javascript. Also it uses websockets instead of Ajax and hence better response time.

Source: https://github.com/krishnasrinivas/wetty

Prerequisite

  • Ubuntu Server with Docker installed (See this blog on how to get one on…


Image for post
Image for post

In my last blog, I’ve explained about deployment pipeline I built for Continuous Integration and Continuous Delivery in ABAP. Another thing that our team has built was the application monitoring.

For our Java Spring Boot services, it can seamlessly integrate Prometheus module in the POM file and then your application is ready to be monitored with built-in metrics.

I managed to create Prometheus client for ABAP. I will explain how you can setup one for yours below.

What is Prometheus?

Image for post
Image for post

Prometheus is a time series database. It stores your data stream and it also has a web interface so you can query and visualize the data e.g. …


In my recent project, we are building Java miniservices that connect to SAP backend via RESTful APIs. The team has setup a CI/CD pipeline in Jenkins to automate build, test, and deploy of those Java services. At the time we had the pipeline, I have realized the benefits for having such pipeline and that became my motivation to build one for ABAP.

The most important benefit in my view is the visibility over your software’s health. If someone asks whether the Java piece is working fine at the moment, we can have a glance at Jenkins monitor and be able to answer quite confidently. In ABAP, we are just blind. …


Image for post
Image for post

In my last blog, we’ve create a Hello Application easily without any coding and deployed it to the cloud.

In this blog, let’s explore the continuous integration and continuous delivery for the application which SAP has prepared for us a template which is ready for our use.

Prerequisites

Push Your Codes to Git

  1. Install Git client if you haven’t done so. (Windows:choco install git)
  2. Setup Git
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

3. Add .gitignore file to your project folder. The file should contain one line:

target

4. Init and commit local repository

git init
git add .
git commit -m "Your commit…


Image for post
Image for post

Introduction of Cloud Foundry on SAP Cloud Platform enables a lot of possibilities to deploy various applications on the cloud. Jenkins is one of the most asked and some people may struggle to find a place to run it.

In this blog, I’ll show how to deploy Jenkins on Cloud Foundry environment on SAP Cloud Platform.

Download Jenkins.war

Go to https://jenkins.io/download/ and download Generic Java Package (war) of the version you prefer.

Deploy Jenkins on Cloud Foundry

Login

Connect to Cloud Foundry using CLI. (See how to download here).

cf api https://api.cf.eu10.hana.ondemand.com
cf login

Deploy Jenkins

We’re going to deploy Jenkins.war using this special buildpack.

cf push <path_to_jenkins.war> -b https://github.com/Altoros/jenkins-buildpack -m 2G…


Image for post
Image for post

The introduction of S/4HANA Cloud SDK makes it even easier to develop cloud applications and integration with back-end SAP and cutting-edge tools and technologies like Hystrix, Docker, and Jenkins.

In this blog, I’m showing you how to deploying a Hello World application on SAP Cloud Foundry without any coding using S/4HANA Cloud SDK.

Prerequisite

Make sure you have a trial account on Cloud Foundry. If not, get one from here.

Make sure your PC has the following installed:

  • JDK
  • Maven
  • Cloud Foundry CLI

On Windows, you can use these commands to install those softwares with Chocolatey:

choco install jdk8
choco install maven
choco install…


Image for post
Image for post

If you get alien characters in console log of your job like this:

Image for post
Image for post
Newman’s Output in Jenkins Console Log

Then you have a problem with Java file encoding issue. Refer to this thread on StackOverflow, you need to add java argument -Dfile.encoding=UTF8 when running Jenkins with java command.

But in Windows, this is not straightforward when you install Jenkins as a Windows services.

Windows Service Wrapper

To run Java application as a Windows service, you cannot run it directly using java command but you need a wrapper. Jenkins uses WinSW as a services wrapper to run java and jenkins.war.

Per its documentation, you can specify Java argument in the XML config file i.e. jenkins.xml, like this:

-Dfile.encoding=UTF8
Image for post
Image for post
Editing Jenkins’ WinSW XML Config File

Now, you can see nicely character in console log. Cheers!

Image for post
Image for post
Jenkins Console Log Output with Correct Encoding

References


Cloud Foundry and Neo Environment

Image for post
Image for post

SAP Cloud Platform supports running J2EE applications. But most develops are not building Java Web Application from EJB/Servlet any more. They rather use framework to build up their app. Spring Framework from Pivotal is a popular one which you can build rapidly with just a few lines of codes and it is open source.

Getting a Spring Boot app running on SAP Cloud Platform is not so strait-forward as the platform already provides Tomcat container and some other stuffs which interfere with Spring Boot libraries so you need to work a bit more to get them running properly on the platform. …


Continuously testing your ABAP codes with ADT APIs, Postman, and Jenkins

Image for post
Image for post

What is Continuous Integration (CI)?

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

By integrating regularly, you can detect errors quickly, and locate them more easily.

ThoughWorks

What Does This Mean for ABAP?

Image for post
Image for post

Since ABAP codes always reside on the centralized server so codes integration may not be an issue for ABAPer. They always check-in when they activate their codes, that’s when the new codes get verified and available to others to see and execute.

So CI in ABAP is more about continuously testing your activated codes to make sure it is working and as well as other codes. To get more confident on this, you may want to run unit tests, check for code coverage, and run Code Inspector to ensure it is in a good shape and ready to deploy. …

About

Chairat Onyaem (Par)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store