Aplikacja i wdrażanie w usłudze Azure Spring Apps

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy: ✔️ Java ✔️ C#

Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise

Aplikacje i wdrażanie to dwa kluczowe pojęcia w modelu zasobów usługi Azure Spring Apps. W usłudze Azure Spring Apps aplikacja jest abstrakcją jednej aplikacji biznesowej. Jedna wersja kodu lub pliku binarnego wdrożona podczas uruchamiania aplikacji we wdrożeniu. Aplikacje są uruchamiane w wystąpieniu usługi Azure Spring Apps lub po prostu w wystąpieniu usługi, jak pokazano poniżej.

Diagram showing the relationship between the apps and deployments.

Możesz mieć wiele wystąpień usługi w ramach jednej subskrypcji platformy Azure, ale usługa Azure Spring Apps Service jest najłatwiejsza do użycia, gdy wszystkie aplikacje tworzące aplikację biznesową znajdują się w jednym wystąpieniu usługi. Jednym z powodów jest to, że aplikacje mogą komunikować się ze sobą. Można to łatwo zrobić przy użyciu rejestru usług Eureka w wystąpieniu usługi.

Plan usługi Azure Spring Apps w warstwie Standardowa umożliwia jednej aplikacji posiadanie jednego wdrożenia produkcyjnego i wdrożenia przejściowego, dzięki czemu można łatwo wykonać wdrożenie niebieskie/zielone.

Aplikacja

Następujące funkcje/właściwości są definiowane na poziomie aplikacji.

Funkcje opis
Publiczny
punkt końcowy
Adres URL umożliwiający dostęp do aplikacji.
Domena niestandardowa
CNAME Rekord, który zabezpiecza domenę niestandardową.
Powiązanie usługi
Gotowe połączenie z innymi usługami platformy Azure.
Tożsamość zarządzana
Tożsamość zarządzana przez firmę Microsoft Entra ID umożliwia aplikacji łatwy dostęp do innych chronionych zasobów firmy Microsoft, takich jak Azure Key Vault.
Magazyn trwały
Ustawienie, które umożliwia utrwalanie danych poza ponownym uruchomieniem aplikacji.

Wdrożenie

Następujące funkcje/właściwości są definiowane na poziomie wdrożenia i są wymieniane podczas zamiany wdrożenia produkcyjnego i przejściowego.

Funkcje opis
Procesor CPU Liczba rdzeni wirtualnych na wystąpienie aplikacji.
Pamięć GB pamięci na wystąpienie aplikacji.
Liczba wystąpień
Liczba wystąpień aplikacji, ustawiana ręcznie lub automatycznie.
Automatyczne skalowanie Liczba wystąpień skalowania jest automatycznie oparta na wstępnie zdefiniowanych reguł i harmonogramach.
Opcje maszyny wirtualnej JVM
Opcje JVM do ustawienia.
Zmienne środowiskowe
Zmienne środowiskowe do ustawienia.
Wersja środowiska uruchomieniowego
Java 8 lub Java 11.

Środowisko

Usługa Azure Spring Apps instaluje niektóre pliki YAML tylko do odczytu w wdrożonych aplikacjach. Te pliki zawierają kontekst platformy Azure wdrożenia. Poniższa lista zawiera ścieżki i zawartość tych plików YAML:

  • /etc/azure-spring-cloud/context/azure-spring-apps.yml

    AZURE_SPRING_APPS:
        SUBSCRIPTION_ID:  <your-azure-subscription-id>
        RESOURCE_GROUP: <your-resource-group-name>
        NAME: <your-azure-spring-apps-name>
    
  • /etc/azure-spring-cloud/context/azure-spring-apps-deployment.yml

    AZURE_SPRING_APPS:
         APP:
            NAME: <your-app-name>
         DEPLOYMENT:
            NAME: <your-deployment-name>
            ACTIVE: true # true if the deployment is in production, false if in staging
    

Jeśli aplikacja jest aplikacją Spring Boot, te dwie ścieżki plików są dodawane do zmiennej środowiskowej SPRING_CONFIG_ADDITIONAL_LOCATION . Dzięki temu aplikacja może ładować te właściwości jako konfiguracje i używać ich w kodzie. Możesz na przykład użyć @ConfigurationProperties adnotacji, aby powiązać właściwości YAML z klasą Języka Java. Poniższy fragment kodu pokazuje, jak utworzyć klasę reprezentującą @Configuration kontekst platformy Azure:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "azure-spring-apps")
@Data
public class AzureSpringAppsContext {

    private String subscriptionId;
    private String resourceGroup;
    private String name;

    private AppContext app;
    private DeploymentContext deployment;

    @Data
    public static class AppContext {
        private String name;
    }

    @Data
    public static class DeploymentContext {
        private String name;
        private boolean active;
    }
}

W przypadku innych aplikacji wielolotowych może być konieczne odczytywanie odpowiednich właściwości i uzyskiwanie do ich dostępu przy użyciu odpowiednich bibliotek odczytu/zapisu plików w aplikacjach.

Ograniczenia

  • Aplikacja musi mieć jedno wdrożenie produkcyjne. Interfejs API blokuje usunięcie wdrożenia produkcyjnego. Przed usunięciem wdrożenia należy zamienić wdrożenie na przejściowe.
  • Aplikacja może mieć co najwyżej dwa wdrożenia. Interfejs API blokuje tworzenie więcej niż dwóch wdrożeń. Wdróż nowy plik binarny w istniejącym wdrożeniu produkcyjnym lub przejściowym.
  • Zarządzanie wdrożeniami nie jest dostępne w planie podstawowym. Użyj planu standardowego lub enterprise, aby skorzystać z możliwości wdrażania niebieskiego zielonego.

Następne kroki