LSAのデプロイメント責任
セキュリティチェックリストとコンプライアンススコアのレビュー
リードシステムアーキテクト(LSA)の最初の責任は、アプリケーションセキュリティを評価することです。 LSAは、セキュリティチェックリストを検証することで、この評価を行うことができます。 アプリケーションのセキュリティチェックリストが完了していないと、アプリケーションをデプロイできません。 このタスクでは、以下の操作を行います。
- 現在のセキュリティ設定を詳細に評価し、その設定がアプリケーション開発のベストプラクティスに従っているかどうかを判断します。
- セキュリティチェックリストページに各タスクのステータスが表示され、いずれかのタスクが失敗するとアプリケーションのデプロイメントがブロックされます。
- デプロイメント時のセキュリティ設定の分析とステータスの監査証跡を格納します。
DevOpsリリースパイプラインで「Verify Security Checklis」タスクで生成されたエラーレポートの例:
「Verify Security Checklis」ゲート34/34のタスクが未完了の場合にエラーが発生します。<br />
Please log into development environment and complete all tasks in the Application Guide: Application security checklist. <br />
Failed tasks:
Please log into development environment and complete all tasks in the Application Guide: Application security checklist. <br />
Failed tasks:
SECURITY_ADMINISTRATORS : Determine who is responsible for this checklist
RULE_SECURITY_ANALYZER : Eliminate vulnerabilities in custom code
SECURITY_ALERTS : Address security alerts promptly
CONFIGURE_RULES : Configure rules appropriately
PASSWORD_POLICY : Configure authentication security policies
Please check deployment logs for the complete list of failed tasks.
Pega Deployment Managerのリリースパイプラインでは、Check guardrail compliance taskでデプロイ時にアプリケーションのコンプライアンススコアの妥当性を確認します。 Check guardrail compliance taskでは、アプリケーションのガードレールコンプライアンスが設定されたコンプライアンススコアよりも低い場合、エラーを返します。 Pegaは、高パフォーマンスアプリケーションの条件として、コンプライアンススコア97以上を推奨しています。
ドラフトフローのクロスチェック
成果物にドラフトフローが含まれる場合、Deployment Managerで本番レベル5のシステムでデプロイをブロックするようになりました。 本番レベルが5以下の場合は、Deployment History and Reportsセクションにドラフトフローにより本稼働エラーが発生する可能性があることを示すワーニングメッセージが表示されます。
復元ポイントへのアプリケーションレベルのロールバック
アプリケーションレベルのロールバックでは、特定のアプリケーションでのルールやデータインスタンスを戻すために使用できる復元ポイントをより詳細に指定できるようになります。 この機能を使用するには、Pega Platform 8.4以降が必要です。
ロールバックはPega Platform™のRestore Points機能に依存します。 ロールバックオプションは、デプロイメントのステップでエラーが発生した場合のみユーザーに表示されます。 復元ポイントは、インポートが行われるたびに自動的に生成されます。 インポート後、任意のアプリケーションによって次の復元ポイントが生成される前に発生した変更は、リリースパイプラインからロールバックアクションがトリガーされるとロールバックされます。
以下の画像は、リリースパイプラインとロールバックに含まれるプロセスの高レベルな相互作用図を示します。
シーケンス# | 説明 |
---|---|
1 | アプリケーションのCICDパイプラインを作成するRelease Manager |
2 | CICDのトリガー |
3 | パッケージをDevリポジトリに公開 |
4 | Devリポジトリからステージング環境へのパッケージのデプロイ |
5 | Pegaで製品をデプロイするたびに復元ポイントを作成する |
6 | パイプラインステップの実行(Compliance score、Security checklist、Test coverage) |
7 | スキップして続行 |
8 | パッケージをPRODリポジトリに公開 |
9 | ロールバック |
10 | データベースから復元ポイントを含むRAPを取得 |
11 | 個別のルールインスタンスの削除 |
12 | Release Managerのステータスの更新を投稿 |
ロールバックが発生すると、Deployment Managerのリリースパイプラインで以下のログエントリが表示されます。
<code>2020-11-03 07:32:01,580 [DM release administrator] [BookingApp] [Booking01.01.03] [Booking_010232_1] INFO Build ROLLBACK, Build ID:BO-4
=============== Beginning of remote server logs for task: rollback, Server:Quality Assurance ===============
2020-11-03 07:32:01,958 [PegaRULES-Batch-3] [Rule_Obj_Activity.pzCreateTaskWrapper.Pega_Int_Pipeline.Action] INFO Task execution started for task type: rollback
Request object: {
"pxObjClass":"Pega-Int-Pipeline"
,"pyApplicationName":"Booking"
,"pyApplicationVersion":"01.01.03"
,"pyCallBackURL":"http://192.168.125.144:9080/prweb/PRRestService/cicd/v1/task/rollback/status?FlowName=pzRunPegaUnits&FlowActionName=pzPauseTask"
,"pyID":"PEGA-PIPELINE-CD BO-4"
,"pyPipelineName":"BookingApp"
,"pyRestorePointName":"RP_20201103T073104.595_qfjj"
}
2020-11-03 07:32:02,031 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.restorepoint.AbstractRollback] INFO Rolling back Application using restore point - RP_20201103T073104.595_qfjj</code>
<code>2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Import summary for {PageKeeperArchive}
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Total instances in archive: 6
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances imported: 0
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances skipped: 0
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances not imported due to error: 0
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances not processed: 6
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Operation Status: Import Complete
2020-11-03 07:32:02,215 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Operation Status: Deleting instances marked for removal.
2020-11-03 07:32:02,225 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-RULESET-VERSION BOOKING 01-02-32
2020-11-03 07:32:02,350 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-ADMIN-PRODUCT BOOKING 01.01.04 #20201103T103303.222 GMT
2020-11-03 07:32:02,397 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-DECLARE-PAGES D_BOOKINGCONST #20201103T105955.944 GMT
2020-11-03 07:32:02,439 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-HTML-SECTION FSG-BOOKING-UIPAGES ROOMSREQUESTCONTENT #20201103T104359.657 GMT
2020-11-03 07:32:02,613 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-OBJ-ACTIVITY FSG-BOOKING-DATA-CONSTPROP LOADBOOKINGCONSTDP #20201103T110029.016 GMT
2020-11-03 07:32:02,657 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-OBJ-WHEN DATA-PORTAL ISEVENTMANAGEMENTWG #20201103T104313.416 GMT
2020-11-03 07:32:02,691 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Operation Status: Completed
2020-11-03 07:32:02,691 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.restorepoint.AbstractRollback] INFO Application has been rolled back using restore point - RP_20201103T073104.595_qfjj
2020-11-03 07:32:02,760 [PegaRULES-Batch-3] [Rule_Obj_Activity.pzCreateTaskWrapper.Pega_Int_Pipeline.Action] INFO Task execution completed for task : rollback
Posting status to release manager system. Status object:
{
"pxObjClass":"Pega-Int-Pipeline"
,"pyApplicationName":"Booking"
,"pyApplicationVersion":"01.01.03"
,"pyCallBackURL":"http://192.168.125.144:9080/prweb/PRRestService/cicd/v1/task/rollback/status?FlowName=pzRunPegaUnits&FlowActionName=pzPauseTask"
,"pyID":"PEGA-PIPELINE-CD BO-4"
,"pyPipelineName":"BookingApp"
,"pyRestorePointName":"RP_20201103T073104.595_qfjj"
,"pyRollbackLevel":"ApplicationRollback"
,"pyStatusMessage":"Restored to RestorePointName :RP_20201103T073104.595_qfjj"
,"pyStatusValue":"SUCCESS"
,"pySystemNodeID":"35669bb013e2b46be6206f71e7307c11"
}</code>
<code>=============== End of remote server logs for task: rollback, Server:Quality Assurance ===============
2020-11-03 07:32:05,102 [DM release administrator] [BookingApp] [Booking01.01.03] [Booking_010232_1] INFO Remote task execution completed.</code>
=============== Beginning of remote server logs for task: rollback, Server:Quality Assurance ===============
2020-11-03 07:32:01,958 [PegaRULES-Batch-3] [Rule_Obj_Activity.pzCreateTaskWrapper.Pega_Int_Pipeline.Action] INFO Task execution started for task type: rollback
Request object: {
"pxObjClass":"Pega-Int-Pipeline"
,"pyApplicationName":"Booking"
,"pyApplicationVersion":"01.01.03"
,"pyCallBackURL":"http://192.168.125.144:9080/prweb/PRRestService/cicd/v1/task/rollback/status?FlowName=pzRunPegaUnits&FlowActionName=pzPauseTask"
,"pyID":"PEGA-PIPELINE-CD BO-4"
,"pyPipelineName":"BookingApp"
,"pyRestorePointName":"RP_20201103T073104.595_qfjj"
}
2020-11-03 07:32:02,031 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.restorepoint.AbstractRollback] INFO Rolling back Application using restore point - RP_20201103T073104.595_qfjj</code>
<code>2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Import summary for {PageKeeperArchive}
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Total instances in archive: 6
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances imported: 0
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances skipped: 0
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances not imported due to error: 0
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Instances not processed: 6
2020-11-03 07:32:02,207 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Operation Status: Import Complete
2020-11-03 07:32:02,215 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Operation Status: Deleting instances marked for removal.
2020-11-03 07:32:02,225 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-RULESET-VERSION BOOKING 01-02-32
2020-11-03 07:32:02,350 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-ADMIN-PRODUCT BOOKING 01.01.04 #20201103T103303.222 GMT
2020-11-03 07:32:02,397 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-DECLARE-PAGES D_BOOKINGCONST #20201103T105955.944 GMT
2020-11-03 07:32:02,439 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-HTML-SECTION FSG-BOOKING-UIPAGES ROOMSREQUESTCONTENT #20201103T104359.657 GMT
2020-11-03 07:32:02,613 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-OBJ-ACTIVITY FSG-BOOKING-DATA-CONSTPROP LOADBOOKINGCONSTDP #20201103T110029.016 GMT
2020-11-03 07:32:02,657 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.HistoryMoveLog] INFO Deleting instance RULE-OBJ-WHEN DATA-PORTAL ISEVENTMANAGEMENTWG #20201103T104313.416 GMT
2020-11-03 07:32:02,691 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.util.MoveLog] INFO Operation Status: Completed
2020-11-03 07:32:02,691 [PegaRULES-Batch-3] [com.pega.pegarules.deploy.internal.restorepoint.AbstractRollback] INFO Application has been rolled back using restore point - RP_20201103T073104.595_qfjj
2020-11-03 07:32:02,760 [PegaRULES-Batch-3] [Rule_Obj_Activity.pzCreateTaskWrapper.Pega_Int_Pipeline.Action] INFO Task execution completed for task : rollback
Posting status to release manager system. Status object:
{
"pxObjClass":"Pega-Int-Pipeline"
,"pyApplicationName":"Booking"
,"pyApplicationVersion":"01.01.03"
,"pyCallBackURL":"http://192.168.125.144:9080/prweb/PRRestService/cicd/v1/task/rollback/status?FlowName=pzRunPegaUnits&FlowActionName=pzPauseTask"
,"pyID":"PEGA-PIPELINE-CD BO-4"
,"pyPipelineName":"BookingApp"
,"pyRestorePointName":"RP_20201103T073104.595_qfjj"
,"pyRollbackLevel":"ApplicationRollback"
,"pyStatusMessage":"Restored to RestorePointName :RP_20201103T073104.595_qfjj"
,"pyStatusValue":"SUCCESS"
,"pySystemNodeID":"35669bb013e2b46be6206f71e7307c11"
}</code>
<code>=============== End of remote server logs for task: rollback, Server:Quality Assurance ===============
2020-11-03 07:32:05,102 [DM release administrator] [BookingApp] [Booking01.01.03] [Booking_010232_1] INFO Remote task execution completed.</code>
エラーリカバリーを可能にする復元ポイントを用いた手動デプロイメント
Importウィザードを使用した手動デプロイメントで、製品のインポート中に何らかの問題が発生した場合は、prpcServiceUtilsツールを使用してシステムを復元ポイントにロールバックします。
Pega Platformは、アーカイブのインポート後に自動的に復元ポイントを作成します。 製品ファイルのインポート中は、Do not set restore point or save metadata during the importを選択しないでください。 それ以外の場合は、オプション により、Pegaは製品ファイルのインポートの一部として復元ポイントを作成できるようになります。
復元ポイントでの制限事項
ロールバック時に復元できる内容には制限があります。 Pega Platformは履歴レコードを利用して、システムの大部分を復元ポイントの状態に戻します。 次の項目を変更しても、履歴レコードは生成されず、ロールバック機能でロールバックされることもありません。 これらの変更を手動で削除するか、あるいはシステムに残しておくか、ケースバイケースで決定します。
- SQLの変更
- Java .jarのインポート
- 複数のカスタムデータインスタンス
データタイプのクラスを設定する場合、そのデータタイプのインスタンスに履歴レコードを生成しないように指定することができます。 データインスタンスが履歴レコードを生成しない場合、データインスタンスへの変更はロールバックできません。
以下のように以前の状態に戻すルールやデータインスタンスを指定できます。
- System:履歴レコードを含むすべてのルールとデータインスタンスをロールバックします。 これはデフォルト設定です。
- User:特定のユーザーによって変更されたルールとデータインスタンスをロールバックします。
注:複数のユーザーによってルールが変更された場合、エラーメッセージが表示され、システムロールバックを使用する必要があります。 - Application:特定のアプリケーションのロールバックルールとデータインスタンス。
復元ポイントの詳細については、「Using restore points to enable error recovery」を参照してください。
このトピックは、下記のモジュールにも含まれています。
If you are having problems with your training, please review the Pega Academy Support FAQs.