X

Neuste Trends, Tipps, Strategien &
Events rund um das Thema Cloud

Cloud Native Services: Bei Speicher können Java-Entwickler in der Cloud richtig Geld verbrennen

Testfrage: Was sind bitte Annotations-Metadaten? Wenn Sie's nicht wissen, geht es Ihnen wie den meisten Programmierern, und das ist soweit erstmal in Ordnung, sagt Graeme Rocher. Er ist Entwickler von Java-Anwendungframeworks, wozu auch Grails gehört.

 

Auf einen Blick: Bei Speicher können Java-Entwickler in der Cloud richtig Geld verbrennen

 
Java-Entwicklung in der Cloud muss auf optimale Speicher-Ökonomie achten, um Kosten zu sparen. Micronaut und Oracle Cloud Native Services bieten das.

 

Aber er hat auch eine Warnung für Sie: In der cloud-nativen Welt wird es sehr schnell sehr wichtig, Interpretationen der Logik eines Java-Programms und die Ausführung auf Cloud-Servern über Anmerkungen und andere Kompilierungsdetails deutlich besser hinzubekommen. Wenn Entwickler über diese zugrunde liegenden Details nicht Bescheid wissen, kann das ganz schön ins Geld gehen.

Rocher stellt fest: Die meisten Entwickler haben mit der Oberfläche des Frameworks, den Tools, APIs, der Dokumentation des Frameworks und der Handhabung zu tun; das ist ihr Ding. Erst wenn die Anwendung zur Produktion gebracht wird, merken sie  plötzlich: "Moment mal, das Teil braucht ja ein Gigabyte Speicherplatz!"

Bisher wurden Java-Anwendungen zur Laufzeit meist von der Java Virtual Machine verwaltet; heute setzen Entwickler oft auf Kubernetes, das so genannte Cloud-Betriebssystem, weil es containerisierte Anwendungen skaliert orchestriert.

Aber ob es nun Kubernetes oder eine Umgebung wie die Oracle Cloud Infrastructure ist, die die Anwendung verwaltet – Entwickler, die Cloud-Anwendungen schreiben, müssen anders denken. "Sie müssen die App sehr reaktionsschnell auf Neustarts und Failover sowie das Herunterfahren und Wiederaufsetzen auslegen und sie in Bezug auf Startzeit und Speicherverbrauch optimieren", sagt Rocher, der täglich als Senior Engineer bei OCI arbeitet, wo Grails gewartet wird. "Es läuft immer darauf hinaus, dass Ihre Anwendung Ressourcen verbraucht – und Ressourcenverbrauch heißt Kosten."

 

Höchste Zeit zur Optimierung für Serverless

Immer, wenn ein neues Computing-Paradigma kommt, kommt unweigerlich auch der große Aha-Moment. Im Falle der Cloud ist solch ein Moment das Risiko versteckter Kosten für IT-Architekturmuster, die eigentlich wirtschaftlich sein sollten: Microservices.

 

Graeme Rocher, Gewinner des Oracle Groundbreaker Awards, hat kürzlich ein neues Open-Source-Projekt namens Micronaut.Oracle herausgebracht.

Als Rocher im Oktober für seine Leistungen im Sachen Open Source mit einem Groundbreaker Award beim Oracle Code One in San Francisco ausgezeichnet wurde, veröffentlichte er am selben Tag ein neues Open-Source-Projekt namens Micronaut. Was ist das nun wieder? – Micronaut ist wie Grails, das von ihm mitentwickelte Open Source Web Application Framework, JVM-basiert. Im Gegensatz dazu ist Micronaut jedoch ein modulares, leicht testbares Framework für den Aufbau moderner Microservice- und Serverless-Anwendungen.

"Im gesamten Java-Ökosystem haben wir noch eine Menge darüber zu lernen, wie wir Anwendungen effizienter und speicherfreundlicher gestalten können", sagt Rocher. Riesige in Java geschriebene Systeme wie Hadoop, Kafka und Cassandra unterstützen lang laufende Prozesse, die von der Just-in-time-Kompilierung in JVM profitieren können. "Aber für kürzere Prozesse, die ja mit serverless Computing im Trend liegen – Lambda, Funktionen, Knative – landen Sie auf einmal in einer Situation, die eher für schnelle Kaltstarts und geringen Speicherbedarf sowie kurze Prozesse optimiert ist. Die Optimierungen, wie sie JVM bietet, gehen einfach verloren, wenn der Prozess nur kurz ausgeführt wird und dann aufhört, wie im Utility-Computing-Modell."

SmartThings, eine Tochtergesellschaft von Samsung Electronics, ermöglicht es ihren Endkunden beispielsweise, ihre Haushaltsgeräte wie Leuchten, Schlösser und Steckdosen über eine Anwendung auf ihren mobilen Geräten zu steuern, zu automatisieren und zu überwachen. SmartThings hatte die Notwendigkeit geortet, von seiner bestehenden monolithischen Architektur auf ein schnelleres, flexibleres und mikroservice-basiertes System umzusteigen. Sie entschieden sich für Micronaut, weil es in der Lage ist, kritische Operationen mit einer Geschwindigkeit von unter einer Sekunde durchzuführen und zugleich eine schlanke Cloud-Bereitstellung zu unterstützen.

Mit Micronaut erhöhen sich Anwendungsstartzeit und Speicherverbrauch nicht automatisch mit der Anzahl der Codezeilen in einem Programm. Damit arbeitet Micronaut nicht nur für Utility Computing, sondern auch als allgemeine Entwicklungsumgebung, die auf Geräten mit geringem Speicherbedarf wie Android oder auf Hobby-Mikrocontrollern wie Raspberry Pi läuft.

Das neue Projekt von Rocher kommt einem schnell wachsenden Bedarf in einer nativen, polyglotten, geräteunabhängigen Cloud-Welt entgegen und passt gut zu Projekten wie GraalVM, um nativen, schneller laufenden Java-Code zu kompilieren. Projekte wie Micronaut und GraalVM machen auch deutlich, wie sich Java weiterentwickelt.

 

Java muss nicht elefantös sein

"Die Leute denken immer, Java ist halt Schwergewichtsklasse", sagt Rocher. Aber diesen Ruf hat es eigentlich mehr von den APIs und Tools, die die JVM zur Verfügung stellt, um Frameworks zu bauen. "Sie beruhen von jeher auf der Verwendung von Runtime Reflection, also der Analyse von Annotations zur Laufzeit. Anwendungen auf diese Art zu entwickeln führt zwangsläufig zu einem erhöhten Speicherverbrauch."

Im Gegensatz dazu ist der Prozess der Übersetzung von Programmiersprachen in Java-Bytecode oder von Bytecode in Maschinencode vielen Entwicklern eher unbekannt. Das wird aber in bestimmten Anwendungsplattformen stark genutzt. "Was Micronaut nun macht, ist, viel von dieser Philosophie zu übernehmen und sie auf die serverseitige Programmierung anzuwenden."

Die Zeiten, wo Sie sekundenlang auf den Start einer Java-Anwendung warten mussten, liegen hinter uns – dank der Einführung orchestrierter Mikroservices, die schnell hoch- und herunterfahren können. Und das ist nicht der einzige Vorteil des neuen Frameworks von Rocher. Micronaut integriert sich selbst in Tools zur Rückverfolgung und Sicherheit und muss nicht in Container verpackt werden.

"Wenn Sie an Java-Anwendungen denken, kommt Ihnen bei vielen Funktionen immer diese Abhängigkeit von einem Container in den Sinn. Mit Micronaut werden viele dieser Funktionen aber zur Laufzeit kompiliert, so dass der Containerbedarf wegfällt. Das macht es ein ordentliches Stück einfacher, Ihre Anwendung zu testen."

 

Registrieren Sie sich, um als Erster Zugriff auf Oracle Cloud Native Services zu bekommen!

 

Kontakt:

Wenn Sie noch mehr darüber wissen möchten, spreche ich gerne mit Ihnen darüber, per E-MailXingLinkedIn oder Twitter. Enzo Favuzzi, Business Development Manager, Cloud Platform.

Kommentieren

Kommentare ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.