Entwickeln mit der HANA 2 - Der Tiger im Tank?

Werbung
Entwickeln mit HANA 2 –
Der Tiger im Tank?
Der Tiger im Tank? – Überblick
1. Die HANA und
meine
Perspektive
darauf
2. HANA 1 im
Vergleich zu
„SQL/REST/SPA“
3. Entwicklungsworkflow und
Werkzeuge im
Vergleich
4. HANA 2:
Express
Edition
5. HANA 2:
XS Advanced
6. Fazit:
Wann sollte man
es tun?
2 | Paul Bläsi - HANA 2 - Tiger im Tank?
Der Tiger im Tank? – Überblick
1. Die HANA und
meine
Perspektive
darauf
2. HANA 1 im
Vergleich zu
„SQL/REST/SPA“
3. Entwicklungsworkflow und
Werkzeuge im
Vergleich
4. HANA 2:
Express
Edition
5. HANA 2:
XS Advanced
6. Fazit:
Wann sollte man
es tun?
3 | Paul Bläsi - HANA 2 - Tiger im Tank?
Über was reden wir? – Der HANA-Stack
HTML5-Browserclient
SAP UI5
Appserver – XS Application Services
SAP HANA DB
4 | Paul Bläsi - HANA 2 - Tiger im Tank?
Meine Perspektive auf die HANA
l Paul Bläsi: Software Architect
– Backend-Entwicklung
– Single Page Webanwendungen
– Interesse an Verbesserung der Entwicklerproduktivität
l eXXcellent solutions gmbh, Ulm
– Realisierung von Kundenlösungen „nach Maß“
– Ein technischer Schwerpunkt: moderne
–
Webentwicklung
Erfahrungen aus HANA-Projekten
Wie geht individuelle Webentwicklung auf dem HANAStack?
5 | Paul Bläsi - HANA 2 - Tiger im Tank?
Der Tiger im Tank? – Überblick
1. Die HANA und
meine
Perspektive
darauf
2. HANA 1 im
Vergleich zu
„SQL/REST/SPA“
3. Entwicklungsworkflow und
Werkzeuge im
Vergleich
4. HANA 2:
Express
Edition
5. HANA 2:
XS Advanced
6. Fazit:
Wann sollte man
es tun?
6 | Paul Bläsi - HANA 2 - Tiger im Tank?
HANA 1-Stack: Datenbank/ Appserver/ Client-libs
l Client-Technologie
l
l
– SAP UI5 als SPA-Framework
– hoher Abstraktionsgrad, viel Widgets mit Semantik
Appserver
– Enge Verzahnung mit Datenbank
– unterstützt deklarativ OData als REST-Schnittstelle
– Ablaufumgebungen Java, Javascript (xsjs)
Datenbank
– In-Memory, SQL, ACID
– Erweiterungen (analytisch, prodzedural)
– Column- und Rowstore Engine
7 | Paul Bläsi - HANA 2 - Tiger im Tank?
Zum Vergleich: SQL/ REST/ SPA-Framework
l UI
l
l
– HTML5 Browserclient
– SPA, MVC-Framework
Appserver
– Java, Javascript, …
– REST
– Business-Services
– Domain Model
– ORM
Datenbank:
– SQL
– NoSQL
8 | Paul Bläsi - HANA 2 - Tiger im Tank?
Browserclient
SPAFramework
REST
Services
Domain
Model
ORM
SQL/NoSQL
Relevante Unterschiede: HANA 1 vs. B&B-Stack (1/2)
l HANA-Appserver
– Eng mit DB integriert
– Unterstützt „möglichst viel in der DB ausführen“
– Bevorzugt Services, die Daten 1:1 weiterreichen
– Business Logik etwas „heimatlos“, kein Domain Model
9 | Paul Bläsi - HANA 2 - Tiger im Tank?
Relevante Unterschiede: HANA 1 vs. B&B-Stack (2/2)
l Sehr gute Unterstützung eines „Standardwegs“
– UIs mit hohem Abstraktionsgrad/„normaler“ Semantik
– Überwiegend lesende Zugriffe
– Keine komplexen Modelltransformationen
– Persistentes Modell mit Metadaten vorhanden
l Höhere Hürden, um abweichende Anforderungen
umzusetzen
– Standardlibs schwer/nicht einbindbar
– UIs mit abweichender Semantik/Lifecycle aufwändig
10 | Paul Bläsi - HANA 2 - Tiger im Tank?
Zwischenfazit: HANA-Stack für die Webentwicklung?
Viele
Gemeinsamkeiten
HANA ist ein
Stack für die
Webentwicklung
Aber: Es gibt auch nennenswerte Unterschiede
11 | Paul Bläsi - HANA 2 - Tiger im Tank?
Der Tiger im Tank? – Überblick
1. Die HANA und
meine
Perspektive
darauf
2. HANA 1 im
Vergleich zu
„SQL/REST/SPA“
3. Entwicklungsworkflow und
Werkzeuge im
Vergleich
4. HANA 2:
Express
Edition
5. HANA 2:
XS Advanced
6. Fazit:
Wann sollte man
es tun?
12 | Paul Bläsi - HANA 2 - Tiger im Tank?
HANA 1 Tools & Workflow: IDE
l Zwei Alternativen
– HANA Web Based Development Workbench
– HANA Studio (Eclipse-basiert)
l Viele Funktionen, verteilen sich auf beide IDEs
13 | Paul Bläsi - HANA 2 - Tiger im Tank?
HANA 1 Tools & Workflow: HANA Repository: Zwitter
DesignDesignartefakte
Designartefakte
Designartefakte
artefakte
(Sourcecode)
Datenbankobjekte
(Tabellen, Daten, Views,
Procedures, …)
HANA Repository
Versionierung
14 | Paul Bläsi - HANA 2 - Tiger im Tank?
Laufzeitobjekte Appserver
HANA 1 Tools & Workflow: Sourcecode Repository
l HANA-Repository: Zentrales Sourcecode Repository
l Nur grundlegendste Funktionen der Versionsverwaltung:
kein branching, merging, tagging
l Zwitterrolle
– Versionsverwaltung des Sourcecodes
– Deployment der Artefakte in Datenbank/Appserver
l Beim „Einchecken“: Deployment der Designartefakte
15 | Paul Bläsi - HANA 2 - Tiger im Tank?
Relevante Unterschiede: Tooling and Workflow
l IDE: Bei HANA wenig, sonst volle Auswahl
l Teamarbeit bei HANA deutlich erschwert
– Versionsverwaltung: Rückschritt gegenüber geübter
l
Praxis
– umso schmerzhafter je größer das Entwicklerteam
Am ehesten noch
– Einzelner Entwickler, der mehrere Systeme zur
Verfügung hat (Entw, Prod, Test, …)
– Oder klar umrissene Trennung (z.B. front-/backend)
16 | Paul Bläsi - HANA 2 - Tiger im Tank?
Workarounds sind möglich!
l Getrennter Namensraum/Schema für jeden Entwickler
l Sourcecode in git außerhalb des HANA Repository
– Integration aller textbasierten Artefakte im SCM
– volle Unterstützung für branch/merge etc.
l Custom-Skripte, die Ersetzungen vornehmen
l Deployment per REST-Schnittstelle zum Repository
l Aber: Verwendung undokumentierter Schnittstellen,
einige Reibungspunkte, Skalierbarkeit
&
17 | Paul Bläsi - HANA 2 - Tiger im Tank?
Und wofür das Ganze?
Teamgröße
Komplexität
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
18 | Paul Bläsi - HANA 2 - Tiger im Tank?
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Und wofür das Ganze?
Teamgröße
Reibungsverluste bei Teamarbeit
Komplexität
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
19 | Paul Bläsi - HANA 2 - Tiger im Tank?
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Und wofür das Ganze?
Teamgröße
Zu
einfach:
Reibungsverluste bei Teamarbeit
Keine
IndividualEntwicklung
Komplexität
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
20 | Paul Bläsi - HANA 2 - Tiger im Tank?
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Und wofür das Ganze?
Teamgröße
Zu
einfach:
Reibungsverluste bei Teamarbeit
Keine
IndividualEntwicklung
Fehlende
Standardlibs
Ineffizienz bei
Implementierung
der Businesslogik
und des UI
Komplexität
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
21 | Paul Bläsi - HANA 2 - Tiger im Tank?
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Und wofür das Ganze?
Teamgröße
Zu
einfach:
Reibungsverluste bei Teamarbeit
Keine
IndividualEntwicklung
Individuelle
Entwicklung mit
HANA 1
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
22 | Paul Bläsi - HANA 2 - Tiger im Tank?
Fehlende
Standardlibs
Ineffizienz bei
Implementierung
der Businesslogik
und des UI
Komplexität
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Der Tiger im Tank? – Überblick
1. Die HANA und
meine
Perspektive
darauf
2. HANA 1 im
Vergleich zu
„SQL/REST/SPA“
3. Entwicklungsworkflow und
Werkzeuge im
Vergleich
4. HANA 2:
Express
Edition
5. HANA 2:
XS Advanced
6. Fazit:
Wann sollte man
es tun?
23 | Paul Bläsi - HANA 2 - Tiger im Tank?
Was ist die HANA Express Edition?
l Vollständige HANA mit DB, Appserver, Entwicklungstools
l Frei verfügbar unter Entwicklerlizenz, kostenlos
l Wenige Einschränkungen
– max. 32 GB RAM = Datenbankgröße
– einige Big Data-bezogene Funktionen fehlen
– keine Integration in SAP Solution Manager
l Geliefert als
– VM Image (VM Ware, Virtual Box)
– Installer mit Binärpaketen für SLES 12
24 | Paul Bläsi - HANA 2 - Tiger im Tank?
HANA Express Edition als Virtuelle Maschine
25 | Paul Bläsi - HANA 2 - Tiger im Tank?
Bewertung: HANA Express Edition zur Entwicklung
l Im Prinzip gut ausführbar auf Entwicklerrechner
l In-Memory-Db: min 12GB freies RAM erforderlich
l Entwicklung möglich ohne zentrale HANA oder offline
l Niedrige Einstiegshürde technisch/kaufmännisch
l Aber: Minimum an HANA-Administration erforderlich
– DNS-Einträge, Zertifikate, …
– Benutzer, Benutzerrollen, „Spaces“, …
26 | Paul Bläsi - HANA 2 - Tiger im Tank?
Der Tiger im Tank? – Überblick
1. Die HANA und
meine
Perspektive
darauf
2. HANA 1 im
Vergleich zu
„SQL/REST/SPA“
3. Entwicklungsworkflow und
Werkzeuge im
Vergleich
4. HANA 2:
Express
Edition
5. HANA 2:
XS Advanced
6. Fazit:
Wann sollte man
es tun?
27 | Paul Bläsi - HANA 2 - Tiger im Tank?
Was ist XS Advanced ?
l Vollständige Überarbeitung des Appserver-Layers
l Beginn in HANA 1 (SPS 11)
l Seit SPS 12/HANA 2(SPS 0): XS Classic „abgekündigt“
HTML5
App
central
security
service
Application Router
Node.js
Runtime
JAVA
Runtime
xsjs
compatibility
XS Advanced Runtime
User
Account/
Authent.
HANA
DI
28 | Paul Bläsi - HANA 2 - Tiger im Tank?
SAP HANA Database
Custom
Runtime
XS
Classic
RT
(for
several
SPS
levels)
Was ändert sich mit XS Advanced ?
l Workflow:
– Ablösung des HANA Repository
– Versionsverwaltung komplett im git
– Deployment komplett von HDI übernommen
l Architektur:
–
–
–
–
–
–
„Multi-Target-Applications“ als Standardmodell
Cloud Foundry-basiert
„Microservices“
Standardmäßige Anbindung externer ID Provider
XS-Benutzer müssen keine HANA DB User mehr sein
Zugriff auf Datenbankcontainer via dediziertem technischen User
l Ablösung der IDEs durch „Web IDE for SAP HANA“
– Löst „Web Based Development Workbench“ und „HANA Studio“ ab
– Neuentwicklung, nicht verwandt mit bisheriger „Web IDE"
29 | Paul Bläsi - HANA 2 - Tiger im Tank?
Entwicklungsworkflow ohne HANA Repository
Web IDE:
Projekt initialisieren
In git remote
branch zur
Verfügung
stellen (push)
Web IDE:
deploy/test
In git remote
branch
programmieren/
integrieren
In Web IDE
Änderungen
abholen (pull)
30 | Paul Bläsi - HANA 2 - Tiger im Tank?
Auswirkung des neuen Workflow mit XS Advanced
l Saubere Trennung Versionsverwaltung/Deploymenttool
l Verwendung jeder beliebigen IDE für textbasierte
l
l
Artefakte
– Große Hilfe bei JS-Entwicklung
– Allerdings keine Editoren für HANA-Spezifika (mta.yml, cds, …)
Integration wie „gewohnt“ in git-branches
– Paralleles, unabhängiges Deployment aus mehreren branches
Zusammenarbeit im Team deutlich verbessert
l Web IDE kann aber nicht komplett ersetzt werden
– Editoren für HANA-Spezifika
– Initialisierung und Steuerung des Deployments
31 | Paul Bläsi - HANA 2 - Tiger im Tank?
„Microservices“ in HANA 2
HTML5
App
central
security
service
Application Router
Node.js
Runtime
JAVA
Runtime
xsjs
compatibility
XS Advanced Runtime
User
Account/
Authent.
l
l
l
l
l
l
l
HANA
DI
Custom
Runtime
XS
Classic
RT
(for
several
SPS
levels)
SAP HANA Database
XS Advanced Runtime basiert auf CloudFoundry
Javascript Runtime basiert nicht mehr auf xsjs-API, sondern auf Node.js mit Modulen
Eines dieser (mitgelieferten) Module ist ein xsjs-Kompatibilitätsmodul
Installation weiterer Module auf Standardweg (npm und package.json)
Auch Datenbankcontainer werden über einen Microservice zur Verfügung gestellt
SAP UI5 lib kann versioniert als Microservices zur Verfügung gestellt werden
Custom Apps verteilen sich auf mehrere Microservices, deklarative Abhängigkeiten
32 | Paul Bläsi - HANA 2 - Tiger im Tank?
Auswirkungen des Microservice-Ansatzes
l Verwendung von Standardlibs (Node-Modulen in JSl
l
l
Runtime) deutlich erleichtert
Feinere Strukturierung von Induvidualentwicklungen
erleichtert größere (komplexere) Projekte
Skalierbarkeit verbessert
– Connection Pooling durch technischen DB-User
– UI5 als Microservice statt mit jeder App deployt
Größere/komplexere Apps besser unterstützt
l Allerdings auch höhere Komplexität für kleine Projekte
33 | Paul Bläsi - HANA 2 - Tiger im Tank?
Bewertung: HANA 2: Express Edition und XS Advanced
Workflow
orientiert am
Standard („git“)
Verbesserung der
Zusammenarbeit im Team
Express Edition
Isolierte und offline Arbeit,
Entwicklertests ohne HANA
JS-Runtime
basiert auf
Node.js
Microservices
34 | Paul Bläsi - HANA 2 - Tiger im Tank?
Reibungsverluste
verkleinert
Entwicklerproduktivität
erhöht
Verwendung von
Standardmodulen
Schub für Backendseitige JavascriptEntwicklung
Feinere Strukturierung
großer Anwendungen
Höhere Komplexität
besser
unterstützt
Grund zum Jubel? – Pro und Contra!
l HANA 2: Änderungen gehen in
l Erhöhte Komplexität lohnt evtl.
l
l
l
l
l
l
die richtige Richtung!
Unterstützung des git-basierten
Workflows macht Teams
produktiver.
HANA Express ermöglicht
unabhängiges Entwickeln.
Unterstützung von aktuellem
Node.js deutliche Verbesserung
Datenbankcontainer mit
technischen Usern und externe
ID-Provider „state of the art“.
Microservices helfen, große
Anwendungen zu strukturieren.
35 | Paul Bläsi - HANA 2 - Tiger im Tank?
l
l
l
nicht für kleine Projekte.
SAP Web IDE hat noch nicht
Funktionalität und Reife der
früheren IDEs (Web/Eclipse).
Weite Teile der Plattform sind
Neuentwicklungen, deren
Produktionsreife erst erprobt
werden muss.
Express Edition funktioniert
nicht ohne jeden
Administrationsaufwand
Für vorhandene Projekte
Migrationsaufwand einplanen!
Was ändert HANA 2?
Teamgröße
Zu
einfach:
Reibungsverluste bei Teamarbeit
Keine
IndividualEntwicklung
Individuelle
Entwicklung mit
HANA 1
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
36 | Paul Bläsi - HANA 2 - Tiger im Tank?
Fehlende
Standardlibs
Ineffizienz bei
Implementierung
der Businesslogik
und des UI
Komplexität
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Was ändert HANA 2?
Teamgröße
Zu
einfach:
Reibungsverluste bei Teamarbeit
Keine
IndividualEntwicklung
Individuelle
Entwicklung mit
HANA 1
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
37 | Paul Bläsi - HANA 2 - Tiger im Tank?
Fehlende
Standardlibs
Ineffizienz bei
Implementierung
der Businesslogik
und des UI
Komplexität
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Was ändert HANA 2?
Teamgröße
Reibungsverluste
bei Teamarbeit
Zu
einfach:
Fehlende
Standardlibs
Keine
IndividualEntwicklung
Ineffizienz bei
Implementierung
der Businesslogik
und des UI
Individuelle
Entwicklung mit
HANA 1
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
38 | Paul Bläsi - HANA 2 - Tiger im Tank?
Komplexität
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Was ändert HANA 2?
Teamgröße
Reibungsverluste
Zu
einfach:
Standardlibs
Implementierung
der Businesslogik
und des UI
Keine
IndividualEntwicklung
Individuelle
Entwicklung mit
HANA 1
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
39 | Paul Bläsi - HANA 2 - Tiger im Tank?
bei Teamarbeit
Komplexität
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Was ändert HANA 2?
Teamgröße
Reibungsverluste
bei Teamarbeit
Zu
einfach:
Keine
IndividualEntwicklung
Standardlibs
Individuelle
Entwicklung mit
HANA 2
Implementierung
der Businesslogik
und des UI
Komplexität
überwiegend Lesezugriff/Visualisierung
Standard-Szenarien (master/detail)
vorgefertigte Widgets
40 | Paul Bläsi - HANA 2 - Tiger im Tank?
komplexe Ablauflogik
Non-Standard-Anforderungen
komplizierte UIs
Der Tiger im Tank? – Überblick
1. Die HANA und
meine
Perspektive
darauf
2. HANA 1 im
Vergleich zu
„SQL/REST/SPA“
3. Entwicklungsworkflow und
Werkzeuge im
Vergleich
4. HANA 2:
Express
Edition
5. HANA 2:
XS Advanced
6. Fazit:
Wann sollte man
es tun?
41 | Paul Bläsi - HANA 2 - Tiger im Tank?
Fazit: Individualentwicklung auf HANA wagen?
l Mit HANA 2 wird der Anwendungsbereich größer
l Es spielen noch andere Faktoren eine Rolle
– UI-Konzept: Standard oder Speziell?
– Anforderungen an analytische Funktionen der DB
– In Memory/Big Data
– Betriebsthemen
– Einbindung in vorhandene SAP-Landschaften
l Immer auch alternative Stacks berücksichtigen
– SQL/REST/SPA-Framework
– Anbindung der HANA DB über plain old SQL/JDBC
42 | Paul Bläsi - HANA 2 - Tiger im Tank?
Fragen? Anmerkungen?
Ihre Erfahrungen?
Quellen und Verweise
l SAP HANA 2 Docs: http://help.sap.com/hana_platform
l HANA Express Edition @SAP:
l
l
l
http://www.sap.com/developer/topics/sap-hana-express.html
SAP UI5: http://www.sap.com/developer/topics/ui5.html
OData (Version 2): http://www.odata.org/documentation/odataversion-2-0/
Cloud Foundry: https://www.cloudfoundry.org/
l HANA @eXXcellent solutions:
https://www.exxcellent.de/software/software-entwicklung/saphana/
44 | Paul Bläsi - HANA 2 - Tiger im Tank?
Herunterladen