This Blog entry describes two ways of installing the SAP ABAP Platform 1909, Developer Edition on a personal Cloud Server: An uncomplicated one, and a ridiculously easy one.
The new and shiny ABAP Developer Edition comes with some above-average hardware requirements, in that you have to assign 16 GB of RAM to the Docker Desktop in Windows or MacOS. While laptops with more than 16 GB of RAM exist, they are far from commonplace and come at a premium. Desktops are cheaper and configurable, but not an option for everyone. Who wants to have an ugly black box sitting under their desk anyway?
If only there was some way we could “rent” a computer, which we would then access remotely… like in… a cloud…?
Wait, there is! Unbeknownst to many, cloud computing is no longer the preserve of mega-rich corporations. You and I can spin up a cloud Server in a blink of an eye and for the price of a beer.
Step 1: Obtain an account with a Server-in-the-Cloud provider
A cloud Server can be obtained from a myriad of providers. I choose Scaleway (www.scaleway.com). The company made headlines recently for being the first one to offer Apple Mac Mini M1 as Desktop-as-a-Service (I have tried it – works like a charm).
The first step then would be to obtain an account with Scaleway. The company is strict with their security and anti-abuse policies. During the sign-up process, you are required to upload a copy of your personal ID document, scan your face, and verify your credit card by accepting a token charge… among other requirements. Might not be for everyone. Some other providers are more relaxed.
Step 2: Create a Server
After registration, we proceed to create a “Bare Metal” Server:
The Image to be installed is Ubuntu 20.04 or 20.10, as these are the most recent ones with which the Docker Engine is currently compatible. If you choose a wrong image by mistake, worry not: The Server can be reinstalled anytime in a matter of minutes.
When it comes to hardware, I choose the General Purpose – Bare Metal 1 – Small (GP-BM1-S). This is currently Scaleway’s entry-level offering. It is already sufficient for our requirements, what with its 4-core Xeon processor from roughly 2017, 32 GB of RAM, 2 x 256 GB SSD disks, and a 500 Mbit/s internet connection with unlimited traffic volume.
We shall be connecting to our Server via SSH. Therefore, during the installation process (or better: before) it is necessary to create an SSH Key, and store it on the computer from which we shall be connecting. This is well described in the Scaleway instructions. Just do not forget to use the Keys generated for the current User. At one point I made myself Admin with
# sudo su
and was left wondering why the Key that I had generated for my “normal” User didn’t work. Another thing not to forget is to create an SSH Key for each computer from which you will be connecting. Scaleway say that it is possible to add a new SSH Key to an already running Server Instance, but I didn’t manage.
The Server installs in approximately 15-20 minutes:
When the Status becomes “Ready”, do not rush to log in – the Server isn’t really available yet. Allow extra 4-6 minutes for the dust to settle.
When the machine finally does become available, we connect to it by issuing the SSH command as shown in the Scaleway console, from a Linux or MacOS Terminal:
# ssh ubuntu@<IP address of the server>
From now on, we shall be working in the Command Line Interface of the Server.
Step 3: Install the Docker Engine
This is fairly straightforward and well documented here: https://docs.docker.com/engine/install/ubuntu/
There are several ways to install the Docker engine. I choose “Install using the repository”, which seems to be the default / easiest method.
Having an account with Docker is likely required at this point – I do not know for certain, as I had created it some time ago. This is something we’ll need to do anyway, then why not do it now.
Step 4: Move the Docker directory, if required
The cloud Server comes with 2 x 256 GB SSD disks. The first (boot) disk does not have sufficient space left to download and unpack the Docker Image (believe me, for I have tried). Therefore, it is necessary to move the Docker directory to the second 256 GB volume, which is empty and sufficiently large.
shows that the second Volume is mounted to the Path /data. That is where I want to move the Docker default directory:
There are apparently several ways of achieving this, the one that worked for me is described here:https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux
It consists of modifying Docker’s start-up Script, to point it to the new Path, then restarting the Service.
For completeness, and in case this Blog entry survives the above web page, here is the list of Commands:
# systemctl stop docker# nano /lib/systemd/system/docker.service
Change ExecStart from: ExecStart=/usr/bin/docker daemon -H fd://
To: ExecStart=/usr/bin/docker daemon -g /data/docker -H fd://
# systemctl daemon-reload# mkdir /data/docker# rsync -aqxP /var/lib/docker/ /data/docker# systemctl start docker
Needless to say, you can skip this step if you have sufficient space on the main disk.
Step 5: Pull the Docker image
We pull the required image from the Docker Hub:
# docker login# docker pull store/saplabs/abaptrial:1909
The full download takes some 15 minutes on a 500-Mbit line. Extraction takes about the same time, courtesy of the 4-year old Xeon. Your mileage may vary.
Step 6: Run the Docker image
This is the final step. I used the following modified statement:
# docker run--sysctl kernel.shmmni=24576--stop-timeout 3600-i --name a4h -h vhcala4hci-p 3200:3200-p 3300:3300-p 8443:8443-p 30213:30213-p 50000:50000-p 50001:50001store/saplabs/abaptrial:1909-skip-limits-check-agree-to-sap-license
If you are wondering whether the mapping of the Docker Ports to the Linux Ports with -p is really necessary: For me, it was. Otherwise I couldn’t connect from the outside.
Even on my somewhat capable hardware, the first start-up sequence took more than 20 minutes. Most of it was spent loading the HDB. Subsequent starts are much quicker, 2-3 minutes tops.
As a post-installation step, create a SAP Gui entry. On Windows:
On Linux / Mac OS:
(The blurred-out part is the Cloud Server Public IP as provided by Scaleway).
And you are good to go:
As a private individual, you are running an SAP solution in the cloud ?
I conducted this whole installation process from a computer with Linux. This makes it a bit easier, only because I already have the Terminal (same on a Mac). On Windows, you would need to install PuTTY the SSH Client.
For a private person, renting a server in the cloud isn’t exactly cost-efficient. It certainly cannot compete with buying an entry-level PC with 32 GB of RAM, cost-wise in the medium / long-term. Short-term, it might still be a valid option. Perhaps just to try something out, to complete a training, or to learn new tricks. Like a Contractor would do between jobs.
Plus, there is the advantage that you can easily connect from anywhere to a static IP Address. If you install at home, you have to somehow obtain a static IP Address for your home network, to be able to connect from the outside. Often you have to use a subscription service for that, albeit an inexpensive one.
If you would like to save some time, and don’t mind spending marginally more money, Scaleway also offers “InstantApps”: Virtualised Server Instances with pre-installed Applications. One of them is Docker:
The following hardware options are available at the time of writing:
With this InstantApp, we should be able to get away with just docker pull + run. Let’s try it. I won’t even bother breaking this down into Steps.
Create an Instance. I wonder whether the GP1-XS might be enough. It should, according to the minimum system requirements published in the Docker Hub. Just in case, I go with the GP1-S:
BTW, creating an Instance is much quicker than installing the Bare Metal Server. It takes just a few minutes.
Log in via SSH:
Again I’ve had to specify the Port mappings with -p, like in the previous example. I tried without it and it didn’t work. The result:
Easiest thing in the world. Kudos to SAP for providing such an easily-deployable solution. Fun have, we shall (or what passes for fun in our geeky world ? ).
If anyone goes down one of these routes, I would be interested to hear how it went. Suggestions for improvement of my installation process are also welcome. I am far from a proficient Linux user, and you wouldn’t believe the amount of googling and trial & error that went into this ostensibly uncomplicated process. No doubt the process can be improved, simple as it is.