オープンソースソフトウェアに関する5つの誤解

画像



オープンソースソフトウェアには賞賛者がおり、最近では、ある種の「ナショナル」製品の開発に関しては、ほとんどがオープンソースを意味しています。 逆説的に、このタイプのソフトウェアへの関心は多くの歪みと誤解を生み、実際にはその配布を妨げています。



当社は2005年からオープンプロジェクトに参加しています-独自のオープンソースソリューション( OpenVZCRIUプロジェクト )の開発のおかげで、他のオープンプロジェクト( QEMUOpenStacklibvirtlibcontainerなど)に参加しています。 10年以上にわたり、オープンソースソフトウェアに関する最も一般的な神話のいくつかを収集してきました。 それぞれのエラーについて説明し、なぜ間違っているのかを説明します。 確かに、あなたは同じ量を思い出すでしょうが、私の意見では、これらの5つは最も「地獄の」ものです。





オープンソースプロジェクトはオープンソースプロジェクトです。



ソフトウェアプロジェクトは、プロジェクトのソースコード、未修正の欠陥に関する情報、テストのソースコード、ドキュメントなど、多くの成果物で構成されています。 プロジェクトのソースコードはその一部にすぎず、無料でアクセスできるため、プロジェクト全体を開いて呼び出す権利はありません。 ソースコードに加えて、他の開発成果物への無料アクセスを許可する必要があります。また、成果物が多くなるほど、プロジェクトは貢献者(プロジェクトに貢献したい人)により開かれます。 さらに、すべてのコミュニティメンバー間の透過的なプロセス、プロジェクトでのオープンなコミュニケーションなどが必要です。 これらの措置はすべて、プロジェクトの発展とコミュニティメンバーの実り多い協力にのみ貢献します。



Oracle VirtualBoxは、閉じたオープンソースプロジェクトの例です。 コードは完全にアクセス可能ですが、開発プロセスは閉じられており、不透明です。



オープンソース製品にはオープンソースのみが含まれています



オープンソースプロジェクトに基づいて商用ソリューションを開発する企業は、製品にクローズドコンポーネントを含めることができます。 なぜなら、このオープンなプロジェクトに基づいてビジネスを構築するのは、企業間で競争上の優位性を提供できる追加のクローズド機能だからです。 多くの場合、企業が顧客に販売し、その上でお金を稼ぐことができる製品を形成する閉じたコンポーネントです。



たとえば、最近Virtuozzoの次のバージョンの開発を発表しました。Virtuozzoの配布は無料で配布されます。 ユーザーは仮想マシンと最新バージョンのコンテナーを制限なく自由に使用できますが、必要に応じて、タスクの解決に役立つアドオン(分散データストレージ、1つの物理サーバー上のコンテナーの密度を高めるコンポーネントなど)をインストールできます。 これは、オープンソースソフトウェアの自由の一部です。 自分に最適なオプションを選択します。基本バージョンまたは高度なバージョンを使用します。 私たちの実践では、OpenVZテクノロジーに基づいたサービスを提供したクライアント企業の例がありますが、後に商用版の利点を高く評価し、それ以来私たちの有料顧客になりました。 これは、双方が勝つ双方にとって有利な戦略です。



オープンソースソフトウェアの使用は完全に無料です。



フリーソフトウェアは同時に完全にフリーであるという共通の信念があります。 ただし、ソフトウェア自体の価格は、その使用に関連するコストのほんの一部です。 フリーソフトウェアも例外ではないため、使用する前に、そのライフサイクル全体を評価する必要があります。 これは、オープンソースソフトウェアの導入が有益かどうかを結論付ける唯一の方法です。



例で見てみましょう:







すべての例で、プログラム(ライセンス)を使用する権利の購入はありませんでした。これは、実際に商用ソフトウェアの取得中に発生します。 しかし、たとえば、サービスのコストや自分のビジネスのコストなど、さまざまなコストが発生するたびに、無料の使用権によるコストの節約になります。



オープンソースの利点の1つは、限界コストが本質的にないことです。これは、ここでは原則として、実装が拡大しても追加のライセンスは必要ないためです。



技術サポートがないため、オープンソリューションでビジネスを構築することはできません



サポートはユーザーにとって重要なポイントです。 上記の例で説明したように、オープンソースソフトウェアを使用する場合、通常のユーザーはそれなしで実行できますが、ほとんどの場合、企業は技術サポートを必要とします。

深刻なオープンソースプロジェクトは、開発コミュニティによって積極的にサポートされているか、商業ベースで大企業をサポートできる企業があります。 そして、必要に応じて-必要な機能を製品に追加します。

これは、OpenVZプロジェクトで固執しているモデルです。 プロジェクトコンポーネントは自由に配布されますが、追加機能のサポートまたは開発が必要な場合は、 提供できます



誰でもコードを書くことができるため、オープンソースソフトウェアの品質はさらに悪い



オープンソースソフトウェアの主な原則であるオープン共同開発は、それ自体が低品質のコード、松葉杖、パッチを他の参加者から隠すことができないという保証です。 そのようなプロジェクトに参加している人は、彼の作品が分析と批判にさらされるという事実に備えています。つまり、彼は愚かではないということです。 彼の評判は危機にatしており、誰もそれを失いたくない。



さらに、一部のコミュニティ(たとえば、Linuxカーネルの開発を取り巻くコミュニティ)には、厳密な原則があります-ソースカーネルで受け入れられるのは、テスト済みで理想的な最適なコードのみです。 低品質の変更を追加しようとする試みは拒否されます。2番目の試みは、個人または会社の貢献者の評判の低下を伴います。



つまり、オープンプロジェクトはコードの作成に誰でも参加することを実際に可能にしますが、深刻なプロジェクトでは、エントリーのしきい値が高いため、不十分なレベルの専門知識を持つ人々からコードが受け入れられません。

ほとんどの大規模なIT企業(IBM、Google、Canonical、Parallelsなど)には部門全体があり、専門家がオープンソースプロジェクトの作業に対して報酬を受け取っているため、会社の製品に間接的に取り組んでいます。



それとは別に、オープンソースプロジェクトに基づいて製品を開発する企業は、テスト中に使用するオープンソースプロジェクトのコードの改善に関心があることを言及する価値があります。 したがって、検出されたすべての問題を修正し、この修正がプロジェクトのメインブランチに追加されていることを確認して、コードと開いているプロジェクトのコードの違いをできるだけ少なくする必要があります。 当社の製品は他のオープンソースプロジェクトのコードを使用しているため、これらのプロジェクトのコードで見つかった問題を修正し、アップストリームに送信します。 これは、RHELコアに脆弱性がある場合です:Red Hatは、RHEL6カーネルアップデートの1つで深刻な脆弱性CVE-2014-0203およびCVE-2014-4483を検出したVladimir Davydovに注意しました(ところで、2番目の問題は、自動テストの1つを使用して発見されました、 Linux Test Projectを使用)。 CVE-2014-5045エラーを検出したVasily Averin、 CVE-2012-4508の Dmitry Monakhovに感謝します。 優れたLinuxカーネルテストの事実は Andrew Morton( これは誰ですか?によってさえ指摘されました 。 過去数か月にわたって、@ openvz.orgの人々は、あいまいであるが深刻でかなり古いバグを多数発見(および修正)しています。 どのようにしてこれらのバグを見つけましたか?



まとめ



実際、上記のすべての神話は、主にOpenSourceソフトウェアを使い始めたばかりのユーザー、またはこれをまったく試みなかったユーザーを主な対象としています。 偏見を取り除く最良の方法は、そのような決定と密接に協力し始めることです。

Virtuozzo 7製品の新しいバージョンのオープンな開発プロセスを最近発表しましたが、最高のコンテナ仮想化テクノロジーの作成にも興味がある場合は、に参加してください



All Articles