Развертывание приложения Java вручную с помощью Open Liberty или WebSphere Liberty в кластере Служба Azure Kubernetes (AKS)
В этой статье приведены пошаговые инструкции по запуску Open/WebSphere Liberty в Azure.
В частности, в этой статье объясняется, как выполнить следующие задачи:
- Запуск приложения Java, Java EE, Jakarta EE или MicroProfile в среде выполнения Open Liberty или WebSphere Liberty.
- Создайте образ Docker приложения с
az acr build
помощью образов контейнеров Liberty. - Разверните контейнерное приложение в кластере Служба Azure Kubernetes (AKS) с помощью оператора Liberty.
Оператор Liberty упрощает развертывание и управление приложениями, работающими в кластерах Kubernetes. С помощью оператора Open Liberty или Оператора WebSphere Liberty вы также можете выполнять более сложные операции, такие как сбор трассировок и дампов.
Дополнительные автоматизированные решения, ускоряющие переход к AKS, см. в статье "Развертывание приложения Java с помощью Open Liberty/WebSphere Liberty" в кластере Служба Azure Kubernetes (AKS).
Дополнительные сведения об Open Liberty см. на странице проекта Open Liberty. Дополнительные сведения об IBM WebSphere Liberty см. на странице продукта WebSphere Liberty.
Эта статья предназначена для быстрого развертывания. Прежде чем перейти к производству, вы должны исследовать Настройка Свободы.
Если вы заинтересованы в предоставлении отзывов или тесной работе с сценариями миграции с помощью группы разработчиков, разрабатывающей веб-sphere в решениях Azure, заполните этот короткий опрос по миграции WebSphere и включите контактные данные. Команда руководителей программ, архитекторов и инженеров будет быстро связаться с вами, чтобы начать тесное сотрудничество.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу.
- Подготовьте локальный компьютер с установленным windows, macOS или Linux.
- Установите Azure CLI 2.61.0 или более поздней версии, чтобы выполнить команды Azure CLI.
- Войдите с помощью Azure CLI с помощью команды az login . Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. См. сведения о входе в Azure с помощью Azure CLI для других параметров входа.
- Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье "Использование расширений и управление ими" с помощью Azure CLI.
- Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Установите реализацию Java выпуск Standard (SE) версии 17 (например, Eclipse Open J9).
- Установите Maven версии 3.5.0 или более поздней.
- Убедитесь, что установлен Git .
- Убедитесь, что вы назначены
Owner
роль илиContributor
User Access Administrator
роли в подписке. Чтобы проверить назначение, выполните действия, описанные в разделе "Перечисление назначений ролей Azure" с помощью портал Azure.
Вход в Azure
Если вы этого еще не сделали, войдите в подписку Azure с помощью команды az login и следуйте инструкциям на экране.
az login
Примечание.
Большинство команд Azure CLI можно выполнять в PowerShell так же, как и в Bash. Разница существует только при использовании переменных. В следующих разделах разница рассматривается на разных вкладках при необходимости.
Если у вас несколько клиентов Azure, связанных с учетными данными Azure, необходимо указать, в какой клиент вы хотите войти. Это можно сделать с --tenant
помощью параметра. Например, az login --tenant contoso.onmicrosoft.com
.
Создание или изменение группы ресурсов
Группа ресурсов Azure — это логическая группа, в которой развертываются и управляются ресурсы Azure.
Создайте группу ресурсов с помощью команды az group java-liberty-project
create в расположенииeastus2
. Эта группа ресурсов используется позже для создания экземпляра Реестр контейнеров Azure и кластера AKS.
export RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus2
Создание экземпляра реестра контейнеров
Используйте команду az acr create для создания экземпляра реестра контейнеров. В следующем примере создается экземпляр реестра контейнеров с именем youruniqueacrname
. Убедитесь, что youruniqueacrname
это уникально в Azure.
Примечание.
В этой статье используется рекомендуемый механизм проверки подлинности без пароля для реестра контейнеров. Для получения имени пользователя и пароля по-прежнему можно использовать имя пользователя и пароль docker login
az acr credential show
. Использование имени пользователя и пароля менее безопасно, чем проверка подлинности без пароля.
export REGISTRY_NAME=youruniqueacrname
az acr create \
--resource-group $RESOURCE_GROUP_NAME \
--name $REGISTRY_NAME \
--sku Basic
Через некоторое время вы увидите выходные данные JSON, содержащие следующие строки:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
Затем получите сервер входа для экземпляра реестра контейнеров. Это значение необходимо при развертывании образа приложения в кластере AKS позже.
export LOGIN_SERVER=$(az acr show \
--name $REGISTRY_NAME \
--query 'loginServer' \
--output tsv)
Создание кластера AKS
Используйте команду az aks create, чтобы создать кластер AKS. В следующем примере создается кластер с одним myAKSCluster
узлом. Выполнение этой команды занимает несколько минут.
export CLUSTER_NAME=myAKSCluster
az aks create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--node-count 1 \
--generate-ssh-keys \
--enable-managed-identity
Через несколько минут команда завершает работу и возвращает данные в формате JSON в кластере, включая следующие выходные данные:
"nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus2",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "java-liberty-project",
Присоединение экземпляра реестра контейнеров к кластеру AKS
Выполните команду az aks update, чтобы подключить экземпляр реестра контейнеров к кластеру AKS, чтобы кластер AKS прошел проверку подлинности для извлечения образов из экземпляра реестра контейнеров, как показано в следующем примере:
az aks update \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--attach-acr $REGISTRY_NAME
Подключение к кластеру AKS
Управлять кластером Kubernetes можно c помощью kubectl, клиента командной строки Kubernetes. Чтобы установить kubectl
локально, используйте команду az aks install-cli , как показано в следующем примере:
az aks install-cli
Чтобы настроить kubectl
на подключение к кластеру Kubernetes, выполните команду az aks get-credentials. Эта команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования.
az aks get-credentials \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--overwrite-existing \
--admin
Примечание.
Приведенная выше команда использует расположение по умолчанию файла конфигурации Kubernetes — ~/.kube/config
. С помощью --file
файла конфигурации Kubernetes можно указать другое расположение.
Чтобы проверить подключение к кластеру, используйте команду kubectl get для получения списка узлов кластера.
kubectl get nodes
В следующем примере показан единый узел, созданный на предыдущих шагах. Убедитесь, что узел находится в состоянии Ready (Готово):
NAME STATUS ROLES AGE VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready <none> 76s v1.29.9
Создание базы данных SQL Azure
В этом разделе вы создадите База данных SQL Azure отдельную базу данных для использования с приложением.
Сначала задайте переменные среды, связанные с базой данных. Замените <your-unique-sql-server-name>
уникальным именем сервера База данных SQL Azure.
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
Выполните следующую команду в терминале, чтобы создать одну базу данных в База данных SQL Azure и задать текущего пользователя, выполнившего вход в систему, в качестве администратора Microsoft Entra. Дополнительные сведения см. в кратком руководстве. Создание одной базы данных — База данных SQL Azure.
export ENTRA_ADMIN_NAME=$(az ad signed-in-user show --query userPrincipalName --output tsv)
az sql server create \
--name $SQL_SERVER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $ENTRA_ADMIN_NAME \
--external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name $DB_NAME \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
Затем добавьте локальный IP-адрес в правила брандмауэра сервера База данных SQL Azure, чтобы разрешить локальному компьютеру подключаться к базе данных для локального тестирования позже.
export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP \
--start-ip-address $AZ_LOCAL_IP_ADDRESS \
--end-ip-address $AZ_LOCAL_IP_ADDRESS
Примечание.
Вы создаете сервер SQL Azure с проверкой подлинности SQL, отключенной для обеспечения безопасности. Только идентификатор Microsoft Entra используется для проверки подлинности на сервере. Если необходимо включить проверку подлинности SQL, см . статью az sql server create для получения дополнительных сведений.
Создание подключения к службе в AKS с помощью соединителя службы
Выполните следующие команды, чтобы создать соединение между кластером AKS и базой данных SQL с помощью Идентификация рабочей нагрузки Microsoft Entra с соединителем службы. Дополнительные сведения см. в статье "Создание подключения к службе" в AKS с помощью соединителя службы (предварительная версия).
# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true
# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--query id \
--output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
--resource-group $RESOURCE_GROUP_NAME \
--name $SQL_SERVER_NAME \
--query id \
--output tsv)
# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME}
# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME} \
--query id \
--output tsv)
# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
--connection akssqlconn \
--client-type java \
--source-id $AKS_CLUSTER_RESOURCE_ID \
--target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
--workload-identity $UAMI_RESOURCE_ID
Примечание.
Он повторно использует Идентификация рабочей нагрузки Microsoft Entra для безопасного доступа к База данных SQL Azure без использования проверки подлинности SQL. Если необходимо использовать проверку подлинности SQL, пропустить описанные выше действия и использовать имя пользователя и пароль для подключения к База данных SQL Azure.
Получение учетной записи и секрета службы, созданного соединителем службы
Чтобы выполнить проверку подлинности в База данных SQL Azure, необходимо получить учетную запись службы и секрет, созданный соединителем службы. Следуйте разделу "Обновить контейнер". Выполните параметр "Напрямую создать развертывание" с помощью предоставленного примера кода YAML и выполните следующие действия:
Из выделенных разделов в примере yamL развертывания Kubernetes скопируйте
serviceAccountName
иsecretRef.name
значения, как показано в следующем примере:serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
Замените и
<secret-name>
на<service-account-name>
значения, скопированные на предыдущем шаге, чтобы определить следующие переменные среды:export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
Эти значения используются в следующем разделе для развертывания приложения Liberty в кластере AKS.
Примечание.
Секрет, созданный соединителем службы, содержит AZURE_SQL_CONNECTIONSTRING
пароль, бесплатный строка подключения к База данных SQL Azure. Дополнительные сведения см. в примере значения проверки подлинности управляемого удостоверения, назначаемого пользователем.
Установка Open Liberty Operator
В этом разделе описано, как установить оператор Open Liberty в кластере AKS для размещения приложения Liberty.
Установите оператор Open Liberty, выполнив следующие команды:
# Install cert-manager Operator
CERT_MANAGER_VERSION=v1.11.2
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.yaml
# Install Open Liberty Operator
export OPERATOR_VERSION=1.4.0
mkdir -p overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/olo-all-namespaces.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/cluster-roles.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/kustomization.yaml -q -P ./overlays/watch-all-namespaces
mkdir base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/kustomization.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-crd.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-operator.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-roles.yaml -q -P ./base
kubectl create namespace open-liberty
kubectl apply --server-side -k overlays/watch-all-namespaces
Настройка и сборка образа приложения
Чтобы развернуть и запустить приложение Liberty в кластере AKS, сделайте его контейнерным, создав образ Docker с помощью образов контейнеров Open Liberty или образов контейнеров WebSphere Liberty.
Выполните действия, описанные в этом разделе, чтобы развернуть пример приложения в среде выполнения Liberty. Эти действия используют Maven.
Получение приложения для изменения
Клонируйте пример кода из этого руководства. Пример размещен на сайте GitHub. В репозитории содержится несколько примеров. В этой статье используется java-app
пример. Ниже показаны важные файлы.
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241029
Если появится сообщение об отключенном состоянии HEAD, это сообщение безопасно игнорировать. Это просто означает, что вы проверили тег.
java-app
├─ src/main/
│ ├─ aks/
│ │ ├─ openlibertyapplication-passwordless-db.yaml
│ ├─ docker/
│ │ ├─ Dockerfile
│ │ ├─ Dockerfile-wlp
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml
Каталоги java, java и webapp содержат исходный код примера приложения. В коде объявлен и используется источник данных с именем jdbc/JavaEECafeDB
.
В каталоге aks файл openlibertyapplication-passwordless-db.yaml используется для развертывания образа приложения. В каталоге Docker есть два файла для создания образа приложения с помощью Open Liberty или WebSphere Liberty.
В каталоге liberty/config server.xml используется для настройки подключения к базе данных для кластера Open Liberty и WebSphere Liberty. Он определяет переменнуюazure.sql.connectionstring
, используемую для подключения к База данных SQL Azure.
Файл pom.xml — это файл объектной модели проекта Maven, содержащий сведения о конфигурации проекта. Файл pom-azure-identity.xml объявляет azure-identity
зависимость, которая используется для проверки подлинности в службах Azure с помощью идентификатора Microsoft Entra.
Примечание.
В этом примере используется azure-identity
библиотека для проверки подлинности База данных SQL Azure с помощью проверки подлинности Microsoft Entra authencitation, которая рекомендуется для обеспечения безопасности. Если вам нужно использовать проверку подлинности SQL в приложении Liberty, дополнительные сведения см. в разделе "Реляционная подключения к базе данных" с JDBC.
Сборка проекта
Теперь, когда вы собрали необходимые свойства, вы можете создать приложение. Файл POM для проекта считывает множество переменных из среды. В рамках сборки Maven эти переменные используются для заполнения значений в файлах YAML, расположенных в src/main/aks. Вы можете сделать что-то подобное для приложения за пределами Maven, если вы предпочитаете.
cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into target/
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}
mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
Тестирование проекта локально
Теперь вы можете запустить и протестировать проект локально перед развертыванием в Azure. Для удобства используйте .liberty-maven-plugin
Дополнительные сведения о liberty-maven-plugin
см. в статье Создание веб-приложения с помощью Maven. Для приложения можно сделать что-то подобное с помощью любого другого механизма, например локальной интегрированной среды разработки. Вы также можете использовать вариант, предназначенный liberty:devc
для разработки с контейнерами. Дополнительные сведения см liberty:devc
. в документации по Свободе.
Примечание.
Если выбрано развертывание базы данных без сервера, убедитесь, что база данных SQL не вошла в режим приостановки. Одним из способов этого является вход в редактор запросов базы данных, как описано в кратком руководстве. Используйте редактор запросов портал Azure (предварительная версия) для запроса База данных SQL Azure.
Запустите приложение с помощью команды
liberty:run
.cd $BASE_DIR/java-app # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault" mvn liberty:run
Убедитесь, что приложение работает правильно. В случае успеха в выходных данных команды должно появиться примерно такое сообщение:
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.
. В браузере перейдите по адресуhttp://localhost:9080/
, чтобы убедиться, что приложение доступно и все функции работают.Нажмите клавиши CTRL+C, чтобы остановиться. Выберите
Y
, если вы аксированы для завершения пакетного задания.
По завершении удалите правило брандмауэра, позволяющее локальному IP-адресу получить доступ к База данных SQL Azure с помощью следующей команды:
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
Создание образа для развертывания AKS
Теперь можно запустить команду az acr build для сборки образа, как показано в следующем примере:
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
Команда az acr build
отправляет артефакты, указанные в Dockerfile, в экземпляр реестра контейнеров, создает образ и сохраняет его в экземпляре реестра контейнеров.
Развертывание приложения в кластере AKS
Чтобы развернуть приложение Liberty в кластере AKS, выполните следующие действия.
Примените файл развертывания, выполнив следующие команды:
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-passwordless-db.yaml
Определите, создается ли
OpenLibertyApplication
экземпляр, выполнив следующую команду:kubectl get openlibertyapplication javaee-cafe-cluster
Выходные данные должны соответствовать следующему примеру.
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY WARNING AGE javaee-cafe-cluster jiangma102924acr.azurecr.io/javaee-cafe:v1 True True True 57s
Определите, будет ли развертывание, созданное оператором, готово, выполнив следующую команду:
kubectl get deployment javaee-cafe-cluster --watch
Выходные данные должны соответствовать следующему примеру.
NAME READY UP-TO-DATE AVAILABLE AGE javaee-cafe-cluster 0/3 3 0 20s
Подождите, пока не увидите
3/3
READY
столбец и3
под столбцомAVAILABLE
, нажмите клавиши CTRL+C , чтобы остановить процесс отслеживанияkubectl
.
Тестирование приложения
При запуске приложения служба балансировки нагрузки Kubernetes предоставляет внешний интерфейс приложения в Интернете. Этот процесс может занять некоторое время.
Чтобы отслеживать ход выполнения, используйте команду kubectl get service с аргументом --watch
, как показано в следующем примере:
kubectl get service javaee-cafe-cluster --watch
Выходные данные должны соответствовать следующему примеру.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
javaee-cafe-cluster LoadBalancer 10.0.251.169 52.152.189.57 80:31732/TCP 68s
После изменения внешнего IP-адреса на фактический общедоступный IP-адрес нажмите клавиши CTRL+C, чтобы остановить kubectl
процесс наблюдения.
Если прошло некоторое время между выполнением шагов в этом разделе и предыдущим, убедитесь, что база данных активна при необходимости. См. предыдущую заметку о приостановке базы данных.
Откройте в веб-браузере внешний IP-адрес вашей службы (52.152.189.57
для приведенного выше примера), чтобы увидеть домашнюю страницу приложения. Если страница не загружена правильно, это связано с запуском приложения. Вы можете подождать некоторое время и обновить страницу позже. В левом верхнем углу страницы должно отобразиться имя pod реплик вашего приложения. Подождите несколько минут и обновите страницу, чтобы увидеть другое имя pod, сменившееся как результат балансировки нагрузки от кластера AKS.
Примечание.
В настоящее время приложение не использует ПРОТОКОЛ HTTPS. Рекомендуется включить TLS с собственными сертификатами. Дополнительные сведения см. в статье Использование TLS с контроллером входящего трафика в Служба Azure Kubernetes (AKS).
Очистка ресурсов
Чтобы избежать расходов за использование Azure, необходимо удалить ненужные ресурсы. Если кластер больше не нужен, используйте команду az group delete , чтобы удалить группу ресурсов, службу контейнеров, реестр контейнеров, базу данных и все связанные ресурсы.
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Следующие шаги
Дополнительные сведения можно найти по следующим ссылкам:
- Служба Azure Kubernetes
- Руководство. Подключение приложения AKS к База данных SQL Azure (предварительная версия)
- Интеграция База данных SQL Azure с соединителем службы
- Подключение с помощью проверки подлинности Microsoft Entra
- Open Liberty
- Open Liberty Operator
- Настройка сервера Open Liberty
- Подключаемый модуль Liberty Maven
- Образы контейнеров Open Liberty
- Образы контейнеров WebSphere Liberty
Сведения о включении Кэш Azure для Redis в приложение Java см. в статье "Использование Кэш Azure для Redis в Java с клиентом Redisson Redisis".
Сведения о возможностях запуска продуктов WebSphere в Azure см. в статье "Что такое решения для запуска семейства продуктов WebSphere в Azure?"