Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
dvankempen
Product and Topic Expert
Product and Topic Expert






In this article we will catch a few waves on the SAP Business Technology Platform (BTP) Kyma runtime and provide an update to an earlier article on the topic.

For the article covering DIY installation of a Kubernetes cluster and Kyma deployment, see

For the video tutorial series covering the SAP BTP Kyma runtime, see

For those interested in the CKA certification, see

Questions? Post as comment.

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

Thanks!



SAP Business Technology Platform


Unified Runtime Strategy


With all the buzz 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.




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

 









The illustration and code snippet are from a series of articles about demystifying containers by Sascha Grunert (SUSE). Highly recommended for a more thorough understanding of the topic.


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.


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.


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? 

https://youtu.be/cjXI-yxqGTI


Container Runtimes and Tools


Run LXC


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

PaaS


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?


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. 

About the name, see

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.



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


Remember the Garden containers?

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 on Kubernetes.

Another use case is SAP Business Application Studio, with dev spaces running as pods on hyperscaler data centers deployed by Gardener



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.

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.



FaaS


Knative


In 2018, Google released Knative, a Kubernetes-based platform to build, deploy, and manage serverless workloads. It was developed in partnership with Pivotal (VMware), IBM, Red Hat, and SAP and is currently in the process as CNCF incubating project

Serverless allows you to build and run applications and services without having to manage the underlying infrastructure. Although this applies to the already mentioned platform-as-a-service(s) like Cloud Foundry, the term is more commonly used to reference function-as-a-service (FaaS) of which AWS Lambda (2014), Google Functions  and Azure Functions are most commonly used.

With Knative, you can run your functions on Kubernetes (your own cluster, or as managed service) with more flexibility and control. Like PaaS, this enables developers to focus on writing code and not on the infrastructure.

https://youtu.be/69OfdJ5BIzs

Kyma


Kyma, released as open source by SAP around the same time, has a similar objective: focus on writing (business) applications. Developers can leverage Kyma to expose APIs, trigger them with events, enable them for external service consumption, and assure observability (monitoring, logging, tracing).


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.


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

For the latest update on serverless, see




Next Steps


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



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.


2 Comments