これ何
今はやりの Infrastructure as Code について述べたいので、まずはインフラの歴史を振り返ります。
なお、私がインフラに相対したのは、高専時代の 1996年、大島商船高専の電子計算機室に入った時が最初だったと思います。
この頃インターネットが一般家庭にリリースされ始め、それ以前のことは話でしか知らないです。
エヴァンゲリオンがブームだったように思えます。
第0世代 オンプレ / データセンターの時代
インターネット黎明期 1996~2000年くらいまで。
システムを立ち上げる時の選択肢が下記
- ホスティングされたWebサーバをアカウントとして借り受ける
- データセンターのサーバ買い切りあるいはレンタル
- 自社(たまに個人もいましたが)でデータセンターのラックもしくは一角を借り受けてサーバを敷設する
- 自社あるいは社内にデータセンターもどきや計算機室を作る
この時期、ちょっとした商用のサービスを立ち上げる時は、データセンターのラックの手配、インフラ屋さんやサーバの手配が必要で、それらを一括でやってくれるSIerのようなものに頼るか、自社の情報システム部の人たちがぎっくり腰と戦いながらサーバ
私が体験したお仕事で、50台のサーバラックにぶち込んで配線してこいとか聖帝十字陵ごっこ以外のなんだというのか。
はなしがそれました。
この時代のインフラは、ハードウェアであったため、配線図、配置図は物理でした。
Infrastructure as Excel.
第1世代
インターネット成長期 2000~2009年くらいまで。
わかるひとには「にちゃんねるからリーマンショックまで」といえば、想像つくだろうか。
引き続き第1世代をひきずりながらも、VMWareがサーバ仮想化の選択肢として浮上してきた時代。
まだ上記の物理インフラ屋さんや、SIerのハードウェア屋さん、自社の情シス運用部隊は健在です。
物理サーバの運用コストも徐々に下がっていきましたが、インフラコストは以前高止まり、24356のサービス維持、管理も面倒な時代で、繁忙期にないサーバのロードバランスが低くて、フレキシブルな運用のため多忙ではない時間はサーバをshutdownしたりする運用も開発されていました。
一方、VMWareなどの製品では一つのサーバに複数の仮想マシンを走らせることもできており、実際にフロントなどキャッシュが効くノードから徐々にその役割を担うようになってきたように思えます。
この頃の仮想サーバは絶望的にディスクのI/Oが遅く、データベースやバッチサーバなどはいぜんとして物理サーバという風潮が強かったです。
この頃のインフラは、ハードウェアが主役で、仮想化するにしてもインフラを定義するものはあくまでもスナップショットでしかなかったように思えます。
Infrastructure as Template/Snapshot.
第1.5世代あるいはプレ第2世代 PaaSとしてのクラウドまでの試行錯誤の時代
2009~2013年くらいまで。
サーバの仮想化技術が進化し、データセンターの中のデータセンターとしてプライベートクラウドがそれなりの選択肢として上がってくるようになった頃。
この頃私はソフトウェアエンジニアの傾向が強かったので、あまりインフラを意識していませんでしたが、依然としてハードウェアの制約は強く仮想化された環境も徐々にマシになっていった印象があります。
そして、リーマンショックから立ち直った東日本大震災の直前、2011年3月2日、ついに日本にAWSの東京リージョンが誕生します。
震災の後くらいから、震災や電力需要などの理由から、物理ロケーションを超えた可用性が重視されるようになり、データセンターの需要が一時的に関西に集中したのを覚えています。
このあたりあまり見ていなかったのですが、PaaSクラウドの採用事例が徐々に専門誌を賑わすようになってきたようになってきたような気がします。
Ansibleが2012年の2月、OpenStackは2010年。
第2世代 パブリックPaaSクラウドの時代
2014年~
そして人類は気づいてしまったのです、物理サーバが要らないことに。
リースも管理も所有もなく、ただ、機能を果たす仕組みと安○性にお金を出せばいいということに。
仮想化の覇権を争う時代、それを象徴するような事件がこちら。
https://www.nikkei.com/article/DGXNASFK2600L_W2A620C1000000/
○ァー○トサーバ、この時代に生きたインフラ屋さんなら聞いたことがあるでしょう?
そして日本は・・気がつくとやられてましたね。AWSに、Azureに。
国産クラウドがなにからなにまで微妙であったこと、これは日本のITが製造業とサービス業の僕でしかなかったことに由来すると思っていますが、いつのまにか入り込んでいた黒船、巨人には勝てなかったです。
徐々にデータセンターにデプロイされるサーバの数は減り、EC2がそれに取って代わるようになってきます。
Terraform(2014年7月28日)がこの頃。
第3世代 全てをクラウドへ オンプレもクラウドにつながる時代
2016年ごろにはもうこの風潮であったと記憶しています。
クラウド上のインフラは物理サーバよりは圧倒的に設計、実装が楽になったとはいえ、物理ではない面での煩雑さを解決しようとする動きがうまれます。
それがコンテナであり、k8sであり、インフラを設定ファイルやテンプレートで管理しようという流れです。
そしてもう一つの目的が、ソフトウェアの開発者がインフラを扱えるようにしようという試み。
10年前よりも、ソフトウェアエンジニアは圧倒的にインフラと近いところにいます。
彼らが、自分の言語でインフラを管理しようと思うのは、自然なことだと思います。
(つづく)