オンプレミス基盤の改革の必要性と「インフラのコード化」
新たなデジタライゼーションの実現に向け、人材不足対策とパブリッククラウドからの受け皿・連携が大きな課題であることは明らかだ。この2つの要因から、中井氏は「オンプレミス基盤の改革の必要性」を訴える。
人材不足への対策としては、既存基盤運用の省力化・自動化を進め、属人性を排除すること。そして、パブリッククラウドで担保できない部分を補足し、受け皿や連携先となるために、クラウドのような俊敏性を実現し、クラウドのような運用方式を持ち込むことが必要だという。
そこで鍵になるのが「インフラのコード化」だ。既存のシステムを含めて管理の自動化・省力化、俊敏性の向上を行なうことで、人材を運用管理から新サービスの企画検討へと移し、デジタライゼーションを加速させる。そして、ハイブリッドまたはマルチクラウドの適材適所の環境を運用するために、オンプレミスとの併用もさることながら、異なるクラウドの運用方式の共通化やクラウドサイロの排除、属人性の排除を実現させていこうというわけだ。
ここで中井氏は「DevとOpsのサイクル速度の違い」に触れる。近年のアプリケーション開発のサイクルはどんどん迅速化していると言われるが、実際は「Dev=開発」の方のサイクルはツールなどによる自動化が進んで速くなっていても、「Ops=運用」がそれに追いついていないケースが少なくない。そこでDevの取り組みをOpsに適用しようというのが、「インフラのコード化」の考え方だ。
手作業だったインフラの構築や運用を全てコード化する。つまり、コードをアプリケーションのために書くのではなく、インフラの管理のために書くという考え方であり、今後は内製化においてエンジニアのキースキルになるという。
例えば、下図のようにアプリケーション開発において「App v1」を作成し、アプリケーション実行環境にデプロイしたとする。アプリケーションに変更があって「App v1.2」となれば、実行環境もライブラリかパラメータを変えなければならない。この時、従来においては手動で行われていた変更を、アプリケーションと同様、「Infra v1」「Infra v1.2」というようにコードで制御し展開できるようになる。
もちろんアプリに関係なく「Infra v1.2」をデプロイしたいとなれば、作業することなく他の環境にも展開できる。逆にオペレーション側の都合で、あるパラメータを変えなければならない場合も、例えば多数のVMの構成情報を取ってきたり、全部の環境を少しずつ変えたりすることも、コード化して適用すれば容易に制御できるという。こうした方法は「コンフィグレーションコード」とも呼ばれている。
なおアプリケーションとその実行環境をパッケージしたのが「コンテナ」だ。アプリケーション側でコンテナごと開発してしまえば、実行環境もコードで制御・展開ができる。そうなれば、DevとOPsの境界線が若干変わってくることにもなるという。
コード化によって、APIやスクリプトで対象をコントールできるようになれば、アプリケーションのインストールやOS上の設定などの実行、OSインストールやVMのデプロイなども可能になる。また、例えばAnsibleなら各種のレイヤで幅広いツールとの連携が可能になっており、Ansibleを使って知らぬうちに「インフラのコード化」を進めている人も実は多く存在しているという。
このように、インフラのコード化が進めば、これまで手作業だったオペレーションの工数や時間が削減され、品質も均一に担保される。また、自動化やバージョン管理が容易になり、システム運用の標準化を進めることにもなるだろう。また、作業に人の手が入らない自動化によって、内部統制やセキュリティ対策面での効果もできる。中井氏は「迅速性・コスト削減・リスク排除というあらゆる面でメリットが大きい」と強調した。