Hochverfügbare Webanwendung mit AWS Cloudformation

In diesem Blog-Artikel möchte ich einen Ansatz vorstellen, wie man eine Webanwendung mit AWS Cloudformation in die AWS Cloud deployt, die trotz möglicher Ausfälle von Availability Zones und Servern hochverfügbar bleibt. Ausgangspunkt für diesen Blog Post ist eine bereits vorhandene Netzwerkarchitektur (siehe Bild 1), sodass ich im Folgenden den Fokus vor allem auf die Rolle und Funktionsweise des Load Balancers legen werde. Alle Komponenten, auf die ich hier nicht genauer eingehen werde, können in meinem GitHub Repository nachgeschaut werden.

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

Neuerungen in Spring 6 und Spring Boot 3

Anfang September wurde auf der SpringOne bekannt gegeben, dass eine neue Version von Spring – Spring 6 – in Planung ist. Die Änderungen sollen Spring insbesondere zukunftssicher machen. Erste Details und eine Roadmap folgen nun:

Continue reading
Posted in Spring Universe | Tagged , | Leave a comment

Deployment einer Spring Boot Anwendung mit AWS Elastic Beanstalk

AWS Elastic Beanstalk ist eine PaaS (Platform as a Service), mit der benutzerfreundlich Webanwendungen und Services bereitgestellt werden können, ohne die Infrastruktur dahinter zu kennen. Der Entwickler lädt unkompliziert die Anwendung hoch und Elastic Beanstalk erstellt eine entsprechende Umgebung, indem es AWS Ressourcen wie beispielsweise EC2 Instanzen, EC2 Sicherheitsgruppen oder ein S3 Bucket konfiguriert.

In diesem Blog werden wir eine Spring Boot Anwendung als War-File in einen Tomcat Server deployen. Ich habe mich an dieser Stelle bewusst gegen die nahe liegende Variante entschieden, die Anwendung als Jar-File auf einer Java Plattform zu deployen, um zu verdeutlichen, wie komfortabel man eine Anwendung auch als War-File in einen Tomcat Server deployen kann, auch wenn kaum praktische Erfahrungen mit Tomcat und War-Files vorhanden sind. Mit AWS Elastic Beanstalk werden wir sehen, wie einfach sich dies realisieren lässt.

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

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