Nr. 3 | Juli 2018 | ISSN 2366-7915 | www.doag.org Wir leben Cloud. Red StackMagazin Cloud-Services

Bei den mittlerweile unüberschaubaren Cloud-Angeboten sind wir Ihr verlässlicher und vorausschauen- der Navigator für Ihren Weg in die Cloud. Für Sie haben wir sämtliche Aspekte im Blick und entscheiden gemeinsam mit Ihnen die richtige Strategie. Wir sind an Ihrer Seite: von der Beratung über die Planung und Umsetzung bis hin zu Training und Betrieb. Sprechen Sie mit uns. www.trivadis.com/cloud-solutions | [email protected]

Oracle NoSQL Im Interview Topaktuell Verarbeitung von Andre Lünsmann, Die autonome Streamingdaten Barmenia Versicherungs- Oracle-Datenbank BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH gruppe Testen Sie die Oracle Cloud mit Credits im Wert von $300

Registrieren Sie sich und erhalten Sie eine Gutschrift für das Pay-as-you-go-Abonnement von Oracle Cloud-Services in drei einfachen Schritten: cloud.oracle.com/de_DE/tryit Liebe Mitglieder, liebe Leserinnen und Leser,

mit Spannung haben wir die Worte von Paul Wehner auf der Delegierten-Versammlung am 20. April 2018 in Berlin verfolgt. Es ist schon sehr interessant, wie Oracle das Thema „Cloud“ betrachtet und was für Fortschritte sie machen. Leider sind wir immer noch nicht wirklich von den rechtlichen Bedingungen der Cloud-Thematik angetan und hoffen, dass sich dort noch einiges zum Guten ändern wird. Im Herbst letzten Jahres wurden die Oracle-Cloud-Rechenzentren in Frankfurt eröffnet. Spätestens seitdem nimmt die Oracle-Cloud auch in Deutschland Fahrt auf. Die Architektur wird kräftig moderni- siert und die neue Oracle Cloud Infrastructure (OCI) ersetzt Schritt für Schritt die Dienste der OCI-Classic. Oracle setzt damit Maßstäbe, die die anderen Anbieter zurzeit blass aussehen lassen. Jan-Peter Timmermann Aber brauchen wir so viel Leistung aus der Cloud wirklich? Wie nutzen Sie Cloud-Dienste und wie gut Leiter Middleware und fühlen Sie sich über die Angebote informiert? Das möchte die DOAG gerne wissen und hat deshalb eine Infrastruktur Community Umfrage zusammengestellt. Bitte nehmen Sie sich die Zeit. Sie finden die Umfrage unter „www.doag.org“. Wir wünschen Ihnen viel Spaß beim Lesen und viel Erfolg mit allen Cloud-Projekten.

Ihre

Robert Marz DOAG-Themenverant­ wortlicher Cloud

Lizenzen

Durchblick mit IQ Experten-Knowhow für Ihr Oracle Lizenzmanagement! Setzen Sie auf Lizenzmodelle, die nicht nur wirtschaftlich sind, sondern auch einem Audit standhalten. Nutzen Sie die Beratung von Muniqsoft Jetzt Beratungstermin vereinbaren:  +49 (0)89 6228 6789-39 www.muniqsoft.de Inhalt

Einleitung Entwicklung

3 Editorial 67 Objekte machen das Leben leichter Jürgen Sieben 5 Timeline

8 „Ein Test mit dem Oracle Advanced Customer Support brachte nicht den erhofften Erfolg …“ Interview: Andre Lünsmann Datenbank 11 69 Verarbeitung von Streamingdaten – ein Im privaten Umfeld fällt es uns gar nicht mehr Erfahrungsbericht der Testphase mit auf, wie häufig wir die Cloud benutzen Oracle NoSQL Cloud Marcus Bender, Rainer Marekwia, Tho- mas Robert und Dr. Nadine Schöne

11 Aufgeklärt – ein Überblick über Cloud Services Robert Marz

13 Oracle Database 18c und Database as a Service Intern Tobias Deml

18 Über den Wolken – 73 Termine grenzenlose Freiheit mit purem Metall? Katharina Büchse und Florian Barth 73 Neue Mitglieder

23 Cloud Service – Himmel und Hölle 74 Impressum Alexander Weber 74 Inserenten 29 „Lift & Shift“ oder wie kommt meine (Pluggable) Datenbank in die Oracle-Cloud 23 Kai Uwe Fischer Seit mehr als fünf Jahren ist das Thema 37 Die autonome Datenbank: ADWC für „Cloud“ in aller Munde Warehouse-Anwendungen Ulrike Schwinn

41 Architecting 4 the Cloud Kai Weingärtner und Stefan Kühnlein

47 Leute hassen es zu warten 50 Jan-Peter Timmermann

50 Cloud meets On-Premises – Herausfor- derungen in hybriden Infrastrukturen Danilo Schmiedel

55 Serverless mit Fn Project Dr. Frank Munz

63 Container Native Development Platform Marcel Amende

Viele neuer IT-Lösungen kombi­nieren Cloud- Dienste mit vorhandenen lokalen Systemen

4 www.aoug.at • www.doag.org • www.soug.ch  Timeline

2. März 2018 net mit einem kräftigen „Jatumba“ die JavaLand 2018. Er kann stolz einen neuen Besucherrekord verkünden: Mehr als 1.900 Der DOAG-Vorstand diskutiert auf seiner Sitzung in Frankfurt den Entwickler aus zwanzig Nationen sind im Phantasialand in Brühl. Programm-Rahmen für die DOAG 2018 Konferenz + Ausstellung und Nach dem Start im Jahr 2014 mit 800 Teilnehmern ist die Veran- bereitet den Call for Paper vor. Damit sind die Voraussetzungen ge- staltung ständig stark gewachsen. Den Auftakt zur diesjährigen schaffen, um auf der Veranstaltung, die vom 20. bis 23. November Konferenz gibt Keynote-Speakerin Dr. Holly Cummins. In ihrem 2018 wie gewohnt in Nürnberg stattfindet, wieder ein sehr interes- Vortrag „Cloudy with a Chance of Meatballs: Cloud Surprises for santes Vortragsprogramm anbieten zu können. Darüber hinaus legt the Java Developer“ teilt sie im bis auf den letzten Platz besetz- der Vorstand die letzten Details zur 30-Jahre-Feier der DOAG fest. ten Vortragssaal neben einer historischen Perspektive auf Cloud Computing auch einige Gedanken darüber, wohin die Entwick- lung in Zukunft gehen könnte. Neben den rund 110 Vorträgen in acht Streams zu Themen wie „Architektur und Sicherheit“, „Con- 12. März 2018 tainer und Cloud“, „Enterprise und Microservices“ sowie „Innova- Bereits am Vortag der JavaLand 2018 findet die kleine Schwester tionen“ sorgen auch die aktuellen Entwicklungen im Java-Kosmos statt: Die JavaLand4Kids richtet ihren Fokus auf die Programmie- rund um die Zukunft von Java EE/Jakarta EE für viel Gesprächs- rer und Entwickler von morgen. Zum ersten Mal ist nicht nur eine stoff. Auch die vielen Community-Aktivitäten, die zusammen mit Grundschulklasse der Hans-Christian-Andersen-Schule aus Sankt zahlreichen Java User Groups gestaltet wurden, bieten den Teil- Augustin zu Gast, sondern auch Schüler des Max-Ernst-Gymnasi- nehmern viele Möglichkeiten zum Ausprobieren, Entdecken und ums aus Brühl. Die Grundschüler im Alter von neun bis zehn Jahren Spielen. schaffen in kurzer Zeit musikalische Variationen mit Sonic Pi, einem Open-Source-Musikprogramm für den Raspberry Pi. Die Informa- tik-Klasse des Gymnasiums hat mit Iryna Feuerstein und Oliver Milke zwei erfahrene Mentoren an ihrer Seite. Hier steht das Thema „Neo4J“ im Raum, eine Graphen-Datenbank, die man nicht aus dem Schulalltag kennt. Nach einer etwas umfangreicheren Einführung tauchen die Jugendlichen ab in die spannende, neue Welt der Daten- Visualisierung. Last but not least beschäftigt sich der andere Teil der Klasse mit der gehobenen Kunst des Minecraft Modding, moderiert von Arun Gupta, der seit vielen Jahren die sehr aktive Devoxx4Kids- Gruppe in der BayArea organisiert. Noch am selben Tag kommt so- wohl von den Lehrern als auch von den Schülern die Rückmeldung, dass es sehr viel Spaß gemacht habe und sie gerne wiederkommen würden – ganz klar die Aufforderung, auch für das Jahr 2019 ein spannendes Programm auf die Beine zu stellen. Die Eröffnungsveranstaltung ist bis auf den letzten Platz besetzt

19./20. März 2018 Unter dem Motto „Daten als Motor der Digitalisierung“ übertrifft die gemeinsame Data-Analytics-Konferenz von Oracle und der DOAG im Phantasialand in Brühl mit rund 250 Besuchern und 14 Ausstellern die Erwartungen. Zukünftige Innovationen und Digitalisierung ziehen sich wie ein roter Faden durch die gesamte Veranstaltung. Besonders erfreulich: Neben Oracle-Experten und Großunternehmen halten namhafte Kunden knapp die Hälfte der Vorträge. Das Programm ist vielfältig; neben klassischen, techni- schen Themen finden auch aktuelle Fragestellungen zu Machine Learning, Design Thinking, Geodaten und EU-Datenschutz-Grund- Die Kleinen sind begeistert bei der Sache verordnung Gehör. Auch außerhalb der Vortragsräume kommen viele aktive Gesprächsrunden auf. Eine interaktive Podiums- diskussion zum Thema „Der Weg zu künstlicher Intelligenz und Machine Learning“, bei der jeder zu Wort kommen kann, rundet die Veranstaltung am Nachmittag ab. Die Organisatoren Rolf 13./14. März 2018 Scheuch, Leiter der DOAG Data Analytics Community, Christiane Toffolo-Haupt, Oracle Sales Direktorin für Analytics und Big Data, Fried Saacke, DOAG-Geschäftsführer und Vorstandsvorsitzender und Alfred Schlaucher, langjähriger Oracle-Experte im Bereich des Interessenverbunds der Java User Groups e.V. (iJUG), eröff-

Red Stack Magazin 03/2018 5 Timeline

„Data Warehouse“, ziehen ein positives Resümee: „Die Mischung mehr junge Menschen an Bord bekommen und auch den Kunden- aus Vorträgen zu BI/DWH, Cloud Computing und zukunftsgerich- stamm professioneller pflegen muss. Dafür wird jetzt eine Key- teten Themen sind eine gute Basis für ein intensives Networking Account-Management-Unterstützung gesucht. Peter Gübeli teilt der Teilnehmer. Wir freuen uns auf die Fortsetzung im Jahr 2019.“ der Generalversammlung mit, dass er die SOUG verlassen wird. Der Vorstand dankt ihm für sein tolles Engagement während der letzten vier Jahre, Interimspräsident ist jetzt Thierry Bossahrt.

18. April 2018 Nach der Generalversammlung findet ein verkürzter SOUG-Day mit zwei parallelen technischen Streams statt. Dabei steht die Ora- cle-Datenbank im Vordergrund, die Vorträge reichen vom I/O-Ma- nagement über Security-Themen bis hin zu Performance-Fragen. Die Veranstaltung endet mit dem traditionellen Apéro, bei dem die Teilnehmer die Möglichkeit haben, ihr Netzwerk zu erweitern.

Data Analytics 2018: Der Zukunft ein Stück näher

27. März 2018 In einer regelmäßig stattfindenden Telko reden die Vertreter der europäischen Anwendergruppen mit Tom Scheirsen, EMEA User Groups Relationship Manager von Oracle. Sie erfahren, dass Oracle das traditionell am Vortag der Oracle OpenWorld von den Usergroups organisierte Programm gestrichen hat und dass es trotzdem nur wenige ausgesuchte Usergroup-Vorträge in das Hauptprogramm schaffen werden. Die Oracle OpenWorld verliert damit aus Sicht der Usergroups an Bedeutung und wird zur rei- nen Marketing-Veranstaltung des Herstellers. Jerôme Witt bei seinem Vortrag

3. April 2018 19./20. April 2018 Fried Saacke, DOAG-Vorstand und Geschäftsführer, begrüßt in Rund 80 aktive Mitglieder der DOAG versammeln sich zu ihrem der DOAG-Geschäftsstelle zwei neue Mitarbeiter. Christobal Ji- jährlichen Leitungskräfte-Treffen in Berlin, um über die Zukunft menez und Torsten Stemmler verstärken das IT-Team, um viele des Vereins zu beraten und auf dreißig Jahre Vereinsgeschichte anstehende Anforderungen an die IT zu erfüllen und damit den zurückzublicken. Es beginnt mit einer Informationsrunde zum Service für die Mitglieder und die Geschäftsstelle zu verbessern. Stand der ein Jahr zuvor definierten Aktivitäten von insgesamt sieben Arbeitsgruppen. Darüber hinaus räumt die Veranstaltung der thematischen Arbeit in den derzeit sieben Communities meh- rere Stunden Zeit ein, um die kommenden Aktivitäten und Ziele zu 11./12. April 2018 besprechen. Im Berliner Expertenseminar vermittelt Clemens Bleile, Oracle Certified Professional und Oracle Certified Expert for Perfor- mance Management and Tuning, sein Wissen zum Datenbank- 20. April 2018 und SQL-Tuning. Die technischen Datenbank-Themen sind bei den Expertenseminaren traditionell gut besucht und kommen bei den Das Leitungskräfte-Treffen endet mit einem Gastbeitrag von Paul Teilnehmern auch sehr gut an. Wehner, Senior Director Sales Consulting bei Oracle Deutschland, der die „Cloud first“-Strategie näher beleuchtet und auf Fragen des Plenums, insbesondere zu den Themen „Lizenzierung in vir- tualisierten Umgebungen“ und „Datenschutz in der Cloud“, ein- 18. April 2018 geht. Zum „Managed Cloud Service“ kommen zukünftig „Autono- mous Database Cloud Services“ dazu. Die Unterschiede liegen vor Peter Gübeli, Präsident der Swiss Oracle User Group (SOUG), prä- allem darin, dass bei den „Autonomous“-Lösungen die Kosten für sentiert auf der jährlichen Generalversammlung die Bilanz des die Datenbank-Administration deutlich niedriger liegen. Der Ver- Jahres 2017. Es ist trotz der leicht rückläufigen Mitgliederzahl ein lauf der Produkt-Roadmap sei von der Kundenresonanz abhän- weiteres erfolgreiches Jahr. Der Vorstand hat für seine zukünf- gig. Oracle selber sieht sich – so Wehner – durch die Rechenzen- tige Strategie eine externe Unterstützung beauftragt; die Studie tren in Austin (Texas) und bald in Frankfurt am Main technisch zeigt, dass die SOUG sich weiterhin auf Oracle fokussieren, aber gut vorbereitet.

6 www.aoug.at • www.doag.org • www.soug.ch 20. April 2018 24./26. April 2018 Die DOAG feiert in Berlin mit 140 geladenen Gästen das 30-jährige In Düsseldorf findet die vierte Ausgabe der Apex Connect statt. Mit Bestehen. Unter den Gästen sind viele ehemalige Wegbegleiter, die mehr als 350 Besuchern stellt die Konferenz einen neuen Rekord auf. die DOAG mit aufgebaut haben, sowie wichtige Geschäftspartner. Rund 60 Vorträge und vier Keynotes bringen die Teilnehmer in den Ein Film stellt die Entwicklung des Vereins von der Gründung bis Bereichen „Apex“, „PL/SQL“ und „JavaScript“ auf den aktuellen Stand. heute vor (siehe „http://www.doag.org/go/video-30-jahre“). Mit Apex Beginners Track, World Café und Apex Lightning Talks sind spannende, neue Formate mit am Start. Außerdem immer mit dabei: der einmalige Community-Spirit. Inzwischen schon Tradition: Am An- fang einer jeden Apex Connect steht eine Runde Frühsport auf dem Programm. Die La-Ola-Welle, die begleitet von lauten „Apex“-Rufen durch die Reihen geht, spricht für die Begeisterung der versammelten Apex-Anhänger. Den weitesten Anreiseweg hat Oracle Developer Ad- vocate Connor McDonald – er ist für seine Keynote extra aus Austra- lien angereist. Trotz Jetlag macht er sich hoch motiviert daran, den Teilnehmern die neuesten SQL- und PL/SQL-Features zu vermitteln. Auch wenn der Erscheinungstermin der neuen Apex-Version noch offen ist, verkündet Marc Sewtz aus dem Oracle-Apex-Development- Team allerlei Wissenswertes rund um das kommende Release 18.1. Anschließend gibt er einen Überblick über Oracle JET in Apex 18.1 und stellt die neuen Diagrammtypen vor. Golo Roden, Buch-Autor und Die ehemaligen Vorstandsvorsitzenden der DOAG (von links): Fried Saacke, Gründer von „the native web“, hält die Fahne von JavaScript hoch Dr. Dietmar Neugebauer, Eva Kraut, Agnes Hombrecher, Jochen Frickel und lässt es sich nicht nehmen, mit gängigen Missverständnissen rund um die Skriptsprache aufzuräumen. 25 Studierende und Auszu- und Stefan Kinnen (heute) bildende erhalten durch Sponsoren die Chance, über das NextGen- Programm die Apex Connect kostenlos zu besuchen.

20. April 2018 Parallel zum Leitungskräfteforum findet die Gründungsveranstal- tung des DOAG Legal Council statt. Die neue Runde mit spezialisier- ten IT-Rechtsanwältinnen und Rechtsanwälten ergänzt die fachliche Kompetenz der DOAG, soll den DOAG-Gremien beratend zur Seite stehen, Anliegen der Mitglieder gebündelt beraten und mit dem ge- samten DOAG-Netzwerk fundiertes Fachwissen austauschen.

21. April 2018 Die ordentliche Delegiertenversammlung der DOAG tagt, um die Apex Connect 2018: Die Welle der Begeisterung strategische Ausrichtung und zukünftigen Ziele des Vereins fest- zulegen. Die Versammlung verabschiedet die Social-Media-Guid- lines der DOAG und wählt Axel vom Stein und Anja Albrecht als Kassenprüfer des Vereins. 23. April 2018 Die Collaborate 2018 findet in Las Vegas statt, organisiert von der 21. April 2018 Independent Oracle Users Group (IOUG), der Oracle Applications Users Group (OAUG) und der Quest International Users Group. Dr. Dietmar Neugebauer ist Eh- Für die DOAG sind Fried Saacke, Vorstand und Geschäftsführer, renmitglied der DOAG. Die or- sowie Dr. Frank Schönthaler und Kasi Färcher-Haag als Vertreter dentliche Delegiertenversamm- der Solutions Community vor Ort. Im Rahmen des inter- lung verleiht dem promovierten nationalen Empfangs sprechen sie mit OAUG-Präsident Douglas Chemiker diese Ehre, nachdem Manning über die zukünftige Zusammenarbeit, nachdem die er für unterschiedliche Bereiche OAUG die Zusammenarbeit mit der DOAG überraschend gekün- des Vereins in besonderem Maße digt hat. Eine Lösung ist noch nicht in Sicht. Verantwortung getragen und die- sen zuletzt von Juni 2008 bis Mai 2016 als Vorstandsvorsitzender erheblich geprägt hat. Neben sei- nem ehrenamtlichen Engagement 24. April 2018 war der Münchner rund 25 Jahre Bei der Oracle-Keynote auf der Collaborate 2018 ist gerade mal als Datenbank-Spezialist für die etwa die Hälfte der insgesamt 4.000 Teilnehmer im Raum. Be- BMW-Gruppe tätig und trug im Unternehmen die Verantwor- merkenswert für die Veranstaltung, die vor Jahren noch 8.500 Be- tung für die Produktstrategie, Architektur und Lizenzierung sucher verzeichnete, ist, dass die Cloud-Themen von Oracle nicht von Oracle-Produkten. auf größtes Interesse stoßen.

Red Stack Magazin 03/2018 7 Interview

Andre Lünsmann (links) im Gespräch mit Stefan Kinnen

„Ein Test mit dem Oracle Advanced Customer Support brachte nicht den erhofften Erfolg …“

Andre Lünsmann ist verantwortlich für den Oracle-Betrieb bei der Barmenia Versicherungsgruppe. Stefan Kinnen, Vorstandsvorsitzender der DOAG, und Wolfgang Taschner, Chefredakteur des Red Stack Magazin, sprachen mit ihm über seine Erfahrungen.

8 www.aoug.at • www.doag.org • www.soug.ch In welchem Geschäftsbereich ist die Barmenia aktiv? für die ULA-Lizenz bestand darin, dass wir bei den vielen Entwick- Andre Lünsmann: Die Barmenia Versicherung ist seit mehr als lungs-, Test- und Produktiv-Systemen nicht genau sagen konn- hundert Jahren als Krankenversicherung tätig. Wir bieten darü- ten, wie viele CPUs bei uns im Einsatz sind. Als wir im Jahr 2015 ber hinaus auch Lebensversicherungen sowie Unfall- und Kfz- zusätzlich die Advanced-Security-Option in Betrieb genommen Versicherungen an. haben, hat sich die ULA als günstigerer Weg erwiesen.

Was sind dabei die besonderen Herausforderungen an die IT? In welchem Umfang kommen Oracle-Datenbanken bei Ihnen zum Andre Lünsmann: Gerade alteingesessene Versicherungen ste- Einsatz? hen heute vor der Herausforderung, ihre Leistungen auch on- Andre Lünsmann: Wir setzen produktiv rund 180 Oracle- line anzubieten. Im Wettbewerb mit Start-up-Unternehmen ist Datenbanken ein. Die Patches erfolgen vollautomatisiert. Der es wichtig, unsere Services entsprechend dem heutigen Kunden- Wechsel auf die Version 12.2 ist derzeit in Vorbereitung. verhalten aufzubauen. Der Türöffner für Versicherungen ist, im Gegensatz zu früher, heute weniger ein persönliches Beratungs- Wie garantieren Sie die Sicherheit Ihrer Daten? gespräch, sondern ein moderner digitaler Service, der auf Web- Andre Lünsmann: Wir haben zu Beginn sehr lange über ein pas- seiten oder in Apps mit wenigen Klicks den Kunden über den Be- sendes Berechtigungssystem nachgedacht. Im Jahr 2012 wurde darf informiert und daraus ein Beratungsgespräch, einen Chat dann Enterprise User Security mit eingeführt. oder einen Online-Abschluss initiiert. Unser Geschäftsmodell hat sich damit verändert und weiterentwickelt. Wie administrieren Sie Ihre Datenbanken? Andre Lünsmann: Ursprünglich haben wir im Kontext mit der Wie lösen Sie diese Aufgaben? Enterprise Edition den Enterprise Manager eingesetzt, heute nut- Andre Lünsmann: Die Barmenia hat, wie viele andere Versiche- zen wir Tools von Drittanbietern, darunter eine Workflow-Kom- rungen auch, in der Vergangenheit natürlich ein umfangreiches ponente, um die Abläufe weitgehend zu automatisieren. Auf die- Mainframe-System betrieben. Da der Hersteller um die Jahrtau- se Weise sind wir in der Lage, innerhalb einer halben Stunde eine sendwende herum den Rechner nicht mehr unterstützte, standen komplette Oracle-Instanz aufzubauen. wir vor der Frage, unsere IT neu auszurichten. Ein erster Gedanke war, den Mainframe eines anderen Herstellers einzusetzen, was Wie sind Ihre Erfahrungen mit Oracle Support? wir jedoch aufgrund des hohen Aufwands schnell verworfen ha- Andre Lünsmann: Das ist ein schwieriges Thema. Ursprünglich ben. So fiel in langen Sessions die Entscheidung, ein Online-fähiges hatten wir einen externen Dienstleister, der uns damals während System mit entsprechender Web-Oberfläche aufzubauen. Im Zuge der Einrichtungsphase bei auftretenden Problemen unterstützt dessen haben wir in Kooperation mit einem Partner die Applikatio- hat. Nachdem das System live gegangen ist, haben wir gleich mit nen Schritt für Schritt in Java neu entwickelt. Als Übergangslösung den ersten Tickets bei Oracle gemerkt, dass das nicht rund läuft. wird der Host auf einer virtuellen Maschine betrieben. Ein Test mit dem Oracle Advanced Customer Support brach- te nicht den erhofften Erfolg, sodass wir wieder einen externen In welchem Bereich kommen Produkte von Oracle zum Einsatz? Dienstleister eingebunden haben. Andre Lünsmann: Im Zusammenhang mit der Host-Ablösung ha- ben wir im Jahr 2010 auf der Infrastruktur-Ebene Oracle in Verbin- Wie sehen Sie den Umstieg der Patch Set Updates auf die Release dung mit Java und WebLogic sowie auch die Oracle-Datenbank Updates? eingeführt. Alle wichtigen Anwendungen laufen heute auf der Andre Lünsmann: Wir haben seit Jahren ein eingespieltes Ver- Oracle-Infrastruktur auf Linux-Basis. Die Virtualisierung erfolgt fahren etabliert, um Patches auszurollen. Davor bewerten wir die mittels VMware. Patch-Matrix, um zu entscheiden, welche Patches wir überhaupt einspielen möchten. Ich glaube nicht, dass uns der Umstieg auf Stellt die aktuelle VMware-Regulierung durch Oracle für Sie ein die Release Updates Probleme bereiten wird. Problem dar? Andre Lünsmann: Wir haben im Jahr 2012 eine ULA-Lizenz er- Wie gehen Sie an das Thema „Big Data“ heran? worben, die diese Art der Virtualisierung mit abdeckt. Ein Grund Andre Lünsmann: Wir beschäftigen uns damit, allerdings ist das Thema nicht in der IT angesiedelt, sondern im Control- ling. Wir liefern jede Nacht Auszüge aus den Produktionssys- temen in das BI-System, wo sie analysiert und weiterverar- Über die Barmenia Versicherung beitet werden. Die Barmenia zählt zu den großen, unabhängigen Versi- cherungsgruppen in Deutschland. Das Produktangebot Welche Rolle spielen Cloud-Anwendungen in Ihrem Unterneh- der Unternehmensgruppe reicht von Kranken- und Le- men? bensversicherungen über Unfall- sowie Kfz-Versicherun- Andre Lünsmann: Die Cloud ist für eine Versicherung in erster gen bis hin zu Haftpflicht- und Sachversicherungen. Mehr Linie ein zentrales Thema für die Rechtsabteilung. Keiner möchte als 3.400 Innen- und Außendienstmitarbeiter und eine unsere hochsensiblen Daten in einer öffentlichen Cloud sehen. Vielzahl von Maklern betreuen einen Bestand von mehr Insofern denken wir eher über Private-Cloud-Lösungen nach. Für als 2,2 Millionen Versicherungsverträgen. mich ist entscheidend, welche Vorteile es künftig bringt, wenn Daten in der Cloud liegen.

Red Stack Magazin 03/2018 9 Interview

Oracle hat gerade in Frankfurt ein deutsches Rechenzentrum für die Cloud eröffnet. Wäre das für Sie eine Option? Andre Lünsmann: Ein deutscher Standort hört sich zunächst gut an. Als amerikanischer Anbieter gelten allerdings für Oracle nach wie vor die Patriot-Bestimmungen. Solange Oracle keine Zertifi- zierung nach deutschem Recht vorlegen kann, bringt der Stand- ort in Frankfurt nichts.

Spielen die Oracle-Unternehmenslösungen eine Rolle bei Ihnen? Andre Lünsmann: Nein.

Wie beurteilen Sie die Zukauf-Strategie von Oracle? Andre Lünsmann: Ich fände es spannend, wenn Oracle eher klei- ne, aber technologisch innovative Unternehmen zukaufen wür- de. Die Frage wäre allerdings, ob Oracle solchen Start-ups ent- sprechende Freiräume im Unternehmen gewähren würde, um den notwendigen innovativen Fortschritt auch zuzulassen. Zur Person: Andre Lünsmann Können Sie sich vorstellen, ein Komplettsystem von der Hardware bis zu den Applikationen von einem einzigen Hersteller wie Oracle Andre Lünsmann (54) ist seit seiner Ausbildung zum Ver- einzusetzen? sicherungskaufmann und der Weiterbildung zum Versi- Andre Lünsmann: Das kann ich mir eher nicht vorstellen, da cherungsfachwirt in den 1980-Jahren bei den Barmenia wir auch stark auf Open-Source-Produkte und eigenentwickelte Versicherungen beschäftigt. Nach einer etwa einjährigen Komponenten setzen. Ausbildung zum Organisations-Entwickler wechselte er in die Anwendungs-Entwicklung und war dort als Entwickler Wäre der Einsatz eines Oracle Engineered System bei Ihnen und später als Projektleiter in diversen Großprojekten tä- denkbar? tig. Seit dem Jahr 2009 ist er Teamleiter und in wechseln- Andre Lünsmann: Wir haben Anfang 2017 eine Private-Cloud- den Aufgaben für Datenbanken, Systemmanagement Appliance evaluiert. Das hätte allerdings keine Verbesserungen und dezentrale Produktionsaufgaben verantwortlich. im Vergleich zu unseren bestehenden Systemen gebracht. Nach der erfolgreichen Host-Ablösung der IBM im Jahr 2010 ist er unter anderem für die Oracle-Datenbanken Sehen Sie Oracle strategisch primär als Anbieter von Engineered verantwortlich. Seit dem Jahr 2012 ist er Vertreter der Systems oder von Cloud-Lösungen? Barmenia im Kreis der DOAG und dort unter anderem Andre Lünsmann: Für mich ist das Cloud-Thema deutlich stär- als Mitglied des Anwenderbeirats aktiv. ker. Es macht für mich aus Oracle-Sicht wesentlich mehr Sinn, dort unterwegs zu sein. Darüber hinaus finde ich es gut, dass Oracle für die Cloud-Lösungen die eigenen Produkte einsetzt, was dazu führt, deren Leistung und Qualität besser erfahren zu können. Wie sehen Sie den Stellenwert der DOAG? Andre Lünsmann: Die DOAG ist für mich unbestritten eine sehr In welche Richtung wird sich Ihre IT in den kommenden Jahren professionelle und vielschichtige Organisation. Ich bin jetzt seit entwickeln? fünf Jahren regelmäßig auf der Jahreskonferenz, was für mich gut Andre Lünsmann: Ich hoffe ganz stark, dass wir uns deutlich investierte Zeit ist, vor allem wenn ich an die vielen Vernetzungs- mehr in Richtung Private-Cloud- und Service-Dienstleister ent- möglichkeiten denke. wickeln. Wir arbeiten intensiv daran, unsere Prozesse weiter zu automatisieren, und evaluieren laufend neue Werkzeuge, Wie steht es um Ihre Arbeit im Anwenderbeirat der DOAG? um eine effizientere Administration zu erreichen. Gleichzeitig Andre Lünsmann: Ich halte die Einrichtung des Anwenderbeirats bieten wir auch unseren Mitarbeitern die Möglichkeit, sich ent- für sehr gut, weil wir hier die Erfahrungen vieler Kunden austau- sprechend weiterzubilden und in moderne Technologien einzu- schen können, die in den laufenden Dialog mit Oracle einfließen. arbeiten.

Welche Unterstützung erwarten Sie dabei von einem IT-Unter- nehmen wie Oracle? Andre Lünsmann: Ich denke, dass sich Oracle in den nächsten Jahren technologisch weiterentwickeln wird. Vor allem muss das Unternehmen eine deutliche Verbesserung der Produktqualität schaffen, um seinen Kunden signifikante Vorteile im Vergleich zur Konkurrenz zu bieten.

10 www.aoug.at • www.doag.org • www.soug.ch Aufgeklärt – ein Überblick über Cloud Services

Robert Marz, its-people GmbH

Wir sind im Jahr 2018 und die Cloud ist allgegenwärtig. Im privaten Umfeld fällt es uns schon gar nicht auf, wie häufig wir die Cloud benutzen: E-Mails checken? Die liegen in der Cloud. Die Social-Media-Accounts sowieso. Alexa oder einen anderen digitalen Assistenten etwas fragen? Die Spracherkennung funktioniert nur durch die Cloud und die Antworten werden von unzähligen Cloud Services zusammengestellt.

Wie ist die aktuelle Verkehrslage? Die wir dies nicht weniger, sogar bei den Un- Sicherheit und Datenschutz Antwort kommt natürlich aus der Cloud ternehmen, die nach eigener Auffassung und ist so präzise nur möglich, weil un- noch gar nichts in die Cloud migriert Sicherheit war lange Zeit ein Grund, sich aus zählige Verkehrsteilnehmer (genauer: haben: Die Mitarbeiter benutzen in der der Cloud fernzuhalten. Das hat sich stark deren Smartphones) ihre aktuellen Be- Regel, was ihnen hilft, Dinge erledigt zu verändert: Laut einer Umfrage von Coleman wegungsvektoren in die Cloud schicken. bekommen. Einige Anwendungen, wie E- Parkes aus dem Jahr 2016 sind 78 Prozent Bevor wir überhaupt am Arbeitsplatz an- Mail, GitHub, Trello oder Dropbox, wer- aller Unternehmen der Meinung, dass sich gekommen sind, haben wir die Cloud den gar nicht mehr als Cloud-Dienste die Sicherheit insgesamt durch den Umzug schon ausgiebig benutzt. Und im Job tun wahrgenommen. in eine Public Cloud erhöhen könnte. Die EU-

Red Stack Magazin 03/2018 11 Cloud

Datenschutz-Grundverordnung (DSGVO) System oder Build-Automatisierung: Al- Eine zentrale Säule von DevOps ist die bestärkt diesen Trend. Schließlich bieten alle les ist vorkonfiguriert und betriebsbereit. Automatisierung aller Vorgänge sowohl Cloud-Anbieter reihenweise Zertifikate an, Backup und Recovery erledigt die Cloud. beim Betrieb als auch beim Ausrollen von die DSGVO-Konformität bestätigen. Solche Das ist sehr bequem und ermöglicht es, Komponenten. Dazu gehört auch, dass Zertifikate für On-Premises-Anwendungen sich ganz auf die Software-Entwicklung die benötigten virtuellen Maschinen und zu erlangen, ist aufwendig. zu konzentrieren. Alle großen Cloud-An- Netzwerke automatisch erzeugt und wie- bieter stellen ähnliche Services zur Verfü- der abgerissen werden. Das nennt sich gung. Das führt dazu, dass die Cloud für dann „Software Defined Infrastructure“. Autonome Datenbanken verteilte Software-Entwicklungsteams im- Die Web-Oberflächen der Cloud-Anbieter mer häufiger zur ersten Wahl wird. stehen dem entgegen. Aus diesem Grund Alle spannenden Neuentwicklungen fin- bieten alle Anbieter proprietäre REST- und den mittlerweile in der Cloud statt. Der Au- Commandline-Interfaces an. Automati- tonomous Data Warehouse Cloud Service DevOps und Serverless sierungstools wie Ansible oder Terraform (ADWC) ist ein gutes Beispiel dafür. Von vereinheitlichen deren Ansteuerung. den Experten und DBAs wurde er zunächst DevOps ist einer der aktuell großen Trends. belächelt: „Der ADWC hat mehr Einschrän- Unternehmen leiten den nötigen kultu- kungen als Features – ein Data Warehouse rellen Wandel ein und durchbrechen die Fazit ohne Partitionierung, kann das funktionie- Mauer zwischen Dev und Ops. Das agile ren?“ Wie autonom die Datenbank wirklich Vorgehen, das in kleine Schritten schnelle Cloud Services sind vielfältig und aus der ist, werden wir erst noch sehen. Ergebnisse liefern soll, bringt immer klei- heutigen Zeit nicht mehr wegzudenken. Aus Sicht von Oracle sind DBAs jedoch nere Komponenten hervor, die unabhän- Es gibt weit mehr, als in diesem Artikel nicht die Zielgruppe für ADWC. Die Fachab- gig voneinander entwickelt und betrieben beschrieben sind. Mit Sicherheit werden teilungen, die mal eben ein Data Mart für werden, aber erst zusammen die eigentli- neue hinzukommen und bestehende ein paar Auswertungen bauen wollen, sind che Applikation bilden. Diese Microservices mit Getöse oder unbemerkt wieder ver- froh, wenn sie das mit kleinem Budget können als Container oder „serverless“ be- schwinden. Niemand weiß, was die Zu- ohne übermäßiges Involvieren der IT-Ab- trieben werden. Der Serverless-Betrieb von kunft bringt. Aber sie ist mit Sicherheit teilung bewerkstelligen können; die beste- Microservices war lange nur in der Cloud wolkig. henden Einschränkungen werden Schritt denkbar – bis Oracle das Fn Project vorge- für Schritt reduziert. Die Cloud ermöglicht stellt hat. Die „container native serverless wesentlich kürzere Release-Zyklen. platform“ ist Open Source und läuft sowohl in der Cloud als auch On-Premises. Container-Lösungen wie Docker sind Software-Entwicklung ein Segen: Einfach zu verteilen, einfach zu starten oder zu beenden. Alle abhängigen Der Software-Entwicklungsprozess kann Bibliotheken werden in der richtigen Ver- durch Cloud Services erheblich beschleu- sion mit ausgeliefert. Die Applikation im nigt werden. Die Oracle Developer Cloud Nachbar-Container ist nicht beeinträchtigt. Services bündeln gängige Open-Source- Für den produktiven Betrieb von Docker- Tools zu einer Suite zusammen. Egal ob Containern hat sich der Container-Cluster- Robert Marz Kanban-Board, Git-Repository, Ticketing- Manager Kubernetes durchgesetzt. [email protected]

Schwachstelle bei Kernel und Hypervisor

Entwickler fast aller PC-Betriebssysteme – inklusive Windows, und dem Kernel ab. Davon betroffen sind auch die Oracle- macOS, Linux und FreeBSD – haben auf Grund eines Missver- Linux-Plattformen. ständnisses einen Fehler in ihren Code eingebaut, über den Als Lösung für verschiedene 5-, 6- und 7-Ver- ein lokaler Angreifer Kernel-Speicher auslesen und unter Um- sionen sowie Red Hat Enterprise Linux-Server- und Red Hat ständen manipulieren kann. Das könnte zum Ausführen bös- Enterprise Linux Server-Support-Versionen stehen verschiede- artigen Codes mit System-Rechten führen. Die genauen Aus- ne Sicherheitsupdates zur Verfügung (siehe „https://adv-archiv. wirkungen der Schwachstelle hängen vom Betriebssystem dfn-cert.de/adv/2018-0881“).

12 www.aoug.at • www.doag.org • www.soug.ch Oracle Database 18c und Database as a Service

Tobias Deml, ORACLE Deutschland B.V. & Co. KG

Die neu angekündigte Datenbank-Version 18c steht bereits seit einigen Monaten in der Oracle-Cloud zur Verfügung. Das On-Premises-Release wird demnächst folgen. Inhaltlich hat sich bei dieser Version in vie- lerlei Bereichen etwas getan. Der Artikel stellt die Neuerungen vor und gibt eine kurze Anleitung zur Erstel- lung eines Oracle Database Cloud Service.

Hinsichtlich der in der Version 18c einge- Datenbank absetzt, das irrtümlicherweise serial#, [instance_id], [sql_id]‘;“. Die beiden führten Neuerungen existiert bereits eine ein viel zu großes Ergebnis zurückliefert. letzten Übergabe-Parameter sind optio- Vielzahl von Präsentationen, Vorträgen Aufgrund dessen liegt nun eine Session nal beziehungsweise von der eingesetzten und Whitepaper. Deshalb geht der Au- mit einem Langläufer-SQL auf der Daten- Datenbank-Technologie abhängig. Die von tor nicht auf jede einzelne neue Funktio- bank und am naheliegendsten wäre es, der Beendigung des SQL betroffene Ver- nalität ein, sondern zeigt etwas kleinere, die Ausführung dieses Statements abzu- bindung wird dabei mit einer Meldung über aber dennoch sehr nützliche Verbesse- brechen. Bisher war das Mittel der Wahl, die Aktion benachrichtigt (siehe Listing 1). rungen auf, die die Nutzung einer Oracle- die Session mit einem „Alter System Kill Datenbank 18c attraktiv machen. Session“-Befehl abzubrechen, was aber di- Die neuen Features gliedern sich in die verse Seiteneffekte zur Folge hat. Verschlüsselung von vier Bereiche „Performance“, „Multitenant“, Die Datenbank-Version 18c bietet eine Anmelde-Informationen im „Security“ und „Data Warehouse & Big neue Funktionalität zum besseren Hand- Data Dictionary Data“ (siehe Abbildung 1). Wenn man die ling dieser Situationen. Nun ist es möglich, darunter gelisteten Funktionalitäten und lediglich das ausgeführte SQL abzubre- Die IT der heutigen Zeit ist stark beeinflusst zusätzlich Dokumentationen genauer be- chen, ohne die darunterliegende Session von Security- und Compliance-Regularien. trachtet, fallen zwei Trends auf: einerseits zu beenden. Das entsprechende SQL-Kom- Ein Teil dieser Regelwerke ist der Schutz der Fokus auf die Weiterentwicklung der mando zur Durchführung dieser Aktion von Zugangsdaten vor unberechtigter Be- Development-Funktionalitäten und ande- lautet „ALTER SYSTEM CANCEL SQL ‚sid, nutzung durch Dritte. Ab der Version 18c rerseits der Ausbau von Technologien zur Abbildung agiler Entwicklungsmethoden. Der Artikel geht auf folgende kleine- re, aber sehr interessante Neuerungen in der Datenbank-Version 18c ein:

• Alter Session Cancel SQL • Verschlüsselung von Anmelde-Infor- mationen im Data Dictionary • Inline External Tables • Private Temporary Tables

Alter Session Cancel SQL

Jeder kennt diese Situation, dass ein Be- nutzer oder gar man selbst ein SQL auf der Abbildung 1: Größte Neuerungen der Oracle-Datenbank 18c

Red Stack Magazin 03/2018 13 Cloud

Abbildung 2: Start-Bildschirm der Oracle Cloud Infrastructure

ist es möglich, das gesamte Data Dictiona- zu halten, da sich der Aufbau der exter- Funktionalität namens „Inline External ry mithilfe der Transparent Data Encryption nen Daten schnell ändern kann. Dafür Tables“, die genau auf diese Thematik (TDE) zu verschlüsseln. Diese Funktionalität bietet die neue Datenbank-Version eine abzielt. verschlüsselt unter anderem auch die in Database-Links und im „DBMS_Scheduler“ hinterlegten Passwörter. Wer bereits in seiner Datenbank TDE einsetzt, kann dieses Feature mit dem SQL-Statement „ALTER DATABASE DIC- TIONARY ENCRYPT CREDENTIALS;“ akti- vieren. Anschließend werden per Abfrage der Tabellen „SYS.LINK$“ und „SYS.SCHE- DULER$_CREDENTIAL“ die verschlüsselten Zugangsdaten eingesehen und deren Ver- schlüsselung geprüft. Da für die Entschlüs- selung dieser Daten der Data Encryption Key notwendig ist, muss bei Abfrage eines Datenbank-Links oder Start eines Schedu- ler-Jobs das Wallet der Datenbank den Sta- tus „OPEN“ aufweisen.

Inline External Tables

Die Nutzung der „External Table“-Funk- tionalität ist für Entwickler und Daten- Integratoren kaum mehr wegzudenken. Besonders die Aggregation strukturier- ter Daten aus der Datenbank und weni- ger strukturierter Daten von außerhalb sind beliebte Anwendungsfälle. Oft ist es allerdings schwierig, die Definition der External-Table auf dem aktuellen Stand Abbildung 3: VCN Creation Wizard

14 www.aoug.at • www.doag.org • www.soug.ch Bei diesem Feature lässt sich beim Ab- tion mehr angelegt sein, lediglich ein Di- anhand von Beispieldaten funktioniert setzen des SQL-Statements bestimmen, rectory-Eintrag mit dem Pfad zur externen (XSL-Daten außerhalb der Datenbank sie- welche Form die externen Daten besitzen. Datenquelle ist notwendig (siehe Listing 2). he Listing 3 und „Inline“-Definition der ex- Dazu muss keine „External Table“-Defini- Zwei Beispiele zeigen, wie dieses Feature ternen Tabelle siehe Listing 4).

Private Temporary Tables

Bei der Datenverarbeitung oder daten- bankseitigen Entwicklung werden gerne „Global Temporary Tables“ zur Pufferung voraggregierter Daten verwendet. Diese temporären Datenstrukturen stehen aber, wie der Name es vermuten lässt, global je- dem Benutzer der Datenbank zur Verfü- gung. Es gibt Anwendungsfälle, bei denen dies aus Sicht von Security-Anforderungen ein Problem darstellt. Die neue Daten- bank-Version 18c stellt dafür mit dem Fea- ture „Private Temporary Tables“ (PTT) eine Lösung bereit. Diese PTT besitzen unter anderem folgende Eigenschaften:

• Die Struktur und der Inhalt dieser Ta- belle sind nur für eine Session sichtbar • Bei Erstellen dieser Tabelle wird keine Definition im Data Dictionary abgelegt • Das Create-Statement dieser Tabelle löst kein implizites Commit aus

Weil aus der Erstellung von PPT kein Ein- trag in das Data Dictionary resultiert, lässt sich diese Funktionalität auch in einer Ac- tive-Data-Guard-Umgebung nutzen. Das Beispiel in Listing 5 zeigt die Erstellung und das Handling von Private Temporary Tables inklusive der Verwendung des not- Abbildung 4: Erstellung des Datenbank-Service I wendigen Präfixes. Genauere Informatio- nen zu den vorgestellten Features stehen im deutschsprachigen Oracle-Blog [1].

Oracle Database as a Service (DBaaS)

Als Nächstes folgen die Schritte, um sich eine eigene Oracle-Datenbank-Umgebung in der Cloud zu erstellen. Nach dem Einlog- gen seines Accounts in die Oracle-Cloud- Tenancy erscheint zum Start eine Über- sicht (siehe Abbildung 2). Am linken oberen Rand stehen Informationen zum Namen der Tenancy und der entsprechend zu- geordneten Oracle-Cloud-Region. Rechts oben sind unter anderem verschiedene Auswahlmöglichkeiten zu den angebo- tenen Services und der Verwaltung der Abbildung 5: Erstellung des Datenbank-Service II Cloud-Accounts zu finden.

Red Stack Magazin 03/2018 15 Cloud

Abbildung 6: Erstellung des Datenbank-Service III Ihre Open Source Infrastuktur mit einem Klick!

Abbildung 7: Übersicht über die Datenbank-Systeme

Zur Erstellung eines Datenbank-Ser- vice muss vorher ein sogenanntes „Virtu- al Cloud Network“ (VCN) existieren, dass im folgenden Schritt erstellt wird. Über die Menüpunkte „Networking“ und „Virtu- al Cloud Networks“ erreicht man die not- wendige Oberfläche, um über die blaue Schaltfläche „Create Virtual Cloud Net- work“ die zuvor beschriebene Netzwerk- Komponente zu erstellen. Im nachfol- genden Creation-Wizard ist dann, nach Auswahl der Option „Create Virtual Cloud Network Plus Related Resoures“, lediglich noch der Name zu ergänzen und schon OpenDB Appliance lässt sich mit der Betätigung der blauen Infrastructure at your Service. Schaltflächen die VCN-Erstellung starten ON PREMISE (siehe Abbildung 3). Über die Menüpunkte „Database“ und oder Abbildung 8: Den Test starten „Systems“ erreicht man die Übersicht des STANDARDIZED

READY IN DER EASY CLOUD Consulting · Service Management (SLAs) · Lizenzmanagement · Workshops 16 www.aoug.at • www.doag.org • www.soug.ch Phone +41 32 422 96 00 · Basel · Nyon · Zürich · dbi-services.com

DBI_Inserat_2018-05_Open-Source_210x148_d.indd 1 08.05.18 08:18 notwendigen Felder der Maske ausgefüllt [4] Dokumentation Oracle Database Cloud Sämtliche hier erwähnten Lis- sind, startet der Button „Launch DB Sys- Service: https://docs.us-phoenix-1. oraclecloud.com/Content/Database/ tings finden Sie unter folgendem tem“ die Erstellung der Services. Auf der Concepts/databaseoverview.htm Link: DBaaS-Übersichtsseite erscheint dazu ein Eintrag (siehe Abbildung 7). http://www.doag.org/go/RS318/ Dieser soeben erstellte Dienst hat nun TobiasDeml den Status „PROVISIONING...“ (oranges Symbol). Sobald er zur Verfügung steht, wechselt der Status auf „AVAILABLE“ (grünes Symbol). Anschließend kann man Datenbank-Service. Dort lässt sich über sich mit dem Service verbinden und die die blaue Schaltfläche „Launch DB Sys- Tests der neuen Datenbank-Version 18c tem“ der Erstellungsassistent für die Da- starten (siehe Abbildung 8). tenbank aufrufen. In diesem Wizard gibt es drei Teilbereiche, in denen die Infor- mationen zu Datenbank-Umgebungen Weitere Informationen und hinsichtlich Benennung, Platzierung und Links Größe angegeben werden (siehe Abbil- [1] Deutschsprachiger Oracle-Blog zur Data- dungen 4 bis 6). base 18c: https://blogs.oracle.com/coretec/ Für zusätzliche Informationen zur Er- datenbank-18c [2] Deutschsprachiger Oracle-Blog – Thema stellung des Datenbank-Service kann Oracle Cloud: https://blogs.oracle.com/ man über die Schaltfläche „help“ direkt coretec/cloud-16 an die richtige Stelle in der Oracle-Cloud- [3] Dokumentation Oracle Database 18c: Tobias Deml https://docs.oracle.com/en/database/ Dokumentation springen. Sobald alle oracle/oracle-database/18/index.html [email protected]

Ihre Open Source Infrastuktur mit einem Klick!

OpenDB Appliance Infrastructure at your Service. ON PREMISE oder STANDARDIZED

READY IN DER EASY CLOUD Consulting · Service Management (SLAs) · Lizenzmanagement · Workshops Phone +41 32 422 96 00 · BaselRed · Nyon Stack · Zürich Magazin · dbi-services.com 03/2018 17

DBI_Inserat_2018-05_Open-Source_210x148_d.indd 1 08.05.18 08:18 Cloud

Über den Wolken – grenzenlose Freiheit mit purem Metall?

Katharina Büchse und Florian Barth, Robotron Datenbank-Software GmbH

Auch Metall kann fliegen, es benötigt nur hinreichend viel Antrieb, um die Masse in die Lüfte zu heben. Solch simplen physikalischen Gesetzen ist sich Oracle durchaus bewusst und macht entsprechend Wind um das neue Konzept, das sie im Herbst 2016 in die Cloud gebracht haben: Bare Metal.

Bare Metal verspricht die eigenen vier sich quasi nicht nur eine Wohnung, son- hier nicht nur mit einzelnen, in sich abge- Wände (quasi den Privatjet) für Daten, dern ein ganzes Haus in den roten Wol- schlossenen Services zu tun hat, sondern ganz ohne nervige Nachbarn. Allerdings ken zu mieten. Sämtliche dort abgeleg- sich stattdessen in der Cloud eine ganze muss man sich als Kunde erst einmal ten Daten wohnen dann auch wirklich Infrastruktur aufbaut. durch die Check-ins der geänderten Kos- komfortabel, denn zum Einsatz kommen Was aber ist aus der alten Oracle- tenmodelle, stetigen Umgestaltungen Oracle Engineered Systems in Form von Cloud geworden? Diese hieß zuerst „Elas- oder einfach nur Umbenennungen der ODA und Exadata. Zudem hat Oracle pas- tic Cloud“, dann war die Rede von „Classic Services und zu guter Letzt sogar der Li- senderweise auch gleich noch die ent- Cloud“, aber „Classic“ klang anscheinend zenzbedingungen kämpfen, bis man end- sprechenden Rechenzentren in Frank- zunächst zu altbacken, weswegen zeitwei- lich Business Class fliegen kann. Dieser furt am Main eröffnet, weil auch Daten se nur noch von Cloud die Rede war. Zur Artikel bietet dafür einen kleinen Flugha- sicherlich nur sehr ungern aus Deutsch- Unterscheidung der einzelnen Services fen-Guide, da das neue Cloud-Konzept land wegziehen wollen, ist ja schließlich war aber „Classic“ noch in Gebrauch, al- von Oracle Aufmerksamkeit verdient hat. schön hier. lerdings auch nicht durchgängig, teilwei- Selbst wenn oder gerade weil der Wind se musste man aufgrund des fehlenden um die Cloud auf Oracle-Kunden mögli- „Bare Metal“ im Namen auf Classic schlie- cherweise wie Gegenwind wirkt. Namen sind wie Schall und ßen. Jetzt ist die Bezeichnung „Classic“ Rauch für die gesamte alte Cloud wieder Mode, aber diesmal in Form von „OCI Classic“. Die lieben Nachbarn Die erste Herausforderung, der man sich Dabei wird sichtbar, dass sich bei- stellen muss, um zu einer eigenen Ba- de Wolkenarten immer stärker aneinan- Zwanzig Jahre, nachdem Reinhard May re-Metal-Maschine in der Oracle-Cloud der annähern, das Komplizierte daran ist zum ersten Mal von der Freiheit über den zu kommen, ist der Weg durch das La- aber, dass sie doch noch sowohl physisch Wolken geträumt hatte, sang er: „Ob im byrinth der Bezeichnungen für die von als auch logisch voneinander getrennt größten Saal, ob im kleinsten Zimmer – Oracle angebotenen Cloud Services (die- sind. Physisch, weil in den von Oracle auf- irgendein Depp bohrt irgendwo immer!“. se Formulierung ist übrigens extra ein gebauten Rechenzentren bisher nur ent- Es ist eben nicht so einfach mit den lieben bisschen umständlich, nur so als kleinen weder Classic oder Bare Metal Services Nachbarn, sei es im Mietshaus oder in Vorgeschmack auf das, was jetzt kommt). zur Verfügung stehen, und logisch, weil den Wolken. Während man sich als Mie- Als Oracle das neue Konzept einführte, für die Verwaltung unterschiedliche Tools ter über die fehlende Sonntagsruhe oder kam damit eine ganze Oracle-Bare-Metal- angeboten werden. Selbst die Web-GUI scheinbar nicht funktionierende Heizun- Cloud auf den Markt. Diese Bezeichnung sieht vollkommen anders aus. Da sich gen (weil das Warmwasser ja gerade von gibt es jetzt nicht mehr. Oracle benennt aber Cloud-Web-GUIs sowieso ständig allen anderen zum Duschen genutzt wird) nicht mehr ganze Wolken danach, wie die ändern, fällt das wahrscheinlich noch am aufregt, streiten sich die Daten in der Services darin aufgebaut sind. Das liegt wenigsten auf. Cloud um so wertvolle Ressourcen wie wohl unter anderen daran, dass schon Rechenleistung, Hauptspeicher und Netz- vor der Umbenennung auch in der Bare- werk-Kapazität. Wie der Streit ausgeht, Metal-Cloud virtuelle Maschinen angelegt Der Kostenpunkt zeigt sich dann spätestens in der Perfor- werden konnten. Die Ironie dahinter lässt mance der Anwendung. sich sehr schnell erkennen. Nun lautet der Auch beim Thema „Kosten“ ändert Oracle Das muss jedoch gar nicht sein, denn neue Name „Oracle Cloud Infrastructure“ in letzter Zeit gern mal etwas. Hat man im Oracle bietet einem nun die Möglichkeit, (OCI). Er suggeriert bereits, dass man es Sommer noch gegrübelt, was denn nun

18 www.aoug.at • www.doag.org • www.soug.ch Image-Anzeige, 03/2016 4C, 73 x 297 mm, 3mm Beschnitt

der Unterschied zwischen „metered“ und auch muss). Abbildung 1 zeigt ein Beispiel „non metered“ ist, lautet nun das neue für so ein wolkiges Netzwerk. Schlagwort „Universal Credits“. Das Tol- Den Rahmen bildet hier ein sogenann- le an denen ist, dass sie nicht mehr an tes „Virtual Cloud Network“ (VCN), in dem bestimmte Services gebunden sind, son- wiederum Subnetze angelegt werden. In dern universell eingesetzt werden kön- den Subnetzen werden dann die eigentli- nen. Man bezahlt einfach für ein Jahr ei- chen Instanzen platziert. Hierbei steht der nen festen Betrag und hat dann jeden Begriff „Instanz“ allerdings nicht für Daten- Monat entsprechend ein Zwölftel davon bank-Instanz, sondern für einen Host. Das zur freien Verfügung. Zum Vergleich: kann eine ganze Bare-Metal-Maschine, Bei „non metered“ musste man sich ge- das kann aber auch nur eine virtuelle Ma- nau festlegen, welche Services man im schine sein. Auch Datenbank-Systeme, sei nächsten Jahr brauchen wird. Allerdings es auf Bare Metal oder in einer VM, wer- gibt es das eigentliche „metered“-Prinzip den in so ein Subnetz platziert. nicht mehr, dass man nämlich einfach Bei den Subnetzen kann man sich üb- für ein Jahr Credits kauft und diese dann rigens noch aussuchen, ob sie „private“ das ganze Jahr über zur Verfügung hat. oder „public“ sein sollen. Damit gibt man Stattdessen verfallen ungenutzte Univer- vor, ob es in diesem Subnetz möglich sein sal Credits jeweils am Ende des Monats, soll, einer Instanz bei ihrer Erstellung eine und wenn man mal in einem Monat mehr öffentliche IP-Adresse zuzuweisen. Um Credits benötigt, als man Universal Cre- das vollkommen auszuschließen, macht dits gebucht hat, wird das als „pay as you man das Subnetz einfach „private“. go“ abgerechnet und man bekommt eine Geringfügig feingranularer lässt sich Rechnung von Oracle. der Zugriff noch über die sogenannten Wer sich für Bare Metal entscheidet, „Security Lists“ steuern. Selbige fungie- muss zudem beachten, dass die ersten ren als Firewall, bei der man einstellt, wer beiden OCPUs einer Bare-Metal-Maschi- auf welchen Port innerhalb des Subnet- Exzellente ne anders abgerechnet werden als de- zes Zugriff haben soll. Damit kann man ren restliche OCPUs. Die Begründung das Subnetz übrigens auch vollkommen dafür ist relativ einfach: Die ersten bei- abschotten, und trotzdem bietet Oracle Baupläne für den OCPUs müssen den Betrieb der ge- die Möglichkeit, auf einzelne Maschi- samten Maschine und sämtliches Cloud- nen dieses Subnetzes auch noch aus ei- Tooling, das man verwendet, finanzieren. nem anderen Subnetz zuzugreifen. Die- die Digitale Man mietet damit schließlich das gesam- se Funktionalität wird durch sogenannte te Haus und muss dafür auch sämtliche „sekundäre Virtual Network Interface Nebenkosten tragen, selbst wenn man Cards“ (VNIC) bereitgestellt. Die Instanzen Ökonomie! die Hälfte der Räume leer stehen lässt. bekommen also einfach virtuelle Netz- Aber was tut man nicht alles, um nachts werkkarten, von denen sich mehrere an- Dafür steht PROMATIS als Geschäftsprozess- in Ruhe durchschlafen zu können. legen lassen, und das eben auch in ande- Spezialist mit mehr als 20 Jahren Erfahrung Um zu vermeiden, dass jetzt die re Subnetze. Nur in ein anderes Subnetz im Markt. Gepaart mit profundem Oracle Oracle-Sales-Mitarbeiter diese Zeitschrift umziehen kann man damit seine Instan- Know-how schaffen wir für unsere Kunden unzufrieden zur Seite legen, weil hier zen leider noch nicht, weil die primäre die Digitale Transformation: beim Thema „Kosten“ das überhaupt VNIC bisher fest ist. Oracle SaaS für ERP, SCM, EPM, CX, HCM Wichtigste und Beste fehlt, sei noch er- Ist das virtuelle, wolkige Netzwerk an- Oracle E-Business Suite und Hyperion wähnt, dass Oracle jetzt auch „Bring Your gelegt, muss man jetzt noch dafür sorgen, Oracle Fusion Middleware (PaaS) Own Licence“ (BYOL) in sein Programm dass von dort auch Netzwerk-Verkehr Internet of Things und Industrie 4.0 aufgenommen hat. Kommen Sie also in nach außen – sei es ins Internet oder über die Cloud, Ihre Lizenz ist (ja) schon da. VPN in sein Rechenzentrum – möglich ist. Vertrauen Sie unserer Expertise als einer Den Wegweiser dafür bilden „Route Ta- der erfahrensten Oracle Platinum Partner bles“, die an die Subnetze angeknüpft – ausgezeichnet als Top 25 Supply Chain Oracle Cloud Infrastructure – sind. Sie sind durchaus strapazierfähig Solution Provider 2017. der Name ist Programm und können auch mit mehreren Subnet- zen eine Beziehung eingehen. Ihre Arbeit Neben der Abwesenheit störender Nach- besteht darin, die Bits und Bytes der Sub- barn ist das Besondere an der neuen netze entweder zum Internet-Gateway, Oracle Cloud, dass man sich hier eine also der Schnittstelle für die große, wei- ganz persönliche Netzwerk-Struktur auf- te Welt, oder zum Dynamic-Routing-Gate- bauen kann (und in einem gewissen Grad way zu schicken, das wiederum mittels PROMATIS Gruppe Tel. +49 7243 2179-0 www.promatis.de Ettlingen/Baden . Hamburg . Berlin Red StackWien (A) Magazin . Zürich (CH) 03/2018 . Denver (USA)19 Cloud

CustomerPremises-Equipment die Daten über VPN beispielsweise in sein Rechen- zentrum überträgt.

DB System – Datenbank mit System

Die Frage nach einer Datenbank in der Oracle Cloud ist vergleichbar mit der Fra- ge, ob ein Smartphone eigentlich noch telefonieren kann. Klar kann es das, aber es zwingt einen ja keiner dazu. Man kann sich auch einen Messenger instal- lieren, wenn man mehr auf rein schriftli- Abbildung 1: Netzwerk-Struktur in der OCI che Kommunikation steht. Es sei jedoch gesagt, dass einem dabei so einiges ent- geht. Oracle bietet in seiner Cloud nicht bieten neben der bereits angedeuteten, her- dort die CDB, die beim Erstellen des Ser- einfach nur einen Service, der reine Da- vorragenden Performance auch ein CLI, das vice angelegt wurde, löschen, dann manu- tenbank-Funktionalität bereitstellt; viel- einem das Leben als Administrator einfa- ell selbst eine Non-CDB anlegen und die- mehr bekommt man genau das, was man cher und schöner macht. In der Cloud nennt se dann wie On-Premises administrieren. sowieso die ganze Zeit haben wollte: ei- Oracle das gute Stück „dbcli“, die Ähnlichkeit Das geht, ist aber aufwendig. nen Host, auf dem Oracle-Software ins- zum „oakcli“ ist jedoch unverkennbar. talliert ist, so, wie man das von zu Hause Man kann damit sogar etwas tun, was gewohnt ist. in der alten Oracle-Cloud so nicht mög- Die I/O-Performance Auf dem Host besteht voller Root-Zu- lich war: Mit dem einfachen Befehl „dbcli griff und man kann nach Belieben schal- create-database --dbname mydbt –admin- Selbst musikalische Muffel werden bei die- ten und walten. Sollte man also mal password“ kann man sich eine Non-CDB- sem Thema feststellen, dass ihnen die Lob- nichts zu tun und in diesem Monat noch Datenbank erstellen. Wirft man einen ge- hymnen ganz von allein über die Lippen ein paar Universal Credits übrig haben, naueren Blick auf den Befehl, sollte zudem kommen. Für den Test kam ein (beziehungs- lässt sich innerhalb kürzester Zeit ein auch klar werden, dass gar kein Parame- weise das) Silly-Little-Oracle-Benchmark hochperformantes System aufbauen, das ter bezüglich Container-Datenbank an- (SLOB) von Kevin Closson zum Einsatz, wel- dann nach Lust und Laune zerschossen gegeben wurde. Das ist das Erstaunliche ches mit SQL-Abfragen I/O-Workload gene- werden kann. Nur hinterher nicht verges- am „dbcli“ – der Default-Wert hinsichtlich riert und zum Schluss einen AWR-Report sen, das Ganze wieder zu terminieren. Container-Datenbank lautet „Non-CDB“. ausgibt. Abbildung 2 zeigt einen Ausschnitt Das ist aber noch nicht alles. Oracle setzt Beim reinen Database Service, also ohne eines besonders schönen Exemplars. für sein Steckenpferd OCI auf Engineered Bare Metal, macht man für eine Non-CDB Auf Cloud-Seite wurde ein Database Systems, also ODA oder Exadata. Die da- Kopfstand und verliert dabei auch noch Bare Metal Service mit Dense IO und 36 zugehörigen Database Bare Metal Services sein gesamtes Cloud-Tooling: Man muss OCPUs auf Herz und Niere geprüft, wo-

Abbildung 2: AWR-Report

20 www.aoug.at • www.doag.org • www.soug.ch bei man bei der Anzahl der OCPUs sicher- ein gewisses Interesse daran hat, dass terschiedliche Rollen innehaben und lich noch wesentlich knausriger hätte sein man sich in der Cloud sicher fühlt, kommt somit gleichzeitig mehreren Gruppen zu- können, schließlich sollte I/O und nicht Re- die OCI mit einem eigenen Identity and geordnet sein kann. Zudem kann es für chenkapazität getestet werden, aber wie Access Management Service (IAM) sowie ein und dieselbe Gruppe natürlich auch sagt man so schön: „Wer hat, der kann“. einem Auditing Service daher. Wenn man mehrere Regeln geben. Genau genom- Für die Tests wesentlich entscheidender also herausfinden will, wer die letzten men kann sogar eine einzelne Policy meh- war dagegen, was sich hinter „Dense IO“ Universal Credits aufgebraucht hat, die rere Regeln enthalten, sodass Regeln, die verbirgt; das steht derzeit für 28,8 TB NVMe man eigentlich selbst für wichtige Tests inhaltlich zusammengehören, auch schön SSD Raw Storage, der sich auf neun Platten nutzen wollte – irgendwo im Sammelsu- gruppiert werden können. verteilt. Die Daten können also gleichzei- rium der ganzen Audit-Einträge wird man tig von neun SSD-Platten gelesen werden, fündig. Nur die Web-Oberfläche bietet die wiederum per NVMe angebunden sind. sich nicht unbedingt für die Suche an, da Mit Energie in die Cloud Diese technischen Voraussetzungen und wäre man für eine Weile beschäftigt. ein offensichtlich sehr gutes Zusammen- Für die Rechteverwaltung innerhalb Wenn ein Software-Hersteller wie Robo- spiel der Hardware mit der darauf instal- des IAM ist die Web-Oberfläche schon tron die Oracle-Cloud auf Herz und Nie- lierten Oracle-Software sorgen dafür, dass eher geeignet. Damit ein Nutzer das ren prüft, liegt ja nichts näher, als dass Oracle sich beim Thema „I/O-Performance“ Recht bekommen kann, auf eine Ressour- da auch mal die hauseigene Software ganz sicher nicht verstecken muss. ce zuzugreifen, reicht es allerdings nicht, raus in die Wolken gelassen wird. So Das SLOB testet dabei übrigens wirklich nur den Nutzer selbst und die Ressourcen wurde also „robotron*ecount“ in der nur die Hardware-Plattform, inwieweit die- anzulegen. Der Nutzer muss einer Grup- Cloud installiert und sich hinterher dar- se für ein Oracle-Datenbank-Deployment pe zugeordnet sein. Außerdem werden an erfreut, dass OCI beim Erstellen der mit hohen I/O-Performance-Anforderun- die Ressourcen in sogenannte „Compart- Netzwerk-Struktur ausreichend Freiheit gen geeignet ist. Anwendungslogik wird da- ments“ eingeteilt. Diese dienen zur in- liefert, um eine mehrschichtige Anwen- bei außen vor gelassen. Was auch bedeu- haltlichen Gruppierung der Ressourcen, dungsumgebung aufzubauen. Allerdings tet, dass die Datenbank-Software selbst etwa nach Projekten oder Abteilungen gab es während der Tests die Rechen- nicht getestet wird, aber von der ist ja in der Firma. Die Rechtevergabe erfolgt zentren in Frankfurt noch nicht und so schließlich weithin bekannt, wie gut sie ist. nun durch Policies, welche einer Gruppe waren die Antwortzeiten der Anwendung bestimmten Ressourcen innerhalb eines zwischen Dresden und Phoenix, Arizona, Compartment Zugriffsrechte gewährt.Ab - doch zu langsam; sie hat sich jedoch mit Security – sicher ist sicher bildung 3 zeigt dazu ein Beispiel zur Ver- einem zusätzlichen Terminalserver be- anschaulichung. sänftigen lassen. „Bei der Sicherheit hört der Spaß auf“, sa- Bei genauerer Betrachtung dürfte auf- Auch wenn es nun mit den Rechenzen- gen alle. Weil Oracle das weiß und zudem fallen, dass ein und derselbe Nutzer un- tren in Frankfurt das Problem der Entfer-

Abbildung 3: Rechtevergabe mit Identity and Access Management Service

Red Stack Magazin 03/2018 21 Cloud

nung so nicht mehr gibt, muss sich doch gern so hätte, sondern weil es einem jeder Umzugswillige darüber Gedanken Vorteile bringt. Diese Vorteile müssen machen, wie die Anbindung von der Cloud zudem auch alle Nachteile aufwiegen, ins eigene Rechenzentrum gestaltet sein die die Abgabe von Kompetenzen und soll. Je nach Verfügbarkeit bietet Oracle der Umzug von „haben“ zu „mieten“ so hierfür auch 1- oder 10-Gbps-FastConnect- mit sich bringen kann. Mit den Bare Me- Anbindungen, natürlich gegen Einwurf hin- tal Services möchte Oracle wieder einen reichend vieler Scheine und Münzen. Letz- dieser Nachteile, nämlich den der stö- tere sind zudem auch für eine eventuelle renden Nachbarn, erschlagen. Das ge- MPLS-Leitung und deren Anbindung an das schieht auf durchaus eindrucksvolle Art Katharina Büchse eigene Rechenzentrum erforderlich. und Weise, mit schicker Performance [email protected] und einem eigenen Cloud-Netzwerk. Es ist einen Test wert, seinen Daten mal ein Fazit bisschen Ruhe zu gönnen. Übrigens ist Reinhard Mey zu Zeiten des Eigenheims Wenn man in die Cloud geht, dann nicht, zu „Irgendein Depp mäht irgendwo im- weil es gerade Mode ist, weil das eben mer“ übergegangen – aber Wiesen gibt alle machen, oder gar, weil Oracle das es in den Wolken keine.

Florian Barth [email protected]

Geschäft zu konzentrieren, lässt sich heute noch nicht ab- schließend beurteilen. Es ist, wie es ist: Oracle spielt mit und zieht alle Register, um Günther Stürner den Abstand zu den heutigen „dicken Wolken“ möglichst schnell dbms publishing zu egalisieren. Die Zukunftsfrage von Oracle mit dem Erfolg der Cloud-Bemühungen zu verknüpfen, wie es von manchen Oracle- Granden gerne gemacht wird, halte ich jedoch schlicht für falsch. Es sei denn, es ist ein Umbau des Oracle-Hauses von einem füh- Aus der Ferne betrachtet: renden Software-Anbieter mit angegliedertem Hardware- und Software (und Daten) sind der Treibstoff der Cloud-Angebot in ein Cloud-Haus mit angegliedertem Software- Zukunft! Angebot geplant. Dann allerdings gute Nacht! Oracle hat in den letzten fünf Jahren – ja, so lange ist das The- ma dort schon akut – Großartiges geleistet. Respekt. Aber Oracle Cloud-Computing ist da und wird nicht mehr verschwinden. darf nicht ohne Not seine Perlen vor die Säue schmeißen. Soft- Amazon, Google & Co. rüsten seit Jahren massiv auf, um uns alle ware ist die Kernkompetenz, die das Unternehmen groß ge- mit Rechenleistung zu beglücken. Sie werden nicht müde zu be- macht hat. Software und Daten sind der Treibstoff der Zukunft. tonen, dass die klassischen Firmen-Rechenzentren bald der Ver- Hier gibt es noch viel zu tun und noch viel zu gewinnen. gangenheit angehören werden und dass in der neuen Cloud- Oracle wird nachhaltigen Erfolg haben, wenn es gelingt, eine Welt alles besser, viel einfacher und vor allem viel billiger ist als Balance zwischen On-Premises- und Cloud-Angeboten zu fin- das, was aus dem eigenen Maschinenraum kommt. den. Hier muss das Kundenbedürfnis im Vordergrund stehen Wie das Spiel ausgeht, ist noch offen. Dass die Firmen-Re- und nicht die aktuell von Oracle favorisierte Lösung. Oracle chenzentren eine gefährdete Spezies sein sollen, mag ich nicht wird dann Erfolg haben, wenn es die eigene Cloud-Umgebung glauben. Es wird sich allerdings in diesem Umfeld vieles ver- gegenüber anderen Cloud-Umgebungen nicht bevorzugt. Das ändern. Jedes Unternehmen muss seine eigene Balance zwi- Ziel muss es doch sein, seine Software auf allen möglichen schen Eigenbetrieb und Fremdbezug der IT-Services finden. Hardware- und Cloud-Plattformen zu betreiben. Oracle wird Oracle hat lange Zeit das Cloud-Thema ignoriert, um in dann Erfolg haben, wenn man sich auf seine Wurzeln besinnt der letzten Minute doch noch auf den Zug aufzuspringen. Ob und ein faires und nachvollziehbares Preismodell findet (ger- der Einstieg in das Cloud-Geschäft klug war oder ob es smar- ne auch schwarz auf weiß zum Nachlesen). Und nicht zuletzt, ter gewesen wäre, mit bestehenden Cloud-Anbietern clevere wenn es gelingt, verloren gegangenes Vertrauen zurückzuge- Partnerschaften einzugehen und sich voll auf das Software- winnen, denn „Nur wo man sich vertraut, wird man dick!“

22 www.aoug.at • www.doag.org • www.soug.ch Cloud Service – Himmel und Hölle

Alexander Weber, Firma e:ndlich

Dieser Erfahrungsbericht stellt zunächst den Oracle Cloud Schema Service vor und zeigt dann die Aufga- ben während der Migration. Es folgt ein Einblick in eine Phase der Nutzung, die zu einer massiven Störung des Geschäftsbetriebes führte und somit die möglichen Schwachstellen eines Cloud Service offenbart. Abschließend sind die Vor- und Nachteile dieses Cloud Service gegenübergestellt.

Seit mehr als fünf Jahren ist das Thema tion war ein großes Interesse daran, sehr chende Maschinen in der Cloud zu abon- „Cloud“ in aller Munde und die Firma „end- früh eigene Erfahrungen in der Anwendung nieren und alles „1:1“ zu übertragen. Dieser lich“ hat sich deshalb frühzeitig entschie- von Cloud Services zu sammeln. Ansatz ist jedoch nicht wirklich eine Verbes- den, hier selbst Know-how aufzubauen. serung, da man eigentlich nur den Spiel- Es gab zwei wichtige Gründe, sich mit den platz wechselt, die Spielzeuge aber gleich Cloud Services zu beschäftigen. Erstens, Welchen Cloud Service? bleiben. Dies kann sinnvoll sein, wenn man um den Aufwand der selbst betriebenen ohnehin mit seinem bisherigen Betreiber Infrastruktur zu minimieren. Zusätzlich soll- Prinzipiell gibt es mehrere Ansätze, einen unzufrieden ist und wechseln will. ten die Verfügbarkeit gesteigert und der Cloud Service zu wählen. Eine Möglichkeit Eine zweite Option ist es, die Hardware Betrieb stabiler werden. Die zweite Motiva- ist, alles so zu nehmen, wie es ist, entspre- zu virtualisieren und einige vorhandene

Red Stack Magazin 03/2018 23 Cloud

Abbildung 1: Ausschnitte aus den Cloud-Service-Zugängen mit Apex, FileZilla und SQL Developer

Dienste in die Cloud zu verlagern (etwa Cloud eine Computer-Plattform für Ent- fügung stellt. Dabei handelt es sich um eine Datenbank oder ein Active Directo- wickler von Webanwendungen zur Ver- schnell einsetzbare Laufzeit-Umgebun- ry), damit geht man schon in Richtung Konsolidierung und Standardisierung der eigenen Anwendung. Die dritte Möglichkeit besteht darin, ei- nen Service zu wählen, der es ermöglicht, dass die eigene Anwendung ausschließ- lich auf Basis von Cloud Services läuft und man sich wirklich nur noch um den Betrieb und die Weiterentwicklung der Anwendung kümmern muss. Als letzte Alternative bliebe noch die vollständige Ablösung der eigenen An- wendung durch eine Cloud-Lösung, die annähernd dasselbe macht wie die selbst- entwickelte Lösung und bei der man sich danach nicht mehr um die Weiterentwick- Vorher lung kümmern muss. Das Unternehmen des Autors hatte zum Zeitpunkt der anstehenden Entscheidung für einen Wechsel in die Cloud viele Anwen- dungen im Haus, die auf Oracle-Basis und im Frontend auf Apex liefen. Der maximal unterstützte Technologie-Stack wurde von Oracle selbst angeboten, denn hier erhielt man einen Service, der sich sogar um den Betrieb und die Pflege von Apex kümmert. Die Wahl fiel deshalb auf den Oracle Cloud Schema Service.

Der Oracle Cloud Schema Service Nachher Dieser Service läuft unter der Kategorie „Platform as a Service“ (PaaS). Man be- zeichnet so eine Dienstleistung, die in der Abbildung 2: Teilmodul „Leistungserfassung“ vor und nach der Migration in die Cloud

24 www.aoug.at • www.doag.org • www.soug.ch gen, aber auch um Entwicklungs-Umge- bungen, die mit geringem administrativen Aufwand und ohne Anschaffung der dar- unterliegenden Hard- und Software ge- nutzt werden können (siehe Abbildung 1). Der Database Schema Service besteht derzeit aus:

• Apex 5 (5.1.3), zum Zeitpunkt der Mig- ration war es Apex 4 (4.2.6) • Ein Datenbank-Schema auf einer 11g R2 Datenbank (11.2.4) • SFTP-Zugang für Export/Import • Zugang zu den Daten über REST-Servi- ces (zum Beispiel auch über SQL Deve- loper)

Entwickler nutzen PaaS, um neuartige und bewusst für die Cloud gestaltete Applikatio- nen zu entwickeln. Dabei stehen einem prin- zipiell alle Micro-, REST-, Web- und Cloud-Ser- vices zur Verfügung, um die Anwendung zu Abbildung 3: Datenschutz erweitern. In sogenannten „Marketplaces“ kann man diese auch gut vermarkten. • Deployment-Vorgehen anpassen um, die Daten von natürlichen Personen • LDAP-Bezüge eliminieren zu schützen. Dazu zählen Attribute wie Die Umsetzung/Migration • Java-Reports-Engine durch eine PL/ Name, Vorname, Geburtstag, Geburtsort SQL-Eigenentwicklung ersetzen etc., aber auch die näheren personenbe- Im ersten Schritt ging es darum, eine ge- • Neue Application-IDs zogenen Daten wie Straße und Ort oder eignete Applikation für die Migration in BIC und IBAN. Es geht darüber hinaus die Cloud zu finden. Das Team des Autors auch immer darum, ob man mithilfe der hat folgende Kriterien zugrunde gelegt: Datenschutz Daten in einem Datenpool einen Bezug zu einer Person herstellen kann oder nicht. • Möglichkeit der Konsolidierung der Der Datenschutz spielt im Cloud-Umfeld Eine Datenmenge gilt rechtlich als da- Anwendung auf die Zwänge der zu- eine große Rolle. Kunden in Deutschland tentechnisch verschmutzt, wenn es einen künftigen Ziel-Umgebung ist mit hoher und Europa legen viel Wert darauf, dass mit Datensatz gibt, mit dessen Hilfe eine Per- Wahrscheinlichkeit vorhanden ihren Daten sorgsam umgegangen wird, son eindeutig identifizierbar ist. Als Bei- • Bereitstellung eines Entwicklers aus was gleichzeitig ein gewisser Innovations- spiel: In einem Datenpool werden lediglich bestehenden Projekten für diese An- Hemmschuh ist. Das Unternehmen des Au- Ortsteil und Alter gespeichert und ausge- wendung ist möglich. Es sollte jemand tors hat sich deshalb mit den Gesetzen und wertet. Dies klingt erst mal unkritisch, aller- sein, der die Anwendung (mit-) entwi- Bestimmungen auseinandergesetzt und dings könnte es sein, dass im fiktiven Orts- ckelt hat und sie sehr gut kennt frühzeitig einen externen Datenschutzbe- teil „Einsamer Hof in kleiner Stadt“ nur ein • Möglichst keine Verzahnung mit ande- auftragten ins Boot geholt, um Fragestel- einziger Mensch mit 85 Jahren wohnt, wes- rer Software und wenige Schnittstellen lungen bezüglich IT-Sicherheit und Daten- halb man direkt Rückschlüsse auf die Per- schutz zu begleiten (siehe Abbildung 3). son ziehen könnte – was nicht erlaubt ist. Die Wahl fiel auf die Apex-Anwendung zur Mit Datenschutz ist in der Regel auch Im IT-Sicherheitsgesetz steht der Unternehmenssteuerung, also quasi ein gleichzeitig IT-Sicherheit gemeint, was je- Schutz kritischer Infrastrukturen im Vor- ERP-System (siehe Abbildung 2). doch nicht dasselbe ist. Es gibt im Zusam- dergrund, die beispielsweise für die Was- Folgende Aufgaben standen auf der menspiel von Datenschutz und IT-Sicher- ser- und Energieversorgung oder die Auf- To-do-Liste: heit jedoch eine Überschneidung durch die rechterhaltung des Gesundheitswesens technisch-organisatorischen Maßnahmen verantwortlich sind. Wenn man Systeme • Konsolidierung und Re-Engineering (TOM). Bei einer Migration von Services in für solche Infrastrukturen zur Verfügung der Anwendung die Cloud sind sowohl die eigenen TOMs stellt, muss man auch dafür Sorge tragen, • Migration Apex 3 nach Apex 4 (damals) als auch die des Cloud-Anbieters unter die dass die IT-Sicherheit gewährleistet ist. • Zusammenführung des Daten- und Lupe zu nehmen. Dies betrifft insbesonde- Hier liegt ein klarer Vorteil in der Nutzung des Applikations-Schemas re die Auftragsdatenverarbeitung. von Cloud-Diensten, da diese in vielen • Obfuscation-Toolkit durch „DBMS_ Beim Datenschutzgesetz (BDSG be- Fällen den Anforderungen der IT-Sicher- CRYPTO“ ersetzen ziehungsweise EU DSGVO) geht es dar- heit von vornherein genügen.

Red Stack Magazin 03/2018 25 Cloud

Gemäß § 9 Bundesdatenschutzgesetz (BDSG) sind alle Stellen, die personenbezo- gene Daten verarbeiten, erheben oder be- nutzen, verpflichtet, technische und/oder organisatorische Maßnahmen zu treffen, um zu gewährleisten, dass die Sicherheits- und Schutzanforderungen des BDSG erfüllt sind, etwa die Zugangs- oder Auftragskont- rolle. Sie müssen die Einhaltung der TOMs selbst laufend kontrollieren, aber auch beim Cloud-Anbieter nachfragen.

Was ist mit den US- Anbietern? Vorher

Jene US-Anbieter, die einen Großteil der Cloud-Service-Angebote stellen oder die Hersteller der zugrunde liegenden Soft- ware sind, unterliegen per se nicht den Datenschutz- und IT-Sicherheitsbestim- mungen der EU. Allerdings gab es dafür in der Vergangenheit das Safe-Harbour- Abkommen und nun das „EU-U.S. Privacy Shield“, eine Art Freibrief, der es erlaubt, die US-Dienste zu nutzen. Grundsätzlich ist es hilfreich, wenn man einen Cloud-Dienst-Anbieter mit eu- ropäischer Niederlassung wählt, da die- ser somit auch auf europäischem Boden betrieben wird. Bei dieser Konstellati- Nachher on gelten die europäischen Gesetze und Richtlinien auch für den US-Anbieter. Oracle hat weltweit lokale Data-Cen- Abbildung 4: Service-Ansicht vor zwei Jahren und heute ter in Betrieb. Das Unternehmen des Au- tors hat sich damals für das Datacenter „EMEA1“ auf schottischem Boden in Lin- • Cloud-Dienst erfüllt BDSG beziehungs- generelle Betriebszeit ablesen. Es sind lithgow entschieden. Viele Informatio- weise die EU-DSGVO zudem einige grundsätzliche Verwal- nen über das Data-Center werden jedoch • Cloud-Anbieter ist nach ISO 27001 zer- tungsaktionen (wie die Benutzerverwal- nicht bereitgestellt. Auch online etwas da- tifiziert tung und die Initiierung von Datenex- rüber herauszufinden, ist nicht leicht, was • Data-Center befindet sich innerhalb porten) möglich. Ein Datenexport wird jedoch potenzielle Angriffe wegen fehlen- der EU oder/und es existiert ein An- manuell beauftragt und kann kurz dar- der Informationen erschwert. Man be- gemessenheitsbeschluss wie das „EU- auf vom SFTP-Server abgeholt werden. wertet das deshalb nicht als negativ. U.S. Privacy Shield“ Inzwischen bekommt man auch proak- tive Informationen über geplante Aus- fallzeiten in der Service-Ansicht und se- Datenschutz-Fahrplan für Wie sich der Service parat als E-Mail (siehe Abbildung 4). Das den Weg in die Cloud überwachen lässt Look & Feel des Dashboards und auch die Service-Ansicht haben sich in den Folgende Punkte sollten auf jeden Fall im- Sobald die Anwendung in der Cloud letzten Jahren mehrmals verändert, was plementiert sein, bevor man eigene Servi- ist, hat man auch ein Interesse daran es immer etwas anstrengend macht, ces in die Cloud migriert: zu wissen, wie der Dienst funktioniert. sich zurechtzufinden. Es gibt dazu ein „Cloud Service Dash- • Es sind externer Datenschützer und in- board“, in dem alle Cloud-Dienste auf- terner Datenschutzbeauftragter zu be- gelistet sind. Dort lassen sich für jeden Im Himmel nennen Service die wichtigsten Parameter wie • Cloud-Anbieter-TOMs sind durch externe Speicherplatz-Nutzung, Verfügbarkeits- Nachdem das Unternehmen migriert hat- Datenschützer abgefragt und existieren Status in der aktuellen Woche und die te, ist man zu der Überzeugung gelangt,

26 www.aoug.at • www.doag.org • www.soug.ch dass der Aufwand von einem halben Jahr, • Statt einer Datenbank-Lizenz und jähr- Mitarbeitergesprächen verschlüsselt hin- um die Anwendung zu migrieren, auf je- lichen Support-Kosten nun ein monat- terlegt. den Fall gerechtfertigt war. Verglichen lich kündbares Abonnement Im Februar 2017 stand jedoch die An- mit der Energie, die man vorher täglich • Von Anfang an skalierbar wendung von der einen auf die andere in die Betreuung der Applikation inves- Minute nicht mehr zur Verfügung (siehe tieren musste, ist der jetzige Zustand der Abbildung 5). Nach einer kurzen Wartezeit Himmel des Anwendungsbetriebs. Vor al- Hölle – oder was dann wurde ein PRIO-1-Service-Request bei lem folgende Vorteile standen im Vorder- geschah Oracle eröffnet und man hoffte auf eine grund: zügige Bearbeitung. Bei der Cloud-Anwendung handelt es sich Zur Erinnerung: Ein PRIO-1-Service-Re- • Keine Betriebsaufgaben mehr um die firmeninterne ERP-Anwendung quest ist die höchstmögliche Priorität, mit • Ab der Migration deutlich weniger un- zur Verwaltung der Angebote, Aufträge, der man einen Service-Request absetzen geplante Ausfallzeiten Rechnungen, Assets, Mitarbeiterdaten kann. Bei der Eröffnung eines solchen Ti- • Apex-Backend-Migrationen werden und Leistungserfassung. Sie ist Dreh- und ckets muss nicht nur der Fehler beschrei- für das Unternehmen durchgeführt Angelpunkt des Geschäfts. Die Mitarbei- ben, sondern es müssen auch die An- • CPUs und/oder PSUs werden für das ter nutzen die Anwendung beim Kunden, sprechpartner, die Manager und jeweils Unternehmen eingespielt um ihre verrechenbaren Leistungen zu deren Kontaktdaten benannt sein. Diese • O/S-Patches werden für das Unterneh- erfassen, Mitarbeiter im Backoffice erfas- sollen dann für Oracle rund um die Uhr men eingespielt sen mithilfe der Anwendungen neue Auf- zur Verfügung stehen beziehungsweise • Angriffe von außen werden abgewehrt träge, erstellen Rechnungen, verwalten erreichbar sein. Somit wurde ein klares • Das Unternehmen kümmert sich nur die Assets und es werden Dokumente zu Signal gesetzt, dass es sich um ein wich- noch um die Entwicklung tiges Anliegen handelt und zeitnahe Un- terstützung erforderlich ist. Die erste Re- aktion seitens Oracle war deshalb sehr enttäuschend: „Hi Alexander, we don‘t support Apex Cloud Service issues. Ple- ase reach out to the right team. Regards, ... Oracle Cloud Services ...“ Man wurde jedoch nicht informiert, welches das richtige Team ist, und der Ball lag wieder beim Unternehmen; man wurde quasi abgewimmelt, was sich in dem Augenblick nicht gut anfühlte. Das Unternehmen führte zeitgleich Telefona- te mit Oracle-Support, Oracle Potsdam und Oracle München. Es stellte sich her- aus, dass es für den Support gar nicht so leicht zu ermitteln ist, um welchen Cloud- Dienst es eigentlich geht. Die Abo-ID und die CSI-Nummer reichten dazu jedenfalls nicht aus. Man wurde gebeten, Schema- und Tablespace-Name zu benennen – das ist jedoch nicht so einfach, wenn der Ser- vice nicht mehr zur Verfügung steht. Mit etwas Glück und durch Recherche in Skripten konnte man die gewünschten Informationen zusammentragen. Zwi- schenzeitlich wurde das zuständige Sup- port-Team identifiziert („CLOUDOPS“). Es hat für das Unternehmen jedoch ziemlich intransparent im Hintergrund gearbeitet. Der Kontakt im Support konnte Fragen nicht direkt beantworten, sondern muss- te diese erst an das CLOUDOPS-Team weiterleiten. Das Unternehmen wurde parallel durch den vertrieblichen Ansprechpartner gebe- Abbildung 5: Anwendung in der Cloud nicht mehr verfügbar ten, einen neuen Database Schema Service

Red Stack Magazin 03/2018 27 Cloud

zu bestellen. Wozu dies nötig war, konn- nicht mehr eingeschränkt. In der Folge- war der Cloud Service trotzdem so robust te man zu dem Zeitpunkt nicht begreifen, zeit wurden auch alle weiteren Schwierig- konzipiert, dass nach einiger Zeit wieder al- hat es aber aufgrund der Notlage getan. keiten gelöst, es gibt inzwischen wieder les ohne Daten- und Funktionalitätsverlust Dies ging letztlich relativ schnell, allerdings ein völlig sauberes System und man kann hergestellt werden konnte. Abschließend musste man als kleinere Firma auch nicht wie zuvor damit arbeiten. die Nach- und die Vorteile im Überblick: über einen Einkauf gehen und zeichnungs- Eines zeigt diese Antwort des Cloud- berechtigte Personen finden, sondern Service-Produktmanagements jedoch konnte alles durch die Geschäftsführung auch: Die Komplexität, einen versehent- Nachteile erledigen lassen. Zwei Tage nach Eröffnung lich gelöschten Service wiederherzustel- des Service Request stand der neue, völ- len – und bei diesem Beispiel handelt es • Einige gute Ideen ließen sich wegen lig nackte Cloud Schema Service zur Ver- sich nicht um eine komplexe Umgebung der eingeschränkten Funktionalität fügung. Nackt deshalb, weil dieser Service – ist offenbar sehr hoch und bedarf der nicht umsetzen weder unsere Daten noch unsere Anwen- Zusammenarbeit mehrerer Spezialisten. • Gefühlte unsichere Handlungssituati- dung enthielt. Eine wirklich offizielle Ursache für diesen on in der „Lieferantenkette“ aufgrund Nun traf ein weiterer Rückschlag sei- Ausfall hat das Unternehmen nie erfahren, von fragiler Datenschutzlage (EU-U.S. tens des Supports ein. Nachdem man be- konnte aber den Gesprächen Folgendes Privacy Shield) stätigt hatte, dass der neue Cloud-Dienst entnehmen: Der Cloudvertrag basierte auf • Wenn etwas schiefgeht, hat man kei- grundsätzlich zur Verfügung steht, kam einer Kreditkarte, deren Ablaufdatum im nen Ansprechpartner im Haus und folgende Antwort: „Hi, Thanks for your August des Vorjahres erreicht war. Es gab ist der Effektivität des Supports beim confirmation. I will be closing this SR since jedoch keine Kommunikation seitens Oracle Cloud-Anbieter ausgeliefert the service is active now. For any issues, darüber, dass dies der Fall ist. Der Service lief kindly log a separate SR. Kind Regards,...” trotzdem von August des Vorjahres bis Feb- Man fühlt sich in diesem Augenblick sehr ruar weiter und wurde dann irgendwann Vorteile einsam und bereut zutiefst, jemals die Ent- auf „zu archivieren“ gestellt; die technische scheidung pro Cloud getroffen zu haben. Ausführung dazu fand im Februar statt. • 100-prozentige Entlastung im Betrieb Dieses Beispiel unterstreicht den Beitrag • Viel weniger ungeplante Ausfallzeiten von Herrn Dr. Neugebauer „Oracle Support • Gewöhnung an die abgegebene Kont- – Quo vadis“ Anfang des Jahres im Red Stack Fazit rolle und Genuss der Vorteile Magazin, in dem er die sinkende Zufrieden- • keine Lizenz- und Supportgebühren, heit mit My Oracle Support anspricht. Letztendlich lässt sich sagen, dass die Ursa- sondern einfach ein monatlich künd- Das Unternehmen hat im Anschluss di- che für den Ausfall kein technischer Fehler bares Abonnement rekt mit dem Produktmanagement Kontakt des Cloud Service, ungewollter Datenver- • Skalierbarkeit lässt sich einfach online aufgenommen und ab diesem Zeitpunkt lust oder Hackerangriff war. Es handelte hinzukaufen den Eindruck, dass tatsächlich etwas pas- sich um ein Problem in den Verwaltungs- • Mehrere Oracle Cloud Services können siert. Nach und nach standen immer mehr prozessen, die den Cloud Services zugrun- von einem Ort aus verwaltet werden Daten aus der gewohnten Umgebung zur de liegen. Bei komplexen, multinationalen • Die Erfüllung der immer höher und kom- Verfügung. Zunächst erstmal nur der Zu- Strukturen in großen Konzernen, bei de- plexer werdenden Datenschutzauflagen griff auf die Laufzeit-Umgebung, aber es nen die Prozesse nicht mit den technischen übernimmt der Cloud-Anbieter waren immerhin wieder die eigenen Daten Innovationen Schritt halten können, kann • Know-how-Gewinn und Erhalt der ei- zu sehen und die Anwendung hat grund- dies zu Problemen führen. Es ist deshalb genen Wettbewerbsfähigkeit sätzlich funktioniert. Es wurden jedoch notwendig, einen funktionierenden Kom- • Einschränkung in der Funktionalität unter anderem noch Umlaute in der Appli- munikationskanal zwischen den Nutzern des Schema Service hält die Anwen- kation falsch dargestellt und Public bezie- von Cloud-Diensten und dem Anbieter her- dung technisch schlank und man kon- hungsweise Private Interactive Reports wa- zustellen, der während des gesamten Ap- zentriert sich auf die fachliche Logik ren nicht verfügbar. plication Lifecycle einer Cloud-basierten Auch der Zugriff auf die Apex-Entwick- Anwendung funktioniert. Dies könnte der lungsumgebung war nicht möglich. Aber: Support sein, ist es aber derzeit nicht. Das Schlimmste war zunächst überstanden Trotzdem überwiegen für uns insge- und das Unternehmen hat sich bei den hilf- samt die Vorteile, die die Cloud Services reichen Unbekannten über das Produktma- mit sich bringen. Das skizzierte Ausfallsze- nagement bedankt. Es kam folgende Ant- nario hätte auch unabhängig davon, dass wort: „... Kollegen in den USA haben in einer es einen Cloud Service betraf, auftreten konzentrierten Aktion mit diversen anderen können. Der Betreiber einer Datenbank Cloud-Teams das Ganze wiederherstellen/ in einem On-Premises-Data-Center hätte mit alten Namen aufsetzen können ...“ auch versehentlich den Abbau einer pro- Fünf Tage später konnte man also wie- duktiven Datenbank veranlassen können. der grundsätzlich mit der Anwendung Fehler passieren und werden auch zu- Alexander Weber arbeiten und der Geschäftsbetrieb war künftig nicht zu vermeiden sein. Jedenfalls [email protected]

28 www.aoug.at • www.doag.org • www.soug.ch „Lift & Shift“ oder wie kommt meine (Pluggable) Datenbank in die Oracle-Cloud

Kai Uwe Fischer, Logicalis GmbH

„Push a Button to move your Database to the Oracle-Cloud” ist einer der Slogans, mit denen Oracle für die Public Cloud wirbt. Ist es wirklich nur ein Knopfdruck? Dieser Artikel – basierend auf eigenen Test- und PoC-Erfahrungen – soll dies klären.

Bevor wir unsere Reise in die Oracle- bildung 1). Damit die Reise nicht beendet ist, Folgende Software-Releases stehen als Datenbank-Cloud beginnen, weist der Autor bevor sie überhaupt richtig begonnen hat, Oracle Database Cloud Service (DBCS) zur auf drei wichtige Dinge hin, die es auf dem muss der SSH-Port in der Firewall des Un- Verfügung: Weg zu beachten gibt. Nach Erstellung ei- ternehmens geöffnet sein. Ist dies der Fall, ner Database-as-a-Service-Instanz über das kann beispielsweise mit Putty oder dem SQL • 11g Release 2 Oracle-Database-Cloud-Service-Dashboard Developer mithilfe des erstellten Private-/ • 12c Release 1 sind per Default alle Ports in der Firewall, au- Public-SSH-Schlüsselpaares auf den Daten- • 12c Release 2 ßer dem SSH-Port 22, geschlossen (siehe Ab- bank-Server zugegriffen werden. • 18c Release 1

Red Stack Magazin 03/2018 29 Cloud

Abbildung 1: Die Access-Rules

Zu beachten ist, dass das Software-Re- Cloud migriert werden kann. Die eingesetz- • SQL Developer and SQL*Loader to Mi- lease 12c, im Gegensatz zur On-Premise- ten Tools und Technologien hängen dabei grate Selected Objects Welt, nur in der Single-/Multitenant-Architek- von dem eingesetzten Release und der Edi- • Unplugging/Plugging a PDB tur verfügbar ist. Ein weiterer Unterschied tion ab. Im Using-Oracle-Database-Cloud- • Unplugging/Plugging Non-CDB zwischen der Oracle-On-Premise-Welt und Service-Handbuch (siehe „https://docs. dem Database Cloud Service (DBCS) in der oracle.com/en/cloud/paas/database-dbaas- Dieser Artikel geht nicht auf die klassi- Oracle-Public-Cloud ist, dass alle User-Da- cloud/csdbi/mig-migrating-premises-oracle- schen Migrationsmethoden mittels Data ten per Default in der Oracle-Public-Cloud db-cloud.html“) sind im Kapitel 9 die einzel- Pump und RMAN ein, sondern stellt fol- per Transparent Data Encryption (TDE) ver- nen Migrationsmethoden beschrieben: gende neue Migrationswege und deren schlüsselt sind, dies gilt auch für die Stan- Besonderheiten vor: dard Edition. Der Anwender muss sich um • Data Pump Conventional Export/Import die TDE-Konfiguration im DBCS-Umfeld • Data Pump Full Transportable • Unplug/Plug-PDB (Kommandozeile) nicht kümmern, dies geschieht automatisch • Data Pump Transportable Tablespace • PDB-Clone (Oracle Enterprise Mana- beim Anlegen des Datenbank-Cloud-Ser- • Remote Cloning a PDB ger, SQL Developer) vice. Listing 1 zeigt den entsprechenden Ein- • Remote Cloning Non-CDB • PDB-Hot-Clone (Kommandozeile) trag in der Datei „sqlnet.ora“. • RMAN Cross-Platform Transportable • NONCDB to PDB (Kommandozeile) Jede Pluggable Datenbank (PDB) benö- PDB • PDB-Klon von Oracle 12.1 nach Oracle tigt dabei einen eigenen Master-Key. Mehr • RMAN Cross-Platform Transportable 12.2 dazu später. Aus den genannten Punkten Tablespace Backup Sets ist zu erkennen, dass neue Aufgaben auf ei- • RMAN Transportable Tablespace with nen Datenbank-Administrator zukommen Data Pump PDB-Unplug/Plug mittels werden, denn mit den Themen „Verschlüs- • RMAN CONVERT Transportable Table- Kommandozeile selung“ (TDE) und „Tenant-Architektur“ wird space with Data Pump er sich in Zukunft beschäftigen müssen. • SQL Developer and INSERT Statements In der Datenbank-Version 12 Release 1 to Migrate Selected Objects konnte eine Pluggable Datenbank (PDB)

Wege in die Oracle-Database- Cloud ENCRYPTION_WALLET_LOCATION = (SOURCE=(METHOD=FILE)(METHOD_ DATA=(DIRECTORY=/u01/app/oracle/admin/DBHP2/tde_wallet))) Es gibt eine Vielzahl von Möglichkeiten, wie eine On-Premise-Oracle-Datenbank in die Listing 1

30 www.aoug.at • www.doag.org • www.soug.ch in eine „*.xml“-Datei entladen werden. SQL> alter pluggable database KUF3 close; In dieser war nur die Beschreibung der SQL> alter pluggable database KUF3 unplug into '/u01/stage/kuf3.pdb'; PDB enthalten. Um diese PDB nun auf Listing 2 eine andere Datenbank umzuziehen, war es notwendig, daneben alle rele- SET SERVEROUTPUT ON vanten Datenbank-Dateien händisch DECLARE zu kopieren. Dies ist in der Version 12.2 l_result BOOLEAN; auch weiterhin möglich, allerdings gibt BEGIN es nun auch die Möglichkeit, anstatt ei- l_result := DBMS_PDB.check_plug_compatibility( ner „*.xml“- eine komprimierte „*.pdb“- pdb_descr_file => '/u02/stage/kuf3.pdb', pdb_name => 'kuf3'); Datei zu erstellen, mit dem Vorteil, dass IF l_result THEN in diesem Dateiformat die komplette DBMS_OUTPUT.PUT_LINE('compatible'); PDB enthalten ist. ELSE Welche Schritte sind nun notwendig, DBMS_OUTPUT.PUT_LINE('incompatible'); um eine PDB aus einer On-Premise in END IF; eine DBCS-Umgebung zu verschieben? END; / Im ersten Schritt muss die PDB auf der SQL> SET SERVEROUTPUT ON Quell-Datenbank gestoppt werden. Im DECLARE Anschluss wird die gestoppte PDB ausge- l_result BOOLEAN; hängt (siehe Listing 2). BEGIN Anschließend kann die Archive-Datei, in l_result := DBMS_PDB.check_plug_compatibility( pdb_descr_file => '/u02/stage/kuf3.pdb', diesem Fall „kuf3.pdb“, auf den Zielhost in pdb_name => 'kuf3'); der Oracle-Public-Cloud kopiert werden. IF l_result THEN Danach lässt sich mit einer Prozedur über- DBMS_OUTPUT.PUT_LINE('compatible'); prüfen, ob der Inhalt der Archive-Datei, in ELSE diesem Fall die PDB „KUF3“, mit dem neu- DBMS_OUTPUT.PUT_LINE('incompatible'); END IF; en Container kompatibel ist (siehe Listing 3). END; Sollte die PDB nicht kompatibel sein, / lässt sich der Grund für die Inkompatibi- SQL> 2 3 4 5 6 7 8 9 10 11 12 13 compatible lität mit der View „PDB_PLUG_IN_VIOLA- TIONS“ abfragen. Da in diesem Fall kein PL/SQL procedure successfully completed. Problem vorliegt, kann die PDB importiert werden (siehe Listing 4). Listing 3

PDB-Clone mittels Oracle

SQL> create pluggable database KUF3 using '/u02/stage/kuf3.pdb'; Enterprise Manager 13.2 SQL> alter pluggable database KUF3 open; SQL> show pdbs; Bevor eine PDB mithilfe von Oracle Enter- CON_ID CON_NAME OPEN MODE RESTRICTED prise Manager (OEM) in die Cloud geklont ------werden kann, muss die DBCS-Instanz mit 2 PDB$SEED READ ONLY NO dem Hybrid-Cloud-Gateway zum OEM 3 PDB1 READ WRITE NO 4 MIG READ WRITE NO hinzugefügt werden. Abbildung 2 zeigt die 5 MIG2 READ WRITE NO SSH-Verbindung zwischen den Agenten in 6 KUF3 READ WRITE NO der Oracle-Public-Cloud und dem Oracle Listing 4 Enterprise Manager On-Premise. Nachdem die Hybrid-Cloud-Agent-In- stallation abgeschlossen ist, erfolgt die Auswahl der PDB, in diesem Fall „KUF1“, die geklont werden soll. Dazu im OEM im Menü „Oracle Database“ die Optionen „Cloning“ und „Clone to Oracle Cloud“ auswählen (siehe Abbildung 3). Im nächsten Fenster wird Folgendes definiert:

• Name der PDB auf dem Zielsystem Abbildung 2: Der Hybrid-Cloud-Agent • PDB Administrator Credentials

Red Stack Magazin 03/2018 31 Cloud

• Name des Containers, in den die PDB hinzugefügt werden soll

Nun kann das Klonen beginnen, die einzel- nen Schritte des Clone-Jobs können über das Fenster „Procedure Activity“ über- wacht werden. Nach dem Klonen steht die PDB in der neuen CDB zur Verfügung. Lei- der erfolgte dieser Vorgang nicht fehler- frei. Der Schritt „Post clone PDB creation operations“ bricht mit der Fehlermeldung „ORA-24964“ ab. Die Recherche in My Oracle Support er- gab, dass diese Fehlermeldung nicht be- kannt ist. Der eröffnete Service Request führte zu einem Bug (siehe Abbildung 4). Auch nach dem Einspielen der neusten Oracle-Enterprise-Manager-Updates und Plug-ins vom Oktober 2017 bleibt der Feh- ler bestehen.

PDB-Klon mittels SQL Developer

Um eine PDB in die Oracle-Public-Cloud mithilfe des SQL Developer zu klonen, muss dieser auf dem Quell-Server instal- liert sein. Ist dies nicht der Fall, erhält man wie der Autor beim Klonen in die Oracle- Cloud die folgende Fehlermeldung: „Quel- le ist keine lokale Datenbank; führen Sie auf dem Quellrechner sqldeveloper aus.“ Ein Hinweis dazu ist im SQL-Developer- Abbildung 3: Auswahl „Clone to Oracle Cloud”

Abbildung 4: Fehler beim Klonen mit OEM

32 www.aoug.at • www.doag.org • www.soug.ch SQL> shutdown immediate; veloper und Oracle Enterprise Manager SQL> startup mount; unterstützt. SQL> alter database open upgrade; SQL> alter database local undo on; SQL> shutdown immediate; NONCDB TO PDB SQL> startup

Listing 5 Viele Kunden-Datenbanken, die in On- Premise-Umgebungen betrieben werden, verwenden allerdings noch die klassische SQL> create user c##ifl identified by welcome1 container=all; Architektur. Ab der Version 12 können SQL> grant sysoper to c##ifl container=all; nun auch Nicht-Container-Datenbanken SQL> grant create session to c##ifl container=all; mithilfe des PDB-Klonmechanismus in Listing 6 die Oracle-Cloud geklont werden. Dazu muss auf der Quell-Datenbank ein Be- nutzer existieren, der das Recht „create SQL> create public database link cdb122_link connect to c##ifl identified pluggable database“ besitzt. Dies ist auch by welcome1 using 'CDB122'; der Grund, aus dem dieser Mechanismus SQL> create pluggable database KUF2_CL2 from KUF2@cdb122_link; erst bei Datenbanken ab Version 12 funk- SQL> alter pluggable database KUF2_CL2 open; tioniert. Anschließend müssen die Quell- Listing 7 Datenbanken noch im „read only“-Modus geöffnet sein(siehe Listing 8). # export ORACLE_SID=NONCDB; Auf der Ziel-Datenbank wird nun mit SQL> create user MIG identified by mig; „create database link noncdb_link connect SQL> grant create session, create pluggable database to MIG; to mig identified by mig using ‚NONCDB‘;” SQL> shutdown immediate; ein Datenbank-Link zur Quelldatenbank er- SQL> startup mount; zeugt. Das Kommando „CREATE PLUGGAB- SQL> alter database open read only; LE DATABASE PDBX FROM NON$CDB@ Listing 8 noncdb_link;“ wandelt eine NONCDB in eine PDB. Die Besonderheit an diesem Be- fehl ist, dass anstatt eines PDB-Namens, SQL> create tablespace KUF datafile size 5M; der ja bekanntlich nicht vorhanden ist, ORA-28374: typed master key not found in wallet das Pseudonym „NON$CDB“ zum Einsatz Listing 9 kommt. Nach dem Ende des Vorgangs muss auf der erzeugten PDB, in diesem Falle „PDBX“, noch das Skript „@$ORACLE_ Handbuch, Kapitel 6.11 „Clone PDB to Release 12.2 geändert. Nun steht die zu HOME/rdbms/admin/noncdb_to_pdb.sql“ Oracle Cloud“, leider nicht zu finden. klonende PDB während des Klonvorgangs ausgeführt werden. Um eine Verbindung zu der DBCS-Ins- den Benutzern uneingeschränkt zur Ver- tanz zu erstellen, muss zunächst ein neu- fügung. Voraussetzung dabei ist aller- er SSH-Host im SQL Developer hinzuge- dings, dass sich die Quell-Datenbank im Vorsicht, Falle! fügt und konfiguriert sein. Anschließend Archivelog-Modus befindet und das neue kann über den Menüpunkt „PDB in Oracle Feature „LOCAL UNDO“ verwendet wird. Egal, ob man nun die PDB mit dem „un- Cloud klonen …“ das Klonen gestartet wer- Mit dem Kommando „select property_va- plug/plug clone“- oder „hot clone“-Kom- den. Anders als beim Oracle Enterprise lue from database_properties where pro- mando erstellt hat, die PDBs wurden er- Manager lässt sich hier der Name der zu perty_name=‘LOCAL_UNDO_ ENABLED‘;” folgreich in die Oracle-Cloud geklont und klonenden PDB im Zielsystem nicht än- lässt sich prüfen, ob „LOCAL UNDO“ ver- stehen den Anwendern zur Verfügung. dern. Mit der Meldung „Your PDB has been wendet wird. Falls dieses nicht konfiguriert Was passiert aber, wenn man bei einer successfully cloned to the Oracle Cloud“ ist ist, sind einige Schritte notwendig, um die- der geklonten PDBs einen neuen Table- der Vorgang abgeschlossen. sen Modus zu aktivieren (siehe Listing 5). space hinzufügen möchte (siehe Listing 9)? Im nächsten Schritt wird auf der Quell- Der Tablespace kann nicht erstellt wer- CDB noch ein Common User mit den fol- den, da der Master-Key der PDB nicht im PDB-Hot-Clone genden Rechten angelegt (siehe Listing 6). Wallet gefunden wird. Wie schon erwähnt, Auf der Zielseite kann direkt nach dem werden alle User-Daten in der Oracle-Cloud Der Nachteil von PDB-Clone ist, dass wäh- Anlegen eines Datenbank-Links auf die verschlüsselt, dazu wurde der Datenbank- rend des Klonvorgangs die Quell-PDB den Quell-Datenbank mit dem Klonen begon- Parameter „ENCRYPT_NEW_TABLESPACES“ Anwendern nur lesend zur Verfügung nen werden (siehe Listing 7). Im Moment eingeführt. In der Oracle-Public-Cloud steht („open read only“). Mit Einführung ist PDB-Hot-Clone in die Oracle-Public- steht dieser auf „CLOUD_ONLY“. Neue von PDB-Hot-Clone hat sich dies ab dem Cloud noch nicht über die Tools SQL De- Tablespaces werden automatisch mit

Red Stack Magazin 03/2018 33 Cloud

AES128 verschlüsselt. Die Abfrage der View „V$ENCRYPTION_WALLET“ auf der ge- SQL> select status, wallet_type from v$encryption_wallet; klonten PDB (Version 12.2) zeigt, dass ein STATUS WALLET_TYPE OPEN_NO_MASTER_KEY AUTOLOGIN „AUTOLOGIN“-Wallet verwendet wird und der Status auf „OPEN_NO_MASTER_KEY“ steht (siehe Listing 10). Listing 10 Das Problem ist also, dass für die ge- klonte PDB noch kein Master-Key im zen- tralen Wallet („ewallet.p12“) hinterlegt ist. SQL> administer key management create auto_login keystore from Doch wie kann ein solcher Key neu erzeugt keystore '/u01/app/oracle/admin/ORCL/tde_wallet/' identified by "xxxxx"; werden und gibt es dabei Unterschiede je SQL> administer key management set keystore close identified by "xxxxx" nach verwendeter Datenbank-Version? container=all; Werfen wir zunächst ein Blick auf 12.1: Der Versuch, in der geklonten PDB einen Listing 11 neuen Master-Key mit dem SQL-Komman- do „administer key management set key identified by „xxxxx“ with backup;“ zuer- SQL> administer key management set keystore open force keystore zeugen, schlägt mit der Meldung „ORA- identified by "xxx"; SQL> administer key management set key force keystore identified by 46658: keystore not open in the container“ "xxx" with backup; fehl. Diese Meldung macht den Anschein, dass der Keystore nicht geöffnet ist, ob- Listing 12 wohl die vorherige Abfrage „OPEN_NO_ MASTER_KEY“ lieferte. In Wirklichkeit be- TABLESPACE_NAME ENC TABLESPACE_NAME ENC deutet diese Fehlermeldung, dass die Keys ------nicht modifiziert werden können, solange SYSTEM NO SYSTEM NO ein „AUTOLOGIN“-Wallet benutzt wird. SYSAUX NO SYSAUX NO Wie lässt sich „AUTOLOGIN“ deaktivie- UNDOTBS1 NO UNDOTBS1 NO ren? Dazu wechselt man in das Verzeichnis TEMP NO TEMP NO USERS NO USERS YES „$ORACLE_BASE/admin//tde_wallet“ und löscht beziehungsweise nennt die Da- Listing 13 Listing 14 tei „cwallet.sso“ um. Als Nächstes erfolgt ein Restart der Datenbank, um das Wallet TABLESPACE_NAME ENC zu schließen. Nun ist es möglich, mit dem ------SQL-Befehl „administer key management SYSTEM NO set keystore open identified by „xxxxx“ SYSAUX NO container=all;“ das Wallet manuell zu öff- UNDOTBS1 NO TEMP NO nen. Nach dem Wechseln in die geklonte USERS YES PDB wird ein neues Wallet („ewallet.p12“) erzeugt. Das „AUTOLOGIN“-Wallet kann Listing 15 ab diesem Zeitpunkt nicht mehr verwen- det und muss ebenfalls, auf Ebene der CDB, neu erzeugt werden (siehe Listing 11). Nach Oracle hat diese Problematik erkannt ting 14 zeigt zum Vergleich die Abfrage auf einem weiteren Restart der Datenbank wird und in der Version 12.2 die Klausel „FORCE einer bestehenden PDB. diese mit dem neuen „AUTOLOGIN“-Wallet KEYSTORE“ eingeführt, die nun ein Key- Wie aus den beiden Abfrage-Er- geöffnet und auf der geklonten PDB kann Management bei gleichzeitiger Benutzung gebnissen zu erkennen ist, ist der Ta- nun ein neuer Tablespace erstellt werden. des AUTOLOGIN-Wallet ermöglicht. Nach blespace „USERS“ der geklonten PDB Man sieht, dass der Aufwand, der pro dem Anmelden an der geklonten PDB nicht verschlüsselt. Dies sollte dringend geklonte PDB betrieben werden muss, können mit den beiden folgenden Kom- nachgeholt werden. Wurde das Wallet, doch erheblich ist. Wenn eine Migrati- mandos das Wallet aktualisiert und an- wie oben beschrieben, um die neue PDB on von mehreren PDBs am Stück erfolgt, schließend die gewünschten Tablespaces ergänzt, lässt sich der Tablespace mit kann die Downtime minimiert werden, erzeugt werden (siehe Listing 12). „SQL> alter tablespace USERS encryp- indem man die Wallet-Migration erst am Doch wie sieht es bei den bestehenden tion online encrypt;“ verschlüsseln. Da Ende der PDB-Migration durchführt. Soll- Tablespaces der geklonten PDBs aus? Sind in DBCS Oracle-Managed-Files verwen- te sich diese allerdings über einen län- dort die User Tablespaces verschlüsselt? det werden, kann bei der Verschlüsse- geren Zeitraum erstrecken, wäre eine Die SQL-Abfrage „select tablespace_name, lung des Datafiles auf die „FILE_NAME_ Downtime nach jeder PDB-Migration un- encrypted from dba_tablespaces;” liefert CONVERT“-Option verzichtet werden ter Umständen nicht mehr tragbar. das folgende Ergebnis (siehe Listing 13). Lis- (siehe Listing 15).

34 www.aoug.at • www.doag.org • www.soug.ch PDB-Klon von 12.1 nach 12.2 SQL> create user mig identified by welcome1; SQL> grant create session, create pluggable database to mig; Ist ein Klonen einer NONCDB/PDB von SQL> alter pluggable database close; der Version 12.1 nach 12.2 möglich? Die SQL> alter pluggable database open read only; Oracle-Dokumentation gibt zu diesem Listing 16 Thema leider keine Auskunft. Der Au- tor hat es am Beispiel einer PDB mit der Version 12.1 getestet. Dazu hat er auf der SQL> create database link pdb121_link connect to mig identified by mig Quell-PDB einen User-MIG mit den Rech- using 'PDB121';. ten „create session“ und „create pluggable SQL> create pluggable database PDB2 from pdb1l@pdb121_link; database“ angelegt und die PDB im „read Listing 17 only“-Modus geöffnet (siehe Listing 16). Auf der Ziel-CDB wird ein Datenbank- Link auf die Quell-DB erstellt und der Klon- create pluggable database PDB2 from pdb1l@pdb121_link vorgang gestartet (siehe Listing 17). Das ERROR at line 1: Klon-Kommando schlägt mit folgender ORA-17628: Oracle error 17630 returned by remote Oracle server Fehlermeldung fehl (siehe Listing 18). Es ORA-17630: Mismatch in the remote file protocol version client server handelt sich hierbei um den Bug 18633374. Listing 18 Weitere Informationen findet man in der Oracle-Support-Note 18633374 „Error co- pying across remote servers with ASMCMD SQL> alter session set container=PDB2; CP command (ASMCMD-8016, ORA-17628, Session altered. ORA-17630, ORA-6512 Doc ID 18633374.8)”. SQL> alter pluggable database open; Nach dem Einspielen des Patches, der Warning: PDB altered with errors. übrigens auch hilft, wenn man kein ASM SQL> select name, message from PDB_PLUG_IN_VIOLATIONS im Einsatz hat, konnte der Klon der PDB where status<>'RESOLVED' and CON_ID=8 order by time; NAME MESSAGE erstellt werden. Wie die folgende Abfra------ge der View „PDB_PLUG_IN_VIOLATIONS“ PDB2 PDB‘s version does not match CDB‘s version: PDB‘s zeigt, ist die geklonte PDB noch von der version 12.1.0.2.0. CDB‘s version 12.2.0.1.0. Version 12.1 und verwendet noch kein PDB2 CDB is using local undo, but no undo tablespace „LOCAL UNDO“ (siehe Listing 19). found in the PDB. Der nächste Schritt besteht darin, die PDB Listing 19 auf die aktuelle Version zu migrieren. Dazu muss die PDB im Modus „OPEN UPGRADE“ geöffnet werden. Im Anschluss kann das

SQL> alter pluggable database PDB2 close; Upgrade der PDB mittels „DBUPGRADE“- Pluggable database altered. Kommando erfolgen (siehe Listing 20). Nach SQL> alter pluggable database PDB2 open upgrade; erfolgreicher Migration der PDB auf die Ver- Pluggable database altered. sion 12.2 wird im nächsten Schritt der lokale SQL> exit UNDO-Tablespace erzeugt (siehe Listing 21). # cd $ORACLE_HOME/bin Das Erstellen des UNDO-Tablespace # ./dbupgrade –c 'PDB2' # sqlplus / as sysbda bricht mit der mittlerweile bekannten SQL> alter pluggable database PDB2 open; Fehlermeldung ab, da der Master-Key Pluggable database altered. für die erstellte PDB im Wallet fehlt. Lei- SQL> exit der lässt sich der neue Master-Key nicht # /u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl catcon.pl -n 1 erzeugen, da die PDB im Restricted Mode -e -b utlrp -d '''.''' utlrp.sql geöffnet ist(siehe Listing 22). Listing 20 Der Grund für den Restricted Mode ist der fehlende lokale „UNDO“-Tablespace, dieser kann aber, wie gesehen, wegen

SQL> alter session set container=PDB2; des fehlenden Master-Keys nicht erzeugt Session altered. werden. Hier liegt ein klassischer Dead- SQL> create undo tablespace PDB2_UNDO; lock vor. Die Lösung dieses Dilemmas be- create undo tablespace PDB2_UNDO steht aus den folgenden Schritten: * ERROR at line 1: • „LOCAL UNDO“-Mode ausschalten ORA-28374: typed master key not found in wallet • Master-Key für die PDB erzeugen Listing 21 • „UNDO“-Tablespace für die PDB erzeugen

Red Stack Magazin 03/2018 35 Cloud

• User-Tablespaces, in diesem Fall „USERS“ und „KUF“ der PDB, verschlüsseln SQL> administer key management set keystore open force keystore identi- • „LOCAL UNDO“-Mode wieder anschal- fied by "xxxx"; ten keystore altered. SQL> administer key management set key force keystore identified by "xxxx" with backup; Noch ein Hinweis zum Schluss: Die Ver- administer key management set key force keystore identified by "xxxx" schlüsselungsproblematik nach dem with backup Klonen von PDBs ist kein reines Oracle- * Datenbank-Cloud-Problem, sondern tritt ERROR at line 1: ORA-28442: Rekey of the TDE master encryption key is not permitted when bei der Verwendung der Transparent-Da- the database is in restricted mode. tabase-Encryption-Option bei CDB-Archi- tektur On-Premise ebenfalls auf. Trotzdem Listing 22 ist es schade, dass Oracle im Handbuch „Using Oracle Database Cloud Service“ auf diese Problematik nicht eingeht. Das Ka- in die Oracle-Cloud zu klonen. Es ist je- • Unterschiedliche Zeichensätze pro PDB pitel „Remote Cloning einer PDB“ endet, doch auch zu erkennen, dass sich Oracle • Lockdown Profile pro PDB nachdem die Pluggable Datenbank geöff- auf dem richtigen Weg befindet und mit net wurde. Dass zu diesem Zeitpunkt we- der Version 12.2 einige Schwachstellen der ein Master-Key für die PDB existiert der vorherigen Version beseitigt sind. noch die User-Tablespaces unverschlüs- Zum Abschluss noch einmal die Vortei- selt sind, wird dabei nicht erwähnt. le der CDB-Architektur des aktuellen Re- lease im Überblick:

Fazit • Mittels „Hot Clone“ nahezu ohne Downtime eine PDB klonen Wie man sieht, ist mehr als ein Knopf- • Vereinfachtes Key-Management bei druck notwendig, um eine Datenbank be- Verwendung von Transparent Data En- Kai Uwe Fischer ziehungsweise eine Pluggable Datenbank cryption (TDE) [email protected]

DOAG Legal Council gestartet

Juristische Aspekte und vielfältige recht- versammlung des Vereins statt. Die zukünf- Dr. Dietmar Neugebauer betonte bei liche Herausforderungen spielen auch in tig noch um weitere Mitglieder ergänzte der Gründung: „Wir freuen uns, mit dem der Arbeit der DOAG und der Vertretung Runde bringt fundiertes Wissen zusammen DOAG Legal Council ab sofort bei recht- der Mitglieder-Interessen eine immer grö- und bildet die Plattform eines Austausches lichen Fragen auf die Fachkompetenz ßere Rolle. Die fachlichen Kompetenzen fachlicher und rechtlicher Betrachtungen. spezialisierter Rechtsanwälte zurückgrei- der DOAG Competence Center werden Schon beim ersten Treffen wurde die Er- fen zu können. Wir sind sicher, dass wir zukünftig durch das am 20. April 2018 ge- örterung der vieldiskutierten Themen „Li- gemeinsam mehr für unsere Mitglieder gründete DOAG Legal Council ergänzt. zenzierung von Oracle-Produkten in virtu- erreichen können, sei es über unsere In- Dieses wird die Arbeit der DOAG-Gremien alisierten Umgebungen“ und „Datenschutz formationsplattform, oder vor allem im und Competence Center mit einer Exper- in der Oracle-Cloud“ als prioritäre Aufga- Gespräch mit Oracle.“ tise im IT-Recht begleiten. Ob Vertragsge- ben des Council identifiziert und mit ersten Die Mitglieder des Council sind von staltung, Lizenzierung oder Datenschutz Überlegungen begonnen. der DOAG ausgewählt worden und enga- – das DOAG Legal Council wird rechtliche Als Koordinator des DOAG Legal Council gieren sich ehrenamtlich. Dabei wird kei- Themen für IT-Spezialisten zugänglicher konnte der ehemalige DOAG-Vorstandsvor- ne Rechtsberatung im Einzelfall erfolgen, machen und der DOAG bei der Vertretung sitzende Dr. Dietmar Neugebauer Rechts- sondern allgemeine Betrachtungen von der Interessen der Mitglieder zur Seite ste- anwältin Dr. Jana Jentzsch aus der Sozietät rechtlichen Fragen. Die Ergebnisse wer- hen. Denn ein Anlass zu dieser Initiative Jentzsch IT, Hamburg, und Rechtsanwalt den unter anderem in Form von Artikeln sind die seit Jahren diskutierten Anliegen Dr. Thomas Thalhofer aus der Sozietät No- oder Vorträgen im Rahmen der DOAG in zu rechtlichen Fragen der DOAG, für die err, München, begrüßen. Rechtsanwalt Dr. das DOAG Netzwerk eingebracht. Für da- Oracle bisher keine befriedigenden allge- Jan Bohnstedt von Bartsch Rechtsanwälte, rüberhinausgehende Beratung können meingültigen Lösungen lieferte. Frankfurt, ist weiteres Mitglied. Der langjäh- die Mitglieder der DOAG direkten Kontakt Die Gründungsversammlung mit den rige Berater der DOAG, Rechtsanwalt Cars- zu den Anwälten aufnehmen. Weitere In- ersten Mitgliedern des DOAG Legal Council ten J. Diercks, wird in dieser Runde die juris- formationen unter „https://www.doag.org/ fand parallel zur diesjährigen Delegierten- tische Seite koordinieren. index.php?id=1072“.

36 www.aoug.at • www.doag.org • www.soug.ch Die autonome Datenbank: ADWC für Warehouse-Anwendungen

Ulrike Schwinn, ORACLE Deutschland B.V. & Co. KG

Während der Oracle Openworld 2017 hat Larry Ellison in seiner Keynote die erste „Self-Driving“-Oracle- Datenbank angekündigt – die sogenannte „autonome Datenbank“. Jetzt ist es soweit: Seit Ende März gibt es als erste Fassung der autonomen Datenbank im Datacenter in Ashburn den Autonomous Data Warehouse Cloud Service (ADWC). Mit der Inbetriebnahme im Frankfurter Rechenzentrum wird sehr zeitnah gerechnet; zudem werden weitere autonome Technologien in diesem Jahr folgen. Der Artikel zeigt die Funktionsweise des ADWC und mögliche Anwendungsfälle.

Die Menge der produzierten Daten ment und die gesamte IT-Infrastruktur Freiraum erhalten, um sich um die Analy- wächst ungebrochen. Gründe dafür sind dar. se-Systeme kümmern zu können, statt sei- neben der Digitalisierung von Inhalten Gefragt ist eine Infrastruktur, die dy- ne Zeit mit den erforderlichen Datenbank- und dem Austausch von Daten vor al- namisch abrufbare Rechen- und Spei- Maintenance-Aufgaben zu verbringen. lem die Integration digitaler Mess-, Steu- cher-Ressourcen erlaubt. Es soll nur so Hier kommt nun die autonome Daten- er- und Regelsysteme (eingebettete Sys- viel gezahlt werden, wie tatsächlich an bank ins Spiel. Mit ihren Grundeigenschaf- teme) in Alltagsgegenstände sowie der Ressourcen benötigt wird. Darüber hin- ten „Self-Driving“, „Self-Securing“ und „Self- Austausch und die Verarbeitung deren aus ist eine gute Abfrage-Performance zu Repairing“ verspricht sie den genannten Daten. Die Analyse und Auswertung gro- gewährleisten, um schnelle und flexible Anforderungen gerecht zu werden. Das Ziel ßer Datenmengen stellen dabei neue He- Abfrage-Ergebnisse zu generieren. Zu gu- ist, durch Automatisierung sich wiederho- rausforderungen an das Datenmanage- ter Letzt soll der Mitarbeiter ausreichend lender, monotoner Datenbank-Aufgaben

Red Stack Magazin 03/2018 37 Cloud

Abbildung 1: Monitoring über die Service-Konsole

und routinemäßiger Datenbank-Wartungs- der aktuellsten Security-Patches sorgen Das bedeutet ADWC arbeiten Freiräume für andere Tätigkeiten zusätzlich für hohe Sicherheit. Das Anfor- zu schaffen. So werden beispielsweise ma- dern der Rechenpower und des Speichers Die Automatisierung der Datenbank auf nuelles Tunen, Patchen, Upgraden oder ein nach Bedarf bildet dabei das Grundgerüst Basis des aktuellsten Datenbank-Release Backup/Recovery im Fehlerfall überflüssig. einer autonomen Oracle-Datenbank. Die 18c, die Nutzung der Cloud-Infrastruktur Die Verschlüsselung der Daten, sichere Datenbank kann im laufenden Betrieb und die Verwendung der Exadata-Infra- Datenbank-Verbindungen (auch Connec- wachsen oder auch verkleinert werden, struktur sind Hauptmerkmale. ADWC ist tions) und das automatisierte Einspielen um Ressourcen einzusparen. also ein Public Cloud Service – die Inbe- triebnahme für Cloud@Customer ist für ORAWORLD Das e-Magazine für alle Oracle-Anwender! die Zukunft eingeplant. Schon bei der Durchführung der Provisionierung zeigt sich, wie einfach und schnell der Service verfügbar ist. Nach ein paar Klicks und der Eingabe von wenigen Informationen wie Größe (in Terabyte), Anzahl CPUs, Name der Datenbank und Passwort des Administrators ist der Service innerhalb von 30 Sekunden erstellt und bereit für den Zugriff via SQL*Net. Im Unterschied zum manuellen Konfigu- • Neues aus der Oracle-Welt rieren und Erstellen einer Datenbank oder auch eines normalen Datenbank-Service • Einblicke in andere User Groups weltweit ist beispielsweise weder die Festlegung auf ein bestimmtes Datenbank-Release noch • Leben und Arbeiten heute und morgen das Einrichten des Backups erforderlich. Zudem ist es unwichtig, wie groß Speicher- Anforderungen und Rechenpower gewählt • Neues (und Altes) aus der Welt der Nerds wurden; die gewählten Größen sind im lau- fenden Betrieb änderbar. Mit ADWC muss keine Hardware kon- Jetzt Artikel figuriert und verwaltet oder Software ins- einreichen oder talliert werden – es handelt sich um eine Thema vorschlagen! Jetzt e-Magazine herunterladen Abbildung 2: Mögliche Anbindungen Exadata-Umgebung, die „ready-to-use“ ist. Bis 9. August 2018 www.oraworld.org 38 www.aoug.at • www.doag.org • www.soug.ch Die langjährige Erfahrung von Oracle im se verbrauchter Speicherplatz und CPU in rungsfrist für Backups beträgt dabei 60 Data-Warehouse-Umfeld fließt dabei in Prozent, Anzahl der SQL-Statements und Tage. In dieser Zeit lässt sich die Daten- das Setup des Service ein und garantiert durchschnittliche Laufzeit – finden sich in bank zu einem beliebigen Zeitpunkt wie- von Anfang an hohe Performance. Tech- der Service-Konsole (siehe Abbildung 1). derherstellen. Wird ein Point-in-Time- nisch gesehen hat man es mit einer Plug- Weitere Monitoring-Informationen erhält Recovery eingeleitet, entscheidet ADWC, gable Database (PDB) zu tun, die um wei- man über den Menüpunkt „Activity“ oder welches Backup für eine schnellere Wie- tere Datenbank-Schemata und zusätzliche im SQL Developer. derherstellung zum Einsatz kommen soll. User-Tabellen erweitert werden kann. Die drei verfügbaren Service-Kategori- Natürlich gibt es auch einige Ein- Die Daten werden entweder aus dem en „LOW“, „MEDIUM“ und „HIGH“ bieten schränkungen bei der ADWC-Verwen- Oracle-Object-Storage oder Amazon S3 die Zuteilung der Ressourcen an unter- dung. Dabei handelt es sich etwa um direkt in die Datenbank geladen und au- schiedliche Anforderungen. Wie schon Kommandos, die entweder im autono- tomatisch komprimiert sowie verschlüs- erwähnt, ist kein manuelles Tuning er- men Betrieb nicht erwünscht beziehungs- selt abgelegt. Aber auch ohne Ladevor- forderlich; so ist standardmäßig Paral- weise überflüssig sind oder mit der Ver- gang ist es möglich, über eine spezielle lelität aktiviert. Der Grad der Parallelität fügbarkeit in der ersten Release-Version External-Table-Konfiguration auf die Da- der SQL-Anweisungen wird abhängig von zusammenhängen. So ist es beispielswei- ten zuzugreifen. Das Setzen von Initialisie- der Anzahl der OCPUs im System und se nicht möglich, Tablespaces anzulegen rungsparametern sowie das Anlegen oder dem gewählten Datenbank-Service, mit und zu erweitern oder Indizes zu erstel- Erweitern von Tablespaces ist überflüssig dem sich der Benutzer verbindet, festge- len. Beim Versuch erhält man die Fehler- geworden. Die Cloud-Console sowie die legt. Außerdem werden automatisch bei meldung „ORA-01031: insufficient privile- Verwendung über Rest-API ermöglichen Direct-Load-Operationen die Optimizer- ges“. Auch Datenbank-Links zu anderen Basisaufgaben wie Starten, Stoppen, Lö- Statistiken gesammelt. Datenbanken sind aus Sicherheitsgrün- schen und Skalieren der Rechenpower be- ADWC sichert die Datenbank automa- den nicht erlaubt. Alle Einschränkungen ziehungsweise des Storage. tisch – wobei Voll-Backups im Wochen- sind im Handbuch (siehe „https://cloud. Allgemeine Informationen über die Rhythmus und inkrementelle Backups oracle.com/en_US/datawarehouse/docu- Nutzung des Service – wie beispielswei- täglich eingeplant sind. Die Aufbewah- mentation“) vermerkt.

ORAWORLD Das e-Magazine für alle Oracle-Anwender!

• Neues aus der Oracle-Welt • Einblicke in andere User Groups weltweit • Leben und Arbeiten heute und morgen • Neues (und Altes) aus der Welt der Nerds

Jetzt Artikel einreichen oder Thema vorschlagen! Jetzt e-Magazine herunterladen Bis 9. August 2018 www.oraworld.org Red Stack Magazin 03/2018 39 Cloud

Abbildung 3: ADWC mit Oracle Data Visualization Desktop

ADWC im praktischen Einsatz nehmensdaten aufzuzeigen (siehe Abbil- Weitere Informationen dung 3). Da ADWC auf der Oracle-Datenbank ba- • https://www.oracle.com/database/ siert, können Werkzeuge verwendet wer- index.html den, die diese unterstützen. Tools und Fazit • https://cloud.oracle.com/en_US/ Anwendungen, die entweder im eige- datawarehouse/features nen Rechenzentrum oder in einer Public ADWC zeichnet sich durch leichte Bedien- • Cost Estimator: https://cloud.oracle. Cloud verfügbar sind, verbinden sich mit barkeit, schnelle Provisionierung und hohe com/cost-estimator der ADWC über Standard-SQL*Net-Ver- Performance aus. Dabei bietet ADWC ohne • Demo als Features des Monats: bindungen (siehe Abbildung 2). Oracle- Investition in Hardware „out of the box” Ex- https://youtu.be/oFRisY20Ff8 Analytics-Cloud und andere Oracle- adata-Performance. Die Schnittstellen sind • Dokumentation: https://cloud.oracle.com/ Cloud-Services sind dabei für ADWC einfach handhabbar, und der Service kann en_US/datawarehouse/documentation vorkonfiguriert. von Fachabteilungen verwaltet werden. Im SQL Developer (ab Version 17) bei- In der ersten Version ist noch mit Ein- spielsweise wird im Feld „Connection schränkungen und gewissen Begrenzun- Type“ der Wert „PDB-Cloud“ ausgewählt, gen von Features zu rechnen. Diese sind mit dem die Konfigurationsdatei, die man in kommenden Cloud-Release-Zyklen si- vorab von der Konsole geladen hat, ange- cherlich erweitert oder behoben. geben werden kann. SQL Developer zeigt Dadurch, dass die Ressourcen sehr fle- dann eine Liste der verfügbaren Verbin- xibel einsetzbar und dynamisch anpassbar dungen im Feld „Service“ an. ADWC selbst sind, lässt sich der Service sehr kostengüns- beinhaltet eine Cloud-basierte Notebook- tig nutzen. Im Cost Estimator (siehe „https:// Anwendung, die eine einfache Abfrage cloud.oracle.com/cost-estimator“) lässt sich und Daten-Visualisierung ermöglicht. Das prüfen, welche Kosten für die Anwendun- Notebook ist für den Einsatz mit ande- gen veranschlagt werden. ADWC eignet ren Business-Intelligence-Anwendungen sich beispielsweise für einzelne Data Marts, konzipiert. Darüber hinaus kann man mit die neu aufgebaut werden sollen, Ad-hoc- Oracle Data Visualization Desktop auf Test-Umgebungen oder auch spontan ver- einfache Weise Visualisierungen und Pro- fügbare Rechen-Umgebungen für Spitzen- Ulrike Schwinn jekte erstellen, um Trends in den Unter- lasten. Am besten einfach ausprobieren … [email protected]

40 www.aoug.at • www.doag.org • www.soug.ch Architecting 4 the Cloud

Kai Weingärtner und Stefan Kühnlein, OPITZ CONSULTING Deutschland GmbH

Immer mehr Unternehmen erkennen die Vorteile der Cloud-basierten Services und sind bereit, ihre bestehenden Anwendungen in die Cloud zu migrieren. Mithilfe eines Lift-and-Shift-Ansatzes lassen sich inzwischen monolithische Anwendungen in der Cloud betreiben − allerdings profitieren diese nicht von den Vorteilen der Cloud wie Flexibilität, Skalierbarkeit und Elastizität. Um Anwendungen erfolgreich in der Cloud zu betreiben und somit die Vorteile der Cloud ausnutzen zu können, müssen sie als native Cloud- Anwendungen entwickelt sein.

Native Cloud-Anwendungen werden spe- dung 1). Um den höchsten Reifegrad zu en zur Durchsetzung der Isolation unab- ziell für eine Cloud-Architektur entwi- erreichen, ist die Verwendung von Micro- hängig einsetzbarer Einheiten dazu sowie ckelt und nutzen deren Vorteile durch services beziehungsweise Self-Contained- die Ausrichtung organisatorischer und ar- den Einsatz entsprechender Frameworks Systems (SCS) zwingend erforderlich, chitektonischer Grenzen, der sogenannte vollständig aus. Somit unterscheiden sie „Bounded Context“. Auch in Bezug auf die sich sehr stark von traditionellen Anwen- Auswahl der Technologie, der verwend- dungen, die auf Basis einer Schichten-Ar- SCS vs. Microservice baren Frameworks sowie der fehlenden chitektur aufgebaut sind. Die Open Data Infrastruktur unterscheidet sich ein SCS Center Alliance hat für die Bewertung der Die wesentlichen Architektur-Patterns der nicht von einer Microservices-Architektur. Reife einer Cloud-basierten Anwendung SCS leiten sich von denen der Microser- Somit kann eine SCS sehr wohl als Spe- bestimmte Grade definiert (siehe Abbil- vices ab. Insbesondere gehören die Ide- zialisierung der Microservices betrachtet

Red Stack Magazin 03/2018 41 Cloud

Abbildung 1: Reifegrade einer Cloud-basierten Anwendung (Quelle [1])

werden. Allerdings unterscheidet sich ein Domain Driven Design sogenannte „Ubiquitous Language“ − Ziel SCS in diesen Schlüssel-Attributen von ei- ist eine formalisierte Sprache. Allerdings ner Microservices-Architektur: Einer der wichtigsten Erfolgsfaktoren für wäre es ein Irrweg, eine universelle Spra- eine gelungene native Cloud-Anwendung che für alle Projekte zu suchen; spezielle • Microservices-Architekturen sind in ist der richtige Service-Schnitt – und nicht Sprachen für die jeweiligen Anwendungs- der Regel kleiner als ein SCS. Ein SCS zwangsläufig dessen Größe gemessen fälle sich wesentlich exakter. sollte einen sinnvollen Mehrwert lie- an den „Lines of Code“. Die zentrale Fra- Neben der Ubiquitous Language ge- fern und ein Team sinnvoll beschäfti- ge dabei ist: Wie zerlege ich den Monoli- hören auch die Entitäten zu den zen- gen. In der Regel ist eine SCS eine ei- then, sodass die einzelnen Bausteine als tralen Elementen des Domain Driven genständige Web-Anwendung mit UI, unabhängige Einheiten eingerichtet und Design. Sie zeichnen sich dadurch aus, Geschäftslogik und Daten. betrieben werden können. eindeutig identifizierbar zu sein und • Während Microservices-Architekturen Ein Ziel des Service-Schnitts ist die Auf- über eine Historie zu verfügen, etwa wie generell über keine UI verfügen, sollte teilung der Anforderungen auf die jeweili- beim Kunden einer Bücherei. Zudem der UI-Layer in ein SCS integriert sein. gen Fachdomänen, damit ein eintretendes sind Entitäten die hauptsächlichen Trä- • Idealerweise sollte zwischen den ein- Ereignis eine Kette von wertschöpfenden ger der Geschäftslogik, die innerhalb der zelnen SCS keine Kommunikation er- Ereignissen auslöst. Daher sollte zu Be- Domäne abgebildet werden. forderlich sein. Eine Integration von ginn eines neuen Cloud-Projekts eine ge- Oft ist es notwendig, zusätzlich zu unterschiedlichen SCS erfolgt auf Ebe- meinsame Modellierung erfolgen. den eigentlichen Entitäten einer Domä- ne der Web-Anwendung am besten Bei der Zerlegung einer Anwendung in ne noch weitere Dinge zu modellieren. über Hyperlinks. ihre fachlichen Bestandteile kann der An- Diese Objekte werden im Domain Driven satz des Domain Driven Design (DDD) hel- Design als „Value Objects“ bezeichnet. Es Wie bei einer Microservices-Architektur fen, ein standardisiertes Vorgehen, das sind in der Regel Attribute, die eine En- sollte auch von einem SCS ein API zur Ver- eine interdisziplinäre Modellierung unter- tität genauer beschreiben. Für den Kun- fügung gestellt werden, damit die Funk- stützt, in der sowohl Entwickler als auch den einer Bücherei könnte es sich dabei tionalität von anderen Services genutzt Fachexperten involviert sind. Im Jahr 2003 um die Anzahl der ausgeliehenen Bücher werden kann. Ebenso wie bei Microser- stellte Eric Evans in seinem Buch „Domain oder um das Geburtsdatum handeln. vices führt die Integration unterschied- Driven Design: Tackling Complexity in the Ein Value Object ist oft in einem oder licher SCS zu einer sehr losen Kopplung Heart of Software“ einen Weg zur Model- mehreren primitiven Datentypen gekap- und die einzelnen SCS lassen sich zu ei- lierung von Anwendungen vor [2]. selt, sodass darauf gegebenenfalls weite- nem späteren Zeitpunkt unabhängig Ein wesentlicher Gedanke von Domain re Geschäftslogik implementiert werden voneinander weiterentwickeln sowie ge- Driven Design ist, dass die zu entwickeln- kann. Abbildung 2 zeigt die möglichen Do- gebenenfalls austauschen. Sowohl Micro- de Software die gesprochene Sprache mänen einer Bücherei sowie deren En- services als auch SCS eignen sich als Ar- der Kunden-Domäne möglichst direkt ab- tities. Es ist zu erkennen, dass zum Bei- chitektur-Pattern, um einen Monolithen bildet. Dazu ist es notwendig, im Zusam- spiel die Entity „Ausleiher“ sowohl in der in eine native Cloud-Anwendung zu über- menspiel mit den jeweiligen Experten Domäne „Registrierung“ als auch in „Aus- führen. eine einheitliche Sprache zu ermitteln, die leihe“ vorkommt. Die Ausprägung der En-

42 www.aoug.at • www.doag.org • www.soug.ch Abbildung 2: Datenmodell einer Bücherei nach DDD

Abbildung 3: Gegenüberstellung Client-Side vs. Server-Side Discovery

tität ist allerdings unterschiedlich: So wer- vice Discovery“, die über folgende zwei Adressen der verfügbaren Instanzen den in der Domäne „Registrierung“ alle Patterns implementiert werden kann: und leitet die Anfrage an den Service Informationen über den Ausleiher benö- weiter. tigt, in der Domäne „Ausleihe“ hingegen • Client-Side Discovery nur die Kennung des Ausleihers. Hier ist der Client für die Ermittlung Abbildung 3 zeigt die Unterschiede zwi- der Adresse der aufzurufenden Servi- schen den beiden Patterns. ces verantwortlich. Dazu stellt er eine Service Discovery Anfrage an die Service Discovery, um die Adressen der verfügbaren Instan- Resiliente Services In einer Cloud-Umgebung sind den Micro- zen der Services zu erhalten. In der Re- services oder SCS die Netzwerk-Adressen gel erhält er auch noch Informationen Eine resiliente native Cloud-Anwendung dynamisch zugewiesen. Im Gegensatz zu über die Auslastung der verfügbaren kann Fehler mit minimalen Funktionsein- einer traditionellen Anwendung sind also Services und kann somit die Anfragen bußen für den Benutzer abfedern und den Aufrufern die Netzwerk-Adressen der an die verfügbaren Services verteilen. bietet Mechanismen, sich selbst zu hei- zu benutzenden Services nicht mehr be- len. In einer Cloud-Anwendung, die aus kannt. Das hat zur Folge, dass zum Aufruf • Server-Side Discovery vielen separat entwickelten, eingerichte- eines weiteren Service dessen Adresse zur Hier stellt der Client die Anfrage direkt ten und skalierten Services besteht, ist Laufzeit neu ermittelt werden muss. Dies an einen Load-Balancer. Dieser ermit- Resilienz also eine wichtige Eigenschaft. erfolgt mithilfe einer sogenannten „Ser- telt mithilfe der Service Discovery die Daher sollten die Resilienz-Prinzipien

Red Stack Magazin 03/2018 43 Cloud

Protokoll-Abhängigkeit Statt Remote-Procedure-Calls besser ein Datenprotokoll nutzen, das eine kompatible Weiterentwicklung ermög- licht (wie XML oder JSON) und das – statt einer „1:1“-Kommunikation zwischen Services, die bei vielen Services exponentiell wächst – durch Message Queues oder Topics die direkte Abhängigkeit umgeht. Zeitliche Abhängigkeit Statt blockierender synchroner Aufrufe ist eine asynchrone Kommunikation zu bevorzugen. Kurze Endpunkt- Ausfälle lassen sich durch Retry abfedern und synchrone Aufrufe mit Timeout begrenzen. Instanz-Abhängigkeit Statt spezifische Instanzen zu referenzieren, werden Endpunkte angesprochen, die den Request dynamisch an konkrete Service-Instanzen weiterleiten. Daten-Abhängigkeit Durch Aufweichen der Anforderungen an die Daten-Konsistenz zwischen Services ist es möglich, Puffer wie Caches oder Spiegelbestände aufzubauen.

Tabelle 1

„Isolation“ und „Self Healing“ bei der Mi- nicht funktionsfähig, kann diese auf der elle Eingriffe die Verfügbarkeit der jewei- gration berücksichtigt werden. Website ausgeblendet werden. Ist eine ligen Services zu gewährleisten. Daher ist Ohne Isolation der einzelnen Services Datenabfrage nicht möglich, können die Self Healing wichtig für die Resilienz einer führen Fehler in einem verteilten System Daten aus einer lokalen Kopie geliefert nativen Cloud-Anwendung. oft zu kaskadierenden Effekten. In die- werden. Im ersten Schritt gilt es zu erkennen, sem Fall muss in die Verfügbarkeit eines Das Circuit Breaker Pattern hilft, nach ob Handlungsbedarf besteht. Dazu sind Service die Verfügbarkeit aller von ihm einem solchen Ausfall rechtzeitig wieder für den Service Metriken zu allen relevan- genutzten Services mit eingerechnet wer- in den Normalbetrieb überzugehen. Das ten Ressourcenverbräuchen und Kenn- den. Tabelle 1 zeigt typische Formen der funktioniert folgendermaßen: Wenn ein zahlen zu erfassen. Welche Ressourcen Abhängigkeiten zwischen Services sowie aufgerufener Service mehrfach Fehler typischerweise zu Engpässen werden Ansätze, um diese Abhängigkeiten zu re- liefert, wird temporär auf eine Fallback- können, hängt sehr von der Anwendung duzieren. Funktion umgeleitet, damit der Service ab und muss zunächst durch Last-Tests Darüber hinaus sollten Anwendungs- nicht weiter belastet wird. Durch regel- und im überwachten Regelbetrieb ermit- Ressourcen immer explizit limitiert sein. mäßige Aufrufversuche gegen den Ser- telt werden. Stehen die Normwerte fest, Unlimitiert neigen sie dazu, diese in Aus- vice wird sofort erkannt, wenn der Service sind Schwellwerte zu definieren und bei nahmesituationen über die üblichen wieder erreichbar ist (siehe Abbildung 4). deren Unter- oder Überschreitung Alar- Normwerte hinweg zu verbrauchen. So me auszulösen. Diese können dann zu schlägt sich dies, sofern die Zugriffswege automatischen Operationen wie Einschal- nicht nach Services getrennt sind, schnell Self Healing ten eines Fallback oder Skalierung eines auf andere Services nieder – Requests in Service führen. Ein zustandsloses Service- Thread Pools beim Aufrufer stauen sich, Cloud-Provider gewährleisten zwar die Design vereinfacht das Auto-Scaling, da wenn ein aufgerufener Service die Anfra- Verfügbarkeit der Cloud-Infrastruktur, ausgefallene Instanzen oder zusätzliche gemenge nicht bedienen kann, und ste- jedoch nicht der Services einer nativen Last leicht durch weitere Service-Instan- hen bei fehlender Aufteilung des Pools Cloud-Anwendung. Sogenannte „selbst- zen abgefedert werden können. auch für andere Services nicht mehr zur heilende Systeme“ sind in der Lage, Um Self Healing zu ermöglichen, ist es Verfügung. Gleiches passiert, wenn Auf- den Ausfall einzelner Microservices be- außerdem notwendig, die Auswirkungen rufe in einem solchen Fall immer länger ziehungsweise SCS zu erkennen und von Fehlern zu begrenzen, um so feh- brauchen und keine Request-Timeouts selbstständig in einen Normalbetrieb lerhaften Komponenten die Chance zu definiert wurden. Daher empfiehlt es sich zurückzukehren. Bei einer für Microser- geben, in einen Normalzustand zurück- in bestimmten Fällen, Ressourcen-Limits vices-Architekturen typischen großen zukehren. Das Bulkhead-Muster kann zu definieren, zum Beispiel bei Thread Zahl an Services ist es kaum machbar, dabei helfen: Ressourcen wie Thread Pools und Connection Pools, Queue-Län- durch manuelles Monitoring und manu- Pools oder Connection Pools werden gen, Request Timeouts und Connection Timeouts, maximaler CPU, Speicherver- brauch und Datensatzgrößen. Wenn ein Service dennoch nicht ver- fügbar sein sollte, gilt der Grundsatz: „Ein reduzierter Funktionsumfang ist besser als keine Funktion.“ Daher sollte versucht werden, die Auswirkung eines Service- Ausfalls auf ein Mindestmaß zu begren- zen. Statt einen Fehler bis zum Benutzer durchzuleiten, ist zu prüfen, ob an geeig- neter Stelle ein Fallback-Verhalten oder eine alternative Funktionalität genutzt werden kann. Ist eine Web-Komponente Abbildung 4: Circuit Breaker Pattern

44 www.aoug.at • www.doag.org • www.soug.ch Abbildung 5: Zentrales Log-Management mit dem ELK-Stack

nach aufgerufenem Service partitioniert, Der Einsatz einer zentralen Event-Proces- Log-Management-Lösungen sind auf die sodass andere Services bei Ausfall nicht sing-Engine bietet neue Möglichkeiten Bewältigung der genannten Herausfor- beeinträchtigt sind. Zudem kann eine für die Auswertung der Logs. So können derungen ausgerichtet und helfen damit, Aufruf-Drosselung dafür sorgen, dass beispielsweise durch die Korrelation von diese zu bewältigen. nicht mehr Anfragen an eine Schnittstel- Firewall und Logs Indizien erkennbar sein, le gehen, als diese im aktuellen Zustand die auf einen Angriff schließen lassen. verkraften kann. Viele der genannten Beim Aufbau eines zentralen Log-Ma- Elastic Stack Designmuster wie Bulkhead oder Cir- nagements sind einige Herausforderun- cuit Breaker sind von Libraries wie Pol- gen zu meistern: Der Elastic Stack (ELK) ist ein Open- ly (.Net) oder Hystrix (Java), das auch in Source-­Stack, der sich aus mehreren Spring Cloud enthalten ist, unterstützt. • Unterschiedliche Formate abgestimmten Komponenten zusam- Es empfiehlt sich ein Blick in die Doku- Log-Daten sind semi-strukturiert. Das mensetzt und somit den Aufbau eines mentation. Format ist von Applikation zu Applika- zentralen Log-Managements unterstützt. tion unterschiedlich. Abbildung 5 zeigt dessen Architektur mit dem ELK-Stack. Die wesentlichen Kom- Logging • Verteilte Daten ponenten sind: Log-Daten sind über unterschiedliche Beim Einsatz von Microservices-Architek- Konten sowie Schichten (Frontend, Back­ • Beats turen beziehungsweise SCS erfolgt die end und Middleware) verteilt und auf Beats [3] ist eine Plattform, die es er- Ausführung nicht mehr in realen Servern, Grund von Lastverteilung und Ausfall- möglicht, leichtgewichtige Daten-Ship- sondern in virtuellen Containern. Somit sicherheit mehrfach vorhanden. per zu erstellen, die für spezifische An- verändert sich auch die Lebensdauer der wendungsfälle optimiert sind. Elastic Umgebungen. Davon sind auch die Logs • Kontinuierliche Änderung stellt Beats-Shipper für Log-Dateien, Sys- der Anwendung betroffen, die im Extrem- Log-Datenquellen ändern sich laufend. tem-Metriken, Windows-Events sowie fall bei einem Wegfall der Umgebung mit Gerade im Bereich „Cloud-Infrastruk- Netzwerk-Events bereit und Beats ein verloren gehen. Da die Logs notwendig turen“ variiert die Anzahl der Knoten. API, um zusätzlich kundenspezifische sind, um den Betrieb und die Entwicklung Anwendungsfälle zu implementieren. bei der Analyse von Fehlern zu unterstüt- • Sensitive Informationen zen, sind diese durch ein zentrales Log- Log-Daten können sensitive Daten • Logstash Management zu sammeln. enthalten. Insbesondere wenn ein grö- Logstash ist eine Event-Pipeline, die in Neben der eigentlichen Sammlung ßerer Kreis von Benutzern Zugriff auf der Lage ist, unterschiedlichste Daten- von Logs kommt dem zentralen Log-Ma- Log-Daten bekommt, können sensitive quellen wie Log-Dateien zu konsumieren nagement eine weitere Bedeutung zu: Informationen gefiltert werden. und aufzuarbeiten. Sie extrahiert infor-

Red Stack Magazin 03/2018 45 Cloud

mationsrelevante Felder und reicht sie Fazit an den Suchserver ElasticSearch weiter. Bei der Entwicklung von nativen Cloud- • ElasticSearch Anwendungen sind neben der eigent- ElasticSearch ist ein sehr mächtiger Voll- lichen Geschäftslogik noch eine Reihe text-Suchserver, der von namhaften In- weiterer architektureller Aspekte zu be- ternetgrößen wie Xing oder Wikipedia rücksichtigen. Wer alle Aspekte bedenkt, für die Volltextsuche eingesetzt wird. ist in der Lage, mit kurzen Innovations- zyklen innovative Anwendungen zu ent- • Kibana wickeln, die das Potenzial besitzen, die Kibana ist eine webbasierte Anwen- Wettbewerbsfähigkeit eines Unterneh- Kai Weingärtner dung. Sie ermöglicht den Zugriff auf die mens signifikant zu erhöhen. Neben den [email protected] indizierten Daten von ElasticSearch. in diesem Artikel angesprochenen Archi- Eine Vielzahl von Visualisierungskom- tektur-Fragmenten sind weitere Aspekte ponenten lässt sich zu individuellen wie automatisiertes Testen sowie Build Dashboards zusammenstellen. und Deployment zu berücksichtigen, um den Paradigmenwechsel entsprechend zu unterstützen. Alternative Lösungen

Neben dem ELK-Stack wären als weite- Weitere Informationen re bekannte Lösungen die Open-Source- [1] https://dzone.com/articles/ Software Graylog [4] und die kommerziel- cloud-native-application le Software Splunk [5] zu nennen. Splunk [2] Eric J. Evans: Domain Driven Design: Tackling Complexity in the Heart of Soft- bietet als kommerzielle Lösung viele An- ware. Boston, 2003 gebote, die über das rein zentrale Log- [3] https://www.elastic.co/guide/en/beats/ Management hinausgehen. Diese sind libbeat/6.2/beats-reference.html [4] https://www.graylog.org/overview spezifisch auf unterschiedliche Bedürfnis- [5] https://www.splunk.com/en_us/solutions/ Stefan Kühnlein se und Stakeholder zugeschnitten. solution-areas/log-management.html [email protected]

20. - 21. September 2018 in Dresden DOAG BIG DATA Days Daten, der Treibstoff der digitalen Gesellschaft

Unter dem Motto „Daten, der Treibstoff der digitalen Gesellschaft“ erhalten Sie die neuesten Informationen rund um Big Data, Reporting/Visualisierung und Geodaten sowie weitere Trends und Neuigkeiten. Seien Sie dabei, der Frühbucher-Rabatt ist noch bis 10. August verfügbar.

VISUALISIERUNG/ BIG DATA REPORTING GEODATEN

Informationen und Anmeldung unter: 46 www.aoug.at • www.doag.org • www.soug.ch www.doag.org/go/bigdatadays Leute hassen es zu warten

Jan-Peter Timmermann, Leiter der DOAG Infrastruktur und Middleware Community

In der heutigen Zeit erwarten Leute immer schnellere Antworten. Im Hinblick auf eine Kundenbindung 20. - 21. September 2018 in Dresden kann dies für viele Unternehmen zu einem Problem führen. Jede Firma stellt mittlerweile eigene Websei- ten zur Verfügung, aber ist nicht Google das Maß aller Dinge? Können Kunden mit der Webseite genauso DOAG BIG DATA Days umgehen, wie sie es mit Google können? Unternehmen mit einer modernen IT werden diese Probleme Daten, der Treibstoff der digitalen Gesellschaft sicherlich nicht haben und können so Kunden an sich binden.

Unter dem Motto „Daten, der Treibstoff der digitalen Gesellschaft“ erhalten Sie die neuesten Informationen rund um Big Data, Reporting/Visualisierung und Geodaten sowie weitere Trends und Neuigkeiten. Seien Sie dabei, der Frühbucher-Rabatt ist noch bis 10. August verfügbar.

Im Jahr 2015 schätzte PayPal, dass für kommunizieren, dann wird dieses Unter- Bis vor Kurzem verhinderten techno- VISUALISIERUNG/ jede Sekunde Wartezeit zwölf Kunden ih- nehmen wirklich den Zug verpasst haben. logische Beschränkungen die schnellen BIG DATA GEODATEN ren Online-Kauf abbrechen. Dieser Un- Eine große Welle kommt auf die Firmen Antworten auf grundlegende Informatio- REPORTING geduldsfaktor nimmt weiter zu. Eine im zu: Die Nutzer verlangen zunehmend eine nen, die Nutzer von Unternehmen brau- Jahr 2016 durchgeführte Umfrage unter Schnittstelle für die direkte Kommunikati- chen und wollen. Die moderne Techno- 12.500 Facebook-Nutzern aus vierzehn on. Wird die Organisation in der Lage sein, logie von Oracle hat einen großen Teil Ländern kam zu dem Ergebnis, dass 53 diese Welle zu reiten? Das ist ein schwie- dieser Arbeit durch Nutzung von ma- Prozent ihrer Kunden eher mit einer Or- riges Problem für Unternehmen mit Le- schinellem Lernen und Natural Langua- ganisation Geschäfte machen, mit der sie gacy-Plattformen bei der Business-Logic ge Processing (Verarbeitung natürlicher Direkt-Nachrichten austauschen können. wie oder Ähnlichem, Oracle Sprache) auf Chatbots verlagert. Den Wenn der Computer eines Unterneh- E-Business Suite (EBS), JD Edwards oder Unternehmen stehen somit jetzt riesige mens im nächsten Jahr nicht in der Lage Primavera. Es gibt allerdings Wege, das zu Chancen für die Umwandlung von Ge- sein wird, direkt und schnell mit den Kun- überwinden und wesentlich schneller und schäftsanwendungen in Konversations- den über ihre grundlegenden Fragen zu besser zu kommunizieren. Schnittstellen zur Verfügung. Informationen und Anmeldung unter: www.doag.org/go/bigdatadays Red Stack Magazin 03/2018 47 Cloud

Chatbots sorgen für Geschwindigkeit und Effizienz

Sprache ist das ursprüngliche menschli- che Interface; heute sprechen die Men- schen mit Alexa, Cortana, Google Assistant und Siri, weil diese KI-Bots immer kompe- tenter und hilfreicher werden. Dabei ist zu beachten, dass die Menschen mit diesen Computer-Bots und nicht zu ihnen spre- chen. Es findet also eine Konversation statt. Generationen haben sich an Compu- ter gewöhnt; jetzt sind diese so leistungs- fähig und die Software gut genug, um mit Abbildung 1: Der Chatbot lernt hinzu Menschen eine Unterhaltung zu führen. Messaging-Tools wie die von Facebook, Google, Microsoft und Slack erzielen er- und Fluggesellschaftspräferenz gelernt dann diese Anweisung an die Unterneh- staunliche Dinge mit der Rechenleistung, hat, um intelligente Ergebnisse zu präsen- mensanwendung übergeben, auf Daten über die ihre Nutzer bereits verfügen. Nut- tieren, die am wahrscheinlichsten zu einer von diesem System warten, sie empfan- zer betrachten sie als bevorzugtes Mittel Kaufentscheidung führen. Er kann sogar gen und die entsprechende Antwort bil- für andere Transaktionen. Die Zukunft des personalisierte Preisgestaltung einsetzen, den. Er muss sowohl die menschliche Business hängt davon ab, diese Tools für basierend auf dem, was er über Reisege- Sprache als auch die Computersprache die Nutzerbindung zu verwenden – und wohnheiten weiß oder gelernt hat. gut genug interpretieren, um die Interes- viele weitere hinzuzufügen. Die Informatik hinter der Chatbot-Tech- sen beider Parteien genau darzustellen. Oracle hat eine umfangreiche Platt- nologie ist faszinierend. Oracle hat den form geschaffen, um Chat-Unterhaltun- größten Teil der Arbeit schon erledigt. Sein gen zu ermöglichen. Auf der OpenWorld Framework stellt viel von dem zur Verfü- Intents 2016 angekündigt, bietet der Oracle In- gung, was Kunden benötigen, um eine so- telligent Bots Cloud Service (IBCS) eine lide Chat-Anwendung zu erstellen. Oracle Vor einer Absicht oder einer Intention Konversations-Schnittstelle zu den wich- IBCS bietet den Kunden eine grafische stehen Äußerungen. Beim Entwickeln des tigsten und bewährtesten Chat-Anwen- Benutzeroberfläche, um vier Aspekte des Chatbot muss der Entwickler an die vie- dungen. Verbindung und Integration sind Prozesses zu definieren. Sobald das Sche- len Möglichkeiten denken, wie die Absicht die Schlüssel zum Erschließen des Ge- ma erstellt ist, generiert Oracle die AI, um ausgedrückt werden kann. Das bedeutet, schäftspotenzials von Chats. Während mit den APIs der meisten Chat-Anwendun- sich genau zu überlegen, wie die Endnut- Chatbots in ihrer eigenen – nicht ver- gen zu interagieren, und kann den Anwen- zer die Fragen formulieren werden, um bundenen – Umgebung existieren kön- dungsfall sowohl auf Sprache als auch auf sie dann bestimmten Themen zuzuord- nen, erschließen sie wesentlich größeren Tastatur-Messaging erweitern. nen, auf die der Bot reagieren kann. Im Mehrwert, wenn sie mit Organisationsda- Das IBCS-Dashboard listet die aktuel- Laufe der Zeit muss der Chatbot lernen, ten und Business-Logik verbunden sind. len Bots auf. Jeder Bot besteht aus vier Absichten aus Äußerungen zu formen. Mobile Geräte sind die besten Chat-Ge- Segmenten: Intents, Flows, Entities und Maschinelles Lernen und die Verarbei- räte und das nicht nur, weil die Benutzer Components. Diese Segmente bilden ei- tung natürlicher Sprache (Natural Language mit ihrer Bedienung vertraut sind. Mobile nen Chatbot, der in einem Nachrichten- Processing, NLP) bieten die beste Möglich- Geräte verfügen über Informationen, die kanal wie Facebook Messenger oder Slack keit, eine lebensnahe Konversation zu errei- das Unternehmen gewöhnlich verarbeiten aktiviert ist. Um zu veranschaulichen, wie chen. Mit dieser Technologie wird eine Liste muss, wie authentifizierte Identität, Da- IBCS funktioniert, ein einfaches Beispiel von Äußerungen, die zu Absichten werden, tum und Uhrzeit, Kalender-Informationen wie die Abfrage des Kontostands. Ein ty- gegen eine Reihe von Absichten bewertet. und vieles mehr. Fügt man diese Informa- pischer Austausch kann mit „Wie viel ist Zum Beispiel die Aufforderung „Sag mir, tionen dem hinzu, was der Chatbot lernt, noch auf meinem Girokonto?“ beginnen. wie viel Geld ich auf meinem Girokonto erreichen die Geschäftsvorgänge eine hö- Der Chatbot muss die Intention dieser habe“ kann eine 90-prozentige Korrelation here Genauigkeit und personalisierte Ant- Anfrage entschlüsseln und das System in mit der Absicht „Wie ist der Kontostand auf worten (siehe Abbildung 1). der Lage sein, dies in eine logische Aussa- meinem Girokonto?“ haben. Die Chatbot- Wenn beispielsweise „Buche mir ei- ge zu übersetzen. Wenn das nicht mög- Engine stellt die Berechnung und den Con- nen Flug nach SFO“ zu einer qualifizierten lich ist, muss es nach weiteren Informati- fidence-Faktor (wie wahrscheinlich ist dies und informierten Anwendung gesagt wird, onen fragen, etwa „Welches Girokonto?“. die gewünschte Information?) der richtigen kann ein Chatbot hinzufügen, was er über Sobald die Intention bestimmt ist, Antwort zur Verfügung (siehe Abbildung 2). Standort- und Kalenderereignisse auf dem muss der Chatbot die richtige interne Syn- Diese NLP- und Machine-Learning-Re- Mobilgerät weiß, was er über Sitzplatz- tax bilden, um eine Aktion zu erzeugen, chenleistung und Intelligenz sind Kern-

48 www.aoug.at • www.doag.org • www.soug.ch Abbildung 2: Eine Chatbot-Konversation

technologien von Oracle IBCS; die zugrun- „von“- und „bis“-Stations-Attribute, bevor bilen Anwendungen erweitert. AuraPlay- de liegenden Algorithmen sind eingebaut. der API-Call durchgeführt werden kann. er rührt keine einzige Codezeile an und ist Sie repräsentieren Worte und Ketten Viel Mehrwert kann von gut durchdach- eine nahtlose Lösung, die Geschäftsanwen- von Wörtern als Vektoren. Weil sie kein ten Flows ausgehen. Da Oracle-IBCS Daten- dungen als Webservices verfügbar macht, Sprachverständnis haben, sind diese Algo- werte im lokalen Cache speichert, werden indem Nutzeraktionen aufgezeichnet wer- rithmen vollkommen sprachunabhängig. die auf dem Weg gesammelten Informatio- den, um einen SOAP- oder REST-Webdienst nen zur Personalisierung der Beziehung ver- zu erstellen, der als Backbone für jede Kon- wendet. Der Chatbot muss nicht mehrmals versationsanwendung dienen kann. Entities, Flows und nach dem Benutzernamen fragen. Nutzer- Auf der grundlegendsten Ebene erfolgt Components definierte Oracle-IBCS-Komponenten sind die Aktivierung von Oracle-Back-Ends die Elemente, die mit Informationsspei- über Webservices. Sobald die aufgezeich- Vorkonfigurierte Entities dienen als Para- chern und Verarbeitungs-Engines verbun- neten Geschäftsprozesse als Webservice meter für eine Absicht. Es sind die Felder den sind. Der API-Speicher stellt den Zugriff verfügbar sind, werden sie in jedem mo- und Datenpunkte, die aus den Absichten auf Daten und Prozesse unter Verwendung dernen Front-End konsumiert. Dadurch extrahiert werden und die man seinen der standardmäßigen „GET“- und „POST“- werden die Geschäftsregeln für jeden REST-Diensten zuordnen muss. Im Fall Operatoren in einer Organisation und sogar Verbraucher des Prozesses freigegeben. des Beispiels kann eine Entity ein Bank- außerhalb davon sicher. Es gibt nur ein Pro- Derselbe Geschäftsprozess, der Oracle konto oder eine Kreditkarte enthalten. blem mit den Oracle-IBCS-Komponenten: vor Ort durchläuft, findet jetzt durch die Werte für Entities werden als Parameter Sie können nicht direkt mit Oracle Forms, Dialog-Anwendung über Webservices statt. verwendet, wenn Daten angefordert und Oracle E-Business Suite (EBS), JD Edwards Nutzer führen die Forms-Komponente aus, Prozesse ausgeführt werden. Oracle IBCS oder Primavera kommunizieren. ohne den Desktop-Bildschirm auszuführen. wird mit integrierten Standardsets gelie- Die meisten Unternehmensanwendun- Im Oracle-Forms-Sprachgebrauch bedeu- fert, die Datum, Uhrzeit, Währung und gen sind stark individualisiert. Sie machen tet dies, dass Nutzer dasselbe Formular auf dergleichen enthalten. Nutzer können zu- die Arbeit gut. Ihr einziges Problem (wenn dem Desktop wie von einer Mobil- oder Kon- sätzliche Sets erstellen und auch Listen auch ein großes Problem) ist ihre Front- versations-Umgebung heraus ausführen. konfigurieren, die das System während End-Schnittstelle. AuraPlayer ist eine ein- der Chatbot-Funktion zur Validierung zigartige, zum Patent angemeldete Lösung, oder als Vorschlag verwendet. um die Lücke zwischen Oracle-Back-Ends Flows sind der Teil, in dem ein gro- wie Oracle Forms, E-Business Suite, JD ßer Teil der Magie stattfindet. Damit der Edwards, Primavera und Front-Ends der Chatbot funktioniert, muss er einem nächsten Generation zu schließen. Es er- Pfad folgen können, einem vorgeplanten möglicht die Freischaltung der Geschäfts- Konversationsfluss, dem Prozess der nor- logik, die in diesen Desktop-gebundenen malisierten oder standardmäßigen Daten- Anwendungen enthalten ist, ohne Kosten bildung. Der Flow kann zu mehr Fragen oder Risiken für eine Neuentwicklung. führen, deren Antworten ein Set von Attri- AuraPlayer ist die einzige Lösung auf buten erhöhen, die dann Entities zugeord- dem Markt, die ältere Oracle-Forms- net werden. Zum Beispiel erfordert die Äu- Anwendungen zukunftssicher machen Jan-Peter Timmermann ßerung „Wann fährt der nächste Zug?“ die kann, indem sie diese zu Chatbots oder mo- [email protected]

Red Stack Magazin 03/2018 49 Cloud

Cloud meets On-Premises – Herausfor- derungen in hybriden Infrastrukturen

Danilo Schmiedel, OPITZ CONSULTING Deutschland GmbH

In der heutigen digitalen Welt entsteht eine Vielzahl neuer IT-Lösungen, die Cloud-Dienste mit vorhandenen lokalen Systemen kombinieren. Die Folge sind hybride Architekturen, in denen die konsistente End-to-End- Verwaltung, Überwachung und Protokollierung über die gesamte Anwendungslandschaft hinweg besondere Herausforderungen mit sich bringen. Zusätzliche Anforderungen bestehen hinsichtlich Datenschutz, System- Integration und Kosten-Management. Der Artikel erläutert verschiedene Lösungsstrategien und Best Practices.

Die Lösungen zur Digitalisierung verän- tomatisch durch sogenannte „Infrastruc- Infrastruktur integrieren. Hybride Infra- dern auch die klassische Infrastruktur – al- ture-as-Code-Lösungen“ (wie Oracle Cloud strukturen vereinen die Stärken von On- les wird Software. Wir sprechen heute von Stack Manager oder Terraform) provisio- Premises-Ansätzen mit der Flexibilität des „Software-Defined Network“ und „Soft- niert. Cloud Computing. ware-Defined Infrastructure“. Die meisten Die Evolution von Cloud und Software Unternehmen nutzen dafür Cloud-Lösun- verstärkt sich gegenseitig. Anstatt auf gen mit unterschiedlichen Liefer- und Ser- diese Entwicklung mit Bestrebungen zur Cloud meets On-Premises vice-Modellen. In Cloud-Umgebungen ist Zentralisierung und Standardisierung zu für die Bereitstellung neuer virtueller Ma- antworten, um somit in der Folge wieder Die Vorteile und das Versprechen des schinen nur noch ein einfacher API-Aufruf die Geschwindigkeit zu hemmen, sollte Cloud Computing liegen auf der Hand: nötig; diese Maschinen werden also nicht die IT einen „Design for Change“-Ansatz IT-Power aus der Steckdose. Die Kosten mehr von Hand eingerichtet, sondern au- verfolgen und diesen in eine reaktive sind nun reine Verbrauchskosten und be-

50 www.aoug.at • www.doag.org • www.soug.ch ziehen sich auf die tatsächliche Nutzung, Die Datensicherheit bezieht sich auf nehmer beziehungsweise Cloud-Anbie- basierend auf nutzungsbezogenen Preis- den technischen Schutz von Daten jegli- ter) unterschieden. Der Nutzer ist dabei modellen. Betriebswirtschaftlich ist so- cher Art vor Verlust, Manipulationen und die verantwortliche Stelle und trägt die mit eine Wandlung der Kapitalbindung andere Bedrohungen. Hinreichende Da- Sorgfaltspflicht für eine ordnungsgemä- durch IT-Infrastruktur (CAPEX) in operati- tensicherheit ist eine Voraussetzung für ße Datenverarbeitung (DV). Er muss den ve Betriebskosten (OPEX) möglich. Neben effektiven Datenschutz. Als Schutzziele Zweck der DV definieren und Weisungen den betriebswirtschaftlichen Überlegun- sind insbesondere Verfügbarkeit, Integri- erteilen. Der Auftragsdatenverarbeiter gen hinsichtlich Investitionsschutz und tät und Vertraulichkeit zu nennen. handelt ausschließlich auf Weisung des Abschreibungszeiträumen bedingen im Für beide Aspekte ist es notwendig, die Cloud-Nutzers. Kundendaten werden nur Endeffekt zwei Kriterien die Implementie- gewachsenen, oft schon veralteten Re- im Umfang des gewählten Cloud Service rungsentscheidung für oder gegen eine gelungen zu hinterfragen, um nicht ohne verarbeitet. Konkret müssen in der ADV Cloud-Lösung: Datenschutz und Kosten. Not eine Entscheidung zu Ungunsten ei- die folgenden Punkte geregelt sein: ner Cloud-Lösung zu treffen. Mit der neu- en EU-Datenschutz-Grundverordnung (DS- • Zweck der Auftragsverarbeitung Datenschutz und GVO) und dem Bundesdatenschutzgesetz • Weisungen des Auftraggebers Datensicherheit 2018 (BDSG-2018), die ab 25. Mai 2018 in • Beschreibung und Überprüfung kon- Kraft treten, gewinnt diese Frage an Bedeu- kreter technologischer und organisa- Zunächst ist es wichtig, die Begriffe „Daten- tung. Das gesamte System wird durch die torischer Sicherheitsmaßnahmen schutz“ und „Datensicherheit“ voneinander neuen Regeln zwar weitestgehend nach • Vereinbarung zur Löschung der Daten abzugrenzen. Je nach Betrachtungsweise deutschen Standards, aber grundlegend • Regelung zu Subunternehmern wird Datenschutz verstanden als Schutz vor neu gestaltet. Aufgrund der umfassenden • Kontrollrechte des Cloud-Nutzers und missbräuchlicher Datenverarbeitung, Schutz technischen und organisatorischen Maß- Informationspflichten des Cloud-An- des Rechts auf informationelle Selbstbe- nahmen der Anbieter kann der Weg in die bieters stimmung, Schutz des Persönlichkeitsrechts Cloud sogar zu einer Verbesserung des ei- • Wahrung der Betroffenenrechte bei der Datenverarbeitung und auch Schutz genen Datenschutzes und der Datensicher- • Rückgabe nach Vertragsbeendigung der Privatsphäre. Das Bundesdatenschutz- heit beitragen. Schließlich verfügen unter- gesetz (BDSG) regelt die Erhebung, Verar- nehmenseigene Rechenzentren häufig Für die Nutzung von Cloud Services sind beitung und Nutzung personenbezogener nicht über die strengen Qualitätsstandards konkret technisch-organisatorische Si- Daten, die Auskunft zu sachlichen oder per- und aktuellen Zertifizierungen auf dem Ni- cherheitsmaßnahmen zu ergreifen, die sönlichen Verhältnissen einer Person geben. veau der Cloud-Anbieter [1]. es dem Anbieter ermöglichen, seine Sorg- Schutzziel ist die informationelle Selbstbe- Nach §11 BDSG ist Cloud Computing faltspflichten zu wahren und die Kontrolle stimmung; betroffene Personen haben also eine Auftragsdatenverarbeitung (ADV). über die Datenverarbeitung zu behalten. das Recht zu erfahren, wo und wie die Daten Es wird zwischen Nutzer (= Auftraggeber) Dazu müssen insbesondere die folgen- verarbeitet werden. und Auftragsdatenverarbeiter (= Auftrag- den Datenschutzziele eingehalten werden:

Abbildung 1: Multi-Cloud-Kosten-Management mit CloudCheckr

Red Stack Magazin 03/2018 51 Cloud

Abbildung 2: Horizontale und vertikale Integration

Zutrittskontrolle, Zugangskontrolle, Zu- eigenen Haus“ hat der Cloud-Nutzer die Kosten griffskontrolle, Weitergabekontrolle, Ein- alleinige Hoheit über die Daten. Er ist ver- gabekontrolle, geteilte Verarbeitung, Auf- antwortlich für Management und Über- Eine besondere Herausforderung in hy- tragskontrolle und Verfügbarkeitskontrolle. wachung des Zugriffs durch individuel- briden Infrastrukturen stellt das Kosten- le Benutzerkonten sowie der Aktivitäten management dar. „Pay as you go“, „OPEX“ in diesen Konten. Für die meisten Cloud statt „CAPEX“, Orchestrierung von Services Modell der geteilten Services ist das Risiko des Kontrollverlus- in Minuten, Abfangen von Lastspitzen, au- Verantwortung tes demnach vergleichbar mit dem Risiko tomatische Skalierung und Datensicher- bei herkömmlichen IT-Infrastruktur- oder heit sind zwar Vorzüge, die eine Public Wer nun glaubt, dass Daten in der Cloud IT-Outsourcing-Anbietern [1]. Zwingen- Cloud zu bieten hat, aber nur wer sie rich- zwangsläufig Kontrollverlust bedeuten, de Voraussetzung für den erfolgreichen tig nutzt, spart Geld, ist schneller, flexibler der irrt. Dieser Mythos hält sich hartnä- Aufbau hybrider Cloud-Infrastrukturen und damit innovativer. In der Public Cloud ckig. In Wahrheit ist es jedoch so, dass ein ist die sorgfältige Betrachtung folgender ersetzen Services und Subscriptions die al- Cloud-Nutzer die Kontrolle über die Rahmenbedingungen: ten Lizenzmodelle. Man bezahlt in der Pu- Daten behält und auch für diese blic Cloud also nur für das, was man nutzt. verantwortlich ist (Shared Responsibi- • Klärung gesetzlicher Anforderungen Nicht mehr und nicht weniger. Auch hier lity Model). Oracle unterteilt die Verant- • Prüfen der vertraglichen Gegebenheiten gibt es jedoch Unterschiede, über welche wortlichkeiten von Anbieter und Nutzer zwischen Cloud-Anbieter und Nutzer Metriken die Abrechnung erfolgt: in folgende Bereiche: Identity and Access • Prüfung der technischen und organi- Management (IAM), Workload Security, satorischen Sicherheitsmaßnahmen • Minutengenaue Abrechnung Data Classification and Compliance, Host des Cloud-Anbieters und Mapping zu • Vergünstigungen beim Erwerb von Jah- Infrastructure Security, Network Securi- Datenschutzzielen (unterteilt in Ver- respauschalen ty, Client and End-Point Protection sowie antwortlichkeiten nach Cloud-Anbieter • Anrechnung eigener Lizenzen (BYOL) Physical Security [2]. und Cloud-Nutzer) • Ersteigern von Rechenkapazität für Zusammenfassend ist der Cloud-An- • Ermittlung des Schutzbedarfs und Zu- kurzfristige Nutzung bieter verantwortlich für die Sicherheit ordnung zu den Schutzklassen • Abhängige Preisgestaltung vieler An- der zugrunde liegenden Cloud-Infrastruk- • Ermittlung der technisch-organisatori- bieter je nach Durchsatzrate, Art des tur. Diese besteht aus den Einrichtungen, schen Sicherheitsmaßnahmen, die für Speichers und Datenverkehr der Hardware, der Software und dem die jeweiligen Schutzklassen zu ergrei- Netzwerk. Demgegenüber ist der Cloud- fen sind, beziehungsweise Klärung, ob Die Liste ließe sich noch beliebig fortführen. Nutzer verantwortlich für die Sicherheit Daten einer Schutzklasse überhaupt in Hier zeigt sich die Komplexität der Preisge- in der Cloud. Durch Verschlüsselung der der Cloud verarbeitet werden dürfen staltung in der Public Cloud. Kostentrans- Daten und Speicherung der Schlüssel „im • Risiko-Analyse parenz ist daher ein entscheidender Faktor:

52 www.aoug.at • www.doag.org • www.soug.ch Welche Services können welcher Kostenstel- Interoperabilität und Cloud Service) mit standardisierten Adap- le zugeordnet werden? Wie stehen die ge- Integration tern zum Einsatz. planten Kosten zu den tatsächlich angefalle- Bei der Einführung von zentralen Inte- nen Kosten im Verhältnis? Wie lässt es sich Der Trend von Cloud Computing und SaaS- grationslösungen in hybriden Cloud-Inf- vermeiden, dass ungenutzte Cloud-Ressour- Lösungen verschärft die Notwendigkeit hy- rastrukturen ist besonderes Augenmerk cen unnötig Kosten verursachen? Welche brider Infrastruktur-Architekturen für die auf das Design der Gesamt-Architektur zu Auswirkung haben Auto-Scaling und Server- Applikationslandschaft. Dies erfordert eine legen, da der Datentransfer ein entschei- less-Ansätze auf die Kostenentwicklung? modulare Architektur des Backends und dender Kostentreiber sein kann. Durch Die Implementierung hin zu mehr Kos- die Entkopplung der Frontend-Komponen- ungünstig gewählte Kommunikationsstre- tenkontrolle erfolgt in zwei Schritten. Zu- ten. Die Release-Zyklen der einzelnen Kom- cken können doppelte Kosten beim Daten- nächst sollte die Organisation Rollen und ponenten dürfen nicht die Plattform als austausch zwischen Systemen entstehen – Verantwortlichkeiten für zentrale IT- und Fi- Ganzes kompromittieren. Hinsichtlich der etwa, wenn die gleichen Daten mehrfach nanzteams sowie Cloud-Ressourcenbesit- Balance der On-Premises-Lösungen zu den über verschiedene Regionen und unter- zer in den Geschäftsbereichen definieren. Cloud-Lösungen spricht man vom „Center schiedliche Clouds transportiert werden. Daraufhin ist die Etablierung einer kollabo- of Gravity“, womit der Anteil der Cloud-Lö- Dieses Problem verschärft sich speziell in rativen Kostenmanagement-Plattform zur sungen in Bezug zu den On-Premises-Ins- Multi-Cloud-Landschaften. Kontinuierliche effizienten und kontinuierlichen Kontrolle tallationen ausgedrückt wird. Je höher der Kostentransparenz und eine durchdachte und Optimierung der Kosten zu empfehlen. Einsatz unterschiedlicher Cloud-Lösun- Integrations-Architektur sind hier die we- Cloud-Anbieter wie Oracle bieten eigene gen ist, desto eher verschiebt sich das sentlichen Erfolgsfaktoren. webbasierte Kosten-Explorer für das Moni- „Center of Gravity“ in die Cloud und somit Die vertikale Integration ist eher nutzer- toring ihrer Services an. Allerdings handelt auch die Integrations-Plattform, die nä- getrieben und basiert auf leichtgewichtigen es sich hierbei zumeist nur um eine Sicht her an den Ursprung der Daten rückt [6]. Protokollen und fachlich ausgerichteten auf die aktuellen „IST“-Kosten. Mit Cloud- Durch die gewachsene Dezentrali- Schnittstellen, die nahezu in Echtzeit ant- Checkr [3], Cloudability [4] und RightScale­ sierung der Applikationen besteht die worten müssen. In den letzten Jahren hat [5] gibt es deutlich ausgereiftere Multi- Gefahr von Wildwuchs und potenziel- hier das für hybride Infrastrukturen rele- Cloud-Kostenmanagement-Lösungen am ler Unbeherrschbarkeit. Deshalb emp- vante „API Management“ besonders an Be- Markt. Zu ihren Kernfunktionalitäten gehö- fiehlt sich eine Einteilung in horizontale deutung gewonnen [7]. Dabei steht die Be- ren Dashboards zur Kosten-Analyse, Show- und vertikale Integrationsaspekte (sie- reitstellung von fachlich orientierten APIs back- und Chargeback-Berichte, Trigger he Abbildung 2). Die horizontale Integra- im Fokus, die leicht verständlich und somit zum Auslösen von automatisierten Aktio- tion bezeichnet den klassischen System- von einer breiten Masse nutzbar sein müs- nen, Kollaborationsmöglichkeiten, Alerting zu-System-Ansatz. Ihm liegen oftmals sen. Dabei ist es sinnvoll, zwischen soge- und zentralisierte Optimierungsempfeh- schwergewichtige proprietäre Protokolle, nannten „Single-“ und „Multi-Pupose“-APIs lungen (siehe Abbildung 1). Keine der ge- technische Schnittstellen, Batch-basierter zu unterscheiden – so wie im Projekt „Open nannten Lösungen bietet Stand heute eine Datenaustausch und asynchrone Inter- Modern Enterprise Software Architecture“ Integration zur Oracle Cloud an. Zumindest aktionspatterns zugrunde. Klassischer- (OMESA) definiert (siehe Abbildung 3). bei [3] steht diese gemäß Herstellerangabe weise kommen hierfür zentrale Integra- OMESA wurde mit dem Ziel ins Leben jedoch auf der Roadmap. tionsplattformen (wie Oracle Integration gerufen, architektonische Best Practices in

Abbildung 3: OMESA-Referenz-Architektur

Red Stack Magazin 03/2018 53 Cloud

moderne Architekturen zu integrieren und während die Daten in einer ordnungsge- Vertiefung empfiehlt sich einen Blick in das dabei zu berücksichtigen, dass neue und mäß gesicherten Zone gehalten werden. umfassende Dokumentationsangebot [10]. alte Komponenten koexistieren können. Darüber hinaus stellt die Integrationsplatt- Es bietet Referenz-Architekturen und Leit- form die Konnektivität zu inkompatiblen prinzipien, die Architekten jeder Organisa- Backend-Systemen (etwa als On-Premises) Fazit tion dabei unterstützen, moderne Techno- bereit. Die Verwendung von Adaptern in logien und Architekturen aufzubauen und einem API-Gateway würde zu gesteiger- Hybride Architekturen erhöhen häufig die gleichzeitig die Schaffung von Mikrosilos ter Komplexität auf dem API-Layer führen. Komplexität, sind allerdings essenziell, um oder Ad-hoc-Lösungen zu vermeiden. Das Bedeutet dies aber, dass ein API-Gateway im Zeitalter der Digitalisierung Schritt hal- Projekt ist noch recht jung, bietet aber vie- diese Funktionen niemals anbieten sollte? ten zu können. Dafür ist es wichtig, dass le nützliche Ansätze zur Etablierung eines Nicht unbedingt. Es gibt Fälle, in denen es das Modell der geteilten Verantwortung konsistenten API-Managements in hybri- sinnvoll ist, Daten in einem API-Gateway verinnerlicht wird. Integrations-Plattfor- den IT-Infrastrukturen. zwischenzuspeichern oder sogar einfache men stellen die Konnektivität sicher und Bei der Erstellung von APIs ist es wich- Transformationen durchzuführen. Hier ist ermöglichen die Zusammenführung neuer tig, einem API-First-Ansatz zu folgen. Da- es schwer, ein „one size fits all“ zu finden. Services mit vorhandenen Systemen (hori- bei ist bereits im Vorfeld der App- bezie- Die Auswirkungen und Risiken sind dem- zontale Integration). Für die Absicherung, hungsweise Backend-Entwicklung eine nach von Fall zu Fall zu entscheiden. Zugriffsbeschränkung und Monetarisie- stabile API-Definition festzulegen, die den rung von nutzerzentrischen APIs bietet sich fachlichen Anforderungen gerecht wird. die Etablierung einer API-Management- Abgestimmte und zentral erhältliche API- Betrieb in hybriden Plattform an. Nur wer in hybriden Infra- Style-Guides bilden dafür die Grundlage Infrastrukturen strukturen die volle Kostentransparenz be- und definieren die Core-Prinzipien, Pro- sitzt, spart Geld und fördert Innovation. tokolle, Nachrichten-Formate, Datenmo- Dieser Artikel behandelt insbesondere die delle, Typen, Testbarkeit, Wartung, Erwei- Herausforderungen im Bereich des Da- terbarkeit, Skalierbarkeit, Ausführbarkeit tenschutzes, der Kosten und der System- Quellen und Benutzbarkeit. Für das konsistente Integration. Der Betrieb von hybriden In- [1] Artikel-29-Datenschutzgruppe, Stellung- Design gemäß API-First, kontinuierlichen frastrukturen verfügt über zusätzliche nahme 5/2012 zum Cloud Computing; Ar- Tests auf Basis integrierter API-Mock-Ser- umfassende Anforderungen; dazu zählen beitskreis Technik und Medien der Kon- ferenz der Datenschutzbeauftragten des ver, Versionierung und Kollaborations- insbesondere ein End-to-End-Infrastruk- Bundes und der Länder, Orientierungshil- möglichkeiten bietet Oracle eine attrakti- tur- und ein Applikations-Monitoring, das fe Cloud Computing, 01.07.2012, https:// ve Lösung namens „Apiary“ an [8]. sowohl Multi-Cloud als auch On-Premises- www.lda.bayern.de/media/wp196_de.pdf [2] : Oracle Cloud Infra- Nach Meinung des Autors ersetzen API- Systeme berücksichtigt. Weitere wichtige structure Security, https://docs.us-phoenix-1. Management-Plattformen aber keinesfalls Aspekte sind umfassende Log-Auswertun- oraclecloud.com/Content/Resources/Assets/ die klassischen Integrations-Plattformen – gen, Alerting, Aufgaben-Automatisierung oci_security.pdf [3] https://cloudcheckr.com wenngleich die Feature-Sets entsprechen- sowie die proaktive Überwachung von Si- [4] https://www.cloudability.com der Produkte mitunter Überschneidungen cherheitsbedrohungen. [5] https://www.rightscale.com aufweisen. Die wesentlichen Aufgaben Die Oracle Management Cloud adres- [6] Jim Harris, The Cloud is shifting our Cen­ ter of Gravity, 19. Juli 2012: http://www. der API-Plattformen lauten: Absicherung siert die meisten dieser Anforderungen [9]. ocdqblog.com/home/the-cloud-is-shifting- von Endpunkten, Auffindbarkeit, Verwalt- Dabei handelt es sich um eine Suite integ- our-center-of-gravity.html barkeit, Design-first und Monetarisierung. rierter Überwachungs-, Verwaltungs- und [7] https://cloud.oracle.com/api-platform [8] https://apiary.io Integrations-Plattformen zielen auf Kon- Analyse-Cloud-Angebote. Die Lösung wur- [9] https://cloud.oracle.com/management nektivität, Transformation von Daten und de speziell für hybride Umgebungen ent- [10] https://docs.oracle.com/en/cloud/paas/ Nachrichten-Formation sowie Caching wickelt: On-Premises, Oracle Cloud und management-cloud/index.html und Skalierung ab. APIs sollten so schnell Cloud-Services von Drittanbietern. Be- und schlank wie möglich sein. Sogenannte triebsdaten in IT-Organisationen, ein- „API-Gateways“ stehen häufig in einer De- schließlich maschinengenerierter Daten, militarized Zone (DMZ). Sie validieren An- können unterschiedlicher Art und Größe fragen und wehren sie gegebenenfalls ab. sein und werden häufig in mehreren Syste- Sensible Daten dürfen nicht auf der Fest- men gespeichert. Mit der Oracle Manage- platte oder im Speicher der DMZ gespei- ment Cloud lassen sich hochgeladene Da- chert sein. ten in einer einzigen einheitlichen Plattform Dies wird mithilfe der Integrations-Platt- speichern und auswerten. Die Plattform form gelöst. Deren Hauptaufgabe liegt in analysiert Daten automatisch auf Basis von der Transformation komplexer Payloads Machine-Learning-Algorithmen und Korre- und der Orchestrierung von Service-Auf- lation. Die Daten der zu überwachenden rufen. Durch die Verwendung eines robus- Entitäten (wie Datenbanken, Host Server, ten Caching-Systems können Skalierbar- Compute-Ressourcen und Applikationsser- Danilo Schmiedel keit und hohe Leistung erreicht werden, ver) werden von Agenten gesammelt. Zur [email protected]

54 www.aoug.at • www.doag.org • www.soug.ch Serverless mit Fn Project

Dr. Frank Munz, munz & more

Das vorherrschende Cloud-Thema im Jahr 2017 war „serverlose Architekturen“. So gab es auf der Devoxx in Belgien, einer der besten Entwickler-Konferenzen in Europa, gleich sieben verschiedene Präsentationen zu diesem Thema.

Dieser Artikel, eine Übersetzung des auf zur Sprache, die oft nicht ganz eindeutig IT-Branche ist schlecht bei der korrekten Oracle Developer im März publizierten definiert sind. Zweitens, und am wichtigs- Namensgebung und präzisen Definiti- Originalartikels von Dr. Frank Munz [1], ten, wird der schnelle Einstieg in die Pro- on von neuen Konzepten. Cloud Compu- ist eine Einführung in Fn Project. Es un- grammierung mit dem neuen Fn Project ting läuft nicht irgendwo in den Wolken, terscheidet sich von den meisten anderen gezeigt. Für eine praxisnahe Entwicklung Data Lakes sind nicht nass und serverlos serverlosen Lösungen: Fn ist Cloud-agnos- werden Go und Java, Monitoring, Tests, braucht Server. Deshalb zunächst eine tisch, polyglott, Open Source und hat nur lokale Entwicklung, JSON-Parameterüber- Definition von „serverlos“ und der damit Docker als einzige Abhängigkeit. Es ist au- gabe, Verwendung von Docker Hub und verwandten Konzepte. ßerdem brandneu; Fn wurde auf der Ja- der Einsatz von Fn in der Cloud behandelt. vaOne 2017 als Open Source freigegeben. Drittens gibt es eine Übersicht der aktuel- Dieser Artikel behandelt folgende len Ankündigungen und darüber, was als Function as a Service (FaaS) Punkte: Zunächst werden die Grundlagen Nächstes zu erwarten ist. Fn ist erst der geklärt und dem Entwickler eine kurze Ein- Anfang einer Reise in die serverlose Welt. Function as a Service (FaaS) startete führung in die serverlose Welt gegeben. „Serverlos“ ist offensichtlich kein be- als Cloud-Service im Jahr 2014 mit AWS Dabei kommen die einzigartigen Vorteile sonders kluger Name. Ganz ehrlich: Die Lambda. Die Idee dahinter war einfach

Red Stack Magazin 03/2018 55 Cloud

und revolutionär zugleich: Es wird Quell- Das Konzept von FaaS entwickelt sich je- API-Gateways und Zugriffsverwaltung, code ausgeführt, aber man muss sich doch weiter. So gibt es Diskussionen un- die für eine REST-basierte Funktion be- keine Gedanken über die darunter lie- ter Software-Architekten, ob Funktionen nötigt wird. Ein typisches Beispiel für genden Laufzeit-Umgebungen der Pro- besser gleich als Container implementiert diese Kategorie ist AWS Chalice. grammiersprachen, die Container, die vir- werden sollten [3]. Derzeit legt jedoch tuelle Maschine oder die Server machen. keiner der großen Public-Cloud-Provider • Portierbarkeit Im einfachsten Falle kopiert der Entwick- den Container offen, der intern für die Das Framework dient zur Abstraktion ler seinen Quellcode, fügt ihn in eine Mas- Ausführung serverloser Funktionen ver- zwecks Portierbarkeit und zur zusätz- ke des FaaS-Service in der Cloud ein und wendet wird. lichen Vereinfachung der FaaS-Imple- der Code wird ausgeführt. mentierung verschiedener Public-Cloud- Technisch gesehen sind Cloud-basier- Anbieter. Ein beliebtes Beispiel ist das te FaaS-Lösungen auf der Basis von Con- Microservices vs. FaaS „serverless.com“-Framework. tainern implementiert (also ähnlich wie Docker, aber nicht unbedingt mit Do- Eine Microservices-Architektur versucht, • Standards cker selbst). Dieser Container ist für den eine Anwendung als eine Menge unabhän- Es handelt sich um eine Standard-ba- Endanwender üblicherweise nicht sicht- giger Services zu implementieren. Jeder sierte, serverlose Plattform oder ein bar. Eine serverlose Funktion wird nur Service läuft in seinem eigenen Prozess und Framework, um laufende Funktionen ausgeführt, wenn sie durch ein Ereignis hat seine eigenen Daten; untereinander vom Betrieb der Server zu abstrahie- ausgelöst wird; deshalb heißt es auch kommunizieren die Services über ein leicht- ren. Diese Frameworks werden übli- „ephemeral compute“. Bei FaaS gibt es gewichtiges Protokoll [4]. Es stellt sich daher cherweise ohne einen Bezug zu einem also keinen permanent laufenden Ser- die Frage, ob FaaS nicht auch nur eine Art bestimmten Cloud-Provider entwi- ver für einen Benutzer; es existiert auch von Microservice ist. Kurz: FaaS erfüllt the- ckelt. Wenn man solch ein Framework keine Laufzeit-Umgebung wie WebLogic oretisch die Definition eines Microservice. auf IaaS betreibt, werden Server abs- oder Tomcat mit einer permanent geöff- Allerdings müssen serverlose Funktionen trahiert, automatische Skalierung ist neten IP-Adresse und Port. Ereignisse, die in der Praxis erst zu einem Microservice zu- möglich, aber durch das IaaS-Preismo- eine solche serverlose Funktion auslösen sammengefasst werden. Aber wie? dell wird keine echte Pro-Aufruf-Basis können, hängen vom Cloud Provider ab. „Serverlos“ ist ein Architektur-Trend, geschaffen. Beispiele für diese Katego- Übliche Beispiele für Ereignisquellen sind: der darauf ausgelegt ist, „alle Beziehungen rie sind Open FaaS und Fn Project. ein Datei-Upload, eine REST-Anfrage oder zur Infrastruktur“ zu reduzieren [5]. FaaS eine Nachricht, die von einem Nachrich- ist also serverlos. Ein serverloser Cloud- tensystem aufgenommen wird. Service ist ein PaaS mit echter Bezahlung Fn Project Was FaaS in Public Clouds besonders nach Benutzung und automatisierter Ska- interessant macht, ist der Umstand, dass lierbarkeit. Als Beispiel für einen server- Fn Project ist eine serverlose Plattform nur pro Aufruf der Funktion bezahlt wer- losen Cloud-Service kann man sich einen mit einer Vielzahl einzigartiger Vorteile: den muss. Außerdem ist die Skalierung Nachrichtendienst vorstellen. Wenn nur Es ist Container-basiert, polyglott, Cloud- automatisiert, eine Konfiguration für die für die Anzahl der erzeugten und verar- agnostisch und hat Docker als einzige Anzahl der Funktions-Instanzen ist also beiteten Nachrichten bezahlt wird und der Abhängigkeit. Zum derzeitigen Zeitpunkt nicht erforderlich. Das Konzept „nicht Service automatisch skaliert, können wir ist Fn Project eine Software-Plattform zahlen für Leerlauf“ ist verlockend. Einige ihn berechtigterweise „serverlos“ nennen. und es existiert noch kein FaaS-Cloud- Anwendungsfälle berichten von Kosten- Wenn Server mit den Message-Brokern Service. Die Entwicklung eines solchen einsparungen von ein bis zwei Größen- sichtbar sind und pro Stunde für diese Cloud-basierten Service wurde allerdings ordnungen, wenn eine traditionelle, ser- Server bezahlt wird, unabhängig davon, ob von Oracle angedeutet. Um alle Eigen- verbasierte Anwendung ersetzt wurde [2]. Nachrichten erzeugt oder verarbeitet wer- schaften von Fn zu verstehen, ist es am Man sollte allerdings fair sein und auch den, dann ist der Service nicht serverlos. einfachsten, Fn in Aktion zu erleben und die Kehrseite betrachten. Die wesentli- Derzeit gibt es mehr als ein Dutzend selbst einige Funktionen laufen zu lassen. chen Bedenken bei heutigen FaaS-Imple- FaaS-Frameworks oder -Plattformen Fn lässt sich leicht auf Windows- und mentierungen betreffen die Abhängigkeit (eine Übersicht über die Projekte siehe Unix-Systemen mit dem einzeiligen Kom- von einem bestimmten Cloud Anbieter, [6]). Diese Projekte lassen sich je nach mando „$ curl -LSs https://raw.githubu- den sogenannten „Vendor Lock-in“: Zielrichtung in drei unterschiedliche Ka- sercontent.com/fnproject/cli/master/ins- tegorien einteilen, wobei jede Kategorie tall | sh“ installieren. Auf Mac OS wird Fn • Die Funktion selbst wird über ein ty- typischerweise die Eigenschaften der vor- mit „brew“ installiert. Einzelheiten zur Ins- pisiertes, Cloud-Provider-spezifisches herigen enthält [7]: tallation siehe [8]. Ereignis ausgelöst. • Die Verdrahtung verschiedener Ereig- • Komplexität nisquellen mit serverlosen Funktionen Die Komplexität einer Cloud-basier- Grundlagen mit Go erzeugt eine harte Abhängigkeit zwi- ten FaaS-Implementierung eines be- schen der serverlosen Funktion und stimmten Anbieters wird reduziert, Um die Fn-Eigenschaften zu verstehen, weiteren Diensten des Cloud-Providers. etwa durch die Konfiguration eines zu Beginn eine einfache Go-Funktion.

56 www.aoug.at • www.doag.org • www.soug.ch Listing 1 zeigt das Erstellen eines neu- # create oradev and with boilerplate for go en Verzeichnisses, in dem mit der Go- $ fn init --runtime go oradev Sprache eine lokale Fn-Funktion initia- $ cd oradev lisiert wird. Anschließend lässt sich die Listing 1 Funktion sofort mit dem Run-Komman- do ausführen und die Ausgabe der Hel- loWorld-Anwendung betrachten (siehe $ fn run $ tree Listing 2). Die erzeugte Datei zeigt, warum das mög- Building image oradev:0.0.1 .. . lich war. Es gibt eine Konfigurationsdatei na- {"message":"Hello World"} ├── func.go mens „func.yaml“, die die Versionsnummer ├── func.yaml und die Laufzeit von Go spezifiziert. Außer- └── test.json dem wird eine Standard-Go-Routine („func. Listing 2 Listing 3 go“) mit einer Testdatei „test.json“ erzeugt (siehe Listing 3). Wenn man die Ausgabe beim Ausführen der Funktion genau be- $ fn deploy --app mygo –-local trachtet, ist zu sehen, dass ein Docker-Image „oradev:0.0.1“ erstellt wurde. Deploying oradev to app: mygo at path: /oradev Das Kommando „fn run“ ruft diese Funk- Bumped to version 0.0.2 tion direkt auf. Um einen Endpunkt für die Building image oradev:0.0.2 .. Funktion zu erstellen, ist als Erstes der Fn Updating route /oradev using image oradev:0.0.2... Server mit „$ fn start“ in einem anderen Listing 4 Terminal zu starten. Wenn der Server läuft, lässt sich die Funktion mit dem Kommando in Listing 4 installieren. Der Name der Funk- # check deployed applications tion wird aus dem Ordnernamen entnom- $ fn apps list mygo men. Optional kann man den Namen auch in der Datei „func.yaml“ angeben. # check existing routes Bei der Installation der Funktion erhöht $ fn routes list mygo sich die Version des Docker-Image auf 0.0.2. Durch das „Deploy“-Kommando wurde eine path image endpoint neue Anwendung registriert. Darüber hin- /oradev oradev:0.0.2 localhost:8080/r/mygo/oradev aus ist ein Endpunkt für die Funktion ent- Listing 5 standen. Um die Erstellung des Endpunkts zu prüfen, führt man die zwei Fn-Komman- dos zum Auflisten der Anwendungen und der neuen Route aus (siehe Listing 5). $ # invoke function via fn server $ # invoke function with UNIX curl Die Funktion ist jetzt am Fn Server re- $ fn call mygo /oradev $ curl localhost:8080/r/mygo/oradev gistriert, der wie ein Mikro-API-Gateway {"message":"Hello World"} {"message":"Hello World"} agiert. Er nimmt Anfragen an die ange- Listing 6 Listing 7 führten Endpunkte entgegen und ruft die installierten Funktionen auf. Listing 6 zeigt, wie man das selbst ausprobieren kann. $ # run the docker image Wahlweise lässt sich die Funktion auch mit $ docker run oradev:0.0.2 einem einfachen „curl“-Kommando von {"message":"Hello World"} der Unix-Kommandozeile aufrufen, da Fn Listing 8 Server eine URL für die Funktion bereit- stellt (siehe Listing 7). Eine weitere Möglich- keit ist das direkte Ausführen des Docker- Image (siehe Listing 8). Alle drei Ansätze $ docker run --rm -it --link fnserver:api -p 4000:4000 -e "FN_API_ liefern identische Ergebnisse. URL=http://api:8080" fnproject/ui

> [email protected] start /app > node server Container/Funktionsdualität

Using API url: api:8080 Es ist zu beachten, dass ein Ausführen der Server running on port 4000 Funktion über den URL-Endpunkt und das Listing 9 Ausführen des Docker-Containers das glei-

Red Stack Magazin 03/2018 57 Cloud

Abbildung 1: Die Überwachungskonsole

che Ergebnis liefern! Das Docker-Image, $ curl localhost:8080/metrics | head das die Funktion enthält, wurde automa- tisch erstellt, ohne irgendeine zusätzliche # HELP fn_api_completed Completed requests by path Konfiguration oder ein Kommando. Fn # TYPE fn_api_completed counter Project gibt so gesehen das Docker-Image fn_api_completed{app="mygo",path="/oradev"} 11 # HELP fn_api_queued Queued requests by path kostenlos dazu. Zwei der vielen Vorzüge # TYPE fn_api_queued gauge bei der Verwendung von Docker sind: fn_api_queued{app="mygo",path="/oradev"} 0 # HELP fn_api_running Running requests by path • Docker-Images lassen sich in jeder Pu- # TYPE fn_api_running gauge blic Cloud verwenden. fn_api_running{app="mygo",path="/oradev"} 0 # HELP fn_docker_stats_cpu_kernel docker_stats metric cpu_kernel • Docker Hub kann Docker-Images spei- ... chern. Funktionen können somit im Docker Hub gespeichert werden. Listing 10

Diese beiden Konzepte werden nach- folgend genauer betrachtet. Mit Fn lässt $ cd ~ && mkdir javatest && cd javatest sich also einfach eine Funktion schreiben, $ fn init --runtime java ohne dabei auf Docker zu achten. Den- Runtime: java Function boilerplate generated. noch besteht der Vorteil, dass die Funkti- func.yaml created. on in einem Container läuft. Listing 11

Fn Monitoring sehen, startet man die Go-Funktion einige der Cloud Native Computing Foundati- Fn Project bietet außerdem ein einfaches Male [9] (siehe Abbildung 1). on (CNCF) zusammen mit CNCF Grafana Werkzeug zur Überwachung, das als Do- eine gute Wahl. Fn exportiert Metriken, cker-Container gestartet werden kann (siehe die eine Überwachung mit Prometheus Listing 9). Um auf die Konsole zuzugreifen, Prometheus Monitoring ohne zusätzliche Konfiguration zulas- öffnet man einen Browser und verbindet sen. Auch ohne die Installation von Pro- sich mit Port 4000. Um eine Veränderung in Für eine etwas anspruchsvollere Über- metheus lassen sich die Metriken, die den Kurven der Überwachungskonsole zu wachungslösung ist Prometheus von für Prometheus exportiert werden, mit

58 www.aoug.at • www.doag.org • www.soug.ch der URL „/metrics“ betrachten (siehe Lis- $ tree ting 10). Weitere Einzelheiten zu Prometheus . und Fn sind unter [10] beschrieben. Man ├── func.yaml ├── pom.xml kann auch mit dem Go-Beispiel ein Hel- └── src loWorld-Beispiel in Java erstellen, indem ├── main der Laufzeitschalter auf „Java“ gestellt │ └── java wird (siehe Listing 11). Java 9 ist die Stan- │ └── com dard-Java-Version. Es ist zu beachten, │ └── example │ └── fn dass für ein Java-Projekt auch eine Ma- │ └── HelloFunction.java ven-Datei „pom.xml“ und ein Unit-Test └── test „HelloFunctionTest.java“ erstellt werden └── java (siehe Listing 12). └── com └── example └── fn └── HelloFunctionTest.java JSON-Parameter- Bereitstellung und Listing 12 Funktionslogik

Um einige erweiterte Eigenschaften $ git clone https://github.com/fmunz/fn-recommend.git $ cd fn-recommend von Fn zu zeigen, verlassen wir das Hel- loWorld-Beispiel in Java und betrachten Listing 13 ein Beispiel für eine Recommendation- Engine. Man kann das Beispiel mit dem # check the API of the handler function Kommando in Listing 13 aus GitHub ho- $ grep handle src/main/java/com/munzandmore/fn/RecommendFunction.java len. Das API der Funktion simuliert die public String handleRequest(Traveller t) { Empfehlungslogik. Sie verwendet ein # examine the Traveller POJO POJO als Eingabe-Parameter. Dieser de- $ cat src/main/java/com/munzandmore/fn/Traveller.java package com.munzandmore.fn; finiert das Alter des Reisenden, das Ziel public class Traveller { und den Monat der Reise (siehe Listing 14). public Integer age ; Dieses Beispiel wird automatisch im public String destination ; Docker Hub eingecheckt − im Gegensatz public String month; } zum vorherigen Go-Beispiel, das nur lo- kal vorgehalten wurde. Zu diesem Zweck Listing 14 wird die Umgebungsvariable „FN_REGIST- RY“ auf die „DOCKER_ID“ gesetzt und au- ßerdem im Docker Hub eingeloggt. Man # set environment for Docker hub $ export FN_REGISTRY=YOUR_DOCKER_ID ersetzt also im Beispiel „DOCKER_ID“ $ docker login durch sein eigenes Docker-Log-in (siehe Login with your Docker ID to push and pull images from Docker Hub. If Listing 15) und installiert anschließend you don‘t have a Docker ID, head over to https://hub.docker.com to cre- die Funktion. Die Funktion wird für eine ate one. Abenteuerreise-Anwendung verwendet, Username: DOCKER_ID Password: daher auch der Name (siehe Listing 16). Login Succeeded Aus der Ausgabe ist zu erkennen, dass das Docker-Image erstellt und im Do- Listing 15 cker Hub unter „DOCKER_ID/fn-recom- mend:0.0.2“ eingecheckt wurde. Man kann wie gewohnt die neue Anwendung $ fn deploy --app advtravel Deploying fn-recommend to app: advtravel at path: /fn-recommend und die neue Route im Fn Server prüfen Bumped to version 0.0.2 (siehe Listing 17) und die Funktion mit ei- Building image DOCKER_ID/fn-recommend:0.0.2 nem „POST“-Request über ein „Curl“- Pushing DOCKER_ID/fn-recommend:0.0.2 to docker registry...The push re- Kommando ausführen, wenn man die er- fers to repository [docker.io/DOCKER_ID/fn-recommend] 7e2c18073a13: Layer already exists forderliche JSON-Datenstruktur für den … Request liefert. Standardmäßig verwen- 0.0.2: digest: sha256:549e492a08d924dcfeef5f0354dc7d2df57cba820bcfa7ec5 det Fn das Jackson-Java-Framework, um 50a1779a173983c size: 1997 automatisch JSON-Eingabeparameter Updating route /fn-recommend using image DOCKER_ID/fn-recom- mend:0.0.2...umped to version 0.0.2 für den korrekten Java-Typ bereitzustel- len. Man kann aber auch jedes beliebige Listing 16

Red Stack Magazin 03/2018 59 Cloud

Framework zur Bereitstellung von JSON nur mit einem echten FaaS-Service eines dem Beispiel zu installieren (siehe Listing oder anderen Formaten wie XML etc. ver- Cloud-Providers der Fall. Die Funktionen 19). wenden (siehe Listing 18). selbst laufen dennoch aus Anwendersicht Es ist zu beachten, dass mit den bei- Für die Evaluierung unterschiedlicher serverlos in einer standardisierten, por- den Kommandos nie die Funktion oder Eingabe-Parameter ist ein grafisches tablen und skalierbaren Art und Weise. das Container-Image auf die Cloud-Ins- Tool wie Postman geeigneter. Abbildung 2 Wenn der Fn Server beim Cloud-Provider tanz zu kopieren war. Wenn die Funktion zeigt, was die Fn-basierte Beispiel-Anwen- seiner Wahl läuft, gibt es zwei Möglich- das erste Mal aufgerufen wird, checkt Fn dung für eine Reise nach Sydney emp- keiten, die Recommendation-Engine aus den Docker-Container, speichert ihn lokal fiehlt. Die Ausgabe sollte wie in Abbildung 3 aussehen.

$ fn apps list Fn in Public Clouds (IaaS) advtravel mygo

Eine häufige Frage ist, wie Fn Project als Cloud-agnostisches Framework in Public $ fn routes list advtravel Clouds verwendet werden kann. Ähnlich path image endpoint /fn-recommend DOCKER_ID/fn-recommend:0.0.2 localhost:8080/r/advtravel/ wie bei der lokalen Installation, die in den fn-recommend Beispielen gezeigt wurde, kann es auf je- der Public Cloud IaaS installiert werden. Listing 17 Bei den meisten IaaS-Clouds reicht es aus, das Installations-Kommando direkt bei der $ cat testdata/muc.json Erstellung einer Rechner-Instanz als soge- { nannte „user data“ zu übergeben, also als "age": 41, Kommandos, die ausgeführt werden, wenn "destination": "Munich", die Instanz bereitgestellt wird. Beim Betrieb "month": "Oct" } in einer Public Cloud ist außerdem darauf # get a recommendation for Munich in October zu achten, Zugriffsregeln für den Fn Server $ curl -X POST --data @testdata/syd.json localhost:8080/r/advtravel/fn- auf Port 8080 einzurichten, entweder von recommend der eigenen IP oder von allen öffentlichen IP-Adressen ausgehend. Visit the Octoberfest! # there is more test data under testdata/Casablanca.json Wer Fn Project auf einem IaaS betreibt, # see what is recommended for that city! bekommt allerdings nicht den Vorteil des echten „Bezahlens pro Aufruf“. Dies wäre Listing 18

Abbildung 2: Eine Fn-basierte Beispiel-Anwendung

60 www.aoug.at • www.doag.org • www.soug.ch Abbildung 3: Die Ausgabe mit Postman

# example 1 (for demo purpose only, in production use approach below) Fn LB leitet dann Aufrufe dorthin, um op- # note: run these commands on the cloud instance timale Performance zu sichern [15]. $ fn apps create advtravel Am Anfang dieses Artikels haben wir $ fn routes create advtravel /fn-recommend DOCKER_ID/fn-recommend:0.0.2 uns mit den Unterschieden zwischen Mi- croservices und FaaS befasst und erklär- # check for the created route ten, dass ein Microservice typischerwei- $ fn routes list advtravel se mehr als eine einzige Methode oder Listing 19 Funktion enthält. Heutzutage werden häufig grafische Tools oder übergeord- nete PaaS-Dienste verwendet, um FaaS # example 2 in sinnvolle, größere Services zu integrie- # run these commands on cloud instance ren. Diese grafischen Tools bieten jedoch meistens keinen wirklich guten Einblick in die Einzelheiten des übergeordneten $ export FN_API_URL=URLCloudInstance Service. Erkenntnisse aus Projekten mit $ fn deploy --app advtravel $ fn routes list advtravel ESB und BPEL zeigen, dass diese Details nicht gleichzeitig grafisch angezeigt wer- Listing 20 den können und deswegen häufig unter einem Eigenschaften-Tab des grafischen Modells versteckt sind. Einen solchen „Flow“ in einem grafischen Modell darzu- $ curl -X POST --data @testdata/syd.json PUBLIC_IP:8080/r/advtravel/ stellen, ist daher häufig eingeschränkt. fn-recommend Fn Flow behandelt dieses Problem für Listing 21 Fn Project. Es verfolgt einen interessan- ten „Code first“-Ansatz, indem das Java- 8-CompletableFutures-API mit Methoden und führt anschließend die Funktion aus. JAX-RS, Spring Cloud und wie „thenApply()“ oder „thenCompose()“ Eine bessere Methode zur Installation mehr etc. verwendet wird. Grafische Tools oder der Funktion ist, die „FN_API_URL“-Umge- große YAML-Dateien sind nicht erforder- bungsvariable lokal zu konfigurieren, sie Da Fn Project nur Docker als Abhängigkeit lich; die Verkettung der Funktionen er- auf die Remote-Cloud-Instanz zu setzen hat und die Maven-Datei „pom.xml“ auch folgt ausschließlich mit Java-8-Konstruk- und anschließend das lokale Fn-Installati- generiert wird, kann die Funktionsent- ten und ist dadurch leicht lesbar. Eine onskommando gegen die Remote-Cloud- wicklung einfach um weitere Java-Frame- interessante Anwendung dieses Kon- Instanz auszuführen (siehe Listing 20). works erweitert werden. Bisher wurde im zepts wird bei der Verwendung von SA- Wenn Fn in der Cloud läuft und die An- Fn-Team an der Unterstützung von JAX-RS GAs anstelle einer ACID-Transaktion für wendung installiert ist, kann man von je- mit Fn Projects gearbeitet [12]. Spring un- eine Reisebuchungsanwendung [16] ba- dem lokalen Rechner aus über die Kom- terstützt ebenfalls die Implementierung sierend auf Microservices gezeigt (siehe mandozeile oder mittels Postman auf die von Anwendungslogik als Funktionen mit Abbildung 4). Anwendung zugreifen. Der Aufruf erfolgt ihrem Konvention-vor-Konfiguration-An- Was auf den ersten Blick wie ein ge- genauso wie im lokalen Beispiel, man er- satz. Spring-Cloud-Funktionen lassen sich wöhnliches Java-8-Programm aussieht, setzt einfach „localhost“ durch die öffent- mit Fn verwenden [13, 14]. erinnert bei der Ausführung eher an Apa- liche IP-Adresse der Cloud-Instanz (siehe Fn LB, eine separate Komponente, ist che Spark. Die Ausführung findet parallel Listing 21). Eine aufgezeichnete Demo von für Lastverteilung und intelligentes Rou- statt, die Eingabe-Parameter der Funktion der Devoxx-Konferenz zur Installation ei- ting zuständig. Werden Funktionen als werden übergeben und Rückgabe-Werte ner Fn-basierten Anwendung mit der Re- „hot functions“ installiert, bleibt ein Con- entsprechend zurückgegeben. Jede Funk- commendation-Engine auf IaaS steht un- tainer für 30 Sekunden bestehen und tion wird in seinem eigenen Container un- ter [11]. wird nicht für jeden Aufruf neu gestartet. ter Verwendung von Verbindung, Fehler-

Red Stack Magazin 03/2018 61 Cloud

[8] Fn Project Installation: https://github.com/fnproject/fn [9] Fn UI: https://github.com/fnproject/ui [10] Fn Monitoring mit Prometheus: https://medium.com/fnproject/announcing- prometheus-metrics-from-fn-2d0f9ddf0f09 [11] Fn Project on Public Clouds (IaaS): http://www.munzandmore.com/2017/aws/ fn-project-on-public-clouds [12] Fn mit JAX-RS: https://github.com/fnproject/ fn-jrestless-example [13] Spring-Cloud-Funktionen: https://spring.io/blog/2017/07/05/ introducing-spring-cloud-function [14] Fn with Spring Cloud Functions: https://medium.com/fnproject/announcing- spring-cloud-function-support-for-fn- project-921e54f49d99 [15] Fn LB: https://github.com/fnproject/fn/tree/ master/fnlb [16] Serverless Sagas mit Fn Flow: https://medium.com/fnproject/serverless- sagas-with-fn-flow-d8199b608b12 [17] Acht Gründe, warum wir Fn Project entwickelt haben: https://medium.com/ fnproject/8-reasons-why-we-built-the-fn- project-bcfe45c5ae63 [18] Fn Project mit Helm Chart für Kubernetes: https://medium.com/fnproject/fn-project- helm-chart-for-kubernetes-e97ded6f4f0c Abbildung 4: Der Einsatz von SAGAs anstelle einer ACID-Transaktion [19] Fn Project on Kubernetes: https://blogs. oracle.com/developers/kubernetes-server- less-and-federation-oracle-at-kubecon-2017 [20] Oracle Container Engine: https://blogs. behandlung und Fan In/Out ausgeführt. dass der Entwickler dafür zusätzlich et- oracle.com/developers/announcing-oracle- Fn Flow kann die Aufrufkurven nachver- was tun muss. Die Funktionen können container-engine-and-oracle-container- folgen und sie visualisieren. überall laufen und werden vom Docker registry-service Hub geladen. [21] Serverlos und Fn Präsentationen: http:// www.munzandmore.com/2017/cc/devoxx- Fn ist in die Projekte der Cloud Nati- 2017-serverless Fn on Kubernetes ve Computing Foundation eingebunden und bietet Support für Kubernetes und Auf der KubeCon wurde im Dezember Prometheus; hoffentlich kommen noch 2017 offiziell Support für Fn on Kuberne- weitere dazu. Zu guter Letzt wird es in- tes angekündigt. Fn kann mit Helm, einem teressant sein zu sehen, ob Oracle oder Paketmanager für Kubernetes, installiert ein anderer Cloud-Provider einen Fn-ba- werden. Vorkonfigurierte Pakete wie Fn sierten FaaS als PaaS in naher Zukunft mit Service, Fn UI, Flow Service und Flow UI Bezahlung pro Aufruf und voll automati- werden als Helm-Chart bereitgestellt. Mit sierter Skalierung anbieten werden [21]. diesem lässt sich Fn auf jedem beliebi- gen Kubernetes-Cluster installieren [18]. Es ermöglicht außerdem den Betrieb von Referenzen Fn auf dem brandneuen Oracle-managed [1] Oracle Developer: Kubernetes Service, Oracle Container En- https://developer.oracle.com/en_US/ gine (OCE) oder einer lokalen Installation opensource/serverless-with-fn-project [2] Referenz Expedia: www.youtube.com/ von Minikube auf dem Laptop [19, 20]. watch?v=gT9x9LnU_rE, Referenz Postlight: https://goo.gl/uAMGYF [3] Funktionen vs. Container: https://medium.com/oracledevs/ Fazit containers-vs-functions-51c879216b97 [4] Microservices, M. Fowler: https://martin- Fn Project ist ein interessanter neuer An- fowler.com/articles/microservices.html [5] Mark Cavage, Serverless, Java One Key- satz für die serverlose Welt. Es ist Cloud- note 2017: https://www.youtube.com/ agnostisch und verhindert dadurch den watch?v=UNg9lmk60sg Anbieter-Lock-in. Darüber hinaus sind [6] Overview FaaS Frameworks: https://github.com/faas-lane/ FaaS-Lane/ Entwickler bei der Verwendung von Fn tree/master/candidates nicht an bestimmte Programmierspra- [7] Serverless Classification:http://www. chen gebunden. Funktionen werden au- munzandmore.com/2018/cc/serverless-faas- Dr. Frank Munz frameworks-and-platform-classification tomatisch als Docker-Image gebaut, ohne [email protected]

62 www.aoug.at • www.doag.org • www.soug.ch Container Native Development Platform

Marcel Amende, ORACLE Deutschland B.V. & Co. KG

Beim Entwickeln in der Cloud und für die Cloud („Cloud Native Development“) stehen hohe Flexibilität und Interoperabilität im Fokus − bei einfacher Nutzbarkeit und kostengünstigem Betrieb. Derzeitige Top- Themen aus Sicht der Anwender sind die Docker-Containerverwaltung und das sogenannte „Serverless Computing“. Beide Technologien halten Einzug in die Oracle-Cloud-Infrastruktur und sind ein deutliches Zeichen dafür, dass Oracle als Mitglied der „Cloud Native Computing Foundation (CNCF)“ [1] Open-Source- Projekten eine sehr hohe Wertschätzung entgegenbringt.

Neue Technologien krempeln Märkte um, in der Praxis erprobt werden. Software Lastenhefts und der Definition der Sys- verändern klassische Geschäftsfelder ist der Treibstoff dieser Innovation, agile tem-Architektur in der Entwurfsphase, oder eliminieren diese sogar. Unterneh- Software-Entwicklung ist gefragt. Ganz wie gefolgt von der Implementierung, den men sind gezwungen, schnell zu handeln. in der realen Welt bringen Container die Abnahmetests und final dem Ausrollen Ein Beispiel: Heute ersetzen Apps wie Uber neue Ware zum Konsumenten. der Software. Bei einfachen Projekten und Mytaxi die Taxizentralen. Morgen er- mit klaren Anforderungen ergibt sich da- setzen autonome Fahrzeuge die Taxifah- raus eine große Planungssicherheit. In ei- rer. Man muss sich ständig neu erfinden, Agile Software-Entwicklung nem herausfordernden Projekt werden digital transformieren, um mit der Verän- und Microservices Probleme jedoch erst sehr spät sichtbar, derungsgeschwindigkeit der Konkurrenz da man erst zum Ende der Implementie- und aufkommenden Start-ups mithalten Die klassische Methodik der Software- rung ein lauffähiges und testbares Pro- zu können. Neue Funktionen und neue Entwicklung ist das Wasserfall-Modell. dukt erhält. Anpassungen sind zu die- Geschäftsmodelle müssen entwickelt und Man beginnt mit dem Schreiben eines sem Zeitpunkt schwierig und teuer, da

Red Stack Magazin 03/2018 63 Cloud

der gesamte Planungsaufwand bereits zu ner Mehrschicht-Implementierung. Es gilt Die entsprechenden Werkzeuge las- Projektbeginn erfolgt ist. In der Praxis be- der Grundsatz: Mache genau eine Sache, sen sich jedoch auch von Hand zusam- nötigt man nach der Wasserfall-Methode aber mache sie richtig. Der Entwickler ge- menstellen. Ein DevOps-Zyklus startet mehrere Monate oder sogar Jahre, um nießt große Freiheitsgrade. Er wählt für mit der Projekt-Planung und -Verwaltung. ein neues Software-Release zu erstellen. jedes Modul die seiner Meinung nach am „Jira“ [3] ist ein gutes Beispiel für die Un- In Innovationsprojekten sind die An- besten geeigneten Werkzeuge, Program- terstützung agiler Entwicklung. Für das forderungen zu Projektbeginn oft unklar. miersprachen, Datenbanken und Lauf- Code- und Versions-Management setzt Man weiß beispielsweise noch nicht, wie zeit-Umgebungen. Die Kunst besteht da- man heute meist auf das von Linus Tor- hoch die Akzeptanz der Anwender ist oder rin, diese Freiheiten nicht zu einem nicht walds initiierte und verteilt nutzbare „Git“. ob sich das neue Geschäftsmodell in der mehr handhabbaren Wildwuchs werden Der automatische Bau des Kompilats und Praxis bewährt. Gleiches gilt für die Leis- zu lassen. die Zusammenstellung der Bibliotheken tungsfähigkeit neuer Technologien. Erst Spätestens beim Datenschutz und bei erfolgt mit „Maven“, „Ant“, „Grunt“ oder nach mehrmonatiger Entwicklung grund- der Datensicherheit hört der Spaß mit „Gradle“. Für die Ablaufkontrolle und das sätzliche Probleme, beispielsweise mit der der Freiheit auf. Hier kommen neue Rol- Ausbringen der Softwarepakete verwen- Performance, zu erkennen, wäre fatal. len auf Mitarbeiter mit Betriebserfahrung det man „Hudson“ oder „Jenkins“. Eine Ein alternativer Ansatz ist eine modula- und Administratoren zu, die bei der agilen Test-Automatisierung kann mit „JUnit“ re Entwicklung, die Implementierung soge- Entwicklung ansonsten oft als Blockierer oder „Selenium“ erfolgen. nannter „Microservices“. Die Einzelmodule gesehen werden. Sie können die agilen Bei aller Automatisierung kommt die- sind weniger komplex, schneller implemen- Teams bei der Automatisierung und auch ses Prinzip bei der Microservice-Archi- tiert und leichter testbar. Bei agilen Projekt- in Sachen Daten-Sicherung, -Wiederher- tektur an seine Grenzen. Jeder Microser- methoden wie SCRUM entwickelt man die stellung und -Konsistenz ideal beratend vice benötigt neben dem funktionalen einzelnen Module in Sprints von wenigen unterstützen. Vor allem in der Umsetzung Code auch eine Sammlung von Laufzeit- Tagen bis wenigen Wochen Dauer, in klei- der EU-Datenschutz-Grundverordnung Umgebungen und Bibliotheken. Er sollte nen Teams, parallel und inkrementell. Jedes ist ein umsichtiger und vorausschauen- isoliert betreibbar sein, was das parallele Inkrement führt zu einem isoliert lauffähi- der Umgang mit Daten zwingend, um Ausbringen auf geteilte Laufzeitinstanzen gen und testbaren Produkt. Man überlässt hohe Aufwände bei der Lösch- und Aus- praktisch ausschließt. Man benötigt mehr den Teams die Auswahl der geeigneten kunftspflicht und schlimmstenfalls Stra- als nur die automatische Provisionierung Werkzeuge und Technologien, die sich von fen zu vermeiden. einer Applikation. Es geht auch um die Modul zu Modul unterscheiden können. Ein ideales agiles Team wäre also im massenhafte und vollautomatische Pro- In täglichen Meetings und regelmäßigen Sinne der neuen Kultur eine heterogene visionierung von mehr oder minder kom- Reviews werden Erfahrungen geteilt und Mischung aus Entwicklern und aus den plexen Laufzeitumgebungen und Infra- Probleme schnell sichtbar. Umso wichtiger Entwicklungsprozess beratend beglei- strukturen. wird es aber, Routine-Aufgaben wie Kompi- tenden Administratoren. Viele sich wie- lieren und Ausbringen von Software-Modu- derholende Routinetätigkeiten aus dem len vollständig zu automatisieren. Bereich der Datenbank- und System-Ad- Container-basiertes DevOps ministration werden in Zeiten der Cloud für Microservices vom Betreiber oder von autonomen Sys- DevOps als neue temen erledigt. Der moderne Administra- Die Lösung für das Problem der isolierten Unternehmenskultur tor wird sich in Zukunft qualitativen Auf- Provisionierung von Microservices liegt in gaben zuwenden können und die Rolle der Nutzung von Containern. Docker hat Schnell und kontinuierlich neue Software- des vertrauenswürdigen Beraters in den sich mittlerweile als Quasi-Standard für Versionen auszubringen, ist eine sehr Entwicklungsteams übernehmen. Container etabliert. Man packt alle benö- verantwortungsvolle Aufgabe, die nur tigten Komponenten eines Microservice funktionieren kann, wenn Entwickler und in einen gemeinsamen Docker-Container Administratoren gemeinsam Verantwor- Klassische DevOps- und betrachtet diesen als Ausbringungs- tung übernehmen. Der Entwickler verant- Werkzeuge einheit. wortet seinen Code und seine Werkzeuge Für ein Container-basiertes DevOps bis in die Produktion. Der Administrator Es gibt eine Vielzahl von Werkzeugen, sind drei Basis-Komponenten erforderlich: arbeitet eng mit den Entwicklungsteams die bei der Automatisierung des kom- Erstens ein Werkzeug für die Erstellung zusammen, um eine vollautomatisierte, pletten DevOps-Zyklus unterstützen; zu- und Verwaltung von Containergruppen; nahtlose Ausbringung zu gewährleisten. meist sind diese quelloffen. Der Oracle man spricht in diesem Zusammenhang Man braucht eine gemeinsame, gesunde Developer Cloud Service [2] umfasst eine auch von der Orchestrierung von Contai- Fehlerkultur. Sammlung der verbreitetsten Werkzeu- nern. Hier hat sich das ursprünglich von Bei moderner Microservice-Entwick- ge und deckt den kompletten Zyklus in Google entwickelte und mittlerweile un- lung konzentriert man sich auf die zu im- Form eines Dienstes in der Oracle-Cloud ter dem Dach der CNCF als Open-Source- plementierende Funktionalität und nicht ab. Dieser ist kostenfrei für Nutzer der Projekt weitergeführte Kubernetes (K8s) auf Technologie-Schichten wie bei einer Oracle-Universal-Credit-PaaS- und -IaaS- [4] gegenüber alternativen Ansätzen wie serviceorientierten Architektur oder ei- Dienste. Docker Swarm oder Mesosphere durch-

64 www.aoug.at • www.doag.org • www.soug.ch gesetzt. Für die Ablage und Verteilung von • Oracle Container Registry (in Kürze ver- Wahl, etwa die Oracle Container Engine, Docker-Containern nutzt man private oder fügbar) ausbringen. öffentliche Container Registries. Eine mit Eine hochverfügbare, private Contai- diesen integrierte Automatisierung der ner Registry, um Container-Images zu Erstellung und Ausbringung der Contai- speichern und zu verteilen Oracle Container Registry ner ist die dritte Komponente. In Summe erhält man eine „Continuous Integration/ • Oracle Container Engine (in Kürze ver- Bei der Container Registry (in Kürze ver- Continuous Delivery“-Pipeline (CI/CD) für fügbar) fügbar) handelt es sich um einen privaten, Microservices auf Basis von Docker-Con- Ein vollständig verwalteter Kubernetes- Docker-Registry-V2-konformen Ablage­ tainern. Dienst, der den Betrieb hochverfügba- ort für Images in der Oracle-Cloud. Sie rer Cluster ermöglicht, ohne sich selbst ist vollständig mit der Container Pipeline um die Wartung und Administration und der Container Engine der Plattform Oracle Container Native von Kubernetes kümmern zu müssen integriert. So lassen sich mit der Contai- Application Development ner Pipeline generierte Images als Ar- Platform beitsschritt direkt und mit sehr geringer Oracle Container Pipelines Latenz, hochverfügbar und sicher able- Die Oracle Container Native Applica- gen. Man kann die Registry durch Nut- tion Platform [5] bietet DevOps-Teams „Bringe deine Software frühzeitig aus zung der Docker-CLI auch eigenständig eine durchgängige Produktsammlung und bringe sie oft aus“ ist das Motto der vom Entwickler-Laptop, dem eigenem Re- auf Open-Source-Basis, um Container- Microservice-Entwicklung. Die Oracle- chenzentrum oder Cloud-Diensten von Cluster automatisiert aufsetzen und ver- Container-Plattform kann in diesem Sin- Dritt-Anbietern aus nutzen. Als Anwender walten zu können. Die Container laufen ne mit beliebigen CI/CD-Lösungen wie bezahlt man übrigens nicht die Registry virtualisiert, „Bare Metal“, also ohne Hy- Jenkins oder Hudson genutzt werden. selbst, sondern nur die genutzten IaaS- pervisor, oder in Kombination auf Basis Container Pipelines sind die Container- Ressourcen der Oracle-Cloud. der derzeit modernsten Oracle-Cloud- zentrische CI/CD-Lösung von Oracle, ba- Infrastruktur (OCI). Diese ist etwa in der sierend auf der Akquise von Wercker. Die Oracle-Rechenzentrumsregion Frank- Modellierung der Software-Auslieferung Oracle Container Engine furt am Main verfügbar. Sie bietet mit erfolgt hier in sogenannten „Workflow ihren dediziert zuweisbaren Ressourcen Pipelines“. Ein Workflow startet automa- Das Open-Source-Werkzeug Kubernetes höchste Performance, Verfügbarkeit und tisch, etwa mit einem „Git Push“. Wer- [4] automatisiert den Umgang mit Do- Ausfallsicherheit für den professionel- cker kompiliert daraufhin die benötigten cker-Clustern vollständig. Dazu gehört die len Unternehmenseinsatz. Die Oracle- Code-Basen und führt alle notwendigen automatisierte Ausbringung, Skalierung, Container-Plattform (siehe Abbildung 1) Schritte aus, das komplette Microservice- Lastverteilung und Speichernutzung. Das deckt den kompletten Lebenszyklus von Projekt zu bauen. Es nutzt isolierte Con- Werkzeug ist allerdings entsprechend sei- Microservices ab: tainer für die Code-Ausführung und gene- nen Aufgaben komplex in der Handha- riert als Ergebnis des Workflows ebenfalls bung und bei einer Installation von Hand • Oracle Container Pipelines einen Docker-Container. Dieser enthält selbst zu betreuen und zu warten. Aus Eine elegante, flexible und program- alle benötigten Konfigurationen und Um- diesem Grund bietet Oracle ein über das matische CI/CD Lösung, um Contai- gebungen, um eigenständig und isoliert CNCF-Konformitätsprogramm zertifizier- ner-basierte Microservices schnell und lauffähig zu sein. Er lässt sich in Container tes Kubernetes als vollständig verwalte- wiederholbar auszuliefern Registries ablegen und auf ein Ziel der ten und hochverfügbaren Dienst integ-

Abbildung 1: Die Oracle-Container-Plattform

Red Stack Magazin 03/2018 65 Cloud

riert mit der Oracle-Cloud-Infrastruktur (OCI). Man muss sich also nicht selbst um die Wartung der Kubernetes-Infrastruk- tur kümmern. Auch hier zahlt man als Anwender nicht den Kubernetes-Dienst selbst, sondern wiederum nur die ge- nutzten IaaS-Ressourcen (wie Compute, Storage und Load Balancer). Die von der Oracle Container Engine (in Kürze verfügbar) verwalteten Kuber- netes-Cluster lassen sich flexibel erstel- len und orchestrieren; entweder direkt aus der Container Pipeline heraus, über ein REST-API oder über das Benutzer-In- Abbildung 2: Der Aufbau von Fn Project terface der Oracle-Cloud. Die einzelnen Knoten sind per SSH erreichbar, damit man bei Bedarf weiterhin die gewohnten Fn Project ist komplett Container-ba- Hinweis: Oracle Container Registry und Docker-Werkzeuge nutzen kann. Die Zu- siert (siehe Abbildung 2). Die Funktion ist Oracle Container Engine sind in Kürze griffsrechte des ganzen Teams lassen sich hier der Container und der Container die verfügbar, Stand 04/18 von der Entwicklung bis in die Produktion Funktion, Docker die einzige Abhängig- zentral verwalten. Die Vorteile der zugrun- keit. Selbst der Fn Server, die Laufzeit- de liegenden Oracle-Cloud-Infrastruktur Umgebung von Fn Project, ist ein Docker- Weitere Informationen kommen voll zum Tragen: Man kann auf Container. Dadurch ist er unverändert [1] https://cloud.oracle.com/tryit Knopfdruck Bare-Meta- Cluster mit voller überall lauffähig: auf dem Laptop des [2] https://cloud.oracle.com/developer-service vorhersagbarer Leistung über mehrere Entwicklers, auf jeder beliebigen Contai- [3] https://www.atlassian.com/software/jira [4] https://kubernetes.io Verfügbarkeits-Domänen, also drei unab- ner-Plattform im eigenen Rechenzent- [5] https://cloud.oracle.com/containers hängige Rechenzentren in einer Region, rum oder als Kubernetes-Cluster in der [6] https://aws.amazon.com/lambda spannen. Oracle-Cloud-Infrastruktur (OCI). [7] https://cloud.google.com/serverless/ functions Der Fokus von Fn Project liegt auf der [8] https://fnproject.io einfachen und flexiblen Nutzbarkeit. Es Serverless Computing mit Fn ist polyglott, Funktionen können also in Project jeder beliebigen Programmiersprache erstellt werden. Es gibt bereits vorge- Als die nächste Evolutionsstufe der mo- fertigte Entwicklungsbaukästen (FDK, dernen Applikationsentwicklung wird Function Development Kit) für Java, das Serverless Computing betrachtet. Go, JavaScript, Ruby, Rust und Python. Man macht sich keine Gedanken mehr Man entwickelt von der Kommandozei- über Server, Storage, Netzwerk, Virtu- le aus mit dem Kommando „fn“. Funk- alisierung und andere Infrastruktur- tionen werden als Docker-Container Komponenten, sondern konzentriert gepackt, die auch die Ausbringungs- sich ganz auf den eigenen Code, also die einheit sind. Mit einem vorgefertigten Umsetzung der Geschäftsanforderung Helm-Chart lässt sich Fn Project als Ku- in Form eines kleinen Funktionspakets bernetes-Cluster automatisiert in der (Function-as-a-Service, FaaS). Server gibt Oracle-Cloud aufsetzen und passt sich es beim Serverless Computing natürlich damit bestens in die Oracle-Container- dennoch. Sie brauchen allerdings keiner- Plattform ein. lei Administration und bleiben für den Mit Fn Flow lassen sich einzelne Funk- Entwickler unsichtbar. tionen zu komplexen Diensten zusam- Mit AWS Lambda [6], Cloud Functions mensetzen. Dabei werden Aspekte wie [7] und anderen gibt es schon einige kom- Parallelisierung, Ausführungs-Reihenfol- merzielle, weitgehend geschlossene Ser- ge, Wiederanläufe und Fehlerbehandlung verless-Computing-Angebote am Markt. adressiert. Es ist im Vergleich zu einem Mit Fn Project [8] hat Oracle eine Open- klassischen Service-Bus oder einer SOA- Source-Serverless-Plattform als Alterna- Orchestrierung ein Leichtgewicht. Ab- tive initiiert. Im Gegensatz zu den vorge- läufe werden über ein asynchrones und nannten Plattformen nutzt man bei Fn verteiltes Programmiermodell im Code Project nicht nur ein API oder eine Web- definiert. Ausgeführt wird Fn Flow eben- Marcel Amende Oberfläche, um Code hochzuladen. falls als Funktion. [email protected]

66 www.aoug.at • www.doag.org • www.soug.ch Objekte machen das Leben leichter

Jürgen Sieben

In dieser Folge möchte der Autor eine Lanze für die recht selten genutzte Objektorientierung in PL/SQL brechen.

Ein erstes Beispiel wurde bereits verwen- herkömmlichen Code erfolgen, alterna- thoden mit der Klausel „CONSTRUCTOR det, um mithilfe einer „NESTED TABLE“ tiv wäre es allerdings auch möglich, ei- FUNCTION“, die „SELF“ als Ein- und Aus- beliebig viele Parameter an eine „BULK nem Objekt vom Typ „MESSAGE_TYPE“ gabe-Parameter besitzen. Das ist die Ob- REPLACE“-Prozedur zu übergeben (siehe dieses Verhalten beizubringen. Listing 1 jekt-Instanz, die über die Methode mit Red Stack Magazin, Ausgabe 06/2017). zeigt ein solches Objekt, man erkennt die der Anweisung „RETURN“ später zurück- Schon dort war die Tatsache angenehm Konstruktor-Methode, die für die Instan- gegeben werden wird. aufgefallen, dass Objekte gleichermaßen ziierung dieses Objekts verwendet wer- Bevor wir den Code zur Erzeugung in SQL und PL/SQL verwendet werden den soll. eines Objekts betrachten, zunächst die können. Diesen Ansatz soll ein wenig wei- Beim genauen Betrachten ist ein Attri- Fragen: „Wozu das alles?“, „Warum er- tergedacht werden. but „P_ARG_LIST“ vom Typ „MSG_ARGS“ stellen wir eine Meldung nicht mit nor- Oracle unterstützt drei Typen von Ob- zu erkennen. „MSG_ARGS“ ist ein Kollek- malem Code?“. Der wichtigste Aspekt ist jekten: das eigentliche „OBJECT“, das ei- tionstyp, allerdings keine „NESTED TAB- die Kapselung der Logik. Wie eine Mel- nem Record ähnelt, und die beiden Kol- LE“, sondern ein variables Array („VAR- dung konkret gebaut wird, weiß der Da- lektionstypen „VARRAY“ (variabel langes RAY“) mit bis zu zwanzig Einträgen. In tentyp selbst. Sobald das Objekt kompi- Array, dem eine maximale Anzahl von einem Objekt können also weitere Ob- liert ist, lässt es sich wie ein eingebauter Elementen mitgegeben wird und die eine jekt-Typen als Attribut hinterlegt sein. Datentyp verwenden, die zugehörige Lo- garantierte Sortierung hat) und die unbe- Die Konstruktor-Methode übernimmt gik gibt es unmittelbar dazu. Alternativ grenzte, aber auch nicht sicher sortierte nun die Aufbereitung der Nachricht in wäre die Erstellung einer Meldung nur „NESTED TABLE“. der benötigten Sprache und liefert eine über ein Package möglich, doch dann Ein „OBJECT“ kann immer auch als Er- Instanz der Meldung zurück, die nicht hätte man noch einen Plan entwickeln satz für einen Record verwendet wer- nur aus dem Meldungstext, sondern müssen, wie die weiteren Attribute bei den, wenn man ausschließlich Attribute auch aus flankierenden Informationen der Meldung gespeichert sind. Diese Al- im Objekt festlegt und einen Standard- besteht, die in der weiteren Verarbei- ternativlösung hätte einen Record dekla- Konstruktor verwendet, um ein Objekt tung benötigt werden. Umgesetzt sind riert und diesen in einem Hilfspackage zu erstellen: Ähnlich wie die Funktion diese Konstruktor-Methoden als Me- mit Werten gefüllt. Das kann ein Objekt „TO_DATE“ aus einer Zeichenkette eine Instanz vom Typ „DATE“ erstellt, erzeugt ein Konstruktor eine Instanz des Objekts. Der Standard-Konstruktor heißt genau- create or replace type message_type force is object( so wie der Typ, den er erstellen soll, und id number, message_name varchar2(30 char), erwartet, dass alle Attribute des Objekts message_text clob, mit Werten belegt werden. Hiervon kann severity number(2,0), man jedoch auch abweichen und eigene stack varchar2(2000), Konstruktor-Methoden erzeugen, etwa backtrace varchar2(2000), um nur einige Parameter zu übergeben error_number number (5,0), message_args msg_args, und die Attributwerte aus diesen Para- -- Konstruktor metern zu ermitteln. constructor function message_type( Ein Beispiel: Ein Logging-Package soll self in out nocopy message_type, in der Lage sein, Meldungen durch eine p_message_name in varchar2, beliebige Anzahl von Parametern zu spe- p_arg_list msg_args) return self as result) zialisieren; zudem soll die Meldung in der ; Sprach-Einstellung der Session erzeugt werden. Dies kann natürlich auch über Listing 1

Red Stack Magazin 03/2018 67 Entwicklung

Meldungstext auf Meldungsanker ver- create or replace type body message_type teilt. as constructor function message_type( self in out nocopy message_type, Fazit p_message_name in varchar2, p_arg_list msg_args) return self as result Objekte können ein Ersatz für Records as sein, haben diesen aber einen Standard- l_errm varchar2(2000); Konstruktor voraus, der das Belegen der begin Attribute einfacher macht als bei einem -- Meldungstext aus Meldungstabelle lesen und Sprache festlegen select pms_pml_name, Record, zudem können Objekte in SQL pms_text, und PL/SQL genutzt werden. Wird mehr pms_pse_id, Logik benötigt, um eine Instanz des Ob- coalesce(pms_active_error, pms_custom_error) error_number jekts zu erstellen, können eigene (und from pit_message m auch beliebig viele) Konstruktor-Metho- join pit_message_language_v l -- View liefert die Sessionsprache on m.pms_pml_name = l.pml_name den erzeugt werden, um die für die Er- where m.pms_name = p_message_name stellung benötigte Logik beim Objekt zu order by l.pml_default_order desc halten und dort zu kapseln. Ein Package fetch first 1 row only; ist im Regelfall nicht erforderlich. Die Möglichkeit, Logik in Objekten zu -- Objektattribute belegen abstrahieren, ist erfahrungsgemäß für self.id := pit_log_seq.nextval; self.message_name := p_message_name; viele PL/SQL-Entwickler eine ungewohn- self.message_args := p_arg_list; te Lösung, doch der Autor hofft, durch dieses einfache Beispiel einige der Vor- -- Im Fehlerfall: Fehlerdetails speichern teile dieser Lösung aufgezeigt zu haben. if sqlcode > 0 and self.severity <= 30 then Es lohnt sich, sich an Objekte heranzu- self.stack := dbms_utility.format_error_stack; self.backtrace := dbms_utility.format_error_backtrace; trauen. end if;

-- Platzhalter der Meldung durch Variablen ersetzen (bulk replace) if p_arg_list is not null then for i in p_arg_list.first..p_arg_list.last loop self.message_text := replace(self.message_text, '#' || i || '#', p_arg_list(i)); end loop; end if; return; end; end; Nun kann das Objekt sehr einfach verwendet werden: declare l_msg message_type; begin l_msg := message_type('MY_MESSAGE', msg_args('FOO', 'ACME')); end;

Listing 2

direkt und vor allem: auch in SQL. Selbst im „TYPE BODY“ erfolgt. Über den Para- wenn man einen Record erstellt hätte, meter „SELF“ werden die Objekt-Attribu- wäre dieser nicht in SQL verwendbar te belegt, und dieses Objekt liefert zum und könnte auch nicht in einer Tabelle Ende der Methode über die Anweisung gespeichert werden. Dies wäre für Mel- „RETURN“ zurück. In unserem Fall wird dungen aber durchaus praktisch, zum die Meldung aus einer Meldungs-Tabelle Beispiel weil nun ein Log-Eintrag auch im ermittelt und die Spracheinstellung dyna- Nachhinein in unterschiedlichen Spra- misch aus einer Voreinstellung und der chen aufbereitet werden kann, und das Session-Sprache abgeleitet. Bei aufmerk- geht eben nur mit Objekten. samem Studium des Codes ist die „BULK Listing 2 zeigt die Implementierung des REPLACE“-Methode wiederzuerkennen, Jürgen Sieben Objekt-Typs, die ähnlich einem Package die hier alle übergebenen Parameter im [email protected]

68 www.aoug.at • www.doag.org • www.soug.ch Verarbeitung von Streamingdaten – ein Erfahrungsbericht der Testphase mit Oracle NoSQL

Marcus Bender, Rainer Marekwia, Thomas Robert und Dr. Nadine Schöne, ORACLE Deutschland B.V. & Co. KG

Streamingdaten sind Daten, die als nahezu kontinuierlicher Datenstrom vorliegen und aus einer Viel- zahl von Datenquellen stammen können. In diesem Artikel stellen wir zwei Möglichkeiten vor, diese in der Oracle-NoSQL-Datenbank zur schnellen Verarbeitung zu speichern. Die verwendeten Komponenten (Kafka, Flume und Oracle-NoSQL-Datenbank) wurden dazu auf dem Oracle Big Data Cloud Service instal- liert. Die Autoren gehen auch kurz auf die Eigenschaften der verschiedenen Komponenten ein und verlin- ken den verwendeten Code.

Streamingdaten stammen meist aus ei- Analyse die Daten erst abgespeichert Twitter direkt nach Launch einer neuen ner Vielzahl von Datenquellen. Sie liegen – entweder in einer relationalen Daten- Produktlinie untersuchen möchte? als nahezu kontinuierlicher Datenstrom bank nach Anwendung eines Datensche- Für solche Batchanalysen von aktuel- vor. In der Regel handelt es sich um vie- mas (Schema-on-Read) oder in HDFS (ge- len Daten bieten sich NoSQL-Datenban- le kleine Datenpakete; Beispiele sind wöhnlich Schema-on-Write) − und danach ken an (NoSQL = „Not Only SQL“). Belie- Tweets, Log- oder Sensordaten. Die Aus- zeitversetzt analysiert. bige Daten lassen sich schnell ablegen. wertung solcher Daten wird für viele Un- Wie geht man aber am besten vor, wenn Zugriffe und Abfragen sind performant ternehmen immer wichtiger; eine Analyse man aktuelle Daten möglichst schnell ana- und einfach, und sie sind kostengünstig in nahezu Real-Time erfolgt durch direk- lysieren will, zum Beispiel, wenn man ei- skalierbar. Verschiedene NoSQL-Daten- te Beobachtung des Datenstroms. Dage- nen Überblick über den letzten Fertigungs- banken sind spezialisiert auf unterschied- gen werden bei einer klassischen Batch- lauf erhalten oder Kundereaktionen auf liche Zwecke und Daten wie Dokumente,

Red Stack Magazin 03/2018 69 Datenbank

Abbildung 1: Aufgabenstellung ist die Transformation und das Ablegen von Sensordaten in einer Oracle-NoSQL-Datenbank (und gegebenenfalls auch in HDFS) unter Nutzung von Kafka und Flume

XML- oder JSON-Daten, Key-Value-Inhalte über Flume in das NoSQL-Zielsystem über- faktor von drei zum Einsatz, es können oder spaltenbasierte Daten. tragen werden. Der Zugriff auf die gespei- also bis zu zwei Knoten ausfallen, ohne Relationale Datenbanken schöpfen hin- cherten Daten soll möglichst wahlfrei über dass Daten verloren gehen. gegen ihr Potenzial am besten aus, wenn beliebige Schlüsselwerte möglich sein. Kafka ist ein Multi-Purpose-System: bereits ein Datenschema vorliegt. Für den Viele Producer und viele Consumer kön- Zugriff auf strukturierte Daten bei gleich- nen viele Topics gleichzeitig nutzen. Da- zeitigen Schreib- und Lesevorgängen, ho- Datenformate mit ist Kafka sehr gut geeignet, wenn her Concurrency sowie Anforderungen an Daten von verschiedenen Applikationen Transaktionssicherheit und Security sind Streamingdaten können in verschiede- verarbeitet werden sollen. Messages sind relationale Datenbanken in der Regel aus- nen Formaten vorliegen, etwa als Mes- einfache Byte-Arrays, in denen Objekte in gereifter als NoSQL-Datenbanken. sage-, Text-, XML- oder JSON-Format. Die beliebigem Format gespeichert werden. Das Speichern auf HDFS ist einfach in diesen Tests verwendeten Daten liegen Sie können mit einem Key versehen sein, umsetzbar. Nahezu alle Big-Data-Kompo- als XML-Dateien vor. Um die Daten von sodass alle Messages mit demselben Key nenten unterstützen HDFS nativ − auch ihrer Quelle zum Zielort zu bewegen, ist in dieselbe Partition geschrieben werden. mit optimierter Abspeicherung wie bei- ein Message Broker erforderlich. Die Au- Jede Topic-Partition wird als Log (geord- spielsweise Parquet oder Avro. Abfragen toren haben sich hier für Apache Kafka nete Menge von Messages) behandelt. sowie Batch- und Massen-Datenverarbei- entschieden. Messages werden für eine bestimmte tung sind in der Regel sehr performant. Als Plattform wurde der Oracle Big Data Zeit vorgehalten, unabhängig davon, ob HDFS ist aber nicht gut für die Verarbei- Cloud Service genutzt. Dieser fertig instal- sie gelesen wurden oder nicht. tung vieler kleiner Dateien, sondern eher lierte und vorkonfigurierte Cloud Service Kafka ist unabhängig von anderer Soft- für größere Dateien geeignet. Auch eine stellt auf Basis der Cloudera-Distribution ware, mit der Ausnahme von Apache Zoo- Veränderung bereits gespeicherter Da- bereits viele Komponenten zur Verfügung. Keeper, das als übergeordnete Instanz ten („Update“) ist nicht vorgesehen: Das Vorhandene Komponenten wie HDFS, für verteilte Ressourcen genutzt wird. Lesen einzelner Sätze aus großen Daten- Kafka und Flume sind direkt nutzbar, die Flume ist ein Framework für das zu- beständen ist nicht performant und Ver- Oracle-NoSQL-Datenbank lässt sich über verlässige Sammeln, Aggregieren und änderungen sind in der Regel nur durch eine einfache Installationsprozedur nach- Bewegen einer großen Anzahl verteilter Löschen und Einfügen möglich, was zu installieren. Abbildung 2 zeigt eine Über- Dateien. Ein Flume-Agent hat je mindes- langen Antwortzeiten führen kann. Damit sicht über die genutzten Komponenten. tens eine Source, einen Channel und ei- ist HDFS nicht ausgelegt für eine direkte Apache Kafka ist ein Broker, also ein nen Sink. Die Source empfängt Daten und schnelle Verarbeitung. Um die Daten verteiltes („distributed“) Messaging-Sys- und sendet diese an einen oder mehre- im Rohzustand für spätere Batchanalysen tem, das für zuverlässige Message-Ver- re Channels. Ein Channel ist eine Daten- vorzuhalten, bietet sich aber das parallele waltung, hohen Datendurchsatz, geringe queue, die als Buffer für die Flüsse von Abspeichern der Daten in HDFS an. Latenz und hohe Skalierbarkeit ausgelegt Input und Output eines oder mehrerer ist. Message-Feeds werden in Topics vor- Sources fungiert. Der Sink liefert die Da- gehalten: Daten werden von Producern ten eines einzelnen Channels an ein Ziel Aufgabenstellung in Topics geschrieben und von Consu- wie HDFS oder einen anderen Flume- mern aus Topics konsumiert. Weil Kafka Agenten. Daten verbleiben solange im Ziel ist die Transformation und das Ab- ein verteiltes System ist, werden diese To- Channel, bis ein Sink sie verarbeitet. legen von Sensordaten in einer Oracle- pics partitioniert und auf mehrere Knoten Es gibt fertige Schnittstellen, sodass un- NoSQL-Datenbank (und gegebenenfalls repliziert. Die redundante Speicherung terschiedliche Sources und Sinks einfach auch in HDFS, siehe Abbildung 1). Hierbei stellt Hochverfügbarkeit und Skalierbar- angebunden werden können. Flume rep- sollen die Daten aus dem Datenstrom keit sicher. Hier kommt ein Replikations- liziert keine Events – wenn der Knoten mit

70 www.aoug.at • www.doag.org • www.soug.ch Abbildung 2: Übersicht der genutzten Komponenten − Apache Flume, Apache Kafka, Oracle NoSQL und Oracle Big Data Cloud Service

dem Flume-Agenten abstürzt, verliert man kationsfaktor von drei vorgehalten. Die werden, die aus den XML-Dateien zu ext- erst einmal den Zugriff auf die Events im Replikation auch über Datacenter hin- rahieren sind. Ein Beispiel für einen sol- Channel. Durch die Verteilung von meh- weg liefert Hochverfügbarkeit. Es wird chen Key-Path ist „/HH/4711/Blech“. Es reren Agenten über einen Cluster erreicht auch von den Replikaten gelesen (Load gibt keine Standard-Abfragesprache, aber man horizontale Skalierbarkeit. Balancing) und Treiber berücksichtigen eine Verwendung von SQL ist durch Nut- Flume enthält bereits Schnittstellen für Netzwerk-Latenzen. Durch die dynami- zung von Oracle-Big-Data-SQL möglich. Kafka und kann sowohl als Consumer als sche Partitionierung und Verteilung sind Die Oracle-NoSQL-Datenbank erlaubt auch als Producer dafür fungieren. Flume Hochverfügbarkeit und Skalierbarkeit ga- über das Table-API den Zugriff auf das liefert in dieser Kombination vorgefertigte rantiert. Konsistenz und Persistenz sind Table-Interface des Datenstores. Tables Schnittstellen, Kafka garantiert Stabilität: konfigurierbar (ACID <-> BASE). sind Tabellen-Abstraktionen mit Zeilen Sobald die Daten in Kafka residieren, kön- Das Datenmodell als Key-Value-Store und Spalten und ähneln damit Tabellen in nen sie nicht mehr verloren gehen. Die Nut- besteht aus einem obligatorischen Ma- relationalen Datenbanken. Tables haben zung eines Flume-Agenten zusammen mit jor (primären) Key und einem fakultati- einen wohldefinierten Primary Key. Das Kafka wird auch als „Flafka“ bezeichnet. ven Minor (sekundären) Key sowie den Table-Interface ermöglicht darüber hin- Der erste Schritt beim Aufbau einer zugeordneten Werten (Values). Diese An- aus die Nutzung von sekundären Indizes, Streamingdaten-Pipeline ist die Über- sammlung von Key-Value-Paaren wird die über separate Strukturen den Index- legung, wie die Daten am besten abge- auf Partitionen verteilt gespeichert. Glei- werten die entsprechenden Primary Keys speichert werden sollten, damit eine op- che Major Keys werden gemeinsam abge- zuordnen und so schnellen Zugriff auf die timierte, schnelle Analyse erfolgen kann. legt (Daten-Kollokation). Einfache Zugriffe Values ermöglichen. Unterstützte Daten- Um einzelne Sätze aus großen Datenbe- sind über GET, PUT und DELETE möglich. typen sind zum Beispiel Integer, String, ständen nachträglich zu verändern oder Die Identifizierung der Values erfolgt über Date, Array, Map und Record. schnell zu lesen, eignen sich bestimmte Teile des Keys, der Value wird ausgelesen. NoSQL-Datenbanken wie Oracle NoSQL Oracle NoSQL bietet auch die Mög- oder Apache HBase hervorragend. Die Au- lichkeit, sogenannte „Key-Paths“ zu defi- Nutzung und Installation der toren haben sich für die Transformation nieren, in denen der Schlüssel aus einem Komponenten und das Ablegen von Sensordaten in einer Pfad von Teilschlüsseln zusammenge- Oracle-NoSQL-Datenbank entschieden. setzt ist. In unserem Fall sollte dieser Pfad Alle Komponenten sind Bestandteil des Oracle NoSQL ist ein verteilter Key-Value aus den drei Attributen „Ort“, „Maschi- Oracle Big Data Cloud Service mit Aus- Store, mit Unterstützung von transaktio- nen-ID“ und „Material“ zusammengesetzt nahme der NoSQL-Datenbank, die nach- naler Verarbeitung (Create, Read, Update & Delete) und schnellem Zugriff auf einzel- ne Sätze über Keys (siehe Abbildung 3). Der Artikel beschränkt sich auf eine .channels.channel-kafka.producer.max.request.size=18000000 Speicherung in der NoSQL-Datenbank, .channels.channel-kafka.producer.max.partition.fetch. bytes=18000000 einmal als Key-Value-Store und einmal .sources.src-spooldir.deserializer.maxLineLength=23000000 über das Table-API. Daten sind in Oracle NoSQL typischerweise mit einem Repli- Listing 1

Red Stack Magazin 03/2018 71 Datenbank

installiert wurde. Der Oracle Big Data Schnittstellen angepasst beziehungsweise sucht werden, aber nicht nach allen Maschi- Cloud Service ist in diesem Fall ein Clus- Transformationen in Spark, Python oder nen für ein bestimmtes Material. ter mit neun Knoten und insgesamt 306 Java eingebunden werden. Für die Verar- Bei Verwendung des Oracle-NoSQL- Cores, 2,3 TB Memory und 864 TB Plat- beitung einzelner Datensätze oder geringer Table-API kann über beliebige Teilschlüs- tenplatz. Dahinter steckt eine Oracle Big Datenmengen aus großen Datenbestän- sel gesucht werden. Hier wurden dann Data Appliance, also ein Engineered Sys- den eignen sich NoSQL-Datenbanken wie neben dem unveränderten Primary Key tem mit Oracle Linux, der Cloudera-Distri- Oracle NoSQL sehr gut. In diesen Tests hat die beiden Secondary Keys „Material“ bution, die Apache-Hadoop-Komponen- man sich auf Oracle NoSQL konzentriert. und „Maschinen-ID/Material“ angelegt. ten beinhaltet, und Oracle-Software wie Es ist einfach zu installieren, skalierbar, Diese drei Keys ermöglichen nun die Su- Advanced Analytics For Hadoop (ORAAH). hochverfügbar und für selektive Anfragen che über eine beliebige Schlüssel-Kombi- Flume enthält fertige Schnittstellen zur sehr performant. Es bietet originär über nation. Alle Suchoperationen sind dabei Datenspeicherung im Hadoop-Ökosys- Major Keys und Minor Keys guten Zugriff hochperformant und erlauben einen ein- tem, jedoch nicht für Oracle NoSQL. Um auf bestimmte selektive Datenbestän- fachen Zugriff auf beliebige Teilmengen die NoSQL-Datenbank als Sink für Flume- de. Über das Oracle-NoSQL-Table-API in der gespeicherten XML-Dateien, solan- Events nutzen zu können, wurde ein Code- Kombination mit Sekundär-Indizes wer- ge sich die gesuchte Teilmenge über die Beispiel auf GitHub (siehe „https://github. den vielfältige Selektionen von einzelnen Schlüsselwerte eingrenzen lässt. com/gvenzl/FlumeKVStoreIntegration“) ge- Datensätzen bis hin zu kleineren Daten- nutzt. Es erlaubt jedoch keine komplexeren mengen unterstützt. Für komplexere An- Key-Strukturen, da es alle Sonderzeichen forderungen muss man jedoch relativ viel Fazit aus dem Schlüssel eliminiert. Deshalb wur- Zeit einplanen, da die Umsetzung in der de das Git-Projekt dupliziert und für die be- Big-Data-Welt mit Programmieraufwand, Die vorgestellten Lösungsansätze sind nötigten Zwecke angepasst. Integration in Entwicklungsumgebungen gut geeignet für alle Anwendungen, die Als Value sollte die komplette XML- wie Maven und der Kontrolle der Kompati- eine schnelle Auswertung von Daten aus Datei verwendet werden. Da einige der bilität der Softwareversionen unterschied- einem begrenzten Zeitraum erfordern. Dateien in diesem Fall bis zu 11 MB groß licher Komponenten verbunden ist. Kafka, Flume und Oracle NoSQL (und ge- waren, war die Konfiguration des Kafka- Mit dem angepassten Code lassen sich gebenenfalls HDFS) bieten in Kombinati- Channels anpassen, um eine fehlerfreie dann jedoch die Dateien (hier: XML-Dateien) on eine performante, skalierbare Mög- Übertragung der Daten zu gewährleisten. hochperformant in der NoSQL-Datenbank lichkeit, Messages in der Big-Data-Welt zu Hier war insbesondere die Anpassung der ablegen. Die definierte Key-Struktur ermög- verarbeiten und später abzufragen. folgenden Parameter auf die hier angege- licht eine einfache Suche in dem Key-Value Diese Kombination liefert bereits ei- benen Werte notwendig (siehe Listing 1). Store auch nach Teilschlüsseln. Allerdings nen guten Funktionsumfang und deckt müssen bei dem Key-Value-API immer die viele Bedarfe ab. Bei komplexeren An- führenden Schlüsselwerte bei der Suche forderungen wie in unserem Testbeispiel Ergebnisse spezifiziert werden. In diesem Beispiel, wenn wird man aber um Programmieraufwand der Key aus dem Pfad „///“ besteht, kann zwar nach fahrung der Autoren mit hohem initialen nenfalls HDFS) bieten eine performante, den Werten aller Maschinen eines Ortes ge- Zeitaufwand verbunden. skalierbare Möglichkeit, Messages in der Big-Data-Welt zu verarbeiten und später abzufragen. Kafka und Flume sind Soft- ware-Lösungen, mit denen man relativ schnell einfache Anforderungen umsetzen kann. Kafka ist eine sehr robuste, vielsei- tig einsetzbare Big-Data-Komponente, die über das Topic-Konzept einen Datenstrom auch in verschiedene Verarbeitungssträn- ge laufen lassen kann. So werden bei- spielsweise XML-Dateien original in HD- FS-Parquet-Files archiviert und parallel können dieselben Daten in einem zweiten Strom transformiert und weiterverarbeitet werden. Dieses Konzept wird aus Sicht der Autoren viel Verbreitung finden. Flume stellt fertige Schnittstellen mit be- Marcus Bender Thomas Robert stimmten Funktionalitäten bereit. Aufwen- [email protected] [email protected] digere Transformationen sind jedoch allein über Kafka und Flume (Flafka) nicht abbild- Dr. Nadine Schöne Rainer Marekwia bar. Dafür müssen wie in diesem Fall die [email protected] [email protected]

72 www.aoug.at • www.doag.org • www.soug.ch Wir begrüßen unsere neuen Mitglieder

Persönliche Mitglieder Firmenmitglieder DOAG

›› Peter von Zimmermann ›› Joachim Jansen ›› Viktor Hinterleitner, HiSolutions AG ›› Sven Kostka ›› Detlef Wildenhoff ›› Deniz Yalman ›› Nebojsa Petrovic ›› Joachim Stahlberg ›› Iradj Atchatchloui ›› Martin Schrader ›› Yoba Francis ›› Olaf Nowatzki ›› Nikhil Wani ›› Hala Algendy ›› Nicole Schneidereit ›› Daniel Schreiber

06.09.2018 Termine Regionaltreffen NRW August Martin Schmitter Düsseldorf

10.09.2018 10.08.2018 Regionaltreffen Thüringen Juli DOAG Datenbank Webinar: Jörg Hildebrandt Oracle Database 18c – Weimar New Performance Features Christian Antognini 11.09.2018 online 05.07.2018 Regionaltreffen Hannover Regionaltreffen NRW Andreas Ellerhoff 21.08.2018 Hannover Martin Schmitter Regionaltreffen Bremen Dortmund Ralf Kölling 12.09.2018 Bremen Regionaltreffen Berlin/Brandenburg 12.07.2018 Regionaltreffen Stuttgart Michael Keemers & Mylène Diacquenod 30.08.2018 Jens-Uwe Petersen & Anja Stollberg Regionaltreffen Karlsruhe Stuttgart 13.09.2018 Reiner Bünger HA Day Hochverfügbarkeit Karlsruhe 13.07.2018 Martin Klier & Jürgen Vitek DOAG Datenbank Webinar: Hamburg Pluggable Database online 14.09.2018 DOAG Datenbank Webinar 18.07.2018 online Regionaltreffen München/Südbayern Andreas Ströbel September 17.09.2018 München Regionaltreffen Halle/Leipzig Matthias Reimann 19.07.2018 03.09.20186 20.09.2018 Regionaltreffen Nürnberg/Franken Regionaltreffen Osnabrück/Bielefeld/ DOAG 2018 Big Data Days: Daten, der Martin Klier & Thomas Köppel Münster Nürnberg Treibstoff der digitalen Gesellschaft Andreas Kother & Klaus Günther Dresden

Red Stack Magazin 03/2018 73 Timeline

Impressum

Red Stack Magazin wird gemeinsam herausgegeben von den Oracle-Anwendergruppen DOAG Deutsche ORACLE-Anwendergruppe e.V. (Deutschland, Tempelhofer Weg 64, 12347 Berlin, www.doag.org), AOUG Austrian Oracle User Group (Österreich, Lassallestraße 7a, 1020 Wien, www.aoug.at) und SOUG Swiss Oracle User Group (Schweiz, Dornacherstraße 192, 4053 Basel, www.soug.ch).

Red Stack Magazin ist das User-Magazin rund um die Produkte der Oracle Corp., USA, im Raum Deutschland, Österreich und Schweiz. Es ist unabhängig von Oracle und vertritt weder direkt noch indirekt deren wirtschaftliche Interessen. Vielmehr vertritt es die Interessen der Anwender an den Themen rund um die Oracle-Produkte, fördert den Wissensaustausch zwischen den Lesern und informiert über neue Produkte und Technologien.

Red Stack Magazin wird verlegt von der DOAG Dienstleistungen GmbH,Tempelhofer Weg 64, 12347 Berlin, Deutschland, gesetzlich ver- treten durch den Geschäftsführer Fried Saacke, deren Unternehmensgegenstand Vereinsmanagement, Veranstaltungsorganisation und Publishing ist.

Die DOAG Deutsche ORACLE-Anwendergruppe e.V. hält 100 Prozent der Stammeinlage der DOAG Dienstleistungen GmbH. Die DOAG Deutsche ORACLE-Anwendergruppe e.V. wird gesetzlich durch den Vorstand vertreten; Vorsitzender: Stefan Kinnen. Die DOAG Deutsche ORACLE-Anwendergruppe e.V. informiert kompetent über alle Oracle-Themen, setzt sich für die Interessen der Mitglieder ein und führen einen konstruktiv-kritischen Dialog mit Oracle.

Redaktion: Fotonachweis: Anzeigen: Sitz: DOAG Dienstleistungen GmbH Titel: © jossdiim /123RF Simone Fischer, DOAG Dienstleistungen (Anschrift s.o.) S. 11: © everythingpossible/123RF GmbH (verantwortlich, Anschrift s.o.) Chefredakteur (ViSdP): Wolfgang Taschner S. 13: © deniskot/123RF Kontakt: [email protected] Kontakt: [email protected] S. 18: © Pavlo Vakhrushev/123RF Mediadaten und Preise unter: Weitere Redakteure (in alphabetischer S. 23: © Jorgen McLeman/123RF www.doag.org/go/mediadaten Reihenfolge): Lisa Damerow, Mylène S. 29: © bluedesign/fotolia Diacquenod, Marina Fischer, Klaus-Michael S. 37: © microone/123RF Hatzinger, Sanela Lukavica, Yann Neuhaus, S. 41: © Natalia Merzlyakova/123RF Fried Saacke S. 47: © Alexander Kharchenko/123RF S. 50: © Dzianis Rakhuba/123RF Druck: S. 55: © macrovector/123RF adame Advertising and Media GmbH, S. 63: © mertsalov/123RF www.adame.de S. 69: © Kheng Ho Toh/123RF Titel, Gestaltung und Satz: S. 73: © apinan/123RF Alexander Kermas, DOAG Dienstleistungen S. 73: © Dzianis Kuryanovich/123RF GmbH (Anschrift s.o.) S. 73: Designed by Katemangostar/Freepik

Alle Rechte vorbehalten. Jegliche Vervielfältigung oder Weiterverbreitung in jedem Medium als Ganzes oder in Teilen bedarf der schriftlichen Zustimmung des Verlags. Die Informationen und Angaben in dieser Publikation wurden nach bestem Wissen und Gewissen recherchiert. Die Nutzung dieser Informationen und Angaben geschieht allein auf eigene Verantwortung. Eine Haftung für die Richtigkeit der Informationen und Angaben, insbesondere für die Anwendbarkeit im Einzelfall, wird nicht übernommen. Meinungen stellen die Ansichten der jeweiligen Autoren dar und geben nicht notwendigerweise die Ansicht der Herausgeber wieder.

Inserentenverzeichnis

dbi services sa S. 17 ORACLE Deutschland U 2 Robotron Datenbank- U 3 www.dbi-services.com B.V. & Co. KG. Software GmbH www.oracle.com www.promatis.de DOAG e.V. S. 39, 46 www.doag.org PROMATIS software GmbH S. 19 Trivadis AG U 4 www.promatis.de www.trivadis.com MuniQsoft GmbH S. 3 www.muniqsoft.de

74 www.aoug.at • www.doag.org • www.soug.ch Testen Sie die Oracle Cloud Ihr Partner für mit Credits im Wert von Engineered Systems & $300 Cloud-Lösungen Oracle Engineered Systems Oracle Cloud

Registrieren Sie sich und erhalten Sie eine Gutschrift SaaS für das Pay-as-you-go-Abonnement von Oracle Exadata PaaS IaaS Cloud-Services in drei einfachen Schritten: ODA cloud.oracle.com/de_DE/tryit PCA

 voll integrierte Betriebsplattformen für  PoC, Benchmarks und weitere Evaluierungen in der Datenbanken und Applikationen Private Could, Public Cloud und Cloud@Customer

 höchste Verfügbarkeit, Performance  Workshops, Assessments und TCO-Betrachtungen und Skalierbarkeit mit ODA, Exadata, PCA, für Ihre Anwendungen ZFSSA und weiteren Systemen  Beratung, Unterstützung und Durchführung von  professionelle und praxisorientierte Beratung Migrationsprojekten durch unsere Experten  Betriebsunterstützung und Managed Services

MIT DATEN MEHR BEWEGEN. Nr. 3 | Juli 2018 | ISSN 2366-7915 | www.doag.org Wir leben Cloud. Red StackMagazin Cloud-Services

Bei den mittlerweile unüberschaubaren Cloud-Angeboten sind wir Ihr verlässlicher und vorausschauen- der Navigator für Ihren Weg in die Cloud. Für Sie haben wir sämtliche Aspekte im Blick und entscheiden gemeinsam mit Ihnen die richtige Strategie. Wir sind an Ihrer Seite: von der Beratung über die Planung und Umsetzung bis hin zu Training und Betrieb. Sprechen Sie mit uns. www.trivadis.com/cloud-solutions | [email protected]

Oracle NoSQL Im Interview Topaktuell Verarbeitung von Andre Lünsmann, Die autonome Streamingdaten Barmenia Versicherungs- Oracle-Datenbank BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH gruppe