その1
SFのDevOpsは学習コストが高い。
CI/CDパイプラインに限っても、構築にあたっては少なくとも以下の要素を抑えておく必要がある。
- Salesforce CLI
- Metadata API
- ロック解除済みパッケージ
- メタデータの分割(=パッケージの分割)
- CI/CDツール
- Git
- ブランチ戦略
- 組織戦略
- DevHub
- スクラッチ組織
- DevOps Center
- AppExchange(Copado, GearSet)
その2
そのため、既存でOrg Based Developmentを採用している組織が新たにDevOpsに取り組む場合、GearSetのDevOps LaunchPadでも指摘されている通り、一挙に理想的なDevOpsを実現することは難しい。
DevOpsの採用は漸次的にのみ可能である。
それは、以下のような段階を踏むと思われる。
- 組織開発モデル(ソース管理なし):Gitなし。変更セットでのリリース。
- 組織開発モデル(ソース管理あり):Gitをbackup的に利用するパターン
- ソース駆動型開発(CI/CDあり):Gitベースの開発。
- パッケージ開発モデル(Happy Soup):ロック解除済みパッケージで全てのdeltaをカバー
- パッケージ開発モデル(パッケージ間の依存関係の制御あり):論理的な単位(=アプリケーション単位や業務単位)でメタデータが適切に分割された状態
その3
Unlocked packageは、ほとんどの場合Happy Soupの解消と共に語られるが、最初からそれを目標にすると導入コストがあまりに高くなってしまう。
全てのdeltaを単一のパッケージ(のライン)で扱う運用でも、十分にロック解除済みパッケージを利用しない場合と比べて相対的に恩恵があるので、そうした運用も検討されて然るべきなのではないかと思う。
ただまだunlocked packageは使ったことがないので、実際のところはわからない(上記は現時点での仮説である)