クラウド・マイグレーション規則
Cloud Migration Tool は、アプリケーションをクラウド・プラットフォーム (例えば、IBM Cloud ランタイム (Cloud Foundry PaaS)、サード・パーティー PaaS (CF)、コンテナー (OpenShift、Kubernetes)、および仮想マシン (IBM Cloud)) に移動する際に考慮する必要のあるアプリケーション問題を特定します。
サード・パーティー・プラットフォーム (PaaS) 上の Liberty
| 規則名 | ルールの説明 | 自動修正 |
|---|---|---|
| 新規プロセス・インスタンスの作成を回避する | このルールは、メソッドjava.lang.Runtime.exec(*)とjava.lang.ProcessBuilder.start(*)への参照を持つJavaコードにフラグを立てます。 |
いいえ |
| ローカル・ファイル・システムへの書き込みを回避する | このルールは、ローカル・ファイル・システムにファイルを書き込むために使用されるクラス、コンストラクタ、メソッドを参照するJavaコードにフラグを立てる。 ローカルファイルシステムに書き込まれたファイルは、新しいコンテナインスタンスが作成されると削除される。 | いいえ |
| ログ情報を取り込む | このルールは、java.util.logging、org.slf4j、org.apache.log4j、org.apache.commons.logging、org.osgi.service.logを含む、ローカルファイルシステムに書き込むロギングパッケージを参照するJavaコードにフラグを立てます。 ローカルファイルシステムに書き込まれたファイルは、新しいコンテナインスタンスが作成されると削除される。 |
いいえ |
| クライアント証明書認証が使用できない | この規則により、web.xml デプロイメント記述子内の以下の参照にフラグを立てます。 <auth-method>CLIENT-CERT</auth-method> |
いいえ |
| 古いプロトコルまたは非標準のプロトコルを使用しない | クラウド環境では、EJB 2.0、CICS Transaction Gateway、および IMS Connect に関連する特定のプロトコルは、サポートされません。 | いいえ |
| インバウンド接続の listen | このルールは、java.nio.channels.ServerSocketChannel.open(*)、java.nio.channels.AsynchronousServerSocketChannel.open(*)、new java.net.ServerSocket(*)、new java.nio.channels.ServerSocketChannel(*)、new java.nio.channels.AsynchronousServerSocketChannel(*)のメソッドとコンストラクタへの参照を持つJavaコードにフラグを立てます。 |
いいえ |
| Liberty サーバーの停止 | このルールは、java.lang.System.exit(int) java.lang.Runtime.exit(int), java.lang.Runtime.halt(int), org.osgi.framework.launch.Framework.stop(*), org.osgi.framework.launch.Framework.update(*) メソッドを参照するJavaコードにフラグを立てる |
いいえ |
| トランスポート・セキュリティーがルーターで終了する | この規則により、Java コード内の ServletSecurity.TransportGuarantee.CONFIDENTIAL と web.xml デプロイメント記述子内の <transport-guarantee>CONFIDENTIAL</transport-guarantee> にフラグを立てます。 |
いいえ |
| 2 フェーズ・コミット・トランザクション | デフォルトでは、Liberty トランザクションマネージャは、トランザクションログファイルをローカルファイルシステムに書き込みます。 ローカルファイルシステムに書き込まれたファイルは、新しいコンテナインスタンスが作成されると削除される。 | いいえ |
IBM Cloud のコネクティビティー考慮事項
コネクティビティー規則は、アプリケーションをクラウドに移行する場合にコネクティビティー上の考慮事項が存在する可能性のある以下のリソースをアプリケーションが使用しているかどうかを評価します。 これらの規則は、使用されている個々のテクノロジーを示すために、Eclipse プロジェクト (または Java アーカイブ) ごとに 1 度のみフラグが立てられます。
| 規則名 | ルールの説明 | 自動修正 |
|---|---|---|
| データベース | データベースを使用するアプリケーションをクラウド・プラットフォームにマイグレーションする際には、クラウドからデータベースへのアクセスを維持する方法を考慮してください。 | いいえ |
| エンタープライズ情報システム (EIS) | アプリケーションがリソース・アダプターを使用してエンタープライズ情報システム (EIS) にアクセスする場合、クラウドから EIS へのアクセスを維持するための方法について考慮するか、EIS をクラウドにマイグレーションすることを検討してください。 | いいえ |
| Java EE セキュリティー | Java EE セキュリティーを使用しているアプリケーションをクラウドに移行する場合には、アプリケーションがユーザー・レジストリー、トラスト・アソシエーション・インターセプター (TAI)、JAAS カスタム・ログイン・モジュール、オンプレミスのセキュリティー・サーバーをどのように使用するのかについて考慮してください。 | いいえ |
| JavaMail サーバー | アプリケーションがオンプレミスの JavaMail サービス・プロバイダーを使用している場合は、アプリケーションはクラウドに移動した後で、メール・サーバーへのアクセスを維持するためにセキュア接続を必要とします。 | いいえ |
| Java Message Service (JMS) | オンプレミスの JMS サービス・プロバイダーに接続されている Java Message Service (JMS) を使用しているアプリケーションの場合、メッセージング・プロバイダーにアクセスするために必要な接続について考慮してください。 | いいえ |
| メッセージ駆動型 Bean (MDB) | オンプレミスのメッセージング・サービス・プロバイダーに接続されているメッセージ駆動型 Bean (MDB) を使用しているアプリケーションの場合、メッセージング・プロバイダーにアクセスするために必要な接続について考慮してください。 | いいえ |
| リモート EJB ルックアップ | リモート EJB Bean をルックアップするか呼び出すアプリケーションの場合は、クラウドからリモート EJB Bean へのアクセスを維持する方法について考慮するか、関連するすべての EJB Bean をクラウドにマイグレーションすることを検討してください。 | いいえ |
| リモート EJB プロバイダー | リモート EJB Bean を提供するアプリケーションの場合は、当該アプリケーションのマイグレーション時にオンプレミスのクライアントからリモート EJB Bean へのアクセスを維持するための方法について考慮してください。 | いいえ |
| リモート Web サービス | アプリケーションが、インターネット上に公開されていないリモート Web サービスを使用している場合は、クラウドに移動するとそのようなリモート・サービスへのアクセスがどのような影響を受けるかについて考慮してください。 | いいえ |
| サード・パーティー・セキュリティー | アプリケーションをクラウドに移動する際には、サード・パーティー・セキュリティー・プロバイダーの使用について考慮してください。 この規則により、サード・パーティー Java セキュリティー API の使用にフラグを立てます。 | いいえ |
| ベンダー固有のメッセージング | ベンダー固有のメッセージング API を使用しているアプリケーションの場合は、メッセージング・プロバイダーにアクセスするために必要な接続について考慮してください。 | いいえ |
| クラウドへのアクセスに使用する URL のホストとポートを検証する | クラウド環境では、アプリケーションから URL にアクセスする際に考慮すべきことが多数あります。 | いいえ |
コンテナー (OpenShift、Kubernetes)
| 規則名 | ルールの説明 | 自動修正 |
|---|---|---|
| 新規プロセス・インスタンスの作成を回避する | このルールは、メソッド java.lang.Runtime.exec(*) java.lang.ProcessBuilder.start(*) を参照するJavaコードにフラグを立てます。 |
いいえ |
| ローカル・ファイル・システムへの書き込みを回避する | このルールは、ローカル・ファイル・システムにファイルを書き込むために使用されるクラス、コンストラクタ、メソッドを参照するJavaコードにフラグを立てる。 ローカルファイルシステムに書き込まれたファイルは、新しいコンテナインスタンスが作成されると削除される。 | いいえ |