EDUCAÇÃO E TECNOLOGIA

SAP BTP Unified Runtime | Ready for the Next Wave?

/wp-content/uploads/2016/02/sapnwabline_885687.png

SAP Business Technology Platform

Unified Runtime Strategy

With all the hoopla around No-Code/Low-Code at SAP TechEd 2021, some relevant information may have passed under your radar. Should you be working with code that requires a runtime in 2022, you might appreciate this short executive briefing.

Project XSK

Field reports inform us that migrating applications from Neo to Cloud Foundry is not without challenges.

Fortunately, with XSK, you can run your XS classic applications, as-is, on Kyma.

Multi-Cloud Foundation

We already described the different runtimes and the multi-cloud strategy of the SAP Business Technology Platform in much detail in a previous article, with Kyma covered as the next wave.

With the runtime now targeted as the center piece of SAP’s Business Technology Platform we can conclude it is a big one.

In Review

As you may have read in the SAP Open Source review, 2021 was a good year for Kyma.

For theTechEd sessions, see

What follows is a little background on the topic of containers, container engines, container orchestration, and how this relates to SAP’s Business Technology Platform.

/wp-content/uploads/2016/02/sapnwabline_885687.png

Containers and UX

Go To Jail

Some trace back the origins of the container technology to the chroot system call to create jails (1979 CE).

mkdir -p new-root/{bin,lib64}
cp /bin/bash new-root/bin
cp /lib64/ {ld-linux-x86-64.so*,libc.so*,libdl.so.2,libreadline.so*,libtinfo.so*} new-root/lib64
sudo chroot new-root

Free BSD!

Closer to today and a little more sophisticated are FreeBSD Jails which partition systems into smaller systems with their own configuration and IP address. The trigger for Jails was resource optimisation: using virtualisation to improve TCO.

FreeBSD, like Linux, originates from the BSD UNIX branche. If you dig down deep enough, you can find BSD code running inside MacBooks (macOS), iPhones (iOS), Android (Linux) devices, game console (Playstation), and any computer or device running Linux.

For those less familiar with the genealogy, below an illustration of the UX family tree. If you want to get into a rabbit hole, try

Source: Wikimedia

Solaris Containers

Similar to Jails are Solaris Containers, software defined boundaries to which storage, networking, and/or CPU resources are assigned. The technology was later renamed to zones.

/wp-content/uploads/2016/02/sapnwabline_885687.png

Containers and Tux

Namespaces and Cgroups

Around the same time, 2002 and 2006 respectively and independently, engineers started working on namespaces and process containers, later renamed to Control Groups (cgroups). The user namespace was ready in 2013 (after mnt, pid, ipc, net, and uts). With namespaces, operating systems processes could run in isolation. With cgroups, resource usage for a collection of processes (CPU, memory, disk I/O, network) could be managed. Combined, these Linux kernel features enabled the creation of “containers”.

For those at home in C it is not all that difficult to run a Linux process in an isolated environment: takes about 500 lines of code.

Managing containers is bit more challenging as we will discover.

Virtual Machines

While process virtualisation was under development, operating system virtualisation ran production workloads.

  • In 2001, VMware released ESX, running on bare metal using a Linux kernel (originally).
  • In 2003, Xen was started as research project. Until recently, Xen powered Amazon Web Services EC2 VMs (beta 2006, GA 2008). Xen was acquired by Citrix.
  • In 2008, Microsoft released Hyper-V. Around the same time Microsoft launched Windows Azure Services. It would take almost 10 years before Azure became a serious AWS competitor. Google followed a similar trajectory, having developed (but not commercialised) their own virtualisation software.

For an apples with strawberries comparison, Google Trends often provides interesting insights. VMware ESX was as hot a topic in 2010 as Kubernetes was in 2020. EC2 shows a more gradually trend line.

What’s the Difference?

Should you be curious about what’s the difference between containers versus VMs, listen to Nigel Brown from IBM; What’s up y’all? 

/wp-content/uploads/2016/02/sapnwabline_885687.png

Container Runtimes and Tools

Run LXC

In 2008, the first container manager implementation using cgroups and namespaces was released: LXC, short for LinuX Containers.

Around the same time, platform-as-a-service solutions were introduced, starting with Heroku. VMware open-sourced Cloud Foundry as PaaS in 2011, as covered in another post

Warden and Garden

LXC did not provide the isolation required, and for Cloud Foundry, Warden was developed as container runtime (with Ruby, C and shell scripts), later implemented in Go as Garden. The containers were called (jail) cells.

To get hands-on with Warden containers, see

Docker

In 2013, Docker Engine was released open source. The container runtime was originally based on LXC but later replaced by libcontainer.

Image source: en.wikipedia.org/wiki/Docker_(software)

Apart from a container runtime, Docker added

  • Images – to save state and enabling to move containers around between computers (as TAR file)
  • Development tools – to create images from scratch or using other images as baseline, customisable with a Dockerfile
  • Docker Hub, an online repository
  • Docker Swarm, a container management/orchestration tool
  • Docker Desktop – to run Docker (i.e. Linux) containers on macOS or Windows computers inside a virtual machine
  • An ecosystem with conferences (DockerCon), training, and support

Docker greatly popularised containers, abstracting the complexities of cgroups and namespaces, with a friendly whale as mascotte (Mobi Dock). The nautical theme turned out to be inspiring.

Image source: en.99designs.nl/logo-design/contests

Rkt

LXC, Garden, and Docker were not the only container engines. Another long time favourite was rkt (rocket), introduced in 2014 by CoreOS (later Container Linux). The technology was eventually acquired by Red Hat, then donated to CNCF (see below) and now archived (as were other promising container engine implementations).

Like VMware for virtual machines, Docker quickly dominated as container engine. Linux operating system process virtualisation took off. This introduced a new challenge: how to manage containers?

/wp-content/uploads/2016/02/sapnwabline_885687.png

Container Orchestration

Tupperware and Mesos

As with container runtimes, there are also different container cluster management systems. We already mentioned Docker Swarm as commercial offering. Facebook developed its own proprietary technology, Tupperware (not for sale). Open source we have Mesos, made popular by startups like Twitter and Airbnb, but now about to be consigned to the Apache Attic.

Kubernetes

In 2014, Google open-sourced it’s internal container cluster management system. About the name and why Google decided to open source its top secret container management system and give up its competitive edge, see

The name “Kubernetes” stems from an ancient Greek word for “helmsman,” (someone who steers a ship, like a container ship) which explains the ship wheel logo. 

For the archeologists, here is the first commit of the project. Question: what container engine was being used?

CNCF, OCI, CRI

In 2015, the Cloud Native Computing Foundation was founded with Google, Docker, VMware, IBM and some others as founding members. SAP joined a little later, as did AWS, Apple, Microsoft, Oracle, and many more.

Its mission is to make cloud computing ubiquitous, as stated in the charter

CNCF launched the Open Container Initiative (OCI) an open governance structure for the express purpose of creating open industry standards around container formats and runtimes. (note the plurals)

About OCI, see

One of the standards is the Container Runtime Interface (CRI), implemented for example in the containerd and CRI-O runtimes.

Source: How CRI-O works with Kubernetes

There was a little panic when the CNCF announced the deprecation of the not CRI-compliant Docker runtime for Kubernetes. This required some explanation.

/wp-content/uploads/2016/02/sapnwabline_885687.png

KaaS

Managed Kubernetes

Kubernetes as container orchestration technology found quick and massive adoption. This introduced a new challenge: how to manage Kubernetes?

The hyperscalers all offer besides DIY environments, managed Kubernetes.

To manage Kubernetes clusters running on-premises and in the cloud (hybrid), additional services were added to the catalogue.

For those that prefer not put all their eggs in a single cloud provider basket, there are alternative offerings, including open source.

Gardener

SAP contributed by open-sourcing Gardener, a Kubernetes-as-a-service service management tool for multi-cloud and hybrid  environments. The tool is used extensively (but not exclusively) by SAP to deploy SAP HANA Cloud, SAP Data Intelligence, Kyma, and other services deployed on Kubernetes.

cf-for-k8s?

As covered in an earlier article, several project were launched over time to bridge PaaS with KaaS and bring Cloud Foundry and Kubernetes closer together.

For a (relatively) recent briefing on the topic, see

Image source: k8s-is-not-a-paas

Google has left the Cloud Foundry foundation and now offers kf to migrate Cloud Foundry workloads.

/wp-content/uploads/2016/02/sapnwabline_885687.png

Business Technology

Cloud Native Interactive Landscape

The Linux kernel features namespaces and cgroups (containers, if you prefer) caused a tsunami of cloud native open source projects and proprietary products to develop, deploy, run, provision, orchestrate, and manage. The CNCF keeps track of the landscape.

Should you find the landscape slightly overwhelming and are mainly interested in how container technology and Kubernetes can be leveraged to run and extend business applications, read on.

Kyma

Kyma was released as open source in 2018, quote/unquote, as a cloud-native application development framework that provides the last mile capabilities that a developer needs to build a cloud-native application using several open-source projects under the Cloud Native Computing Foundation (CNCF), such as Kubernetes, Istio, NATS, Kubeless, and Prometheus, to name a few. 

For the archeologists, here is the first commit of the project.

Kyma originates as extension framework for SAP Customer Experience (CX, SAP C/4HANA at the time), evolved from YaaS (SAP Hybris), and commercially made available initially as part of the SAP Cloud Platform Extension Factory, now SAP Extension Suite.

2021 In Review

For a quick update, the product management updates of 2021 by Marco Dorn and Karsten Strothmann.

Earlier this month, Kyma 2.0 was released (1.0 dates from 2019). Roll-out to SAP Business Technology Platform will be in Q1 2022. For the release notes, see

Learn More

For the more information about open source Kyma and the SAP BTP Kyma runtime, visit the topic area on the SAP Community.

To be notified when new articles are posted or to contribute to the Q&A, follow tag

For a short training, visit openSAP

/wp-content/uploads/2016/02/sapnwabline_885687.png

Share and Connect

Questions? Please post as comment.

Useful? Give us a like and share on social media.

Thanks!

If you would like to receive updates, connect with me on

For the author page of SAP PRESS, visit

Over the years, for the SAP HANA Academy, SAP’s Partner Innovation Lab, and à titre personnel, I have written a little over 300 posts here for the SAP Community. Some articles only reached a few readers. Others attracted quite a few more.For your reading pleasure and convenience, here is a curated list of posts which somehow managed to pass the 10k-view mile stone and, as sign of current interest, still tickle the counters each month.

/wp-content/uploads/2016/02/sapnwabline_885687.png