ネットワーク運用の究極の自動化を目指し、IT/クラウド業界の新たな潮流を取り込もうとする動きが加速している。「IaC(Infrastructure as Code)」だ。
IaCとは、インフラを構成するサーバーやネットワーク等の要素をプログラムのようにコード化し、その構築・管理を自動化する手法のこと。CI/CD(継続的インテグレーション/継続的デリバリー)を実現するためのアプローチの1つであることから「インフラCI化」とも呼ばれる。これが今、キャリアネットワークでトレンドになりつつある。
省きたいのはコミュニケーション「通信事業者は他業界と比べても、自動化に先駆的に取り組んできた」と話すのは、構成管理ツール「Ansible」を活用した自動化やIaCの導入で多くの通信事業者を支援しているレッドハット テクニカルセールス本部 シニアソリューションアーキテクトの中島倫明氏だ。
レッドハット テクニカルセールス本部 シニアソリューションアーキテクト 中島倫明氏
ただし、従来のネットワーク運用自動化は、人が手を動かす「設定作業」を出発点にしていた。例えば、ルーターの設定変更をスプリクトやマクロを使って自動化するといったものだ。初期はこのアプローチでも効果があったが、ネットワークの運用プロセスが複雑化した現代においては、設定作業はインフラ構築・運用工程のほんの一部に過ぎず、効果は出にくくなっている。現場作業を始める前には設計、検証・確認、パラメータ作成、手順書作成、申請といった「作業準備」に膨大な手間と時間がかかっている。
IaCは、ここにメスを入れる。変化を示したのが図表だ。
図表 「インフラCI化」で対話のためのコストを最適化する[画像をクリックで拡大]
作業準備の段階では、「ドキュメント作成」と「人と人のコミュニケーション」を繰り返す。作成する文書量は膨大で、手順書や仕様書に加えて、それを作業チームのメンバーや管理者に説明して合意・承認を得るために「作業が必要になった背景や制約事項など、前提条件を共有するための説明資料まで作らなければならない」(中島氏)。
さらに、判断を下す有識者や管理者は忙しい。調整に時間がかかり、作業にたどり着くまでのリードタイムは際限なく伸びていく。
これは、人と人のコミュニケーションを軸にインフラの品質を担保しようとするために起こる弊害と言える。IaCは、この出発点からひっくり返そうという挑戦だ。「人にしか読めない資料・手順書を作るのではなく、人と機械がコミュニケーションするためのコードを書くことで品質を維持・向上させられる状態にする」(中島氏)。担当者は自動化コードを開発し、調整・準備なしにテストを実行。機械でテストできない部分のみを有識者や管理者がレビューする。