ベストプラクティス
以下のリストは、Things Cloudの上にマイクロサービスを開発および展開する前に考慮すべきベストプラクティスの一覧です。
マイクロサービスSDK
可能な限り、Things Cloud マイクロサービスSDKを使用してください。これは多くの機能を構築します。こちらは完全にオープンソースであり、必要に応じて拡張できます。Things Cloud マイクロサービスSDKはここで見つけることができます。さらなる指示については、Java用マイクロサービスSDKも参照してください。
ディスク I/O とローカル ディスク
ローカルディスクを使用せず、すべてをThings Cloudに保存してください。ローカルではディスクI/Oの帯域幅が保証されておらず、容量も保証されていません。
活性プローブ
ライブネスプローブもKubernetesに公開する必要があります。ヘルスエンドポイントを持つだけでは不十分です。さらに、ライブネスプローブを適切に実装する際には特に注意が必要です。ライブネスプローブが信頼できない場合、Kubernetesはサービスを再起動またはアンデプロイします。ライブネスプローブでサードパーティのチェックを行わないでください。サービスが動作しなくなる可能性があります。
ネットワークトラフィック
起動時にほとんどの機能や外部コンテンツをロードするマイクロサービスを構築することは推奨されません。
リソースの消費
リソース消費はマイクロサービスマニフェスト内で必要に応じて定義する必要があります。リソースの消費は請求金額に影響します。また、開始されたマイクロサービスごとに商用版で必要となるリソースの数も慎重に検討してください。
スケーリング
スケーリングされたマイクロサービスに対してロードバランサーの動作に影響を与える方法は現在ありません。スケーリングの詳細については分離とスケーリングを参照してください。動作はラウンドロビンです。マニフェストファイルcumulocity.jsonでのスケーリングの設定方法についてはマイクロサービスマニフェストを参照してください。
共有マイクロサービス
複数のテナントのマイクロサービスを構築する場合は、マルチテナントの分離レベルで構築してみてください。分離とスケーリングを参照ください。
ステートフルな状態
可能な限りステートフルを避け、RESTリクエストやDBを介して永続的な共有ストレージにデータを書き込んでください。実際、要件と相互作用に記載されている要件の一つとして無状態性が求められています。
マイクロサービスの検証
- 商用プラットフォームで開発または検証をしないでください。
- 必ずローカル環境で開発してから、開発クラスターまたは検証クラスターに何かを展開してください。
- 既存の開発プラットフォームを使用して検証してから、マイクロサービスを商用システムにロールアウトしてください。