This blog post is a part of a larger series. You can navigate the series here:
As HANA adoption continues to accelerate, more and more enterprise developers are coming into contact with SAP HANA either as a database or through SAP S/4HANA. SAP HANA brings many new aspects to developing applications from tools & languages, functions & capabilities, and development methodologies and with it the need to learn new skills.
To grow new skills, there is no substitute for hands on experience and having a feature rich environment that a developer can control. It must perform reasonably well for learning purposes and be easy to maintain. A good environment goes a long way toward reducing friction on the learning journey. The objective is to keep focused on development activities instead of system and performance limitations, workarounds, and other time wasted tinkering with the environment.
Fortunately, it has never been easier to learn how to develop SAP applications by having your very own development environment meeting these requirements. In this series we’ll explore the available options and discuss the considerations for choosing the deployment option that best fits your needs. In the next post, we will walk through the necessary steps to deploy one of the most cost effective, and available SAP HANA development environment you can use to further your personal learning journey.
SAP HANA Express
SAP HANA Express is available as a free download from SAP. It is a streamlined version of SAP HANA that can run on laptops and other resource-constrained hosts. The express edition is free to use for in-memory databases up to 32GB of RAM in both prod and non-prod usage scenarios.
The Express version is quite feature rich and provides many opportunities for learning. In addition to SAP HANA you also have the option to install XSA and other components including EA Designer, data warehousing foundation, external machine learning integration, smart data integrator, and streaming analytics. You will gain experience with WebIDE and SAP HANA Cockpit administration. Using this environment in combination with GitHub and CircleCI, or another automation tool, you can manage a small DevOps pipeline and gain a lot of hands on experience with modern application development practices and patterns used in an SAP shop today.
There are some important considerations to think about as you build your development environment. My requirements and priorities might not be the same as yours so be sure to choose your deployment method after adjusting for your needs, but keep these things in mind:
Ease of accessibility is key for myself and others. If I develop an application I’m certain to have friends a colleagues kick the tires and even use it. I don’t want to have to open and forward ports, remember IP addresses, or otherwise complicate the testing and feedback process or general use of the application.
Also, if you are running your SAP HANA Express environment locally on a laptop or you are snoozing your development environment in the cloud you will be starting up and shutting down more frequently. It can take up to 45 minutes or more for all services to be come available from startup.
|Hardware||First, you must have Intel CPUs that support virtualization. As for memory, though the minimum requirements listed in the documentation are 16GB for database only and 24GB for database + XSA applications might technically work, I personally don’t have the patience to operate with anything less than 32GB of RAM, especially with all options installed. You’ll also want 150GB or so of free space to download additional components and for temporary space.|
|Backup & Recovery||
It takes a fair amount of time to install and configure your SAP HANA Express environment. Sometimes things go wrong and it takes even longer. Overtime you’ll add users and roles, UI and data components, etc and you’ll want to have a backup strategy just incase you to need to refresh your development environment.
It is quite easy to take snapshots and recover in the cloud but if you are running locally you’ll want to have backup storage, backup software, a scheduled routine, and a defined and tested recovery procedure to ensure that you don’t waste your time manually rebuilding your environment.
|Operating System||SUSE Linux Enterprise Server (SLES) is the most commonly used linux OS; however, Red Hat Enterprise Linux is also used by some. There are those who have installed HANA Express on Ubuntu and others, but any issues arising from such install wouldn’t not be supported.|
There are several ways to deploy a SAP HANA Express installation and the best deployment option usually depends on a combination of your desires for operating the environment, available hardware, and cost.
- Local Virtual Machine
A virtual appliance is downloaded locally and executed via a hypervisor such VirtualBox or VMWare. While this is an easy way to get started with SAP HANA you might be constrained by some of the hardware and/or availability concerns discussed above.
- Cloud Appliance Library
The Cloud Appliance Library (CAL) is without a doubt the quickest, easiest way to realize a personal development sandbox. With CAL, deployment essentially becomes a point-and-click operation to deploy an environment directly into your Azure, AWS, or GCP account.
Unfortunately, recent changes in the appliance offerings for SAP HANA Express will likely be cost prohibitive for an individual developer funding the learning experience on their own dime.
The newest CAL image comes with a virtual network and a Windows jumpbox. While this is great for instructional environments like openSAP it isn’t the best option for a clean development environment for semi-productive use. The Windows instance combined with premium storage significantly increases operating costs over the old SAP HANA Express CAL image. Even with the system shutdown you will still incur hundreds of dollars a month in storage costs (on AWS).
- Cloud Native Linux Install
With a native linux install we simplify the environment and reduce cost by eliminating the Windows Jumpbox, operating system, virtual network, and premium storage. It takes a little work to spin up a Linux instance, install SAP HANA Express and the optional components but we can learn something in the process and save a lot of money on compute and storage resources.
The relationship between availability, hardware, and backup are key factors in choosing the deployment option best for you. In my case, I considered the following:
I have two laptops and a Netgear ReadyNAS at my disposal. The ReadyNAS is always powered on, has a battery backup, and has a domain name via DynDNS which makes external access a breeze; however, the memory and processor doesn’t meet the requirements. The work laptop is a 3 year old MacBook Pro with 16GB RAM. This will not comfortably run the environment I’m looking for and while my newer, personal MacBook Pro with 32GB RAM might run it, I don’t want to open ports and route traffic on the home router. I also don’t want the uptime dependent on the location and availability of my personal laptop. Finally, I want to be able to access the system with my own domain name on the internet.
These considerations lead me to a cloud native linux installation! In my next post we’ll prepare for a cloud native linux installation on AWS.