# 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](https://i.imgur.com/orPXb8R.png) ### スケーリング - スケールイン/スケールアウト: 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の見え方の変化 - 権限がないとき ![](https://i.imgur.com/MZNh0v4.png) - Viewer権限の追加 ![](https://i.imgur.com/6UU6zXu.png) - Deployer権限の追加 ![](https://i.imgur.com/qiql42u.png) ## 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** ![](https://i.imgur.com/WbTfmeS.png) ### 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 ![logs](https://i.imgur.com/kEjijNr.png) ### 監視対象アプリケーション: price-lookup-01xx jar: {studentFiles}/mod4-monitoring/**price-lookup-service-5.5.0-mule-application.jar** ![cpu-single-stats1](https://i.imgur.com/inrrKgR.png) ![cpu-single-stats2](https://i.imgur.com/1feKSxH.png) ### 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アプリが複数のコネクターを持つ場合、すべてのコネクターの応答時間がこの指標に含まれます。 ![](https://i.imgur.com/pEdla3V.png) Q: (続き)Average Response Timeよりも、Inbound-Avarage Response Timeが長い場合がある。どのようなケースで起きるのか? A: 外部呼び出しを行うコネクターには、同期呼び出しと非同期呼び出しがあるものがあります。非同期の呼び出し(JMSのPublishなど)では、他のフローを呼び出した後、結果を待たずに後続処理が続行されるので、A-Nの応答時間より、B-MやD-Gが長いケースがあります。また、メトリクスの受信/保管は非同期に行われているため、複数のメトリクスの計測/表示タイミングが同時とは限りません。必要に応じて、サポートにお問い合わせください。