【考察】DevOpsCenterは使い物になるのか?

By | April 4, 2023

概要

表題について評価する。

比較対象

①変更セットを用いた組織開発モデル
②DevOpsCenterを用いないソース駆動型開発

各開発モデルにおけるDevelopment & Deployment Process

  • 組織開発モデル with 変更セット
    • チケットを作成 on チケット管理ツール
    • Sandboxで開発
    • 変更セットを用いてデプロイ
  • ソース駆動型開発 with CI/CD tool
    • チケットを作成 on チケット管理ツール
    • 開発用組織で開発
    • 変更をリモートリポジトリにpush on ローカルPC
    • 継続的インテグレーション on CI/CD tool
    • プルリクエスト on Github
    • 手動レビュー & マージ on Github
    • 継続的デプロイメント on CI/CD tool
  • DevOpsCenter
    • 前提:Pipeline設定(組織・Branch)
    • WorkItem(=チケット)を作成 on WorkItem
    • 開発用組織で開発
    • “Commit Changes” on WorkItem(→Stagingブランチに自動push)
    • 継続的インテグレーション on CI/CD tool
    • “Create a Review” on WorkItem(→Stagingブランチへのプルリク自動作成)
    • “Ready to Promote”にステータス変更 on WorkItem
    • “Promote” on Pipeline(→Stagingブランチに自動マージ+ Staging組織に自動デプロイ + 上位のブランチに自動push)

DevOpsCenterを用いた開発の特徴

  • VCSに関連した操作が一切不要である(すなわち、ローカルPC上でデルタをpushしたり、Github上でPull Requestを作成・マージする必要がない)
  • メタデータのリリースをWorkItemに紐づけて行う必要があり、「チケット駆動型開発」を前提とした作りとなっている。

DevOpsの良い点・悪い点

■良い点
・VCS(Git)に慣れていない人でも簡単に「チケット駆動型の開発ライフサイクル」・「ソース管理」を実現できる。
・(Reviewフェーズを飛ばしてPromoteできないため)Review実施に関して一定の強制力がある。

■悪い点
・(完全にDevOpsCenterベースで開発することを前提とした場合)CLIと比べてCommit頻度が格段に落ちることが予想される
 →つまるところ、Version ControlがLocal内で実施されるかという観点で見た場合、最新バージョンのSubversionとGitの相違に似た話に帰着する。
・デプロイがUnlocked Packageベースではないので、Unlocked Pakageベース開発の比べると機能が圧倒的に貧弱(例:パッケージのバージョン管理・パッケージの階層構造・ロールバック)

結論

Unlocked Packageベースのパッケージ開発モデル
サードパーティーDevOpsサービス(Copado, GearSetなど)
===越えられない壁===
DevOps Center
メタデータAPI
===越えられない壁===
変更セット

※通常のソース駆動型開発がどこに位置付けられるかは、頑張り具合による。