バッチ処理の存在意義

さらっとしたエントリにすげーブクマが作ってのはみんないろいろ思うところがあるのかな、と感じました。

これだけみると、人件費に対してコンピュータリソースが高い時代の産物なんですよね。今は、クラウドの登場で、有り余るコンピュータリソースをほぼ自由に低コストに使える時代です。そもそもバッチ処理である必要があるか、考える必要がありますね。特に夜間バッチについて。

バッチ処理について再考 - プログラマでありたい

まず、有り余るコンピューターリソースっていう認識がどこの世界のものなのかなーと僕なんかは思ってしまいます。
一方で、夜間バッチという存在が必要性を失っていきつつあることも確かです。
それはリソースが余っているからじゃなくて、例えば銀行系のオンライン処理であればかつてに比べて「夜間が暇」ではなくなってきています。グローバル化が進めば一般企業のシステムも「夜間」なんて概念がなくなるんじゃないかなーなんて。

でも、システムのキャパシティーのデザインというのはそういう状況であっても常に意識が必要ですよね。動的にリソース配分するような基盤が流行るのは、リソースに制約があるからに他なりません。ここでいうリソースというのは現実的な言い換えをすると「お金」です。動的に配分することができる=お金の面では平準化をする必要がないに一見思えるかもしれませんが、あくまで要件次第。処理が常にスケールするものであれば成り立つ方程式ではあります。

そもそも、バッチ処理というのは単に平準化のための仕組みではありませんよね。要件としてバッチ処理で十分なシステムにおいて、バッチ処理以外を選択するということがそもそもわからない。逐次処理というのは逐次処理をすべき要件があるから行うわけであってね。

ただ、巨大な夜間バッチを必要とするシステムデザインはそろそろ古いよね、ということだけは真実かなと思います。