メインコンテンツまでスキップ

運用(Ops)の歴史的変遷と K8S 以降のトレンド

· 約9分

過去 30 数年間、サーバー運用は実のところずっと 1 つのことをやり続けてきました。人が「手作業でサーバーを管理する」ことを、どんどん減らしていく。 この記事ではこの進化の流れを整理し、Kubernetes 以降の運用がどこへ向かうのかについても語ります。

背景

初期の運用は非常に原始的でした。サーバーを購入したら自分でラックに載せ、OS をインストールし、ネットワークを設定し、設定ファイルを書き換える。マシンに問題が起きれば SSH でログインして調査する。多くの場合、頼りになるのは経験と記憶でした。当時の運用は、本質的に「人がマシンを見張る」ことだったのです。

しかしサーバーの台数がどんどん増えると、この方式はすぐに立ち行かなくなりました。問題は主に 2 つ、反復労働設定の混乱 です。

反復労働はわかりやすい話です。例えば同じサービスを数十台のマシンにデプロイする場合、毎回手作業で大量のコマンドを実行しなければなりません。規模が大きくなると、運用担当者は毎日こうした繰り返し作業に追われます。SRE の体系では、この種の作業には専門の名前があり、toil(自動化可能で、反復的だが、長期的な価値の低い作業)と呼ばれます。

もうひとつの問題は 設定ドリフト(configuration drift) です。今日あるマシンで一時的にパラメータを変更したのに、半年後には誰も覚えていない。マシンごとの設定が少しずつ食い違っていき、システムはどんどん保守しにくくなります。

これらの問題を解決するため、運用は自動化へと歩み始めました。最初は各種の Shell スクリプト で、その後 構成管理ツール(Puppet、Chef、Ansible など)へと発展しました。さらにその先で、より重要な理念が登場します。Infrastructure as Code(IaC) です。

簡単に言えば、サーバー設定をコードとして書き、Git で管理するということです。こうすればすべての変更が記録に残り、ロールバックもでき、繰り返し実行もできます。運用はもはや「マシンに入って何かを変更する」ことではなく、「コードを変更する」ことになったのです。

仮想化とクラウドコンピューティング

さらにその後、非常に重要な変化が起こりました。仮想化とクラウドコンピューティング です。

以前はサーバーの購入はとても重い作業で、調達、ラッキング、配線が必要でした。仮想化の登場後、1 台の物理サーバーで多数の仮想マシンを動かせるようになり、サーバーはもはやハードウェアではなく、一種の「リソース」になりました。クラウド時代に至っては、自分でサーバーを買う必要すらなくなり、コンソールで数回クリックするだけでリソースを申請できます。運用の役割も、「マシンを管理する人」から「リソースをスケジューリングする人」へと変わり始めました。

コンテナ化技術

ソフトウェアのデリバリー方式を本当に変えたのは、Docker と Kubernetes です。

Docker が解決したのは古くからの問題、すなわち ソフトウェアが環境によって挙動が一致しない ことです。開発マシンでは動くのにテストマシンでは動かない、本番環境ではまた違う。Docker はアプリケーションと実行環境を丸ごと 1 つのイメージにパッケージングします。お弁当を詰めるようなもので、どこへ持って行っても動きます。

しかし Docker だけではまだ足りません。コンテナの数が数十、数百、数千になると、これらのコンテナを管理するシステムが必要になります。そこで Kubernetes が登場しました。

Kubernetes の核心的な考え方は実にシンプルです。「システムがどうあってほしいか」を伝えるだけで、システムが現実をその目標状態に絶えず引き戻してくれる。

例えば「サービスインスタンスを 3 つ欲しい」と宣言すれば、1 つが落ちても Kubernetes が自動でもう 1 つ立ち上げます。マシンが壊れれば、コンテナは自動的に別のマシンへスケジューリングされます。このメカニズムは 制御ループ(Control Loop) と呼ばれ、Kubernetes が大規模クラスタを自動管理できる鍵でもあります。

というわけで、よりマクロな視点から見ると、運用の発展は実は 3 つの大きな飛躍でした:

  • 構成管理 / IaC:サーバー設定をバージョン管理できるようにした
  • 仮想化 / クラウドコンピューティング:サーバーをリソースに変えた
  • Docker + Kubernetes:クラスタ全体を自動で動かせるようにした

Kubernetes 以降、どう発展していくか

Kubernetes は終着点ではなく、「クラスタ管理」という問題を比較的うまく解決したにすぎません。Kubernetes 以降の運用の発展は、主に 3 つの方向に集中しています。より自動的に、より可観測に、サーバーへの心理的負担をより少なく。

1) GitOps

GitOps の考え方はシンプルです。Git こそがシステムの唯一の信頼できる情報源(Single Source of Truth)である。

すべての設定を Git に書き、システムが本番環境を Git の状態に自動的に一致させます。設定を変更するときは、サーバー上で操作するのではなく、PR を出します。コードがマージされれば、システムが自動的にデプロイを完了します。

このモデルの最大の利点は、変更が監査可能で、ロールバックが簡単で、プロセスがより明確になることです。

2) 可観測性とサービスガバナンス

システムがマイクロサービスになると、本当に複雑なのは個々のサービスではなく、サービス間の呼び出し関係であることが多くなります。1 つのリクエストが十数個のサービスを経由することもあり、どこか 1 か所が遅くなれば、システム全体が影響を受けます。

そこで Service Mesh、Prometheus、OpenTelemetry といった技術が登場しました。これらの核心的な目標は、システムの稼働状態をより透明にし、問題をより発見しやすくする ことです。

3) Serverless とエッジコンピューティング

Serverless の理念はこうです。開発者はコードを書くだけでよく、サーバーはプラットフォームが自動管理する。例えばある関数はリクエストがあるときだけ実行され、リクエストがなければリソースを占有しません。多くのシナリオにとって、このモデルは運用コストを大幅に削減できます。

同時に、一部のコンピューティングは「エッジ」へと移動し始めています。店舗のデバイス、工場の設備、車載システムなどです。こうしたシナリオに適応するため、軽量化 Kubernetes(K3s など)やクラウド・エッジ連携技術も数多く登場しています。

AI は運用をどう変えるか

ここ数年、AI も徐々に運用の領域に入り始めています。

従来の監視システムの多くは 固定しきい値 ベースです。例えば CPU が 80% を超えたらアラート、というものです。しかし複雑なシステムでは、多くの異常はしきい値では表現しにくいのが実情です。そこで、ますます多くのプラットフォームが 機械学習による異常検知 を使い始めています。

例えば:

  • AWS の DevOps Guru はメトリクスデータを分析し、異常を自動発見して提案を提示します
  • Azure のスマート検知は、パフォーマンス低下やエラー率上昇を自動的に識別します
  • Elastic の異常検知は、まずシステムの正常な振る舞いを学習し、それから異常パターンを識別します

さらに、ディープラーニングでログを分析し、ログのシーケンスから異常パターンを発見する研究やプロダクトもあります。これらの技術の目標は実にシンプルです。アラートのノイズを減らし、運用担当者が本当の問題をより早く見つけられるようにする。

運用という職業は、どこへ向かうのか

自動化と AI を目にして、運用は消えてしまうのではと心配する人は少なくありません。しかし現実はむしろこうです。運用の仕事のやり方が変わりつつある。

これまで運用の価値は、多くの場合「手作業で問題に対処できるか」に表れていました。マシンにログインし、設定を変更し、サービスを再起動し、障害を調査する、といったことです。しかし今後より価値を持つ能力は、実はこちらです:

  • 経験を 自動化 できること
  • プロセスを プラットフォーム化 できること
  • ビジネスメトリクスからシステムの問題を理解できること
  • 可観測性と安定性の体系 を設計できること

私の考えでは、未来の運用とは、マシンを直しに行く人ではなく、システムが自分で自分を直し、自分を観測し、人間の言葉による指示に従って構築を自動的に完了できるようにする、その人のことです。

まとめ

運用のこの 30 数年の変遷を貫く核心の糸はただ 1 本、人を反復労働から解放することです。構成管理と IaC は変更をバージョン管理可能にし、仮想化とクラウドコンピューティングはサーバーをリソースに変え、Docker と Kubernetes はクラスタを自動で動かせるようにしました。この先を見ると、GitOps、可観測性、Serverless は確度の高い方向であり、AI は異常検知と障害の特定を徐々に引き受けつつあります。運用は消えませんが、「手作業で問題に対処する」ことの価値は下がり続け、自動化の体系を設計し構築できる人の価値はますます高まっていくでしょう。

COMMENTS