# 06Jun2024 CloudHub運用
###### tags: `MuleSoftTraining : Cloudhub 1.0`
- 目次
[ToC]
## モジュール0: 準備
:::info
:information_source: コース資料
- :star: **APOpsCloud4.4_studentFiles_07dec2021.zip**
- 2日間を通して使用するファイル集
- https://drive.google.com/drive/folders/1Y6ff6_FK0-eud3QY6NsgGMeWwt3uhIcU?usp=sharing
- APOpsCloud4.4_studentSlides_JA_07dec2021.zip (受講者スライド)
- 復習に使用
- APOpsCloud4.4_studentManual_JA_07dec2021.pdf (受講者マニュアル)
- 復習に使用
:::
### セットアップ
[CloudHub 運用コース セットアップマニュアル](https://salesforce.quip.com/mfmHABywK5rn)をご参照ください。
1. [Advanced REST Client](http://install.advancedrestclient.com/install)
- [Postman](https://www.postman.com/downloads/)など、その他のREST APIクライアントアプリケーションも使用可能です。
2. [Anypoint Platform CLI(Optional)](https://docs.mulesoft.com/jp/runtime-manager/anypoint-platform-cli#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
3. [Open JDK8+](Apache JMeter の実行に使用します)
- [Java インストールと環境変数設定](https://salesforce.quip.com/5B2PAV46QbB5#DCSABAatba1)
4. [Apache JMeter](https://jmeter.apache.org/download_jmeter.cgi) - zip ファイル
- Mac: bin/jmeter
- Windows: bin/jmeter.bat
5. [OpenSSL(Optional)](https://github.com/openssl/openssl)
### 2日間使用する Anypoint Platform 認証情報
- パスワード: @Mulesoft2020
| 受講者名 | ユーザー | 閲覧専用ユーザー |
|:-------- |:--------:| --------:|
| Kubota | Cloud01Student01 | Cloud01Viewer01 |
| Semboshi | Cloud01Student02 | Cloud01Viewer02 |
| Miyahara | Cloud01Student03 | Cloud01Viewer03 |
### Muleアプリケーション
- Anypoint Studio(IDE)で開発
- ローコードで開発可能な Java アプリケーション
- XMLで定義
- jar ファイルにパッケージング (Maven)
- Mule ランタイム(エンジン/アプリケーションサーバー)にデプロイされ実行される
### CloudHub ワーカー
- OS, Java, Mule Runtime などを MuleSoft が管理するAWS EC2 インスタンス= 仮想マシン
- 管理するインフラを少なく -> Muleアプリケーションの開発に集中することができる
- [CloudHubワーカーについて](https://docs.mulesoft.com/jp/runtime-manager/cloudhub-architecture#cloudhub-%E3%83%AF%E3%83%BC%E3%82%AB%E3%83%BC)

### スケーリング
- スケールイン/スケールアウト: CloudHubワーカーの数を増やす/数を減らす
- スケールアップ/スケールダウン: CloudHubワーカーのサイズを大きくする/小さくする
## モジュール2: ユーザーとリソースの管理
### Organization(組織)
- トップレベルのグループ
### Business Group(ビジネスグループ)
- CloudHub vCore リソース
- Network connetion, Load Balancer, VPC などのリソース
- Environments を複数持つことができる
#### サブグループの作成
- Cloud01Class
- Cloud01Group*XX*
- :star: Cloud01SubGroup*XX* `//ココ!`
### Environments(環境)
- Sandbox Type: **Dev**, Stag, QA...
- Production Type: **Prod**...
- Sandbox よりも良い MuleSoft SLA 保証
- (Design Type: Flow Designer で作成したアプリケーションを動かすための vCore)
### User(ユーザー)
- anypoint.mulesoft.com ログインするユーザー
- SSO も使用可能
### Teams(チームズ)
- ビジネスグループを横断したユーザーのグループ。複数のPersmission(権限)を、複数のビジネスグループで柔軟に管理できる。
- Teams 単位での Exchange アセットの共有も可能
- 各チームのメンバーの種類
- Maintainer(管理者)
- Member(メンバー)
- 親チームの権限は、子チームに継承される
- 親チームとなるチームの権限は、最小限で構成していく
- すべてのチームは **Everyone** を親に持つ
- Everyone (X) `//デフォルト`
- CloudHub Network Viewer (XY)
- App Deployer (XYa)
- TeamZZZ (XYb)
### Roles(役割)
- *非推奨* 新機能であるTeamsを推奨
### Permissions(権限)
- Userに直接付与も可能だが、Teams単位で権限をグルーピングすることを推奨している
#### 権限変更によるViewerの見え方の変化
- 権限がないとき

- Viewer権限の追加

- Deployer権限の追加

## Module 3: Mule アプリケーションの管理
### Muleアプリケーションのデプロイ
- デプロイ可能なアーカイブ (JAR) を Runtime Managerにアップロードする
- このクラスで中心トピック
- Runtime Manager で Exchange Asset を選択
- Anypoint Studio からデプロイ
- Anypoint Platform REST API でデプロイ
- 本コース後半で学びます
- Anypoint-CLI コマンドラインツールでデプロイ
- 本コース後半で学びます
- Maven プラグインでデプロイ
### Runtime Manager
- Muleランタイムのホスティングと、Muleアプリケーションのデプロイを管理
- 実行中のMuleランタイムとアプリケーションの監視も可能
- [アラート](https://docs.mulesoft.com/jp/runtime-manager/alerts-on-runtime-manager)の設定も可能
### MuleアプリケーションをCloudHubデプロイ
- 環境
- Prod
- アプリケーション名
- **server-info-01XX**
- CloudHubアプリケーションの名前は、グローバルで一意である必要がある
- jarファイル (Choose File > Upload File)
- APOpsCloud4.4_studentFiles_07dec2021
- mod03-mule
- **server-info-5.5.0-mule-application.jar**
### CloudHubネットワークの仕組み
- CH Worker (仮想マシン) IP
- 3.112.34.208:**8081**
- DNS (Shared Load Balancer)
- server-info-0101.jp-e1.cloudhub.io: **80**
- DNS (wokrker)
- **mule-worker**-server-info-ch0101.jp-e1.cloudhub.io:**8081**

### CloudHubのログ
- 100MB, 30日 (Platinum, Gold)
- 外部のログツールや、ストレージに保管する運用
### Anypoint Monitoring のログ
For Titanium Subscription, you will get 200 GB per production core.
https://help.mulesoft.com/s/article/Anypoint-Monitoring-Log-FAQ
## Module 4: Mule アプリケーションのモニタリング (監視) と分析
- Log Analyzer
- https://help.mulesoft.com/s/article/Support-Log-file-analyzer-tool
### CloudHub Runtime Manager Log
- CloudHub のアプリケーションログの設定には、デフォルトで 「CloudHub log4j2 アペンダー」が使用される
- https://docs.mulesoft.com/jp/runtime-manager/custom-log-appender#log4j-%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%BD%9C%E6%88%90

### 監視対象アプリケーション: price-lookup-01xx
jar: {studentFiles}/mod4-monitoring/**price-lookup-service-5.5.0-mule-application.jar**


### Tracing
https://docs.mulesoft.com/tracing-module/1.0/tracing-module-logging
### FAQ
Q.Tracing Module はPlatinumサブスクリプションでも使えますか?
A.使用できます。開発者がMuleアプリケーションの中に実装するとともに、Log4j appenderの設定が必要です。
- Tracing Module
- https://docs.mulesoft.com/tracing-module/1.0/tracing-module-logging
- Logging Variable の追加 + Pattern Layout を変更 = ログの拡張
```
<!-- <PatternLayout pattern="%-5p %d [%t] [processor: %X{processorPath}; event: %X{correlationId}] %c: %m%n"/>-->
<PatternLayout pattern="%-5p %d [%t] [%MDC] %c: %m%n"/>
```
Q:monitoring ダッシュボードで以下はどう違うのでしょうか?
A:https://docs.mulesoft.com/monitoring/app-dashboards#overview-charts
* Average Response Time (AからNまでの平均)
* Muleアプリ内でMuleイベントが処理される平均時間。
* Inbound - Average Response Time (A-N, B-M, D-Gの平均)
* インバウンド・リクエストの平均応答時間。Muleアプリが複数のコネクターを持つ場合、すべてのコネクターの応答時間がこの指標に含まれます。
* Outbound - Average Response Time (HからKまでの平均時間)
* アウトバウンド・リクエストの平均応答時間。Muleアプリが複数のコネクターを持つ場合、すべてのコネクターの応答時間がこの指標に含まれます。

Q: (続き)Average Response Timeよりも、Inbound-Avarage Response Timeが長い場合がある。どのようなケースで起きるのか?
A: 外部呼び出しを行うコネクターには、同期呼び出しと非同期呼び出しがあるものがあります。非同期の呼び出し(JMSのPublishなど)では、他のフローを呼び出した後、結果を待たずに後続処理が続行されるので、A-Nの応答時間より、B-MやD-Gが長いケースがあります。また、メトリクスの受信/保管は非同期に行われているため、複数のメトリクスの計測/表示タイミングが同時とは限りません。必要に応じて、サポートにお問い合わせください。