Продолжаем эксперименты по установке различных SAP систем в Яндекс Облаке.

В первой части (статья была опубликована в блоге Яндекс Облака) был рассмотрена установка платформы SAP Netweaver ABAP AS, которая является основой для большинства SAP систем. В этой публикации мы перейдем от сервера приложений к уровню базы данных.

Изначально SAP Netweaver работал на широком спектре баз данных, среди которых были как принадлежащие компании SAP (SAP MaxDB, SAP ASE) так и базы данных от сторонних производителей (DB2, Oracle и MS SQL Server). Ситуация кардинально начала меняться в 2015 году с выходом SAP HANA (High-performance Analytic Appliance). Эта база данных позиционировалась компанией SAP как революционный для рынка продукт:

  • обработка всех запросов осуществляется исключительно в оперативной памяти
  • совмещение построчного и поколоночного хранение данных
  • встроенные библиотеки PAL (Predictive Analytics Library), BFL (Business Function Library), Text Analysis, SAP HANA SQLScript и другие инструменты для подготовки данных на стороне базы данных и таким образом уменьшения обмена данными с сервером приложений.

Чтобы максимально использовать потенциал новой БД в SAP перерабатывают свою флагманскую ERP-система, которая выходит в 2015 году под названием S/4HANA и уже работает исключительно на базе SAP HANA. В последствии глубоко переработанные HANA — версии появляются у других популярных продуктов хранилища данных BW (Business Warehouse) — решение выходит на рынок под названием SAP BW/4HANA и у CRM-системы — решение выходит на рынок под названием SAP C/4HANA.

Остальные SAP ABAP и JAVA системы, например, шина данных SAP Process Orсhestration теперь могут использовать SAP HANA, как одну из доступных для установки баз данных, наряду с Oracle, DB2 и другими.

Поскольку SAP HANA является мультиконтейнерной базой данных, типичный корпоративный SAP — ландшафт выглядит следующим образом:

image

в этом скриношоте каждый тенант – это изолированная база данных какой-либо SAP системы (SAP Process Orсhestration, SAP EWM, SAP ATTP, SAP S/4HANA и т.д) внутри одной инсталляции SAP HANA.

Со временем у SAP появились также и коммерческие продукты которые представляют собой связку веб-приложение + база данных SAP HANA.

Например, SAP Medical Research Insights. Данная система должна помочь врачам выработать правильный план лечения, опирающийся на огромный массив данных, в том числе и о генетических исследованиях.

image

Еще один важный момент это наличие в архитектуре SAP HANA встроенного веб сервера (SAP HANA Extended Application Service). Данный сервер имеет привилегированный доступ к базе данных и позволяет выполнять приложения на Java, Python, Node.js и множестве других языков программирования. В версии сервиса Advanced Model (XSA) в ландшафте SAP HANA появляется такой функционал, как интегрированная среда разработки с веб-интерфейсом (SAP WEB IDE), Codereview (Gerrit) планировщик зданий (SAP XS JOB SCHEDULER) и многое другое.

Архитектура SAP HANA XSA:

image

Появление и постоянное развитие SAP HANA требует новых знаний у администраторов и разработчиков приложений. Возможность установить и экспериментировать со своей собственной базой и средой разработки в облаке представляется в этом случае далеко не лишней.

Однако SAP HANA будет интересна не только в Enterprise-среде, и не только среди разработчиков SAP. Благодаря гибкой лицензионной политики этот продукт можно бесплатно установить и использовать, в том числе и в коммерческих целях (размер в этом случае ограничен 32 GB) Возможно приведённый ниже пример установки и использования даст идею о том какое место может занять база данных SAP HANA и SAP HANA Extended Application Service в Вашем проекте.

Шаг 1. Скачиваем установочные файлы SAP HANA


Заходим на страницу загрузки SAP HANA, express edition и если у Вас нет учетной записи в SAP необходимо пройти простую регистрацию

image

Скачиваем и запускаем SAP HANA Express Edition Download Manager

image

В Download Manager укажем следующие варианты загрузки
Платформа – Linux/x86 – 64
Image – Binary Installer
Package – Applications*

image

* — Под Applications подразумевается база данных SAP HANA, сервер приложений и среда разработки SAP HANA Extended Application Services, Advanced Model (XSA)

Шаг 2. Создаём виртуальную машину в Яндекс Облаке


На этом шаге нам понадобится следующий бесплатный софт:

  • PuTTY – SSH-клиент.
  • PuTTYgen – Генератор Public/Private ключей.
  • WinSCP – SFTP-клиент.

Как альтернативу для данных приложений можно также рассмотреть приложение MobaXTerm
Создадим связку Public-Private ключ с помощью PuTTYgen.

image

Регистрируемся / заходим в Яндекс Облако (https://cloud.yandex.ru/). Переходим в раздел Compute Cloud и приступаем к созданию виртуальной машины.

Имя виртуальной машины: saphana2

Зададим подходящие характеристики ВМ. В руководстве по установке для SAP HANA Express Edition (Server + Application) видим следующие рекомендуемые параметры:

image

Зададим их при создании нашей виртуальной машины.

vCPU — 2,
RAM – 32GB,
15 GB + 150 GB, где
15 GB (загрузочный диск — SSD)
150 GB (данные — * HDD)

* — т.к. SAP HANA все операции проводит в оперативной памяти в качестве носителя для снепшота данных мы можем выбрать более медленный HDD

В качестве операционной системы выберем последнюю стабильную ОС OpenSUSE, на момент написания статьи – это версия ОС OpenSUSE 42.3

image

Укажем Логин и Public SSH-ключ, сгенерированный с помощью PuTTYgen

image

Шаг 3. Подготавливаем виртуальную машину к установке SAP HANA XSA


Находим в настройках Публичный IPv4 адрес:

image

Подключаемся к созданной ВМ с помощью Putty-клиента, указав в подключении публичный IPv4, заданный логин и путь к Private – ключу

image

Подготовим файловую структуру к установке.

lsblk
vda – boot диск, vdb –диск, созданный под данные.

image

SAP рекомендует следующую файловую структуру:

image

/usr/sap + /usr/sap/distr – 35 GB
/hana/shared/data — 60 GB
/hana/shared/log — 10 GB
/hana/shared –40 GB

Реализуем такую структуру с помощью утилиты fdisk:

fdisk /dev/vdb`

image

Проверим ещё раз структуру и создадим файловую систему ext4 на всех созданных разделах:

lsblk

image

mkfs.ext4 /dev/vdb1
mkfs.ext4 /dev/vdb2
mkfs.ext4 /dev/vdb3
mkfs.ext4 /dev/vdb4

image

Создадим директории под дистрибутивы и базу данных SAP HANA, а также примонтируем к ним созданные на предыдущем шаге разделы. Также обновим файл /etc/fstab, чтобы монтирование восстанавливалось при перезагрузке:

mkdir /usr/sap
mkdir /hana
mkdir /hana/shared
mkdir /hana/shared/data
mkdir /hana/shared/log

mount /dev/vdb1 /usr/sap
mount /dev/vdb2 /hana/shared/data
mount /dev/vdb3 /hana/shared/log
mount /dev/vdb4 /hana/shared
mkdir /usr/sap/distr

vi /etc/fstab

image

image

Установим разрешение на папку с установочными файлами SAP:

chmod -R 777 /usr/sap/distr

Импортируем в WinSCP настройки из Putty. Подключимся к ВМ и загрузим в /usr/sap/distr архивы SAP HANA Server (hxe.tgz), SAP HANA Extended Application Services –XSA (hxeesa.tgz) и shine.tgz (Учебный контент)

image

Распакуем архивы:

cd /usr/sap/distr 
tar -xvzf hxe.tgz
tar -xvzf hxexsa.tgz
tar -xvzf shine.tgz

image

Добавим репозиторий:

sudo zypper ar -c https://download.opensuse.org/tumbleweed/repo/oss/ openSUSE-Tumbleweed-Oss-HTTPS

Установим требуемые для работы библиотеки libstdc++, libnuma1, libatomic и libgcc_s1:

zypper install libstdc++6
zypper install libatomic1
zypper install libgcc_s1
zypper install libnuma1

Шаг 4. Устанавливаем SAP HANA XS


Первое с чего стоит начать установку – это определением понятия SID
SID (SAP System Identificator) — представляет собой комбинацию трех символов и должен быть уникальным в рамках ландшафта. В рамках установки SAP HANA Express Edition значение SID по-умолчанию HXE. Предполагается, что мы не будем выбирать в качестве SID что-то другое.

Запускаем скрипт инсталляции с правами root – пользователя:

cd /usr/sap/distr 
./setup_hxe.sh

В меню установки требуется несколько раз нажать Enter.

Таким образом мы установим предложенные значения по умолчанию:
Дистрибутивы лежат в /distr/HANA_EXPRESS_20

SID – HXE
Номер инстанции – 90
Установка всех компонентов – all*
* — В данном случае это значит, что мы установим набор библиотек Application Function Library (AFL), куда входят Predictive Analysis Library (PAL), Business Function Library (BFL), Optimization Function Library (OFL).

Плагин SAP HANA EPM–MDS предназначен для получения данных из различных OLAP источников, а подсистема расширенных сервисов (Extended Services, XS) — это встроенный веб-сервер и набор различных компонентов, имеющих привилегированный доступ к базе данных.

image

Указываем мастер-пароль для пользователей, которые создаются во время инсталляции SAP HANA.

Поскольку мы выбрали SID – HXE, adm – пользователь на уровне операционной системы будет hxeadm. Указанный мастер-пароль также применится и к пользователю SYSTEM на уровне базы данных.

image

В процессе установки XSA потребуется также задать мастер-пароль от пользователей XSA_ADMIN, XSA_DEV, TEL_ADMIN

Процесс инсталляции.

image

База SAP HANA Express Edition установлена.

image

Шаг 5. Проверка работы SAP HANA XSA


Проверим что база данных SAP HANA установлена и работает:

su – hxeadm
HDB info

Пример сервисов, которые будут запущены:

image

Пройдём авторизацию в SAP HANA Extended Application Services, Advanced Model:

xs-admin-login

Пользователь: XSA_ADMIN
Пароль: Мастер-пароль, который мы задали при установке
Проверим версию SAP HANA Extended Application Services, Advanced Model:

xs -v

image

Шаг 6. Пост-инсталляционные действия


Для того чтобы использовать веб-инструменты разработки и администрирования SAP HANA XSA необходимо отредактировать файл hosts на локальной Windows-мшине.

1. Открываем блокнот от имени Администратора

2. Открываем в блокноте файл C:\Windows\System32\drivers\etc\hosts

image

3. Вносим строку вида:
<внешний ip-адрес>

image

Шаг 7. Начало работы


Существует несколько способов администрирования и разработки для SAP HANA XSA
Администрирование: SAP HANA Cockpit. В настоящее время SAP позиционирует его, как основной инструмент управления базой данных. Также возможно управление базой данных из Eclipse (Перспектива – SAP HANA Administration Console)

image

Разработка: Через веб-интерфейс, через инструмент SAP Web IDE или через Eclipse (Перспектива – SAP HANA Development)

Поскольку HANA Cockpit и WebIDE были установлены во время процесса инсталляции именно их как средства управления и администрирования мы и будем рассматривать.

Получим url для интересующих нас приложений xsa-cockpit, webide и cockpit-web-app:

image

xs app xsa-cockpit --urls
xs app webide --urls
xs app cockpit-web-app --urls

Скопируем https – адрес и откроем его в браузере для каждого из этих приложений.

XSA Cockpit


XSA Cockpit — это браузерная система управления сервером приложений SAP HANA Extended Application Services, Advanced Model.
XSA Cockpit позволяет управлять пользователями и ролями, организациями и пространствами.
В разделе User Management можно проверить, и при необходимости назначить, для пользователя XSA_DEV роли DEVX_ADMINISTRATOR, DEVX_DEVELOPER.
В разделе Tenant Databases можно расширить возможности XSA на новый тенант, в нашем случае – HXE и связать с ним пространство разработки development

image

image

HANA Cockpit


HANA Cockpit — это система управления базой данных SAP HANA.

Cockpit можно использовать для управления пользователями и ролями на уровне базы данных, для создания бекапов, мониторинга работы, диагностирования проблем с производительностью на уровне базы и множества других административных задач.

Скрипт регистрации ресурсов базы данных в HANA Cockpit выполняется при установке, если скрипт по каким-либо причинам не выполнился – его необходимо запустить вручную до первого использования Cockpit-ом.

su – hxeadm
/usr/sap/distr/HANA_EXPRESS_20/register_cockpit.sh

image

image

WebIDE


WebIDE –это интегрированная с GitHub-ом браузерная среда разработки.

В разделе Development можно разрабатывать, тестировать и публиковать модули на NodeJS, Java, HTML5.

В разделе Database Explorer можно создавать и управлять объектами на уровне базы данных (таблицы, представления, хранимые процедуры и т.д).

Подключение к тенанту и обзор объектов в нём:

image

image

Шаг 8. Первое Node.js приложение


Откроем WebIDE и создадим простое UI5/Node.js приложение “Hello World!”

Для этого выберем
Workspace – Git – Clone Repository
В качестве репозитория укажем — Repository – github.com/basisteam-io/SAPHANAXS_helloworld.git

Таким образом мы получим копию простого приложения Hello world!, разобраться или модифицировать которое не составит никакого труда.

Установим пространство где будет развернуто данное приложение.

В нашем случае это пространство – development.

image

Последовательно сделаем Вuild приложения и проекта.

Результатом билдинга будет .mtar файл в папке mta_archives, которая расположена в верхней части меню с иерархией проекта.

Необходимо выбрать содержащийся в папке .mtar файл и сделать для него операцию «Deploy to XS Advanced».

image

image

Вернёмся к командной строке и переключимся на пространство development:

xs target -o HANAExpress -s development

Выведем список всех запущенных приложений в этом пространстве:

xs apps

image

Отроем наше приложение в браузере:

image

Заключение


Установить базу данных SAP HANA с сервером приложений HANA Extended Application Services, Advanced Model и написать своё первое приложение оказалось не сложно. В следующей статье рассмотрим более сложный пример, включающий в себя взаимодействие с базой данных SAP HANA.

Роман Горбенко, консультант SAP EWM / SAP BASIS