IT部門は標準のLinuxディストリビューションをどのように選択すべきですか?


74

Linuxディストリビューションが実稼働サーバー環境に適しているかどうかについて多くのコミュニティの感情がありますが、そうではありませんが、この感情の多くは宗教に基づいているようで、証拠を提示することはめったにありません。

標準化するLinuxディストリビューションを選択しようとしていると仮定すると(環境をできるだけ均一に保つことに関心があるため)、どの基準が重要であり、どのように異なるディストリビューションがそれらの基準をどの程度満たしているかをどのように判断しますか?


4
私は、他の人に、彼らの組織単一のLinuxディストリビューションを選択する方法を説明してほしいと思います。私はそのような状況にあり、「常識」からRHELまたはCentOSを選択するように言われますが、商業的なサポート以外に、それらの1つが他の1つより優れている理由に関する多くの事実的な主張を聞いていません。
wfaulk

回答:


59

私は現在、Linuxを10年以上使用している環境で働いています。オフィスの全員が、デスクトップとサーバーで異なるディストリビューションを使用しています。そのため、分布の選択は、順不同で多くの事柄を中心に展開する傾向があります。

  1. 歴史 -明らかにRedHatやDebianのようなシステムは長い間存在しています。そのため、「壊れていない場合は修正しないでください」という格言を使用できます。ソフトウェアがディストリビューションで適切にサポートされている場合、アップグレードが容易になります。
  2. 親しみやすさ -歴史に似ていますが、私たちは皆お気に入りを持っています。私はDebianで歯を磨き、Ubuntuに移行しました(私はコミュニティにコミットする傾向があるため、当時は難しい決断でした)。反対に、1ダースの異なるディストリビューションでの処理方法を覚えなければならないのは苦痛です(スクラッチで作成したものは言うまでもありません)。
  3. サポート -Ubuntuに移行したのは、主に有償サポートの提供に関して彼らが何をしていたかを評価したためです。これは、クライアントがシステムを長期間実行することに懸念を抱いた場合のセールスポイントでした。RedHatのアプローチに似ています(ただし、RPMの地獄はその時点で続いていました)。この理由から、多数のRedHatサーバーもあります。
  4. 依存関係 -一部のソフトウェアは、いくつかのディストリビューションで使用する方が簡単です。これは、依存パッケージがより簡単に入手または構築できるためです。この例として、RedHatでのoVirtがあります。一部のディストリビューションには、一部のソフトウェア用のパッケージがありません。コンパイルすることもできますが、パッケージが別のディストリビューションにある場合はどうしてでしょうか?
  5. 粒度 -Gentooのようなディストリビューションでは、バージョニングとソフトウェアスイッチの粒度をより細かく制御できます。他のディストリビューションにはさまざまな形式の「固定」がありますが、それでも制御可能または信頼できるものではありません。
  6. バインディング -ほとんどのディストリビューションではソースからコンパイルできますが、一部のディストリビューションは他のディストリビューションよりも優れています。これは、たとえば、プロジェクトが拡張機能のために既存のライブラリにパッチを適用する場合に効果があります。
  7. かわいらしさ -一部のディストリビューションは見栄えが良いだけです。すべてのオタクはそれがただの綿毛であることを知っています(そして、最近はおそらくWebアプリとしてそれをやることができます)が、一部のクライアントはこのようなものに驚いています。
  8. 安定性 -一部のディストリビューションは、「テスト」、「実験」などとは対照的に、ソフトウェアの「安定」バージョンをストリーミングします。これは、ビルドしているバージョンが最終的に安定性について合意に達することがわかっている場合、多くのことを意味します。プロジェクトが終了するまでに「安定」に達し、信頼できるようになることを知って、「実験的」に開発することができます。
  9. パッケージ管理 -毎日何かを開発していて、1ヒットで数千台のマシンに移行する場合は、おそらく、それらのシステム全体でパッケージを簡単に構築、保守、追跡できるものが必要です。
  10. 一貫性 -これは、同じディストリビューションの議論です。人々が複数のディストリビューションではなく1つのディストリビューションに集中できる場合、ミスが少なくなり(セキュリティ上のエラーも少なくなります)。
  11. 予測可能なリリーススケジュール -ソフトウェアが引き続きサポートされていることを確認したい場合は、計画的なアップグレードにより特定の種類の安定性が提供されます。
  12. セキュリティ -一部のディストリビューションには、承認されたパッケージ内の真のセキュリティリスクに即座に対応することを仕事とするアクティブなセキュリティチームがいます。

これらは、各システムが選択された理由に関して、私の頭の上のものです。この決定には、他のライトよりも、あるディストロの好みを導くライトはありません。多様性と選択は素晴らしく、プロジェクトを迅速に開始するためのいくつかの本当に良いオプションを提供しますが、それはあなたを絞首刑にすることができる縄でもあります。必要なものより先に考えてください。システムのニーズと、システムをアップグレードまたは廃止する時期を計画します。あなたが常にそれを維持していると仮定しないでください。


そして、#7かわいらしさは、実際、一般ユーザーコミュニティ向けにLinux on the Desktopを使用するこれらのインストールの要因です。
マゼラン

2
予測可能なリリーススケジュールも追加します。マルチサーバー展開プロジェクトを開始するのは、来週の新しいバージョンのディストリビューションがリリースされることを知るためだけではありません。または、古いパッケージで同じ古いディストリビューションを何年も実行します(cough * rhel5 / centos5)。アップグレード日はわかりません。たとえば、Ubuntuは4月に6か月ごとに新しいバージョンをリリースし、2年ごとにLTSバージョンをリリースします。これを知っていると、プロジェクトとリソースをより適切にスケジュールするのに役立ちます。
Mxx

69

いくつかの異なる分野で技術者として働いた経験を共有します...

(注意:これはRed Hatについての物語であり、私はRed Hatでプロとして育った方法です)

私は2000-2002年に専門的にLinuxを使い始めました。これは、Red HatおよびRed Hat Professional Edition(6.x、7.x、8.0)が広く採用されていた間です。これらは、無料でダウンロードできるほか、パッケージパッケージセットも入手できました。それらはコンピュータ小売店で簡単に見つけることができます。

私にとっては、これは、企業に登場し始めたのと同じ製品を愛好家やホームユーザーに利用できるという利点がありました。この時点での私の仕事は、顧客のサーバーシステムを商用のUnices(HP-UX、AIX、SCO)からRed Hatプラットフォームに移行することでした。

大幅なコスト削減が実現しました!10万ドル以上のHP9000 PA-RISCサーバーを4万ドルのCompaq ProLiant Intelサーバーに置き換えることは、コストとパフォーマンスにおいて絶対的な勝利でした。

それでは、なぜRed Hatなのでしょうか?

Red Hatはこの市場で最初の企業であり、重要なビジネス、ベンダー、ハードウェアのサポートを獲得しました。大規模なアプリケーションベンダーがターゲットプラットフォームとしてRed Hatを使用していることが、取引を封印しました。私のような愛好家のユーザーは、自宅で磨いたスキルを仕事環境に簡単に移すことができました。コミュニティは成長していました。SlashdotFreshmeat、およびLAMPスタックが支配しました!Linuxにとって良い時期でした。

この時点までに、プロプライエタリなERPソフトウェアソリューションのプラットフォームとしてのLinuxディストリビューションの開発と評価を担当しました。私はRed Hatにこだわった。時々、別のディストリビューション(MandrakeSuSEDebianGentoo)を試してみますが、パッケージング、ハードウェアサポート(サーバーまたは周辺機器)、コミュニティ(の規模)、またはその他の契約違反に関する問題を見つけます。

例:Digi Serial拡張PCI-XカードEsker VSIfaxプロダクションファックスソフトウェアを装備したCompaq / HP ProLiantハードウェアを使用していました。後者の2つは、Red Hatオペレーティングシステムのドライバーサポートのみを備えていました。場合によっては、ソフトウェアはバイナリ形式またはRPM形式でのみ提供され、他のLinuxバリアントで簡単に使用できなくなりました。

情報技術の世界で勢いが重要
誰もが、最終的に孤立するソリューションやプロジェクトを失うことを推奨する人にはなりたくないので、安全な選択に固執します。信頼性の高い動作と複数のサポート層を必要とする技術スタックを管理していました。その時点で別のディストリビューションを選択するだけでいいでしょう。されました。無責任。


Red Hatのハネムーンは2003年にソフトウェアのプロフェッショナル版の生産中止により終了しました。Red Hat Enterprise Linuxは代替品であり、かなりの手荷物が伴いました...コスト(高価なサブスクリプションベースのモデル)、アクセシビリティ(ユーザーベースとコミュニティの縮小)、および将来に関する一般的な混乱...

私は代替手段を探し始め、Gentoo、Debian、SuSEを再評価しました。テクノロジースタックのすべてのコンポーネントで適切なサポートを得ることができませんでした。私はRed Hatエコシステムに固執せざるを得ませんでした... Red Hat Enterprise Linuxに関連する大幅なコストシフトのために、私は最終的に寿命を過ぎた何年もの間、高度に修正されたRed Hat 8.0を実行することになりました。RHELクローンが成熟するまで(Whitebox Linux、そして後にCentOS)、標準から離れる本当の動きを準備しました。

Red Hatの誘導体の主な利点があっている有料のRHELのバージョンとのバイナリ互換性。RHELとCentOSの間でインプレース変換を実行することもでき、その逆も可能です。次のキャリアを動かすまで、RHELのようなシステムを使い続けました...


後に、高頻度の金融取引業界に就職し、重要な自動取引システムの研究開発とLinuxエンジニアリングを担当しました。この世界での重点は、慎重なテストとチューニングによる速度でした。繰り返しますが、ハードウェアサポートが重要でした。特定のネットワークカード専用のハードウェアがある、RHELまたはRHELのようなシステムでのみ認定されたサーバーハードウェアまたはアプリケーションライブラリ。他のLinuxバリアント用にコンパイルできる場合でも、コミュニティの要因が生じました。問題を調査する必要があった時点で、Red Hat Bugzillaのレポートのメモやコメントにたどり着くことができる問題であることがよくありました。また、次のリリースのパッチやリクエストを送信することもありました。 。

低遅延ネットワークとカーネルチューニングを詳しく調べ始めたとき、ストックRHELカーネルとRHEL MRG Realtimeカーネルの分析を始めました。リリースに至ると、どれだけの効果があるか気づきました... vanilla kernel.orgカーネルへの200以上のパッチ。コメントを読み、メモをコミットします。sysctlパラメータが公開されたり、より適切なデフォルトが適用されたりするような小さなものがあるかもしれません。Red Hatはこれらの問題にパッチを当て、テストし、修正するために人々に支払います。他のLinuxディストリビューションからも同じようなコミットメントはありませんでした...エンタープライズプラットフォームには、実際のセキュリティ、バグ修正、バックポートサポートが何年も保証されているという事実を追加してください。


だから私は最終的にサーバーデスクトップ上でほぼすべてがGentooだった別の金融会社に移りました...それは私にとって災難でした。Red HatとCentOSの世界から来て、Gentooのセットアップで多くの安定性と管理の問題に遭遇しました。バージョン管理が最大の問題でしたが、コミュニティのサポートの減少と実際のテストの欠如も懸念事項でした。私たちのサードパーティソフトウェアのいくつかがそれを必要としたため、私は環境にRHELを導入し始めました...

しかし、問題がありました...私の開発者はGentooに慣れていて、コアライブラリとアプリケーションバージョンの比較的簡単なアップグレードパスを持っていました。彼らは、Red Hat Enterprise Linuxが標準化する修正済みのメジャーバージョンに適応することができませんでした。開発とリリースのプロセスは、GLIBC 2.7をRHEL 5.xに移植できなかった理由や、特定のコンパイラーまたはライブラリーのバージョンが利用できなかった理由に関する質問に悩まされていました。RHEL / CentOSのメジャーバージョン間のアップグレードには基本的に完全な再構築が必要であると言われたとき、ソリューションに対する多くの自信を失いました。

この時点で、レッドハットの動きが遅すぎて、最先端を走りたいと思っている開発者には遅すぎることに気付きました。RHEL 6.xは大いに必要で歓迎されるアップグレードでしたが、このテーマは、DevOpsの原則に加入している新興企業や企業とのインタビューを開始すると明らかになりました。


今日...
開発者やLinuxユーザーの数は、Red Hatでも、SuSEでも、エンタープライズでもないLinux環境から来ています。

  • 彼らはUbuntuまたはDebianを使用しています...
  • 彼らは古い学校のハードウェアや大手ベンダーのサポートに対処する必要はありませんでした。
  • 彼らは独自のアプリケーションをゼロから作成しています(自己サポート)。
  • 仮想化とクラウドコンピューティングはハードウェアレイヤーを抽象化するため、ファンキーなRAIDコントローラードライバー、PCI-X周辺機器、またはバイナリ分散管理エージェントの心配はありません。
  • これらのユーザーは、慣れ親しんだツールとユーザーランドを求めています。

競合があります...これらのユーザーは、アプリケーションまたはライブラリのバージョンが制限される理由を理解していません。古い学校の管理者はまだ新しいパラダイムに適応しています。宗教に根ざしている思われる議論は、実際には、人々がそれぞれのスキルセットをどのように開発したかという機能にすぎません。

本日、非常に上級のDevOps Linuxエンジニアの求人広告を見ました:

DebianベースのLinuxディストリビューションの専門家である必要があります(Ubuntuおよびバリアントは問題ありません。RedHat可、ただし推奨されません

だから私はそれが両方の方法で働くと思う...私が管理する800 CentOSサーバーはUbuntuに変換される予定だったので、私は仕事の機会から立ち去った。確かに、LinuxはLinuxです...しかし、私は自分ができるほど効果的だとは感じませんでした... Debianのインストールをいじって、RPMベースのディストリビューションが使用されていることを望みました。さまざまなプラットフォームのメリットについて熱烈な議論がありました(通常、Gentooをリストの一番下に置きます)。

それでは、あなたの環境に最適なものは何ですか?場合によります。私は、システムエンジニアが意思決定を推進している企業や、開発者が王様である組織に在籍しています。開発者とシステムをサポートする人々がプラットフォームについて合意するときが最善の方法だと思います。しかし、それ以外では、長期的なサポート、使いやすさ、コミュニティ、およびアプリケーションスタックを最も適切な方法で収容できるものについて考えてください。

才能のある開発者は、RHELのような環境またはDebianのような環境で作業できる必要があります。そして、開発プラットフォームは本番環境をミラーリングする必要があります。そこから行く...


3
@dyasny Debianの視点を聞くのは面白いでしょう。
ewwhite

@ewwhiteおそらく、sourceforgeの管理者に売り込みたいと思うでしょう。
dyasny

@dyasnyコメントなし:)
ewwhite

4
このサーは、これまでサーバーフォールトで出会った中で最高の投稿です。これの物理的なコピーを取り、棚と作業キューブに入れると思います。あなたは時代を通じてシステムエンジニアの声明を繰り返しました。素晴らしい、素晴らしい投稿。
ソハムチャクラボルティ

1
@SohamChakrabortyああ、私はただ古く感じています...しかし、今日、このサイトの求人広告を読んだ後、その日にRed Hatを使用する私の理由は人々がUbuntuなどを要求するのと同じ理由であることがわかりました今日のシステム。デスクトップで使い慣れているものです!
ewwhite
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.