BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Telepresenceを使用してKubernetesアプリケーション開発とテストをローカルで行なう

Telepresenceを使用してKubernetesアプリケーション開発とテストをローカルで行なう

原文(投稿日:2017/10/20)へのリンク

コンテナスケジューリングプラットフォームに最終的にデプロイされるソフトウェアアプリケーションやマイクロサービスの開発は、特に依存関係の必要なサービスの構築やテストに関して、技術者を新たな課題に直面させる。Kubernetes 1.3には、ローカルで実行可能なVM駆動の単一ノードクラスタであるminikubeのリリースが含まれている。このアプローチは非常に有効な反面、ローカルリソースを大量に消費する可能性がある。これとは別のアプローチが、オープンソースのTelepresenceツールによって提案されている。このアプローチでは、開発者は自身のサービスでローカルで作業しながら、リモートクラスタ内で動作する他の依存サービスと(双方向プロキシ経由で)と透過的に統合される。

InfoQは先日、オープンソースTelepresenceツールの作者であるDatawireのAbhay Saxena氏と席を共にして、Kubernetesのようなコンテナオーケストレーションプラットフォームにアプリケーションをデプロイすることによるソフトウェアのデプロイメントサイクルの変化、Kubernetesがこれほど普及した理由、クラウドネイティブツールの世界でのCNCFの役割について議論した。

InfoQ: Abhayさん、こんにちは。InfoQに参加ありがとうございます。ご自身とKubernetes開発ツールのTelepresenceについて、簡単に紹介してください。

Abhay Saxena:私はAbhay Saxena、Datawireのソフトウェアエンジニアで、オープンソースのTelepresenceプロジェクトのメンテナをしています。私たちはマイクロサービスアーキテクチャを使って、Kubernetes上でクラウドアプリケーションを開発していて、Kubernetesの開発/デバッグサイクルが遅いことに気付きました。コードを変更する毎にコンテナのビルド/デプロイプロセスを一通り実行しなければならず、これが作業の遅延をもたらしていたのです。

そこで私たちは、このプロセスを開発から完全に排除できないかと考えて、Telepresenceを思い付きました。Telepresenceでは、サービスをローカルで記述および実行し、それ以外はすべてリモートのKubernetesクラスタ上で実行します。Telepresenceは、ローカルサービスとリモートKubernetesクラスタの間に双方向のプロキシを生成します。これによって、ローカルサービスがリモートクラスタに、あるいはその逆方向にも、完全にアクセスできます。

実際に2行のコードを変更して、それを即座にテストすることが可能です。

InfoQ: Telepresenceの典型的なユースケースはどのようなものでしょう?推奨できない使用方法はありますか?

Saxena: 最も多いユースケースはRD(Rapid Development)です。継続的インテグレーションや継続的デプロイメントパイプラインは重要なツールですが、実際の開発では大変です。変更の度にCIを待つことを望む開発者はいません。第2のシナリオは、私も少々驚いたのですが、デバッガの実行です。マイクロサービスでデバッガを使用したいユーザがいたのですが、Telepresenceでは、自分のコードでデバッガを実行するのと同じくらい簡単です。

InfoQ: Telepresenceのようなツールは、Kubernetesを使用するソフトウェア開発ライフサイクル全体に対して、どのように適合するのでしょう?

Saxena: 基本的なKubernetesのソフトウェア開発サイクルが“コード、(カナリア)デプロイ、監視”であるとすれば、Telepresenceは純粋に“コード”フェーズ用です。コードフェーズでは、サービスを記述してテストする必要がありますが、Telepresenceはこのフェーズの生産性を向上してくれます。運用システムにデプロイすれば、すぐにCI/CDパイプラインを使用したいと思うでしょう。そこで私たちは今、Telepresenceを運用関連のいくつかのシナリオに適応させるべく開発を進めています。ご期待ください。

InfoQ: Kubernetesがこれほど人気になったのはなぜでしょう、また、将来についてはどう思いますか?

Saxena: 技術とデザインを確立した上でスタートしたからだと思います。そこを起点として、エンドユーザへの伝道からコントリビューションを受け入れるプロセスの改善に至るまで、コミュニティのあらゆる視点において、誰よりも優れた仕事をしてきました。

長期的に見てKubernetesは、インフラストラクチャが相互運用可能になるための標準 -- POSIXのクラウド版のようなものになるかも知れません。先日発表されたDC/OS上のKubernetesはその一例だと思います。短期的な視点では、宣言的アプリケーション管理に関する作業に注目しています。アプリケーションの開発は、Kunernetesのエコシステムで未成熟な部分のひとつだからです(Datawireが今注力している分野でもあります!)。

InfoQ: CNDF(Cloud Native Computing Foundation)についてはどう思いますか?Telepresenceのようなツールを寄贈する考えはありますか?

Saxena: 当社はCNCFを強く支持しています。クラウドネイティブな技術のインキュベーションにおいて素晴らしい仕事をしていると思います。実際に、Kubernetesはもちろん、EnvoyやPrometheus、Dockerなど、CNCFのテクノロジを毎日、数多く使用しています。CNCFへのTelepresenceの寄贈は、プロジェクトが大きくなったらぜひ実現したいことです。CNCFがEnvoyに提供しているサポートを直に見ていますので、Telepresenceでもサポートを受けたいと思っています。

InfoQ: 他に何か,InfoQ読者に伝えておきたいことがありますか?Telepresenceプロジェクトに参加するには、どのような方法が一番よいのでしょう?

Saxena: TelepresenceはKubernetesでもOpenShiftでも動作します。フィードバックや提案はいつも募集していますので、Telepresencdeが役に立ちそうだと思うならば、https://www.telepresence.ioにアクセスして試してみてください!

Docker for Mac /WindowsやRed Had OpenShiftのminishift、Apache Mesosのminimesosなど、他のコンテナスケジューリングプラットフォームでも、ローカル開発を支援する同様のツールを提供している。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT