HCL Accelerate は ServiceNow とも連携できますが、その実際について記した記事 Release Management with HCL Accelerate and ServiceNow の翻訳版を掲載します。
HCL Accelerate と ServiceNow によるリリース管理
2020年7月31日
著者: Brian Stump / Product Specialist
リリース管理は、アプリケーションやインフラストラクチャを問わず、企業のソフトウェア環境に変更を加える際の基本的な側面です。特に、リリースがさまざまなチームやビジネスユニットにまたがる複雑なものになると、そのための再現性のあるプロセスを確保することが重要になります。
HCL Accelerate は、使いやすくテンプレート化されたリリース管理ソリューションを提供し、ネイティブの ServiceNow との統合により、変更とリリース管理プロセスを緊密に同期させています。このブログ記事では、ServiceNow と連携した HCL Accelerate でエンタープライズリリース計画を設定し、本番環境にソフトウェアを配信する方法を説明します。
HCL Accelerate でエンタープライズリリーステンプレートを作成する
最初のステップは、HCL Accelerate でエンタープライズリリーステンプレートを作成することです。このテンプレートは、メジャーリリースイベントの一部として新しいソフトウェアをリリースするたびに実行されるプロセスを表しています。これを、チーム、ビジネスライン、またはこのイベントの一環として本番稼動を希望するグループ全体のリリースをオーケストレーションするための「親」計画と考えてください。
リリースが作成されたときに、このテンプレートから作成された計画を自動的に開始する」オプションがあることに注意してください。はい」ボックスにチェックを入れると、リリースが HCL Accelerate で作成されるたびに、リンクされた ServiceNow 変更チケットも作成されます。この場合、「いいえ」に設定するつもりなので、変更チケットは、セクション3でリリースの実行を開始した後に作成されます。
テンプレートを作成したら、リリースがテンプレートから作成されるたびに、リリースのタスクを定義します。ここでは、ServiceNow との統合を設定し、承認と通知タスクを介してガバナンスを確立し、他の自動または手動のタスクを設定します。
ServiceNow との統合のために、リリース計画が実行されるたびに変更チケットを作成して更新する一連の ServiceNow タイプのタスクを定義します。最初のタスクは変更を作成することになります。次のスクリーンショットは、ServiceNow に接続する変更チケットの作成タスクを示す設定例です。HCL Accelerate のリリースプロセス全体を通して、変更を ServiceNow でいつ、どのように更新したいかに応じて、この設定方法には多くの柔軟性があります。
設定している 'ticketId' フィールドに注目してください。これは、リリースの進行に合わせて新しく作成されたチケットを更新していることを確認するために、後のステップで参照するプロパティを作成します。
作成できる ServiceNow タスクのもう一つのタイプは、変更チケットの承認を待つことです。これを行うには、アクション「変更要求を待つ」を選択し、関連するフィールドと値を設定する必要があります。リリース計画がこのステップに達すると、HCL Accelerate は、設定された間隔に基づいて ServiceNow をポーリングし、それらのフィールドと値が設定されたものと一致するまで待ちます。この場合、チケットが承認されるまでタスクは「進行中」になります。
システムIDフィールドは、チケット作成ステップで設定した'ticketId'プロパティを参照していることに注意してください。このプロパティは、HCL Accelerate が使用するタスク間で一貫している限り、任意の名前を持つことができます。また、このプロパティは子プランには継承されないので、他のテンプレートが競合せずに同じプロパティ名を使用できることにも注意してください。
ServiceNow タスクの最後のタイプは、「変更要求の更新」アクションです。wait'タスクと同様に、これは最初に作成されたチケットを参照するためにシステムIDを使用します。今回は、ServiceNow で変更が発生するのを待つ代わりに、HCL Accelerate を使用して ServiceNow でチケットに変更を加えることができます。追加プロパティ」フィールドでは、「field=value」構文を使用して、フィールドを新しい値で更新することができます。ほとんどの場合、チケットを「実装」や「スケジュール」などの新しい「状態」に更新します。更新された値がチケットの現在の状態に基づいて ServiceNow で許可されていることが重要です。
ServiceNow のデフォルトの「状態」の値はここに示されています。ServiceNow API はこれらの数値を使用して値を割り当てます。
他のエンタープライズリリースの管理タスクと同様に、ServiceNow タスクを設定した後、他のテンプレートのプランをデプロイメントタスクとして追加して、より大きなリリースのガバナンスを設定できます。前述したように、この「エンタープライズ」プランは、ソフトウェアをデプロイするプランの親となります。HCL Accelerate で作成されたパイプラインステージごとに、対応するテンプレートが存在します。これらのテンプレートをエンタープライズプランに追加するには、「別のプランを実行」というタスクを使用します。
このユースケースでは、JKE-パイプラインPRODステージテンプレートをすでにセットアップしていると仮定しています。このテンプレートは、私のエンタープライズプランに似ていますが、Jenkins、HCL Launch、またはAnsibleのいずれかを介して実際にソフトウェアをデプロイするためのタスクが含まれています。Run another plan」タスクでこのプランを参照することで、エンタープライズリリースプランを介して、1つまたは多数のデプロイメントプランをオーケストレーションすることができます。
さて、私はエンタープライズリリース計画のテンプレート化を完了しました。この作業は、全体のプロセスを変更したり改善したりするために、あちこちで微調整することを除けば、すべて一度きりの作業です。私の組織がエンタープライズリリースを実行したいと思うたびに、このテンプレートから実行を開始します。
実行するリリースの作成
テンプレートが作成され、ServiceNow と同期されたので、最初のリリースを実行する準備ができました。最初のステップはリリースを作成することです。次のスクリーンショットは、テンプレートから作成されたエンタープライズリリースの例を示しています。
後で検索して見つけやすくするために、タグを使用していることに注意してください。
私のリリースが作成されると、私のチームやビジネスユニットは、自分のデプロイメントテンプレートを使ってこのリリースに参加できます。ここで使用している例は、「JKE-パイプライン」のためのものです。エンタープライズリリースに参加するには、示されているように、PRODステージの横にある矢印をクリックして、「リリースに参加」をクリックします。
ここから、どのリリースに参加したいか、また、どのアプリケーションのバージョンをリリースと一緒にデプロイしたいかのオプションが与えられます。デフォルトでは、最も近いステージにあるバージョンが選択されますが、この場合は、すでに「QA」ステージに配信されているバージョンです。
「スケジュール」をクリックすると、エンタープライズリリース計画のビューには、新しく参加した JKE-パイプラインチームの計画が反映されます。
エンタープライズリリースの実行
セクション 1 では、エンタープライズリリースのテンプレートを作成する方法を示しました。セクション2では、スケジュールされたエンタープライズリリースを作成する方法と、様々なチームが参加できる方法を示しました。このセクションでは、そのリリースの実行例を説明します。
リリースを開始するには、エンタープライズリリースの最初のタスクで再生ボタンをクリックするだけです。これにより、ServiceNow チケットが作成され、リリースクロックが開始されます。このチュートリアルの最初に「このテンプレートから作成された計画を自動起動する」というオプションがあったことを覚えていますか?ここで 'Yes' を選択していた場合、リリースが作成されたときにプランはすでに開始されており、次の手動タスクを待っていました。この例では、私たち自身が計画を開始しています。
リリースが開始されたので、ServiceNow の承認を待つタスクで一時停止します。ServiceNow でチケットを承認するためには、ServiceNow サーバーにログインして変更の承認を要求し、指定された承認者に変更を承認させる必要があります。実際の実行では、このプロセスには、HCL Accelerate ツールと ServiceNow ツールの両方にまたがるさまざまな利害関係者が関与することになります。両者が同期するように設定しているため、ServiceNow で承認が得られれば、すべての更新が自動的に発生し、リリース計画は継続していきます。
エンタープライズリリース計画が自己定義した「デプロイメント」タスクに到達すると、エンタープライズリリースに参加した PROD テンプレートが実行を開始することがわかります。次のスクリーンショットは、この PROD テンプレートがどのように見えるかの例を示しています。
このテンプレートには、ServiceNow との統合も含まれていることに注意してください。これは、この例では、エンタープライズリリース自体のチケットを作成し、それと一緒にリリースしているアプリの各チームやグループのチケットを作成しているからです。このようにして、エンタープライズレベルだけでなく、より詳細なチームやアプリケーションレベルでも承認と変更を管理できます。
JenkinsやHCL Launchを介したデプロイが完了し、ServiceNow のチケットが更新されると、エンタープライズの計画を進めていくための Success が返ってきます。スケジュールリリースのページを確認してみると、作成した変更チケットがリンクされて表示されています。この場合、エンタープライズプラン用に1つ、それに参加したパイプライン PROD デプロイメント用に1つ作成しています。多くのチームがこのエンタープライズリリースに参加していた場合、ここには多くのチケットが表示されます。
同様に、ServiceNow では、HCL Accelerate によって作成・管理されたこれらの変更チケットを見られます。
エンタープライズリリース計画が成功したので、リリースサマリーページでこのように確認できます。
また、このエンタープライズリリースに参加したパイプラインを確認できます。パイプラインビューでは、私のQA環境から選択した最新バージョンが本番環境にデプロイされて実行されていることがわかります。
HCL Accelerate の詳細と無料トライアルを入手するには、ここをクリックしてください。