Der zweite Tag startete um 9Uhr mit einer Keynote über Security in Verbindung mit der Cloud. Ein großer Teil des Vortrags bestand darin, klar zu machen, dass Sicherheitsprobleme beim Anschluss an die Cloud nicht unbedingt nur in der Gefahr, dass die Daten in der Cloud geklaut werden, sondern auch dass Angreifer aus der Cloud ins Firmennetz kommen können. Später wurden auch noch Optimierungen im Netzwerk angesprochen, aber insgesamt wirkte der Vortrag inhaltich wie etwas von allem.
Von 10-12 hatte ich dann meine beiden Vorträge. Im ersten Vortrag habe ich vorgestellt wie man dynamisch in größeren Datenmodellen effektiv und zur Laufzeit mittels Metadaten Daten in der Datenbank vergleichen kann. Die Daten werden dabei nicht einfach in einem Report dargestellt, sondern mit Kontextinformationen angereichert, so dass ein Endbenutzer in seiner Anwendung sehen kann wo Daten verändert wurden.
Im zweiten Vortrag gings dann um CI/CD mit Oracle Datenbanken. Mir war von anfang an klar, dass ein 45Minuten Slot kaum dafür ausreichen kann, da ich Schulungen zu dem Thema bei mehreren Firmen gegeben habe, wo man mindestens einen ganzen Workshoptag dafür braucht. Nichtsdestotrotz habe ich die Themen Skripting, Infrastruktur, Versionierung, Abhängigkeitsbehandlung, Prozesse & Jenkins einmal in kürze vorgestellt. Auch wenn hier und da ein paar Details nicht behandelt wurden, so konnten die Teilnehmer sich ein Bild davon machen, was man alles für eine Automatisierungsunterstützung in der Datenbankentwicklung machen kann.
Um 12Uhr gings dann mit dem Thema "Vom Monolithen zu Microservices" weiter. Eingestiegen ist der Vortrag mit einer Analyse eines vorhandenem Monolithen. Interessant war dabei ein Tools namens Structure101 mit dem man eine vorhandene Software analysieren kann und ermitteln, welche Klassen/Objekte vorhanden sind, wie diese verknüpft sind und ob es Code gibt der nicht benötigt wird. So wie es aussieht kann die Software aber nur C/C++ analysieren. Weiter wurde dann ein Framework namens Hysterix vorgestellt, welches zum Testen der Fehlertoleranz eingesetzt werden kann. Das Tool wurde von den Netflix Machern erstellt und ist auf GitHub verfügbar. Der Ansatz ist, dass man eine Anwendung aus Microservices testet und guckt wie diese mit dem Ausfall von Komponenten und Verzögerung bzw. Fehlinformationen umgehen kann. In einer Anwendung bestehend aus Microservices wird versucht so gut wie alles was sich trennen lässt als eigene Dienste laufen zu lassen, selbst die Oberfläche ist entkoppelt vom Rest. So lassen sich die einzelnen Komponenten getrennt mit mehreren Teams entwickeln, aber es kommt zwangsläufig zu Coderedundanzen. Beim "zerschneiden" eines vorhandenen Monolithen ist es dabei sehr schwierig direkt beim ersten Mal die richtigen Schnitte zu machen und so kann eine Umstellung auch schon mal länger dauern bzw. mehreren Anläufe benötigen. Zuletzt wurde noch die "Simian Army" vorgestellt, die eine gesamte Anwendung mit beliebigen Eingaben testet und einzelne Services lahmlegt. Im Prinzip wird so ein Stresstest gegen das Hysterix Framework durchgeführt und man guckt sich in den Logs und an der Anwendung an wie Robust diese läuft.
Nach ein paar Gesprächen zur Mittagspause gings um 14Uhr weiter mit dem Thema Microservices. Diesmal zum Thema Deployment von Microservices. Am Beispiel vom Otto Webshop wurde von Guido Steinacker vorgestellt wie dort die Micrsoservices geschnitten und erstellt wurden. Direkt beim Einstieg wurde unterstrichen, dass pro Tag bis zu 100 Deployments auf der Produktion stattfinden und dies ohne zu lasten der Qualität zu gehen. Interessant dabei ist, dass Anpassungen die so in großer Zahl an einem Tag eingeführt werden mittels "feature Toggle" nur für einen Teil der Endbenutzer aktiviert wurden. So kann man ein Feature einbauen und nur bei 1% der Benutzer die Auswirkung beachten. Ähnlich wie Netflix hat auch Otto eine Menge von Tools geschaffen die auf GitHub zur Verfügung stehen. JLineUp, JSMine, Gatekeeper und JezHumble sind nur ein paar Tools die teils selber entwickelt wurden oder in der Microservice Entwicklung eingesetzt werden.
Nachdem das Hysterix Framework sich interessant anhörte habe ich um 15Uhr dann die Vortrag "Resilience mit Hysterix" angehört. Leider stellte sich schnell heraus, dass das Framework in Java geschrieben ist und nur in Java einsetzbar ist.
Um 16 Uhr hab ich dann zusammen mit Dietmar ein wenig über PL/SQL Installationsskripte und Optimierungen in diesem Bereich geredet bevor es dann wieder weiter ging.
Um 17Uhr gabs dann die zweiten Vortrag von Guido Steinacker zu Microservices. Dabei wurde vor allem genauer beleuchtet wie eine Oberfläche wie der Otto Webshop auch aus einzelnen Microservices erstellt wird. Aus meiner Sicht wirkt es schon etwas verstörrend wie man jede Komponente wie Navigation, Suche, Empfehlungen, Artikeldetails alles in einzelnen Teams entwickeln lässt und trotzdem eine stimmige Gesamtanwendung erhält. Ein guter Ansatz bei einer solch "verteilten" UI war auf jeden Fall wie AJAX einzusetzen um eben Inhalte die getrennt sind auch effektiv nachzuladen. Innerhalb von Otto wird auf Pair Programming gesetzt, was sich aus
meiner Sicht gut anhört, aber natürlich die doppelten Ressourcen bindet.
Im 18Uhr Slot habe ich dann noch ein paar Unterhaltungen geführt und dann um 19Uhr als abschließenden Vortrag mich Elchen und Elefanten gewidmet. Hier gabs zum Glück auch schon ein Bier zum Vortrag, den nach 10Stunden war man doch schon etwas "durch" im Kopf. Der letzte Vortrag behandelte dabei die Problematik, wie man innerhalb von Firmen mit Problemen umgehen kann die von anderen Personen ausgehen, welche meist 1-2 Gehaltsklassen über einem sind. Hier wurden eine Menge Beispiele geliefert, wie ein solches Problem aussehen kann, und was es für Verluste mit sich bringt, wenn man solche Probleme nicht löst. Der Vortrag war dabei zwar gut vorgetragen, aber brachte nicht so wirklich Lösungen mit sich.
Danach konnte man sich mit Bier und Fingerfood in kleiner Runde gemütlich unterhalten und müde ins Bett fallen.
Tuesday, December 20, 2016
Thursday, December 15, 2016
ITTage 2016 - Tag 1 - 13.12.2016
Der erste Tag starte bei mir mit InMemory Technologien bei
Oracle Datenbanken von Ulrike Schwinn. Hier gings vor allem darum verschiedene
Techniken vorzustellen die es nicht nur seit der neuesten Version 12c gibt.
Anfangen sollte man immer auf dem Hostsystem bzw. der virtuellen Umgebung und
sich ein Bild davon machen wie viel Ram und Plattenplatz die Maschine hat und
wie viel bisher für die Umgebung vorgesehen ist. Weiter wurden dann Themen wie AWR
Reports, Statspack und der Memory Advisor erwähnt. Auch Parameter wie
SGA_TARGET und DB_CACHE_SIZE_MIN sollten geprüft werden damit auch hier keine
Engpässe in der DB entstehen. Um einen Überblick zu bekommen wie es mit dem
Cache und konkreten Objekten aussieht bietet sich die View v$BH an.
Anschließend gings dann noch um das Thema Caching, in wie weit Tabellen im
Cache oder per IO nachgeladen werden (SMALL_TABLE_THRESHHOLD) oder das man im
Ausführungsplan sehen kann wo der result_cache greift.
Auch wenn ein großer Teil der Themen bekannt ist war es eine gute Übersicht und
ein super Einstieg.
Wie von anderen Konferenzen bekannt gibt‘s auch auf der
ITTage Konferenz Keynotes und die erste war von einem der MariaDB Gründer Kaj
Arnö. Auch wenn man als Oracle Spezialist wohl kein MariaDB einsetzt, war es
doch interessant zu wissen wie MariaDB so entstanden ist. Als Abspaltung von
MySQL und vom Namen der Tochter „Maria“ des anderen Gründers weiß man nun woher
die Datenbank kommt. Richtig interessant ist natürlich, wie schnell sich
MariaDB im Vergleich zu MySQL weiterentwickelt hat und wie verbreitet die
Datenbank auch in den ganzen Linuxdistributionen ist. Bisher war auch ein
Wechsel zwischen MariaDB und MySQL recht schnell möglich, aber ab der kommenden
Version geht Oracle mit MySQL explizit von MariaDB weg. Auch bekommt MariaDB in
Zukunft mit der BSL eine interessante Lizenzstruktur, welche im Prinzip nur bei
sehr großen Umgebungen oder Kunden mit sehr großem Umsatz als Lizenzkosten zum
Tragen kommt.
Im nächsten Vortrag gings dann um das Thema Multi Cloud
Sourcing. Dies war dein leider ein Herrstellervortrag, der im Gegensatz zu den
meisten anderen Vorträgen eher eine Pleite war. Klar ist ein Ansatz eines
lokalen Cloudanbieters, der die Daten in Deutschland vorhält und gute
Schnittstellen zu den großen Cloudanbietern vorhält auch gut, aber es war dann
doch zu sehr eine Werbeveranstaltung.
Im nächsten Slot hab ich dann mal nen Open Source im
Industrie 4.0 Bereich besucht der von Heinz Wilming gehalten wurde. Im
Gegensatz zu vielen Individuallösungen mit einem möglichst geringen Set an
unterschiedlichen Tools, wurde hier ein genau umgekehrter Ansatz vorgestellt.
Es wurden recht viele verschiedene Technologien gewählt, welche auch für die
Industrie zertifiziert sind, zusätzlich wurde eine „Mica Box“ (sowas wie ein
Industrie Rasperry Pie) eingesetzt um eine Flotte von Fahrzeugen zu managen.
Ich persönlich kann mir sowas eher nicht vorstellen mit den ganzen
Schnittstellen und verschiedenen Tools, aber durch die Standards und ohne
Individualentwicklung scheint es dennoch möglich zu sein, sowas im großen Stil
zu nutzen.
Nach den doch teils weit von Oracle entfernten Technologien
gings dann in einen Multitenant Vortrag von Johannes Ahrends. Hier gab’s dann
ein paar interessante Punkte die eine PDB nicht nur als getrennte Datenbanken
ansehen lässt sondern noch aufzeigt wie abhängig diese von der einen Instanz
sind. So ist in 12.1 kein Flashback nur in einer PDB möglich und man sollte
nicht vergessen, dass das ganze Thema auch Lizenzkosten extra kostet und die
PDB’s einzeln gepatched werden müssen. Aber in 12.2 ist es zumindest möglich
PDB’s mit verschiedenen Charsets in einer CDB laufen zu lassen, wobei man
natürlich beachten muss, dass die CDB als AL32UTF8 läuft und die PDB’s mit
anderem Charset vorher in einer anderen DB erstellt werden müssen.
Das nächste Thema wurde von Christian Grave vorgestellt und
es war „Lizenzverhandlung“. Im ersten Moment hatte ich noch vor dem trockenen
Thema zurückgeschreckt, aber von einer Person außerhalb von Oracle selber wollte
ichs dann doch mal hören. Der Vortrag war dann doch eine positive Überraschung
da die Folien nicht als dröge Textpräsentation aufgemacht war, sondern als
nette Geschichte und auf einem echten Fallbeispiel basierte. Interessant wie
man mit Verhandlungsgeschick auch eine Lizenzierung auf VMWare hinbekommen
kann, ohne jeden Kern zu bezahlen oder was man beachten sollte wenn man externe
Hoster einsetzt und diese auf einem die Infrastruktur so ändern, dass die
Lizenz überhaupt nicht dazu passt. Zuletzt noch die Einbindung des Oracle
Advisory Service als kostenlose Qualitätsüberprüfung zu nutzen hörte sich echt
gut an.
Weiter gings mit Randolf Geist und dem Cost Based Optimizer.
Auch wenn ich das Gefühl hatte einen Teil des Vortrags schon zu kennen gabs
auch hier ein paar interessante Punkte. Wer zum Beispiel den Optimizer komplett
alleine arbeiten lässt und einige Caching Mechaniken in seinen Querries nutzt,
sollte beachten, dass diese jede Operation so rechnet, als würde sie wirklich
ausgeführt werden und eben nicht gecached wird. Auch wenn es mit 12c einige
neue coole Features gegeben hat waren doch in 12.1 eine Menge von Features
aktiviert, die mit 12.2 wohl wieder per default deaktiviert sind, weil nicht
alle so vorteilhaft sind.
Im nächsten Vortrag gings dann zwar um SQL aber nicht nur um
Oracle. Markus Winand als Person hinter „use-the-index-luke“ und „modern SQL“
stellte die verschiedenen SQL standards vor und stellte gleich am anfang den
Vergleich von WIN 3.1 und SQL92 dar mit der Frage warum manche Abfragen
erstellen die aus den 90er stammenJ.
Insgesamt bekam man einen guten Überblick welche SQL Server, welche Standards
benutzen und dass man mit Oracle ganz gut fährt. Aber auch wenn ich den
großteil kannte, war es gut zu wissen, welche SQL Standards genau hinter
welchen Features stecken und dass die OFFSET Funktion in SQL eher nicht so
clever ist.
Beim letzten Vortrag von Urs Enzler über agile Strukturen
gabs dann nochmal nicht Oracle Kost. Aber ein paar interessante Punkte, sind
durchaus von agilen Projekten auch in APEX/Oracle gut zu nutzen. Vor allem das
Probleme oft von nicht funktionalen Fragen wesentlich mehr getrieben werden als
von funktionalen. Sprich die Anwendung muss an sich performant laufen und die
Anzahl User müssen gut mit der Anwendung arbeiten können, bevor man klärt was
die Anwendung selber machen soll.
Labels:
12c,
Cache,
Cloud,
Industrie 4.0,
ITTage,
Lizenz,
MariaDB,
Multitenant,
Optimizer,
Oracle,
SQL
Subscribe to:
Posts (Atom)