© Man As Thep/shutterstock.com
Einführung in Azure Spring Cloud

Ein Framework in der Cloud


Was ist Azure Spring Cloud und was kann es? Schauen wir uns hierfür zunächst einmal Spring Cloud näher an: Das Framework ermöglicht es Entwicklern, ihre Spring-Anwendung um Cloud-Patterns und Anbindungen an Cloud-Infrastrukturen zu ergänzen.

Azure Spring Cloud ist eine SaaS-Lösung in der Azure Cloud und bietet vor allem drei Dinge:

  1. eine Build-Umgebung, die Anwendungen bauen und deployen kann

  2. eine Laufzeitumgebung, in der Anwendungen ausgeführt werden

  3. Komponenten in dieser Laufzeitumgebung, die sich direkt mit den Gegenstücken zu Spring Cloud verbinden und damit die Nutzung von Cloud-Patterns wie z. B. Service Discovery ermöglichen

Abhängigkeitsmanagement leicht gemacht mit Spring Startern

Wer Microservices in Azure entwickeln möchte, profitiert gleich von einer Vielzahl von integrierten Services und Vorteilen. Den Erstkontakt erleichtern dabei spezielle Spring Starter, die diverse Integrationsfeatures für die Arbeit mit Microsoft Azure bieten. Grundsätzlich wurden Spring Boot Starter entwickelt, um das Abhängigkeitsmanagement bei praktisch jeder Anwendung zu erleichtern. Durch die Einbindung solcher Starter in Maven wird ein Satz nützlicher Abhängigkeitsdeskriptoren bereitgestellt, die in die jeweilige Anwendung aufgenommen werden können. Auf diese Weise erhalten Java-Entwickler hilfreiche Standardkonfigurationen, die mehrere Abhängigkeiten zusammenfassen und so die Konfiguration des Projekts immens vereinfachen.

Bei Azure Spring Cloud stehen nun spezielle Spring-Boot-Starter-Optionen für Azure zur Verfügung, die für eine bessere Interaktion mit Azure-Diensten wie Azure Cosmos DB, Azure Active Directory und Key Vault sorgen. Beim Hinzufügen beispielsweise der Starter-Option Azure Support zu einem Spring-Boot-Projekt werden an der Datei pom.xml einige Änderungen vorgenommen. Die Standardabhängigkeit spring-boot-starter wird durch Folgendes ersetzt:

<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-spring-boot</artifactId> </dependency>

Der Datei wird dann der in Listing 1 gezeigte Abschnitt hinzugefügt.

Listing 1

<dependencyManagement> <dependencies> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-spring-boot-bom</artifactId> <version>${azure.version}</version> <!-- Current version: 0.2.0 --> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

Integration mit Azure DevOps

Um Updates für vorhandene Anwendungen schnell und ohne viel Aufwand und Risiko bereitzustellen, benötigt jeder Entwickler Continuous-Integration- und Continuous-Delivery-Tools (CI/CD). Azure Spring Cloud kann mit vielen CI/CD-Tools integriert werden, natürlich auch mit Azure DevOps. Obwohl Azure Spring Cloud derzeit kein dediziertes Azure-DevOps-Plug-in bietet, können Entwickler ihre Spring-Cloud-Anwendungen mit Hilfe einer Azure-CLI-Aufgabe an Azure Spring Cloud übergeben. Wie das funktioniert, zeigt der Codeausschnitt in Listing 2: Nachdem zunächst ein Maven-Task zum Erstellen der Anwendung definiert wird, lässt sich mit Hilfe eines zweiten Tasks in Form der Azure-CLI-Erweiterung die JAR-Datei für Azure Spring Cloud bereitstellen.

Listing 2

steps: - task: Maven@3 inputs: mavenPomFile: 'pom.xml' - task: AzureCLI@1 inputs: azureSubscription: <your service connection name> scriptLocation: inlineScript inlineScript: | az extension add -y --name spring-cloud az spring-cloud app deploy --resource-group <your-resource-group> --service <your-spring-cloud-service> --name <app-name> --jar-path ./target/your-result-jar.jar  # deploy other app

Ebenso lässt sich die Bereitstellung ohne separaten Build-Schritt direkt in Azure durchführen (Listing 3).

Listing 3

- task: AzureCLI@1 inputs: azureSubscription: <your service connection name> scriptLocation: inlineScript inlineScript: | az extension add -y --name spring-cloud az spring-cloud app deploy --resource-group <your-resource-group> --service <your-spring-cloud-service> --name <app-name> # or if it is a multi-module project az spring-cloud app deploy --resource-group <your-resource-group> --service <your-s...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang