2021-12-05に投稿

Azure Pipelineを使ってリリースする場合の構成の検討

Azure Pipelineを使った場合の利点の1つに、リリースするARMテンプレートにはないリソースを削除するところまで自動化できる、という点があると思う。
カスタムデプロイを使用した場合、リソースの差分は手動で削除しないといけないし、完全デプロイをコマンドラインから実行すると、リソースグループ単位で再構成される(確か)
なので、きれいにリリースができるのはとてもいい。

で、じゃあリリースに失敗しても綺麗に戻せるね、って考えたときに、どこから戻す?

本番ADFはライブモードで運用するから、戻すといったらARMテンプレートになるけど、カスタムデプロイは前述のように差分が残る
なので、開発ADF(もしくは検証用ADF)から戻すことになる

開発ADFのブランチ構成は、基本的に以下のようになる
・adf_publish:ライブモードの環境
・main:プルリクエストで反映、adf_publishへ発行用
・work:作業用

adf_publishの内容をリリースする、とした場合、流れは以下
work→(プルリクエスト)→main→(発行)→adf_publish→(Azure Pipeline)→本番ADF

戻そう、とした場合、本番ADFの状態をどこかに保持しておかないといけない
そうした場合、adf_publshに保存用のブランチを作成しておくほうが無難なんだろうか

work→(プルリクエスト)→main→(発行)→adf_publish→(Azure Pipeline)→本番ADF
                       ∟yyyymmdd_release

上のような構成にしておいて、本番ADFへの反映で失敗したら、yyyymmdd_releaseブランチから戻す
でも、Azure Pipelineのリリースは、Artifactsが必要で、Artifactsは手動実行できない
退避しているブランチに変更入れるわけにはいかない

そうなると、ブランチはmainに作成したほうがいいんだろうか

work→(プルリクエスト)→main→(発行)→adf_publish→(Azure Pipeline)→本番ADF
              ∟yyyymmdd_release

mainはプルリクエストで変更分をいろいろマージすると思うけど、リリースタイミングでブランチを切っておいて、失敗したらリリースタイミングのブランチで戻して、adf_publishに発行して、本番ADFに反映
いまいちな気がする

work→(プルリクエスト)→main→(発行)→adf_publish→(Azure Pipeline)→本番ADF
                       ∟yyyymmdd_release
↑の構成にして、リリース物件に更新用のreadmeを格納して、そこを更新して戻す、のほうがよさそう
readmeを更新した際のコミットコメントは「リリースに失敗したため、戻し作業を実施」とか?
ちょっとカッコ悪いかな

ツイッターでシェア
みんなに共有、忘れないようにメモ

ao-iro

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント