Microservices: Where Anything Is Possible

ICYDK: How Awesome Was 1999?

We were pre-tech bubble. We were pre-pendulum swinging too far towards governance and compliance and corrupting the tooling that was advancing us. We were pre-closing the doors to innovation in the name of safety. And, the best part, The Matrix was playing in theaters.

I promise, I don’t date myself with that movie reference for no reason. I bring up The Matrix because, at the end of the movie, Neo (the main character for those still in grade school when it came out) described a world without constraints. “… [I’m going to show you] a world without rules and controls, without borders or boundaries. A world where anything is possible.” This is the tech world today. The promise of The Matrix is being realized by the microservices movement. https://goo.gl/ifc36A #DataIntegration #ML

SAP Community looking ahead: SAP TechEd Barcelona 2017 activities!

With unforgettable moments at SAP TechEd Las Vegas and Bangalore already behind us, the SAP Community Experience team and I are looking forward to a blast at SAP TechEd Barcelona!

Again, we will have a SAP Community booth, where you can ask your questions and talk to us about community. See here all attending team colleagues from the SAP Community Experience team, with support by Oliver Kohl, head of CxP Engineering, Area PO for SAP Community.

We will have similar activities to the ones in previous locations but I want to highlight that this time in Barcelona you will get the chance to see a prototype of the new UX for the community platform. Oliver Kohl and Jamie Cantrell will present the new prototype in various sessions at SAP TechEd Barcelona. Please mark those in your calendar to not miss the new design and improvements. Take the opportunity to experience first-hand about the new prototype.

A nice way to team up and brainstorm about community is the Design Thinking Workshop sponsored by Björn Goerke which is led by his team member Kristen Janssen. They had received positive feedback at SAP TechEd Bangalore and will continue in Barcelona on Tuesday at 4:30 pm.

Another quite popular session will take place on Thursday early morning at 9:30 am with Moshe Naveh, SAP Community Manager for SAP Answers and moderation in the community. He will talk about empathy and the community in a 30-minute networking session.

Our blogging expert Jamie Cantrell will hold a soft skill seminar about using the SAP Community and other digital tools to build your personal brand. A not-to-miss one-hour learning session which will be held in the SAP Mentors room on Thursday at 11:00 am (a 30-minute-session is possible to visit on Wednesday at 1:30 pm in a networking session).

SAP Community has even more fun going on at SAP TechEd Barcelona.
Therefore, we invite you to share your SAP TechEd snapshots at the selfie wall next to our booth. Every participant posting in social media, that shows a picture at the selfie wall and using the hashtags #sapcommunity and #sapteched and a phrase why community matters will receive a SAP Community merchandise gift at the SAP Community booth.

You might have seen Capra the community goat at previous SAP TechEd locations and other SAP-related events. Fully recovered and freshened up from her last stop in Bangalore, Capra will make an attendance in Barcelona. Join the #goatspotting fun in Twitter to share your moments of Capra the community goat with others.

Caroleigh Deneen will run the third caption contest during TechEd Barcelona. Caption contest #1 and caption contest #2 had fun submissions already. Stay tuned on her next blog coming soon and join us to share some laugh with the community.

We are also running SAP Community LEGO contests! Every day, the team and I will select one winner who can take home a cool LEGO set. We will announce the winner and hand out the prize at the SAP Community booth at 4pm every day. Don’t miss the announcement!
Day 1 (Tuesday) will be all about superheroes. Like the SAP Mentors (here are some examples) and our recent SAP Community Award winners are our superheroes, we want to dedicate this theme to them and see your skills in building a superhero out of LEGO.
Day 2 (Wednesday) will be about goats. Show us your best LEGO-goat and be one potential winner of the day. Why goats? Read more about the community goat here.
Day 3 (Thursday) will be all about Star Trek, thanks to Björn Goerke’s influencing keynotes based on Star Trek. Show us your best LEGO-creature all related to Star Trek!

See in summary all activities listed below. I hope we get the chance to share some unforgettable moments with you at SAP TechEd Barcelona!

What
Who
When
Which format

Design Thinking Workshop about Community

  Kristen Janssen
Tuesday, 4:30 pm

Room CC7.11, max. capacity: 20 people (1,5 hours), work in groups

Prototype sessions
Oliver Kohl,
Jamie Cantrell Tuesday, 1:30 pm
Wednesday, 9:30 amThursday, 10:00 am Networking sessions (30 mins)

SAP Community: Real-world microservice architectures on SAP Cloud Platform

  Kai Spichale
Wednesday, 9:30 am
Lecture CPL219 (1 hour)

Extended prototype presentation
Oliver Kohl,
Jamie Cantrell Wednesday, 5:00 pm
Sneak Preview in room CC7.11 with snacks, standing event (ca. 1,5 hours)

“Empathy – Inside and outside the SAP Community”

  Moshe Naveh
Thursday, 9:30 am
Networking session 2 NET54837 (30 mins)

“Using the Community & other digital tools to build your personal brand”

  Jamie Cantrell

Wednesday, 1:30 pm

Thursday, 11:00 am Networking session 4 (30 mins)
SAP Mentors Room session (1 hour) 

All aspects of SAP Community
Jamie Cantrell, Mynyna Chau, Jerry Janda, Moshe Naveh
Every day at the SAP Community booth
Come by the booth to talk to us about SAP Community

Share your SAP TechEd Memories

All SAP TechEd Attendees

  Every day at the selfie wall
Share on social media with #sapcommunity #sapteched

#goatspotting

All SAP TechEd Attendees

  SAP TechEd Showfloor
Share your picture of Capra the community goat in social media with #goatspotting

SAP Community LEGO Contest
Day 1 theme: superheroes
Day 2 theme: goatsDay 3 theme: Star Trek

All SAP TechEd Attendees

  Every day at the SAP Community area
Daily cool prizes for the best creatures…

Gali Kling Schneider Oliver Kohl Moshe Naveh Jamie Cantrell Jerry Janda Kai Spichale Kristen Janssen http://bit.ly/2kLxDts #SAP #SAPCloud #AI

Continuous Integration in ABAP using Jenkins

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. I even sometime break my software and found them out later.

I think it’d be good if I have one for ABAP so at least when somethings goes wrong, I, as ABAP developer, should know it as soon as possible before someone else does. I didn’t expect much at the beginning but just to execute some tests every time we make changes in ABAP i.e. continuous integration.

Who know, I eventually got both CI and CD in the pipeline for ABAP running. Not perfect, but good enough. Here is the pipeline in Jenkins for ABAP:

Comparing to our Java pipeline:

In this blog, I will guide how to setup the same CI pipeline for your ABAP backend.

Prerequisites

* An ABAP system with ADT (ABAP in Eclipse) enabled and abapGit installed
* A Jenkins server with Node.js and newman installed

My recommendation is to build a SAP NetWeaver AS ABAP and SAP BW 7.50 SP02 on ASE [Developer Edition] on the cloud either Azure or AWS via SAP CAL. If you have no idea how to do this then you may check out this blog for instructions. It will be a bit different as some steps are getting easier now.

For Jenkins, once you get the Developer Edition up and running, you also get a Windows 2012 server frontend instance as well. Download and install Jenkins on the server. Install all recommended plugins and you should be ready to roll.

For Node.js, you can use Chocolatey to ease the installation. For newman, you can install via npm (comes with Node.js).

Using Git Repository for ABAP

Why do we use Git for ABAP? This is the question I usually get. Well, I didn’t want to use at the beginning but I want to deploy a mechanism where the Jenkins is triggered every time when ABAP code is changed.

I may insert a custom logic somewhere in ABAP to trigger Git when developer release their task which similar to when Java developer commit and push their code. But this is too complicated. I don’t want to write ABAP codes to automate ABAP codes.

Since there’s great tool like abapGit and I know Git can trigger Jenkins then why don’t we do them to ease our works.

Later, I found more benefits using Git for ABAP. One day, I was asked what changes over the past 2 weeks we are moving to production. I made lots of changes during those 2 weeks so I can’t remember all of them. I just go to Git and see all the logs of changes I made. I can even show exactly what changes I had made line by line.

Apart from change log, another benefit for developer is code backup. I sometime need to restore to the code I wrote and already deleted yesterday or last week. It usually a problem for me when I haven’t started using Git because, by nature, ABAP developers are not create new version that often. Using Git and apply practice ‘commit every day’ helps a lot.

Git also helps enforcing developer to modularize their objects in separated package. I used to see more than 3,000 objects in the same package then package is not used by its purpose at all.

Pushing Codes to Git

If you haven’t done so, create a Git repository and push your ABAP codes into it. In this tutorial, I’ll use my simple REST API repository as an example. Feel free to clone it to package the $REST_SIMPLE.

Adding Jenkinsfile

Go to your Git repository and add Jenkinsfile (You don’t have to do this if you use my repository as I already did). Paste the following content and commit.

You should see Jenkinsfile in your repository.

Building Jenkins Pipeline

You can create job in Jenkins one-by-one to automate each step but in this tutorial I will use Jenkins  pipeline script in Apache Groovy format which is easier to reuse and maintain.

The good thing about PaaC (Pipeline as a Code) like groovy is you can maintain the whole pipeline in the code format that mean you can version-control it on Git as well. Coding means less configuration required and minimize clicking, typing, and waiting through the UI.

Creating a New Pipeline Job

In Jenkins, create a new Pipeline job.

Set up Build Triggers to pull from Git every minute. Or you may setup web hook.

Configure Pipeline by reading Jenkinsfile from your Git repository.

Create a Credential

Go to Credentials and add a new one like below. This is the username and password you will let Jenkins to log on to ABAP system.

Run

Go back to your job and click Build Now to start building. If everything is setup correctly, you should see the pipeline completed successfully like below.

Continuous Delivery

Continuous Delivery is about keeping delivering value to customer. Features or changes that are done should be moved to QA/Staging as soon as possible so user can test and provide feedback.

You can append Jenkinsfile to perform additional stages to get your changes into QA environment. This will vary depending on process and system landscape in your company. How to write Jenkinsfile is another long blog so I won’t explain it here.

In my case, I’ve decided to build the tools to automate our current process. We are using SolMan to manage transport. Normally, when we want to move change to QA, we log on ChaRM BSP webpage and release the document from there. Our import job runs regularly to import changes into QA.

So I built an UI automation to automate this manual process. Wait for transport import. Then run another set of tests on QA. The tool I used is Robot Framework and Selenium. Of course, that can be another long blog.

However, in my case, there’s still a gap in this pipeline. Because ABAP developer can skip this quality pipeline and go back to their traditional steps. So I view this pipeline as an option to help developers and the team delivery faster with more quality. If we need to enforce the pipeline, then that would require a big change in the process and the way of work for many teams.

I hope this will benefit or at least motivate you to improve the way we work. Please share your comment about this. Let’s modernize ABAP! http://bit.ly/2kLyJpd #SAP #SAPCloud #AI