How provider-agnostic is Terraform really – a multi-provider approach for a Java application

There are a couple of big cloud providers, according to the Magic Quadrant for Cloud Infrastructure and Platform Services from Gartner. At the moment of writing this blog post those are Amazon with AWS (Amazon Web Services), Microsoft Azure, Google Cloud Platform, Alibaba Cloud, Oracle, IBM and Tencent Cloud. Due to the frequent and ongoing changes in this field, it might be useful to not only count on one of those big providers, but using a rather distributed multi-provider approach, when it comes to migrating to the cloud with your infrastructure and applications.

In this blogpost we will take a look on how you can use multiple providers when applying Terraform as a tool of choice for the infrastructure, as it proclaims to be provider-independent.

Which way to go

This post is not intended to align strictly with any good or best practices, rather it is just the extended documentation of the test on how easy it is to create infrastructure with an IaC-approach with Terraform as a multi-cloud provider tool, processing only basic background knowledge.

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , , , | Leave a comment

Optimale Java-Laufzeitumgebungen in der Cloud

Die Mehrheit der Cloud-Anbieter stellen ihre Dienste nach verschiedenen Cloud-Modellen bereit. IaaS, Paas, CaaS und FaaS sind die im Moment zu verzeichnenden Hauptmodelle. Sie alle bestehen unter der Haube nur aus Tausenden von Servern, Festplatten, Routern und Kabeln. Sie fügen lediglich Abstraktionsebenen hinzu, um die Verwaltung zu vereinfachen und die Entwicklungsgeschwindigkeit zu erhöhen.

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , , , , , , , | Leave a comment

Automatisierte End-To-End Tests mit Cypress

Automatisiertes Testen oder Testautomatisierung ist eine Technik für Softwaretests, bei der spezielle Softwaretools für automatisiertes Testen verwendet werden, um eine Test-Suite auszuführen. Im Gegensatz dazu wird das manuelle Testen von einem Menschen durchgeführt, der vor einem Computer sitzt und sorgfältig einzelne Testschritte ausführt. Die Software für automatisiertes Testen kann auch Testdaten in das zu testende System eingeben, erwartete und tatsächliche Ergebnisse vergleichen und detaillierte Testberichte erstellen. Testautomatisierung ist also der beste Weg, um die Effektivität, Testabdeckung und Ausführungsgeschwindigkeit beim Softwaretest zu erhöhen. Automatisierte Softwaretests sind aus folgenden Gründen wichtig:

Continue reading
Posted in Web as a Platform | Tagged , , | Leave a comment

Deployment einer Spring Boot Anwendung in der AWS Cloud mit EC2 & S3

Wenn man nach Spring und Cloud sucht, fällt einem schnell auf, dass diese Kombination kein Wunsch ambitionierter Entwickler mehr ist, sondern schon längst in Spring integriert wurde. Spring Cloud stellt Entwicklern Werkzeuge zur Verfügung, mit denen das Aufsetzen und Verwalten verteilter Systeme und typischer Anwendungsfälle vereinfacht werden soll. Hierfür hat Spring schon eine Vielzahl an Funktionen für verschiedene Cloud Dienste wie Azure und Amazon Web Services bereitgestellt. Heute sehen wir uns an, wie man eine Spring Boot Anwendung in die AWS Cloud deployen kann und wie anfängerfreundlich sich das ganze gestaltet.

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , , , | Leave a comment

KI in der Softwareentwicklung – Wie funktionieren Tools wie GPT-3?

Anwendungen aus dem Bereich der Künstlichen Intelligenz (KI) werden in den kommenden Jahrzehnten viele Bereiche unserer Arbeitswelt durch Automatisierung revolutionieren. Diese These wird heutzutage kaum noch bestritten. In dieser Studie wird untersucht, wann KI menschliche Fähigkeiten in unterschiedlichen Bereichen übertreffen wird, und in vielen Bereichen scheint dies kurz bevorzustehen. Die KI schafft also ein riesiges Potential im Bereich der Entwicklung smarter Software. Doch auch der Softwareentwicklung selbst steht unbestritten ein großer Wandel bevor. KI-basierte Tools werden auch hier viele Automatismen ermöglichen, die eine Programmierung wie sie heute stattfindet grundlegend verändern wird.

Pete Warden beispielsweise, einer der Chefentwickler von Tensorflow (einem der relevantesten Deep Learning Frameworks), prophezeit in seinem Blog, dass in einem Zeithorizont von zehn Jahren die Mehrzahl der Jobs im Bereich der Softwareentwicklung kein Programmieren an sich mehr erfordern wird.  Schon jetzt nutzen viele Entwickler KI-gestützte Tools wie Codota und IntelliCode, welche auf Basis von Syntax-Bäumen, Rankings und Assoziationen Code-Analysen durchführen und so die klassische Auto-Completion sehr mächtig machen. Einen sehr interessanten Beitrag zu diesem Thema lieferte unser Trivadis Kollege Dr. Martin Luckow in seinem Sparx-Talk, den man hier anschauen kann.

Continue reading
Posted in Did you know? | Tagged , , , , | Leave a comment

Warum sich ein Blick auf ein zentrales State-Management lohnt.

In Angular leben die Daten in einer komponentenzentrierten Welt. Die Daten werden in der Komponente gespeichert, und die Komponenten sind isoliert voneinander, sodass diese Dreh- und Angelpunkt der Daten sind. Möchte man dann auf die Daten zugreifen, kommt man nur mit Hilfe der Komponente heran. Gut, oder? Jede Komponente kümmert sich nur um die Daten, die es selbst betrifft. Das hört sich doch eigentlich nach sauberer Programmierung an.

Wenn nicht folgendes wäre … Was ist, wenn die Komponenten gar nicht so isoliert voneinander leben wie gedacht?  Was ist, wenn die Komponenten sich wie ein Team verhalten: Jeder hat zwar seinen Verantwortungsbereich, aber es müssen Informationen unter den Teammitgliedern ausgetauscht werden.

Continue reading
Posted in Web as a Platform | Tagged , | Leave a comment

Project Valhalla’s Inline Types – Codes Like a Class, Works Like an int

After nearly 7 years it’s time to have a short look at project Valhalla. The project’s main goal is to increase the performance of Java on modern hardware. While it remains still unclear when the project will finish, several things have already been revealed.

Some of you may have heard of the new “value” or “data” type that should be introduced with Valhalla. However, the name was changed to “inline” type. This post will focus on the current status of this part.

Another goal of the project is about specialized generics. As the status of this branch is even more unclear, I will not cover it here.

Continue reading
Posted in Java Basics | Tagged , , | Leave a comment