DevOps Centerの設定方法と使い方


+ [DevOps Center](https://tddprojects.atlassian.net/wiki/spaces/SF/pages/2441740432/DevOps+Center) <--訳した分
+ [Salesforce DevOps Center: A Deeper Dive](https://www.salesforceben.com/salesforce-devops-center/) 
+ [Salesforce DevOps Center Tips: Environment Management](https://www.salesforceben.com/salesforce-devops-center-tips-environment-management/)
+ [Troubleshoot DevOps Center Errors (Beta)](https://help.salesforce.com/s/articleView?id=sf.devops_center_troubleshooting.htm&type=5)
+ 
----------------------------------------------------

長かったので、設定方法は別に分けます。

+ 本番組織で Dev Hub を検索し、Source Tracked Sandbox を有効にして Dev Hub を有効にする

DevOps または DX を使用して高度なことを行う開発チームがある場合は、本番組織で有効にする前に開発チームに確認してください。ただし、とにかく有効にする必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/efdf4951-4414-19ab-66f2-57e1a7cd4bf2.png)

+ また、DoCe は最初は Github でのみ機能するため、Github があることを確認してください。
1. Github で無料のプライベート リポジトリを作成できます。
2. これが自分の Github アカウントではなく、会社が所有するものであることを確認してください。メタデータでさえ、個人の Github アカウントに保存しないでください。

+ 次に、開発者サンドボックス (部分的ではない) を作成または更新します。ソース追跡を有効にした後に作成されたサンドボックスが必要です。
+ セットアップで DevOps Center を検索し、有効にします。次に、クリックしてパッケージをインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/cab76863-bd5e-34ee-173f-20bc4e546773.png)


+ インストール後、DevOps Center はアプリ ランチャーのアプリになります。

なぜ DoCe はパッケージであり、Salesforce の一部ではないのですか? さて、いくつかのことが今この方向に向かっているようです。これにより、製品チームは年に 3 回のメイン リリースとは異なるスケジュールでリリースできます。これは必ずしも頻繁なリリースを意味するわけではありませんが、バグ修正がより簡単に行えるようになることを願っています。パッケージですが、引き続きサポートを受けられます。(ベータ版では、DoCe のフィードバックは GitHub スペース ( https://github.com/forcedotcom/devops-center-feedback ) 経由です)。

# UI

DoCe を開いて最初に気付くのは、新しいタブで開き、画面全体を占めることです。(そして、アプリ ランチャーで現在の画面を開いたままにするだけです)。DoCe は、Lightning アプリケーション ビルダー、メール テンプレート ビルダー、その他の「ビルダー」と同様の「ビルダー」UI です。しかし、UIは本当にひどいです。Salesforce の他の部分とは異なります。チームは、Salesforce の標準的な設計図に従わないものを構築するために、どのように GET を行うのでしょうか。彼らは設計システム全体を作成しましたが、どのチームも参加して好きな混乱を作成し、それを Salesforce と呼ぶことができますか? これが、セットアップ PM が必要な理由です。すべてのセットアップ画面で団結と結束が必要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/c176cb82-c1be-b562-96c9-8fdc1523621b.png)


+ プロジェクト、作業項目などのデータは組織内にありますが、組織内で簡単に表示する方法はありません。プロジェクトのタブがありますが、名前以外は何も表示されません。他のオブジェクトのページ レイアウトとタブを作成することもできますが、実際には必要ありません。レポート タイプを作成したら、レポートを作成できます。

# セットアップ

**新しい計画**
プロジェクトは基本的に組織です。プロジェクトは 1 つしかない場合がありますが、それで問題ありません。

+ 新しいプロジェクトを作成する
WTF はここで不注意な UI を使用しています。これはどのようにしてテストを通過するのでしょうか?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/b4ad8e01-310c-2969-12c3-b4d5a3461edb.png)

+ DX プロジェクト構造についてのビットは無視してください。これが現在の状況です。必要でない限り、それについて知る必要はありません。
+ リポジトリの作成が最も簡単です。
+ DoCe にプロジェクト レコードがあり、選択した名前のプライベートの空の Github リポジトリがあります。

注: リポジトリ名は Github の単なるリポジトリであるため、私よりもはるかにクリエイティブになりたい場合があります。会社の他のすべてのリポジトリと混在している場合は、必要な命名規則を知る必要があります。従う。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/7efeea2c-55af-f885-dc08-89c52dcad2cd.png)

**本番環境に接続**
+ 次に、組織を接続します。プロダクションから始まります。[クリックして接続] をクリックします。

UI が Salesforce の規則に従っていないことに気付くでしょう。通常、Salesforce では、行のアクションは行の最後のドロップダウン ボックスに表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/0eee2712-0b23-fa31-8e65-209a03573713.png)

+ デフォルトの名前は TDD Release でしたが、Prod と Sandbox しかないため、シンプルにするために名前を Prod に変更しました。

ログインして、組織の DevOps Center へのアクセスを許可します。
これが DoCe が既にインストールされている組織である場合、それを行うのは奇妙に思えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/2a3526b9-69cb-f5c8-f746-c4d741f9d712.png)


+ 今、あなたは何をしますか？ここには「アクション リンク」がありません。続行するには、プロジェクト レコードをクリックする必要があります。

**サンドボックスに接続**

プロジェクトをクリックすると、これが表示されます...すべてを少し無視して、[設定]をクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/9953ca42-ba97-2cab-fe5d-7e988f20ad29.png)


+ [追加] をクリックしてサンドボックスを追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/0c1868d9-1b0d-9a3b-2690-52c7dc82da6d.png)


+ この手順を実行する前に、新しく作成したサンドボックスにログインしていることを確認してください。これにより、MFA をセットアップし、サンドボックスですべてが正常であることを確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/54a66397-5e4e-081a-cacb-ac3b528019d1.png)


+ ここでも、適切な命名規則を使用してください。おそらく、サンドボックスの名前に似ています。
+ このステップで「開発に使用」を選択し、サンドボックスを選択します

注: ここで問題が発生しました。私は拡張ドメインを使用しており、ここのログイン画面では dot salesforce dot com をテストするためだけに表示されるため、このステップで拡張ドメインに入るには URL をハックする必要がありました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/f1a8ae76-5766-015b-d77b-69f3f2063a41.png)

**パイプラインをセットアップする**

ここでは物事を単純化します。Sandbox と Prod のみを使用している場合は、どのタイプの環境で作業しているかを尋ね、これをシンプル モードとして設定するウィザードが欲しいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/704bd689-bcfe-77b5-12ee-fbb61af07735.png)

+ 統合、UAT、およびステージング ステージの場合は、ドロップダウン矢印をクリックし、[ステージの削除] をクリックします。
+ これで簡単なセットアップが完了し、Activate をクリックできます。
バンドル ステージとブランチ名は無視して、シンプルに保ちます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/b341a6a1-102c-dc85-60be-24b803897bb0.png)


**作業項目**
これでワークアイテムを作成できます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/7abc1c93-40f4-0cec-8746-96f300b08308.png)


+ [新しい作業項目] ボタンが通常の Salesforce ボタンのように見えないのはなぜですか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/8e740638-39e6-4443-2e53-82aa4d3e7739.png)

+ WTF は、箇条書きのタブ設定が間違っています。ああ、神様。
+ 詳細を入力します。前述のとおり、これは Jira チケットではなく、いかなる形のチケットでもありません。簡単な説明を入力し、選択したチケット システムでチケットへのリンクを設定するだけです。
+ これは、次に行うことであり、展開します。作業項目の内容を理解するには、少し試行錯誤が必要になる場合があります。

**変更をビルドする**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/00c1ac75-b6a3-ce91-f1eb-3ddccac68c35.png)

+ サンドボックスで変更を行う前に、これを最初に設定する必要があるかどうかはわかりませんが、そうでないことを願っています. これはプロジェクト レベルで設定する必要があり、作業項目レベルで既に設定されているはずです。
+ [続行] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/0fd515d1-107a-4ab0-43b0-837d0fcb5235.png)

+ これで、Github ブランチが作成されました。繰り返しますが、これについてあまり心配する必要はありません。Github のものはすべてシームレスです。
+ さあ、サンドボックスでモノを作りましょう。

**Pull Changes**

+ アイテムを作成したので、作業アイテムで [Pull Changes] をクリックします。

注: 移動中に 2 つのワーク アイテムがあり、すべての変更がプルされる場合がありますが、このワーク アイテムに関連するメタデータ コンポーネントを選択できることを心配する必要はありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/53f2485c-8264-e596-accc-349e235bcb67.png)


+ フローを作成し、カスタム フィールドを作成し、フィールドを 2 つのページ レイアウトに追加し、フローを Lightning ページに追加し、新しいフィールドのいくつかのプロファイルに権限を付与し、アカウント管理を行う人々の権限を処理する権限セットを追加しました。
+ そこに手動で追加したコンポーネントがあることに注意してください。
+ プロファイルがプルされたからといって、プロファイルの展開を開始するわけではないことに注意してください。使用している展開方法に関係なく、プロファイルを展開しないでください。ただし、Perm セットの展開は問題ありません。

**Commit**

コミットするメタデータ コンポーネントを選択し、メモを入力して、[変更のコミット] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/36717945-813d-ce8e-ef3d-a8bb969c3d14.png)

**レビューを作成**

+ さて、次のステップは本当に奇妙です。変更をコミットすると、[変更をコミット] ボタンがグレーに変わるだけです。したがって、次のステップはレビューの作成であることを知っておく必要があります。
+ [レビューを作成] をクリックします
+ 各ワークアイテムに対してこの手順を実行する必要があります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/859380bd-f99d-163e-3314-db1a59d57a46.png)

**Ready to Promote**

+ あなたは最後のステップが変だと思っていましたが、これはさらに変です。Salesforce のどこで、トグル ボタンを使用してステージ内の項目を移動する必要がある UI を見たことがありますか?
+ [宣伝する準備ができました] をクリックします。ステージを Ready to Promotion に変更し、Work Item をそれ以上変更できないようにロックするだけです (ただし、変更が必要な場合は、Ready to Promotion をオフに切り替えることができます)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/34fec9fa-f6c1-be5e-b1df-d757700e712b.png)

+ パイロット フェーズ中にこれらすべてをフィードバックとして提供したにもかかわらず、このプロセスを改善するために何も行われませんでした。

**作業項目の承認**

+ ここでパイプラインに戻ります (この UX は少し奇妙に感じますか? そのとおりです)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/049539ca-9d87-1665-fe59-deaf4adf4dbc.png)

+ ここで、複数の作業項目に取り組み、それらすべてを昇格準備/承認済みステージに移行します。変更を本番環境にデプロイする準備が整ったら、次のステップを実行します。

**Promote**
+ プロモートするワークアイテムを選択し、[選択したものをプロモート] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a65f1da4-e052-f8ce-3258-9475fb12d3cc.png)


+ 本番組織にログインします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/6fe369a9-94d3-fe77-3fb4-3fa1ef65ea77.png)

+ 次に、画面が約 5 回更新された後、プロモートするワーク アイテムを再度選択し、[選択項目のプロモート] を再度選択する必要があります。

これも、すでに本番にログインしているため、非常に奇妙です (ただし、デプロイ先の本番組織がまったく異なる可能性があることを覚えておいてください。しかし、私がこの組織にいて、既にログインしていることを理解するのに十分なほど賢いはずです)。 ）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/fb5bedfd-287e-2e63-2091-d3b6ba0821c2.png)


+ ここではデフォルトのままにします。
注: テスト設定を変更したい場合があります。これは、本番環境への他のすべての展開と同じです。

+ [Promote] をクリックします。これは、Deploying to Production になっているため、Deploy と表示されているはずです。

**展開**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a4f03279-375c-7da4-f3e1-4c415bcc0862.png)

+ ここにはデプロイフィッシュはありませんが、デプロイがこの段階にある間、必要に応じて本番組織でデプロイステータスに移動し、そこから監視することができます。

**展開済み**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/c759f356-83c1-ae8d-d6c7-c0773a202f02.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/1448c877-d9e3-8382-23fd-f784ec8c66b3.png)

以上で、ワークアイテムが本番環境に展開されました。


**Github**

舞台裏で、Github は、作成したコミットとワーク アイテムのプル リクエストを実行し、それらのアイテムを最初に選択したブランチ (メインなど) にマージしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ade855b9-5c59-2820-e6dd-68a4f43d79ad.png)

また、展開したすべてのアイテムのすべてのメタデータを確認できます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/8427bf95-3d09-cb32-c60a-b6df202f52f1.png)


**作業項目リスト ビュー**

+ このリスト ビューは、クローズされたすべてのワーク アイテムでどんどん大きくなり、通常の Salesforce のようにリスト ビューを作成する方法はありません。したがって、ここに入るたびにフィルターを使用する必要があります。ただし、少なくとも逆の日付順で並べ替えることができます。
+ 作業項目用のタブを作成したり、作業項目用のカスタム フィールドを作成したりして、それらを任意の Salesforce レコードとして扱うこともできますが、DoCe でその追加情報を確認することはできません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/96408fa4-6b96-88c3-b2b9-2e86488cf655.png)


**展開エラー**

+ これ以降の展開は、通常の Salesforce 展開とまったく同じであり、すべて同じ欠点があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/e08fb6af-20c2-56ad-d3cc-4f339909be25.png)


+ クリックして詳細を表示

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/071d0ac4-92d1-8101-0cce-0b687a6f9508.png)



+ エラーの詳細をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/f3ea4f7d-cbe8-4fee-b242-f1258d488adf.png)


+ ここでのエラーの詳細は、組織のリリース状況で表示されるエラーの詳細とまったく同じです。（例えば、理解不能）。
+ ただし、Deployment Status の方が読みやすい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/60c71d14-a004-8833-3a83-ac3834d6b749.png)


+ そのため、取引先ページのレイアウトと取引先の Lightning ページを修正する必要があります。
+ 次に、ワーク アイテムに戻り、[プロモーションの準備完了] の切り替えを解除し、変更をプルしてから、変更をコミットして [プロモーションの準備完了] に戻し、[パイプライン] に戻ってプロモート / デプロイを再度実行する必要がありました。


**コンポーネントを手動で追加する**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/f2750816-d3da-d78e-4a65-785c1850e341.png)

+ コンポーネントを手動で追加できます。これは、パイロット以来の優れた新機能です。これを行うには、メタデータを完全に理解する必要があります。詳細について学ぶことをお勧めしますが、この手順を実行する必要はありません。ソース トラッキングに頼ることができます。

これは変更セットよりも優れた UI ですが、変更セットに既に組み込まれており、この UI に簡単に追加できる関連するメタデータ検索がないことは興味深いことです。そんなミス。

+ 追加した後にコンポーネントを削除することはできませんが、この作業項目にコミットするようにコンポーネントを選択することはできません。

**本番環境の変更**

+ 開発組織を本番環境で行われた変更と同期できるようにするためのものです。サンドボックスを頻繁に更新するのではなく、これを行ってください (作業項目の進行中は更新しないでください)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/6edaebb4-515c-d566-8b1a-48e4d475cea5.png)


+ しかし、うまくいかなかったようです。もう一度試してみる必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/5f959746-e2b6-65db-871d-fc65ac141107.png)


# Tips

+ ゆっくりスタート！1 つのサンドボックスから本番環境に移行して、それに慣れてください。
+ 次に、開発チームと協力して、「パイプライン」とサンドボックスの管理方法を検討します。
+ DevOps センターを 1 つの組織で使用し、それを使用して完全に異なる組織との間でデプロイできます。私はパートナーとして、それをパートナー組織にインストールし、クライアントのすべての組織のすべての展開を 1 つの中心的な場所にすることができます。それはデータではなく、単なるメタデータなので、それらをまとめておくのに問題はありません。以前、すべてのクライアント組織のメタデータをバックアップ用に Bitbucket に保持していました。

**高度な機能**

最初に組織のすべてのメタデータを Github に取得して、デプロイ時に組織への変更を確認できるようにすることをお勧めします。すべてのメタデータを取得する方法の詳細については、 https://tddprojects.atlassian.net/wiki/spaces/SF/pages/595197983を参照してください。