Und da sind wir wieder: Oracle PAAS Summercamp in Lissabon. Ich durfte dieses Jahr zum zweiten Mal nach 2017 das Oracle Paas Summercamp besuchen. Im Folgenden möchte ich meine Erfahrungen aus dem Track Application Development mit Microservices und Containern mit euch teilen.

Thema des Tracks war: Lerne die verschiedenen Möglichkeiten zum Entwickeln von Software in der Oracle Cloud kennen. Und so umfasste der Track auch diverse Themen rund um Application Development wie Anwendungsentwicklung mit JavaScript (Oracle JET), DevOps Tools und diverse Möglichkeiten zum Ausliefern von Applikationen auf ein bestimmtes Zielsystem.

Der Teil des Trainings, der sich mit Programmierung befasste wurde von Geertjan Wielenga (Product Manager Oracle JET) geleitet. Wir durften erleben, wie einfach es ist mit Oracle JET 5.2.0, Oberflächen für Desktop Anwendungen zu programmieren. Dank des CLI „ojet“ sind Tasks, wie das Initialisieren einer Applikation, oder das Anlegen eines Composites (eine Gruppierung von JET UI Komponenten), einfache Einzeiler. Das Anwenden der Oracle JET UI Komponenten sind auch dank des Cookbooks eine einfache Aufgabe.

Wichtig für alle, die sich im Moment Fragen was ist Oracle JET überhaupt? Oracle hat das Rad hier nicht neu erfunden. JET steht für „JavaScript Extension Toolkit“ und beschreibt eine Sammlung von JavaScript-Libraries. In JET enthalten sind ausschließlich Business Ready Libraries wie Knockout, RequireJS oder JQuery. Das einzige was Oracle dazu beisteuert sind einige UI Komponenten und etwas Logik auf der Model-Ebene. Mehr zur Oracle JET Architektur gibt es hier.

Was hat Oracle JET dann mit der Oracle Cloud zu tun? Die gesamte Oberfläche der neuen Oracle Cloud Infrastructure (OCI) Umgebung ist in JET gebaut worden. Oracle nutzt also das Tool selbst zur Entwicklung ihrer eigenen Produkte. Das sorgt dafür, dass die Weiterentwicklung und Verbesserung von Oracle JET im eigenen Interesse von Oracle ist und somit auch vorangetrieben wird. Zur Entwicklung steht außerdem der Visual Builder Cloud Service zur Verfügung, der eine Low Code Umgebung zur Oracle JET Entwicklung bereitstellt.

Nachdem man dann mit JET (oder auch Angular oder Java) seine Anwendung gebaut hat, stellt die Oracle Cloud seinen Nutzern auch Services zur Verfügung, die zur Auslieferung und dem Hosten derselben genutzt werden können.

builder.png

Der (Autonomous) Developer Cloud Service stellt an sich selbst den Anspruch den DevOps-Zyklus (teilweise) zu unterstützen. Der Developer Cloud Service soll Projektteams bei der Durchführung von Softwareentwicklungsprojekten unterstützen. Dabei stellt er Werkzeuge zum Issue-Tracking, sowie zur Versionskontrolle in Git, über Continous Integration Tools wie Hudson bis hin zu Dokumentationsplattformen wie Confluence o.ä. zur Verfügung. Das Großartige: Die Provisionierung und Konfiguration des Services ist in unter 10 Minuten erledigt und das Beste: Er ist kostenfrei.

In den Build und Deploy Tools können selbstverständlich andere Services integriert werden. So kann zum Beispiel SQL-Code auf einer Datenbank ausgeführt werden oder ein Maven oder Gradle Build angestoßen werden (siehe Bild rechts).

Nachdem man nun den Build erstellt hat, möchte man das Programm natürlich auch auf ein Zielsystem ausliefern. Auch dafür bietet der Developer Cloud Service entsprechende Funktionen. Die Zielsysteme sind in diesem Fall entweder der Java Cloud Service oder der Application Container Cloud Service.

Der Java Cloud Service stellt im Grunde eine Weblogic Instanz in der Cloud bereit. Das beeindruckende in diesem Moment ist, dass er mit einer variablen Anzahl von Managed Servern (einer, zwei oder vier), provisioniert werden kann. Er bietet außerdem ein Out-of the Box Load-Balancing. Weitere Informationen über den Java Cloud Service findet ihr hier.

applications.png

Der Application Container Cloud Service stellt Funktionalität zum Hosten eines Docker Containers bereit. Hier können aber „nur“ Container für Anwendungen, die in einer bestimmten Programmiersprache geschrieben sind ausgeführt werden und zwar für die Sprachen, für die es ein entsprechendes Image für eine Laufzeitumgebung bei Oracle oder im DockerHub gibt, das von den Application Container Cloud Services angeboten wird (siehe Bild rechts).

Zuguterletzt möchte ich noch kurz auf die Serverless Alternative „ProjectFN“ von Oracle eingehen. Was bedeutet nun Serverless? Für Oracle bedeutet es „Online-Funktionen“ die Input in einen Output verwandeln. Funktionen sind dabei nichts anderes als Code gepackt in einem Docker Container mit allen notwendigen Abhängigkeiten. Der Unterschied zu einem Container im eigentlichen Sinn ist, dass die Funktion tatsächlich ausschließlich eine Laufzeitumgebung für eine ganz spezielle Funktionalität bereitstellt, wie zum Beispiel das Berechnen einer Summe. Eine Funktion ist also der kleinste denkbare Container. Es ist dabei egal, in welcher Sprache die Funktion geschrieben ist, wenn es einen entsprechenden Container zum Ausführen der Funktion gibt, kann nahezu jede beliebige Sprache verwendet werden. Der Use-Case für ein solches Konstrukt könnten z.B. Rest-Endpunkte sein, die von einem Mobilen Client aufgerufen werden.

Wichtig zu erwähnen ist: Es existiert kein Vendor Lock! Wenn gewünscht, können Oracle Functions (ProjectFN) auch on Premise, in AWS oder sonst wo betrieben werden. Die Oracle Cloud bietet jedoch auch hier Vorteile, wie zum Beispiel die OCI Registry, die eine Docker Registry bereitstellt.

Wichtig im Bezug auf Oracle Functions: Wenn Oracle Functions in der Oracle Cloud betrieben werden, bezahlt man FaaS pro Aufruf der Funktion. Wenn die Funktion nicht genutzt wird, entstehen auch keine Kosten.

Wenn ihr FunctionFN ausprobieren wollt: Hier gibt es ein GetStarted! Ein Tipp von meiner Seite: Nutzt ein Unix-basiertes System! Es gibt eine Windows Integration, die steckt aber noch in der Entwicklung. Das Projekt befindet sich mit Version „0.3.551″ aber auch noch in der Beta-Phase.

Alle Beiträge von janwinkels

Schreibe einen Kommentar