また、Immutable Infrastructureを構築する上でクラウド環境は不可欠です。当エントリで紹介するセッションレポートは、株式会社paperboy&co.でテクニカル・マネージャーを務める宮下剛輔氏による『インフラ技術のこれまでとこれから』を、氏の注目キーワード解説を交えつつ、お送りしたいと思います。
「"インフラ"が指す範囲は思っている以上に広くなっています。最近では上位レイヤーやミドルウェアを指す言葉にもなってきています。今回は"OSから上、アプリを載せる部分のレイヤー"としてお話したい」とまずは定義を行い、セッションが始まりました。
サーバープロビジョニングと3つのレイヤー
『サーバープロビジョニング(Provision=提供する、サーバー環境を構築、準備して提供する)』という言葉は2010年、Lee Tompsonという方がとあるイベントで発表されたものが起源とされています。概念を理解するにはこの図が一番シンプルで分かりやすい、と宮下氏は図を交えながら解説。「サーバープロビジョニングは3つのレイヤーで管理されます」とポイントを挙げました。
- bootstraping(ブートストラップ:OSを起動して利用可能な状態になるまでに自動実行される処理)
- configuration(設定部分:最近ではChefやPuppet、ansibleなどの"構成管理ツール"を使って行うことが多い)
- orchestration(オーケストレーション:詳細は後述)
Puppetの登場(2005年)後、2008年頃から出始め最近よく聞くようになった『Infrastructure as Code』というフレーズ。これは『インフラをコードで記述し、アプリ開発のようにインフラを構築する』という意味になります。構成管理ツールは『宣言的』『抽象化』『冪等性(べきとうせい)』『収束化』という要件に従い構成されています。
これらのツールを用いてソースコードリポジトリ、アプリケーションデータのバックアップ、サーバリソースからコードを用いてインフラを構築することで、ビジネスをゼロから再構築できるようになり、サーバ構築や運用におけるワークフローに変革をもたらすことができたのです、と過去の構成管理ツールに関する歴史をさかのぼりつつ現在の潮流について解説しました。