ウェブサイト検索

レッドハットがどのように静かに、そして根本的にエンタープライズサーバーLinuxを変革したか


RHEL 10は、従来のパッケージングを廃止し、不変性を採用した最初の主要なエンタープライズLinuxディストリビューションとなりました。私たちがどのようにここにたどり着いたのかを見てみましょう。

Linuxが導入されるずっと前、私はUnixシステムの管理者として働いていました。その頃、私はソースコードをダウンロードし、到着したtarballアーカイブを解凍し、コンパイルし、システムを更新したり新しいパッケージをインストールする必要があるときにそれをインストールしていました。それは本当に面倒な作業でした。

1989年にUnix System V Release 4(SVR4)が登場することで、最初のパッケージ管理システムであるpkgadd、pkgrm、pkginfoが登場し、状況は改善されました。IBMのAIX Unixディストリビューションやシステム管理インターフェースツール(SMIT)、およびSunのSolaris 2.0などの企業が独自の商用バージョンをリリースし、私のシステム管理者としての生活はずっと楽になりました。

その間、1991年に386(486) ATクローン用の(フリーの)オペレーティングシステムに取り組んでいると発表したリーナス・トーバルズは(「ただの趣味です」と彼は言った。「gnuのように大きくてプロフェッショナルにはならない」と)、Linuxを採用し、真剣に取り組む人々を見て喜んでいた。

パッケージマネージャーの進化

SVR4のパッケージマネージャーに触発された、Linuxをビジネスサーバー向けのUnixのライバルにしようとする最初のディストリビューションは、この考えを取り入れました。1993年から1994年にかけて、最初のLinux特有のパッケージマネージャーが登場しました。Rik Faithのパッケージ管理システムは、あまり知られていないLinuxディストリビューションのBOGUSとともに道を開きました。それが注目に値するのは、1994年にもっと重要なRed Hatパッケージマネージャー(RPM)の創造を刺激したからです。ほぼ同時期に、Debian Linuxの創設者であるIan Murdockは、Debianパッケージマネージャー(dpkg)を構築しました。

これらのパッケージマネージャーは基本的な依存関係の追跡を含んでいました。1990年代後半にDebianのaptやRed Hatのyumのようなより洗練されたツールが登場するまでは、自動依存関係解決が標準になっていませんでした。この時点から、パッケージ管理はほぼすべての人がオペレーティングシステムのパッチやプログラムをインストールし管理する方法となりました。

2010年代の始めに、不変のLinuxディストリビューションの概念が形を取り始めました。Dockerの普及に伴い、コンテナの人気が高まったことで、人々はコアシステムファイルが読み取り専用としてロックされ、パッケージ単位ではなく全体(すなわち原子的に)としてのみ更新できる最小限のLinuxディストリビューションに興味を持つようになりました。

不変のLinuxディストリビューションでは、個々の問題を修正するのではなく、再起動中にシステムの更新を含めて全員を一度に修正します。これにより、すべてが一つのトランザクションとして更新されます。何か問題が発生した場合は、古いイメージを再起動するだけで、簡単に動作しているシステムに戻すことができます。煩わしさもありません。

このアーキテクチャアプローチは、無断での変更を防ぎ、システムの破損リスクを低減することによって、システムのセキュリティと安定性を大幅に向上させます。ほとんどの主要なLinuxディストリビューションが行うように、部分的に更新する代わりに、すべてが一度に更新されます。

コンテナの普及に加え、セキュリティと信頼性もプラットフォーム設計のこの変化を促進しました。読み取り専用のコアを持つことで、サーバーはマルウェア、 accidental misconfiguration(誤った構成)、および不正な変更に対する脆弱性が低くなります。コンテナ化は主要な機能であり、アプリケーションをコアシステムやお互いから隔離し、攻撃対象面をさらに減少させます。変更不可能なディストリビューションは、同じイメージを実行しているすべてのサーバーが一貫して予測可能であることを保証することにより、メンテナンスを簡素化し、大規模なデプロイメントの管理を容易にします。

最初の大規模不変LinuxであるCoreOSは2013年に登場し、コンテナをスケールで実行するために特別に設計されました。その設計により、コアOSは読み取り専用となり、更新は原子的に適用され、新しいイメージとして展開されました。これにより、クラウドネイティブ環境やKubernetesクラスターに最適なものとなりました。

2018年、レッドハットは良いものを見逃さず、コアOSをお手頃な価格、2億5000万ドルで買収しました。レッドハットはコアOSから、他の3つの重要なLinuxディストリビューションを作り出しました。

これらの最初のものは Fedora CoreOS で、ミニマリズムと自動的な原子的更新のために構築されました。Fedora CoreOS は、コンテナホスティングと Kubernetes クラスターに最適です。これは rpm-ostree を使用して不変のベースを管理し、追加のパッケージやコンテナ化されたワークロードを許可します。

次に、Fedora Workstationの不変のバリアントであるFedora Silverblueが登場しました。Silverblueはデスクトップに不変性をもたらし、アプリケーション管理にはFlatpakを、原子的な更新にはostreeを使用しました。

RHEL 10は不変のアプローチを採用しています

最後に、Red Hat Enterprise Linux (RHEL) 10があります。そうです、レッドハットのフラッグシップオペレーティングシステム、RHEL 10は、不変のアプローチを採用する最初の主要なエンタープライズLinuxディストリビューションです。

なぜでしょうか?先月のボストンで開催されたRed Hat Summitでは、RHELの製品マーケティングのシニアディレクターであるクリス・ウェルズが説明しました。

I talk to a lot of administrators, and they will tell me that just the bane of their existence is having to go through and update and upgrade systems. They know that they need to do it. They want to do it. They're like, why does it have to be so hard? And if you think about it, how we take and patch those systems today really comes from the Unix world that we came from 20 years ago. That's traditionally how we've done things. In the Unix/Linux world, we have small software packages. They're all tied together, all the dependencies you have to go to update them, and cross your fingers. It all works.  	

And we thought, maybe there's a better way to do this. So we got to thinking, "What if we containerized the operating system layer? What if I took and used that on my production systems? What if the next time I build a new set of systems, instead of doing it the traditional way, in package mode, what if I containerize both the application layer, containerize the OS, put that out into an image?" Now, all of a sudden, I have that image and I can deploy that out to those systems if something goes wrong. Instead of having to roll it back like in the old days, you just put the old image back there, because, again, it's all going to be immutable.

現在、Red Hatだけが不変のLinuxが非常に役立つことに気づいた企業ではありません。UbuntuやSUSE Linux Enterprise Server(SLES)のような有名な名前ではありませんが、Flatcar Container Linux、openSUSE MicroOS、Ubuntu Core、Talos Linuxなど、多くのビジネス向けの不変Linuxディストリビューションがあります。また、Chainguard OSのようなセキュリティ第一の不変ディストロも存在します。

しかし、妥協が必要です。従来のパッケージ管理に慣れたシステム管理者は、新しいワークフローに適応しなければなりません。また、いくつかのカスタマイズには作業の回避策が必要です。たとえば、1つのパッケージを変更する必要があるとしましょう。それは旧来の方法では簡単ですが、不変システムではシステムを再起動しなければなりません。それは、可用性の高いシステムにとって大きな痛手となる可能性があります。

それでも、レッドハットは、これから先、イミュータブルLinuxの利点が欠点を上回ると確信しています。歴史的に、レッドハットは長い間、エンタープライズLinuxで主導的な存在でした。彼らがこの過激な変化を遂げる際に、私は彼らに賭けることはできません。

毎日、私たちのテック・トゥデイニュースレターで朝のトップストーリーをあなたのメールボックスにお届けします。

関連記事: