ユースケース別にオペレーティングシステムとパッケージを分離するベストプラクティス

ユースケース別にオペレーティングシステムとパッケージを分離するベストプラクティス

次の設定が必要です(Ubuntu、CentOS、しかし最新のディストリビューションを使用することに興味があります)

  • OSは自己完結型です(OSはOSであり、1つのアプリケーションのみを使用するOS + DB + Apache + etc +数百のライブラリの混乱ではありません)。
  • ユースケースAでは、ファイルが完全に分離されています(IntelliJや他のパッケージが/ optにインストールされているなど)。
  • ユースケースBでは、ファイルが完全に分離されています(例:/ optのデータベースサーバーとサポートパッケージ)。
  • ユースケースC、D、...

アイデアは

  • 他のすべてに副作用なしにOSバージョンを変更/アップグレードできます。
  • アプリケーションは/ optにインストールされ、オペレーティングシステムに副作用はありません。たとえば、/ optでスクリプトを実行してPATHやその他の設定を調整します。
  • (具体的に)ケースAファイルを/ opt / workにマウントし、Javaジョブを実行できます。
  • (具体的に)ケースBファイルを/ opt / workにマウントし、SQLジョブを実行できます。

apt / yumは実際にOSと共にインストールしてはいけないファイルでOSのインストールを台無しにすることに注意してください(たとえば、異なるバージョンのライブラリを使用する必要があるため)。また、/ etcのファイルが変更されます。

スナップなどのソリューションはパッケージレベルで動作するため、PATHはかなり大きくなり、ファイルの検索と起動に時間がかかります。さらに、スナップパッケージは未知のソース/パッケージから出てくることが多く、品質とセキュリティが疑われます(PPAはセキュリティの終わりです)。アイデアは良いです(各ユースケースに別々のパスがあり、$ {BASE_PATH} / {bin、lib、etc}があります)。

全体的な目標は次のとおりです。

  • オペレーティングシステムの完全な制御(セキュリティ、監査、自動アップグレード、および人の介入のないバージョン管理)
  • 開発環境の完全制御(バージョン管理、アップグレード、オフラインパッケージのインストールなど)
  • しかし、WaylandとGUIやその他の基本的なアクセラレーション機能へのフルアクセスが可能です。

Dockerでアプリケーションを実行できることはわかっていますが、GUIにアクセスするにはrootが必要なので、気にしません。私は根のないXに対するPodmanの経験があまりありません。 VMを起動することもできますが、これには適切なサポートを提供するプロセッサが必要です。たとえば、ほとんどの EC2 インスタンスは VM 内での VM 実行をサポートしていません。ただし、この問題はEC2に限定されません。

ベストアンサー1

これらの使用パターンを念頭に置いて設計されたディストリビューションを使用することをお勧めします。シルバーブルーフェドラハット。デフォルトのオペレーティングシステムを読み取り専用システムとして維持し、必要に応じて「一括」アップグレードし、サンドボックス環境ですべてのサービスとアプリケーションを実行できます(ただし、ディスプレイサーバーへのフルアクセスを含む)。

おすすめ記事