MacでAzure Service Fabric(Java)を試す - ローカル環境


はじめに

Azure Service Fabric(Java)を試したので記録として残しておきます。

動作確認環境

OS:
macOS Mojave Version 10.14.6 (18G84)

STS:
Spring Tool Suite 4
Version: 4.5.0.RELEASE
Build Id: 201912171052

Eclise:
Eclipse IDE for Java Developers
Version: 2019-12 (4.14.0)
Build id: 20191212-1212

1. 準備

1.1 CLI

Azure Service Fabric CLI

1.2 ローカル開発環境

Set up your development environment on Mac OS X

1.3 今回良く使用するコマンド類

docker run -itd -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 -p 8080:8080 -v [/Users/tworks55/eclipse-workspaces/mySFWorkspace]:/tmp/mySFWorkspace --name sfonebox mysfcluster

* [/Users/tworks55/eclipse-workspaces/mySFWorkspace]部分は環境に合わせて変更

sfctl cluster select --endpoint http://localhost:19080

docker logs sfonebox
docker stop sfonebox
docker rm -f sfonebox

1.3 今回良く使用するURL

http://localhost:19080/
http://localhost:8080/

2. 検証結果

2.1 クイック スタート:Azure Service Fabric 上に Java Spring Boot アプリをデプロイする

クイック スタート:Azure Service Fabric 上に Java Spring Boot アプリをデプロイする

ひとまずデプロイは可能だが、Scale up/Fail Over時がイマイチ。ローカル環境だから仕方ないのかもしれません。

注意点としては、

  • sftestclusterを立ち上げる際に -p 8080:8080 を忘れないようにする事
  • entryPoint.shに書くjarファイルの名前がBuildされたものと一致している事
  • Scaleさせインスタンスを3つにするとPortが被ってエラーになる(想定どおり?)
  • 起動中のインスタンスを再起動しFailOverするがDownTimeが発生する(原因不明)

あたりです。

起動後のイメージ

2.2 クイック スタート:Azure Service Fabric on Linux に Java アプリをデプロイする

クイック スタート:Azure Service Fabric on Linux に Java アプリをデプロイする

Eclipse/STS on MacでPlugin使えない。Projectを右クリックしてもServiceFabricのメニューが出ない。

プロジェクトを右クリックして、 [Service Fabric] ドロップダウンの Publish Application を選択します。

の操作ができない。

2.3 チュートリアル:Azure Service Fabric 上に Java API フロントエンド サービスとステートフル バックエンド サービスを含むアプリケーションを作成する

チュートリアル:Azure Service Fabric 上に Java API フロントエンド サービスとステートフル バックエンド サービスを含むアプリケーションを作成する

Eclipse/STS on MacでPlugin使えない。Projectを作成しようとするとこのようなエラーが発生する。

そもそもLinux向けでWindowsはダメのようだが、Macはどうなんでしょう?
https://github.com/MicrosoftDocs/azure-docs/issues/30819

以下を確認する限りではMacでも行けそうですが。
https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/service-fabric/service-fabric-get-started-eclipse.md

[!NOTE] If Eclipse isn't working as expected on your Mac, or needs you run as super user), go to the ECLIPSE_INSTALLATION_PATH folder and navigate to the subfolder Eclipse.app/Contents/MacOS. Start Eclipse by running ./eclipse.

2.4 Visual Studio Code を使用して Java Service Fabric アプリケーションを開発する

Visual Studio Code を使用して Java Service Fabric アプリケーションを開発する

Service Fabric Reliable Services extension for VSCodeを使って BuildしてもBuildされなかったため、TerminalでBuildを実施。
(VSCodeから通っているPATHが足りないのか、Gradleが何もせず終了してしまう)

VSCODE.
/asf/service-fabric-java-quickstart $ gradle 

> Task :help

Welcome to Gradle 6.0.1.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

To see more detail about a task, run gradle help --task <task>

For troubleshooting, visit https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 685ms
1 actionable task: 1 executed
~/asf/service-fabric-java-quickstart $ gradle --version

------------------------------------------------------------
Gradle 6.0.1
------------------------------------------------------------

Build time:   2019-11-18 20:25:01 UTC
Revision:     fad121066a68c4701acd362daf4287a7c309a0f5

Kotlin:       1.3.50
Groovy:       2.5.8
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_231 (Oracle Corporation 25.231-b11)
OS:           Mac OS X 10.14.6 x86_64

~/asf/service-fabric-java-quickstart $ gradle

> Task :help

Welcome to Gradle 6.0.1.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

To see more detail about a task, run gradle help --task <task>

For troubleshooting, visit https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 584ms
1 actionable task: 1 executed
terminal.

~/asf/service-fabric-java-quickstart/Voting $ gradle

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 32s
15 actionable tasks: 11 executed, 4 up-to-date
~/asf/service-fabric-java-quickstart/Voting $ 

その後、extensionの機能でinstallし正常稼働。VSCODEのExtensionもまだ安定していない雰囲気。