Ipad

マイクロソフトのブレンダン・バーンズがクラウドネイティブアプリの導入をコーディングと同じくらい簡単にしようとしている

マイクロソフトのブレンダン・バーンズがクラウドネイティブアプリの導入をコーディングと同じくらい簡単にしようとしている

トム・クレイジット

マイクロソフトの著名なエンジニアであるブレンダン・バーンズ氏は、KubeCon 2017で、クラウドアプリの導入を容易にするソフトウェアライブラリの提案を発表しました。(GeekWire Photo / Tom Krazit)

ソフトウェアを書くのは大変ですが、そのソフトウェアをクラウドに展開するのはさらに困難です。分散クラウドシステムの管理方法に関する書籍を執筆したマイクロソフトのブレンダン・バーンズ氏は、開発者がキーを打つ瞬間から分散クラウドコンピューティングを念頭に置いたアプリを開発できるツールを提供したいと考えています。

Metaparticleは、Kubernetesコンテナオーケストレーションプロジェクトの共同開発者の一人であるBurns氏が、先週テキサス州オースティンで開催されたKubeConで発表した新しいオープンソースプロジェクトです。「人々が、他の方法では構築できないかもしれないシステムを構築できるようになることに、非常に興奮しています」と、先週水曜日のステージ上でBurns氏は述べました。これはおそらく今週最も興味深い発表だったでしょう。

このプロジェクトは、JavaScript/Node.js、Java、C#といった一般的なプログラミング言語で使用できるソフトウェアライブラリの開発を目指しており、近日中にPythonやGoといったクラウドの主要言語のサポートも追加される予定です。これらのライブラリにより、ソフトウェア開発者は自身の言語でコードを記述し、アプリをコンテナ化してKubernetesにデプロイできるようになります。Kubernetesへのデプロイは、2017年後半の時点でも依然として世界で最も難しいスキルの一つです。

「より高いレベルでは、あらゆるプログラムがクラウドネイティブな世界に向かうにつれ、プログラミング言語もクラウドネイティブになるよう適応していくことが求められる」と、2016年にマイクロソフトに入社し、現在は著名なエンジニアであるバーンズ氏は月曜日のインタビューで語り、先週発表したアイデアを詳しく説明した。

(Pixabay写真 / CC0)

コンテナとKubernetesは、クラウドコンピューティングの考え方の中核となる2つの概念です。コンテナは、アプリケーションを複数の異なるサーバー間で実行することを可能にし、Kubernetesはコンテナに投資した人々に、それらのコンテナのクラスターを管理および展開する手段を提供します。

しかし、実際にこれを実現するには、クラウドインフラの運用担当者が、全てを機能させるために全く異なる言語で大量のコードを書かなければなりません。先週オースティンで発生した突発的な大雪を除けば、Kubeconでは何よりも、これらすべてを実現するために必要なYAMLプログラミング言語について不満を漏らした人が多すぎました。

「プログラミング言語を開発する人たちは、『この言語を学ぶのはどれくらい難しいのか?』とよく考えます。世界中のデプロイメント言語は、解決すべき問題を抱えた実践者によって設計されたものであり、必ずしも言語提供者によって設計されたものではありません」とバーンズ氏は述べた。

Metaparticleは、こうした複雑な作業の大部分、あるいはすべてを自動化し、開発者がアプリケーションのネイティブコード内でコンテナを起動し、Kubernetesにデプロイできるようにすることを目標としています。開発者がコンテナやKubernetesといった運用ツールの仕組みをより深く理解するようになるにつれて、これらの概念がアプリケーションや開発手法に関する新たなアイデアを生み出す可能性があるとBurns氏は述べています。

「最終的に私が言いたいのは、クラウドネイティブアプリケーションを構築できるプログラマーの層を広げることです。現在、JavaScriptフロントエンドWebサーバーの構築方法やAndroidアプリケーションの書き方を知っている人材は比較的多くいます。クラウドネイティブアプリケーションの構築方法を知っている人材は、その10分の1程度でしょう」と彼は述べた。

この問題は、多くの点でコンピュータサイエンスの歴史そのものです。極めて難解なコンピュータサイエンスの問題は、比較的少数の人々にしか理解されない傾向があり、一旦解決されると、より多くの人が前進できるよう抽象化されます。

このように、Metaparticle を使用すると、JavaScript 開発者は通常のワークフロー内でコンテナをセットアップできます。(Metaparticle の写真)

例えば、今では誰も超高密度で退屈なマシンコードを書くことはありませんが、コンピュータ業界の黎明期にはそれがビジネスコストの一部でした。この問題は、グレース・ホッパーがコンパイラを発明したことで解決されました。コンパイラは現在、バーンズがMetaparticleの主要なメタファーとして用いているKubernetes用のコンパイラです。

バーンズ氏はMetaparticleを「実験段階」と慎重に表現している。彼がMetaparticleを実際の本番システムでの使用を推奨するまでには、おそらく数年かかるであろう多くの作業がまだ残っている。彼は、リリースからわずか2年後の今年、Kubernetesを中心に築かれたコミュニティがコンテナオーケストレーションのデファクトスタンダードへと押し上げたように、Metaparticleを中心にコミュニティを築き、二度目の成功を掴みたいと考えている。

ここ数年で、クラウドコンピューティングと、コンテナやマイクロサービスといった関連概念が、ソフトウェア開発の方法を根本的に変えることが明らかになってきました。次の飛躍に向けて、次世代の開発者が分散システムで何を実現できるのかを理解できるよう支援する人材が必要です。

「これをやれば、その空間で劇的なことが起こる」とバーンズ氏は語った。