インフラやデータ移行の自動化~アジャイル開発の最後の問題
牛尾さんが書いた記事を@ryuzeeさんが絶賛されていたのでメモ。
【元ネタ】
アジャイルなインフラのつくり方とデータマネジメント - メソッド屋の日記
Twitter / @ryuzee: これは素晴らしい記事だ / アジャイルなインフラのつくり方とデータマネジメント - メソッド屋の日記 .
XPが提唱したテストの自動化、ビルド作業の自動化によって、開発工程は確実にスピードも品質も上がる。
しかし、受入テスト環境へのデプロイ作業(リリース作業)でいつも手間取る。
本番環境は開発環境とは違って、環境そのものも違うし、データも違うから、モジュールの配置以外の作業が大変なのだ。
「アジャイル開発は開発環境ではとても有効だが本番環境ではその恩恵があまりない」という指摘は「ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション」において「ラストマイル問題」として既にあげられている。
※拙著「Redmineによるタスクマネジメント実践技法」の290ページにも、「ラストマイル問題」について触れています。
プロジェクト管理やテスト工程をクラウド化する: プログラマの思索
Agile開発が指摘したソフトウェア開発の特徴: プログラマの思索
牛尾さんの記事によれば、AmazonEC2でクラウド化するだけでなく、Rubyライブラリveewee、Vagrantを使って仮想環境の立上げ・設定・テストを自動化ができるらしい。
つまり、本番環境と同等な環境を仮想マシンで複製しておき、それを立ち上げるようにすればいいのだろう。
また、本番環境で稼働させる時には必ずデータ移行が発生し、そのために移行ツールを別途作ったり、移行元データをクリーニングする面倒な作業が発生する。
「データベース・リファクタリング」では、データ移行期間を用意して、データ移行するためのノウハウをリファクタリング作業のパターンとして提唱している。
リリース作業の問題のレベルをソフトウェアで解決できるレベルに変換すれば、それはAgile開発が得意とする所だ。
テストやビルドの自動化だけでなく、デプロイやデータ移行の自動化も今後のアジャイル開発の課題になるだろう。
| 固定リンク
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
コメント