Podman Desktop コミュニティは、過去 6 カ月間にわたり着実に成長を遂げており、今年後半の 1.0 リリースに向けて準備を進めています。最近のリリースでは、ユーザーエクスペリエンス、ドキュメント、開発者用ツールの拡張サポート、サードパーティ製ツールとの統合を可能にする多数の新しい拡張機能などの領域で改善が行われています。

この作業には重要な目的があります。現在のソフトウェア開発は困難です。システムは複雑で、一口に開発といっても実際にはコード作成以外に多くのことをしなくてはなりません。開発者は、リソース、統合、オーケストレーションなどを完全に理解している必要があります。ローカルでのソフトウェアサービス開発からオーケストレーションされたシステムでのプロダクションに至るまでのシームレスな道筋がなければ、負担が大きくなる可能性があります。

Podman Desktop はその負担を軽減するためのものであり、複雑さを抽象化します。開発者は、グラフィカル・ユーザー・インタフェース (GUI) を使用して Podman で実行されているコンテナや Pod と容易にやり取りして、コンテナエンジンのインストール、構成、更新を行えるようになります。

つまり、アプリケーションからコンテナ、Pod、フル機能の Kubernetes までを 1 つのシームレスなワークフロー内で実現するための道筋を提供します。私の同僚の Ian Lawson (イアン・ローソン) が入門ガイドの中で最近述べた言葉を借りれば、「Podman Desktop は、イメージをビルドしてコンテナをローカルでホストする手間を大きく軽減してくれます。」

理論的には、コンテナは開発とプロダクションに一貫した環境を提供します。開発者がコンテナをローカルで使用する場合、そのアプリケーションはプロダクションでデプロイされるのと同じ環境で実行されています。これにより、依存関係の競合や構成の不一致など、環境に関連する問題が発生する可能性が低くなります。実際には、これは常に正しいとは限りません。特に、セキュリティの考慮事項、ローカルコンテナのオーケストレーション、その他の特定の機能に関しては、すぐにかなり複雑化する可能性があります。

開発者は、可搬性とハイブリッド性を高めるために、コンテナ内でローカルに開発されたアプリケーションを、ステージング、テスト、プロダクションなどのさまざまな環境に簡単に移行できるようにする必要があります。これにより、開発者はさまざまな環境で同じコンテナイメージを使用できるため、アプリケーションのデプロイに必要な時間と労力が削減されます。これらの利点を享受するには、アプリケーションのパッケージ化と構成の負担を軽減するだけでなく、ローカルでのセットアップをクラウド環境でシームレスに実行することができる、アプリケーション開発者にとって使いやすい環境を備えることが特に重要です。そうすることで開発者は最も重要なもの、すなわち、アプリケーションコードに専念できます。

ソフトウェア開発ライフサイクルは明確に定義されており、常にソースコードから始まりますが、その後のステップは、個々の組織とそのプロセスの必要性によって大きく異なります。特定のクラウドサービスを使用してテストを行うことを好む人もいれば、社内のステージング環境やさまざまなクラウドホスト型のサービスを利用する人もいます。Podman Desktop の拡張 API はカスタム拡張の作成をサポートするだけでなく、コミュニティやパートナーがさらなる機能を Podman Desktop に接続し、オープンソースのイノベーションエンジンの一翼を担うことを可能にする、オープンエコシステムの育成にも役立ちます。

個々のコンテナをローカルで実行するとテストに役立ちますが、そのコンテナだけが実際のプロジェクトで使用されることはめったにありません。コンテナにパッケージ化されたほとんどのアプリケーションは、データベース、メッセージング・インフラストラクチャ、またはその他のダウンストリームの依存関係を利用します。コンテナ・オーケストレーションをローカルでテストすることは、開発者にとって同様に重要です。依存関係をすばやくスピンアップできるだけでなく、GitOps プロセスに引き継がれる前に迅速にテストできるからです。開発者の最終的な目標は、ローカルで Kubernetes 構成を開始し、それらをプロダクションに移行することです。Podman Desktop によって、コンテナ向けにワンクリックで YAML を生成することができますが、私たちは、従来の Compose ベースの構成がまだ存在することを認識しています。Podman Desktop では、Kubernetes への移行を容易にするために、開発者が Compose 仕様を使って同時に多くのコンテナを実行できるようになりました。Podman Compose には、通信する必要があるコンテナに関する定義を含む Compose YAML ファイルが必要です。これは、プロダクション対応の Kubernetes マニフェストをローカルで直接使用するためのステップです。

Podman Desktop は躍進を遂げており、私たちは今後の展開に期待を寄せています。プロジェクトの詳細は、https://podman-desktop.io でダウンロードしてください。Podman Desktop を初めて使用する場合は、「What is Podman Desktop?A developer's introduction」を Red Hat Developer ブログでご覧ください。


About the author

Markus Eisele is a Red Hat Developer Tools Marketing Lead at Red Hat. He is also a JavaTM Champion, former Java EE Expert Group member, founder of German JavaLand and a speaker at Java conferences around the world.

Read full bio