« デブサミ夏2013のリンク | トップページ | Redmine for ITILが解決するもの »

2013/08/05

クラウドのもう一つの本質~ソフトウェアの可搬性を確保する

Hadoopフレームワークasakusaを使って、バッチ処理の基本であるEDIをAWSへ移行した記事を見つけた。
その記事の中で「クラウドがソフトウェアの可搬性を確保するのに効果がある」という事が書かれていたのでメモ。

【元ネタ】
クラウド上にEDIを「移行する」ということの意味 - 急がば回れ、選ぶなら近道

Hadoopの本質は分散I/Oにあり~クラウド時代の非同期処理: プログラマの思索

基幹系バッチ処理をHadoopで高速化: プログラマの思索

クラウドの本質はインフラ管理のIT化: プログラマの思索

クラウドデザインパターン~インフラ方式設計のベストプラクティス集: プログラマの思索

デブサミ夏2013のリンク: プログラマの思索

デブサミ夏2013のテーマはDevOps。
DevOpsの背後にある技術は、AWSとChef。
その技術のキーワードは、Infrastructure as Code。
つまり、インフラ管理のIT化。

インフラ構築は今まではWF型開発が主流だった。
ハードの購入、OSやミドルウェアのバージョンを決めてインストールなどの作業は、一度実行するとやり直しが効かないから、事前の計画づくりを重視せざるを得ない。
でも、AWSのようなクラウドを使うことで、試行錯誤しながら性能検証したり、アクセス数が増えれば動的にサーバーリソースを増やす対策を後から取ることができる。

でも、クラウドの利点はそれだけではない。

昨今のIT技術の流れとして、ソフトウェアとハードウェアの乖離が激しくなっている。
業務システムは一度作ったら10年ぐらいは普通に使うのに、WindowsやRDB、JDKのバージョンアップ、サーバーのリプレースによって、ソフトウェアも変えざるを得ない。
CPUやHDDの性能向上があるために、OSやミドルウェアのVerUpのために、3年おきにリプレースせざるを得ない時が多い。
このいわゆるリプレース作業は、レガシーマイグレーションとも呼ぶ。

レガシーマイグレーションの良い例は、Cobolを使う汎用機からJavaやPHPのようなWebシステムを使うオープン系への移行作業。
90年代からのPCの普及がそれを後押しした。
ハードウェアやミドルウェアを変えるだけでなく、プログラミング言語まで変えてしまうリエンジニアリング又はリライトゆえに、どのプロジェクトも大変だっただろう。
下記にその事情は書いた。

レガシーマイグレーションという名のシステム移行はデスマーチになりやすい: プログラマの思索

そして今は、サーバーなどのハードウェア資産を自社内に持つオンプレミスから、ハードウェア資産を変動費化するクラウドへ移行するレガシーマイグレーションの案件が少しずつ増えてきている。
一度クラウドに乗せてしまえば、ソフトウェアの可搬性は高まる。
何故なら、サーバーの性能は動的に拡張可能であるし、クラウド上でのデータやシステムの移行作業は速いから。
ソフトウェアの可搬性が良ければ、業務システムが使える期間も長くなるだろう。

ソフトウェアの可搬性は、ソフトウェアの品質特性における移植性に相当する。
ソフトウェアの品質特性における機能性や信頼性よりも、長く使うシステムを機能拡張しやすくするための保守性や、ソフトウェアを再利用したり、ハードウェアに依存せずソフトウェアの可搬性を確保するための移植性の方が重視される時代になってきている。

新しい技術が、ソフトウェアに求める品質特性を大きく変えてきているのだ。

|

« デブサミ夏2013のリンク | トップページ | Redmine for ITILが解決するもの »

Agile」カテゴリの記事

ソフトウェア工学」カテゴリの記事

モデリング」カテゴリの記事

経営・法律・ビジネス」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« デブサミ夏2013のリンク | トップページ | Redmine for ITILが解決するもの »