Jupyter の nbviewer.org をサポート開始 : Yuvi Panda 氏、オープンインターネットの価値について語る
私たちの友人である Yuvi Panda 氏から、Fast Forward (オープンソースコミュニティと協力して優れたインターネットを構築する Fastly のしくみ) についてもっと知りたいと連絡があったとき、私たちは夢見心地でした。
Yuvi は Jupyter プロジェクトの nbviewer.org に必要なコンテンツ配信ネットワーク (CDN) に、私たちがどのように対応できるのか知りたいと考えていました。ご存じない方もいらっしゃるかと思いますが、Project Jupyter は Jupyter Notebook、Jupyter Lab、JupyterHub などのインタラクティブなコンピューティングテクノロジーに取り組むコミュニティです。Notebook を使うと、テキスト、ライブコード、数式などを単一のビューで表示し、情報や研究を読みやすく理解しやすい形式で、簡単かつ効果的に共有できます。これは研究者、科学者、教育者、開発者に非常に大きなインパクトをもたらしてきました。nbviewer プロジェクトによって、ソフトウェアをインストールすることなく、Web ブラウザで誰でも簡単に ipynb ファイルを共有し閲覧できるようになることで、Jupyter Notebook がより有用なものになります。
しかし、それ以上に Yuvi、MinRK、Jupyter コミュニティの方々が、私たちが共有する価値観に賛同して声をかけてくれたことに私たちは興奮を覚えました。Jupyter は Fastly と同じく、オープンであること、インクルーシブであることをモットーにしています。生産性が高く、ハラスメントのない環境づくりに取り組むとともに、そのコミュニティスペースの価値を守る責任をコミュニティに課しています。端的に言えば、優れたインターネットの構築に貢献しています。
そこで私たちは Project Jupyter、nbviewer、Yuvi の経歴について詳しく話をお聞きしました。
Hannah (Fastly) : Yuvi、私たちは Jupyter コミュニティと協力して nbviewer.org の運営をサポートできることを大変嬉しく思います。このプロジェクトの概要について教えてもらえますか?すぐには気づかないかもしれないものの、特に優れている機能にはどのようなものがありますか?
Yuvi : nbviewer は Jupyter Notebook の表示を他のユーザーと共有するために使用されます。オリジナルでありながら、多くの場合、現在でも最も優れた方法です。Jupyter Notebook に任意の URL を入力することで、インタラクティブな機能を実現するために必要とされるあらゆる Javascript を含む情報がすべて表示されます。たとえば GitHub からのリンクだけでなく、自分の Web サイトやファイル共有サービスからの公開リンクといったものから貼り付けることができます。ファイルさえ取得できれば表示できるようになります。GitHub ではセキュリティ上の理由からインタラクティブ性が大きく損なわれますが、このサービスでは未認証のサービスとして実行されるため、GitHub などに比べてインタラクティブなコンポーネントをより多く表示できます。GitHub が最終的に Jupyter Notebook の表示を追加したことは、多くのユーザーに好意的に受け止められています。ただし、nbviewer はどこからでも表示できることと、インタラクティブ性を備えていることから、あらゆる点でより優れているといえます。
ここでの特に優れた特徴は、非常に優秀な人たちからなるグループによってサポートされているオープンソースプロジェクトだということです。つまり、あなたもその一員になることができるのです。
Hannah : 素晴らしい特徴ですね。サポートする際にどんな準備が必要になるか気になります。このようなプロジェクトに取り組むにあたって、どのような課題に直面しましたか?最初に考慮したことは何でしょうか?
Yuvi : Jupyter の他のエコシステムと同じように、nbviewer はオープンソースのパッケージであり、誰もが貢献することができ、独自の内部バージョンを実行することもできます。nbviewer.org のパブリックインスタンスは、ヨーロッパのクラウドプロバイダーである OVH によってホストされており、この Helm チャートを通じて Kubernetes 上にデプロイされています。
第一の課題は、すべてのオープンソースが現在直面している課題です。それは、エンドユーザーがパッケージではなく、サービスを求めていることです。nbviewer.org のメンテナンスと維持のために資金を提供してくれる組織はなく、大半がボランティアの管理者による無償の労働に頼っています。ですから、オープンソースのインフラストラクチャ (パッケージだけでなく) に関して最初に考えるべきことは、その運用方法です。継続的な保守や管理にかかる手間を最小限に抑えるように設計できないか?どのようなテクノロジーや機能を選択すれば、管理者に犠牲を強いることなく、ユーザーに価値を提供できるのか?などの点を考慮する必要があります。
Hannah : その通りですね。多くのプロジェクトで同様の悩みを耳にしますし、それはまさに私たちが Fast Forward で解決しようとしている課題です。管理者が Fastly をより簡単に使えるようになる方法を私たちも常に考えています。そこで nbviewer でこのような課題に対応するにあたり、Fastly からどのようなサポートを受けましたか?また、Fastly を選んだ理由をお聞かせいただけますか?
Yuvi : nbviewer は特別な存在です。静的なノートブックファイル (JSON として) から優れた HTML を出力する純粋なトランスフォーマーだからです。また、オリジンサーバーの負荷を大幅に軽減し、そこで発生しうる問題や障害を軽減するキャッシュ CDN に最適なケースでも あります。今では nbviewer.org がダウンしたときに警告を受けるためにページャーを携帯することなど誰もできませんし、そのような人はまずいないでしょう。nbviewer の中核的なコントリビューターの1人である MinRK によると、主に Fastly のおかげで、GitHub API からノートブックを取得して表示する際に、GitHub API の制限に達することがなくなったということです。オープンソース、ベンダーニュートラルの精神に則り、nbviewer のコードベースには Fastly 固有のコードはありません。そうすることで、一般的な HTTP キャッシングディレクティブを使って、独自の機能を実現できるという点を非常に気に入っています。以前から Varnish の大ファンでもあるのですが、高速に動作する OSS テクノロジーを気に入って使用しています。
これは私の考えですが、世界は非常に残酷な場所にもなりえます。そのため、この場所をより優しさの溢れた世界にするためにできることは何でもする、という姿勢はとても重要です。どんな些細なことでも良いのです。私の知る限り、この点において Fastly は他のプロバイダーよりも抜きんでているように思います。それが、 Fastly をエッジに据えた現在の構成を推し進めた最大の理由です。また、このプロセスを通じて Fastly には、非常に親切に対応していただきました。私にとって重要なコミュニティをサポートしていただけることを、非常に嬉しく思っています。
Hannah : Yuvi、そのようなお話を聞けて、大変嬉しく思います。私たちは、自分たちが築き上げたカスタマーコミュニティに誇りを持っています。プロジェクトや開発者が厳しい決断を迫られた際に、Fastly を選んでいることからもお分かりいただけるかと思います。もうひとつ、あなたの経歴についてもお聞きしたいことがあります。プログラミングを始めた当初から、オープンインターネットや教育インフラに携わってきたとお聞きしています。nbviewer への貢献だけでなく、2i2c の設立や Wikimedia Labs の Wikimedia Foundation での活動に関わり、現在は UC Berkeley の Division of Computing, Data Science, and Society でインフラストラクチャアーキテクトとしてご活躍されています。今日、オープンインターネットが直面している最も困難な問題にはどのようなものがあり、それはどのように解決すればよいのでしょうか?また、nbviewer や Project Jupyter、オープン・インターネット・インフラストラクチャに携わりたいと考えている人たちにアドバイスはありますか?
Yuvi : 南インドの下位中流階級、つまり非上位カーストで育った私は、自分自身をプロプライエタリソフトウェアの「ユーザー」であるとしか考えることができませんでした。しかし、私の特殊な境遇と特権のおかげで、オープンソースソフトウェアの「単なるユーザー」以上の存在として自分を見ることができるようになりました。オープンソースソフトウェアを構築している人たちを身近に感じられたことで、非常に勇気づけられました。自分もソフトウェアを構築できると思えたのです。
今日、私たちが直面している問題について言えば、オープンなインターネットインフラストラクチャは岐路に立たされています。私たちの行動と選択が、今、これまで以上にとても重要になっています。ユーザーは、もはやソフトウェアのダウンロードやインストールを望んでおらず、その代わりにサービスを使用したいと考えています。オープンソースのムーブメントもこれに対応する必要があります。さもなければ、代替となるプロプライエタリソフトウェアに取って代わられるリスクがあります。
では、世界がサービスへと傾倒していく中で、私たちはどのようにして、このオープンソースの勢いを維持していけばよいのでしょうか?これは、全ての人たちが頭を悩ませ、それぞれのやり方で理解しようとしている問題です。この問題は、ソフトウェア開発の今後10年間を決定づけるだけでなく、「オープン」の意味するところを変えることにもなるでしょう。
Hannah : 本日はお忙しい中、貴重なお時間をいただきありがとうございました。
nbviewer について詳しくお知りになりたい方や関わりたい方は、Jupyter Discourse Forum に投稿できます。Yuvi に連絡を取りたい場合は、彼の個人サイトか Mastodon までお問い合わせください。また、Fast Forward について関心があり、応募したいという方は Fastly の Webサイトをぜひご覧ください。
優れたインターネットを一緒に構築していきましょう。⏩