分12今回のゲストは数々のオープンソースソフトウェア(OSS)で知られる奥一穂さん。通信プロトコルの最先端は今どうなっているのか,お話を伺いました。一穂さんHTTP/2サーバであるH2Oなど通信プロトコルを専門とする職業OSSプログラマー。IETFでの標準化にも参画する。サイボウズ・ラボ,DeNAを経て,現在はFastlyに勤務。Twitter:@kazuhoURL:http://blog.kazuhooku.com/LOGO,HyperCardから,H2Oへ竹馬:自分の周囲で「一緒に働いたことがある人だと誰がすごかった?」というテーマで話すと奥一穂さんの名前が挙がることが多く,一度お話を聞いてみたいと思っていました。これまでの経歴を伺えますか。奥:最初にコンピュータを触ったところから始めると,小学生のとき親の都合でオーストラリアの学校に通っていて,授業で触った学習用プログラミング言語のLOGOを気に入ってコンピュータ室に入り浸っていました。中学生になってからは親が持っていたPC-9801とかMacのHyperCardとかポケコンとか。それが1990年ごろです。OSが出たんですが,TCP/IPスタックとモデムがあって,でもWebブラウザがなかった。OSのブラウザがないなら,と自分で作りました。そんなことばっかりやっていたせいで大学を退学したんですが,先輩の会社に転がりこんでいたら,IBMやNTTドコモ,SONYといった企業さんからそのブラウザをバンドルしたいという話をもらい,それが本業になったという感じです。OSは下火になってしまったんですが,そのあと未踏ソフトウェア創造事業でWebベースのPerlの統合開発環境をやって,そのとき誘われてサイボウズ・ラボに入って,ローカライズ支援ツールのJapanizeや,閲覧ログをとったりするPathtraqを作りました。それらに関係して,Q4MというMySQL用のメッセージキューを作ってオープンソースにしました。Q4Mの最大のユーザーがDeNAだったので,大きなシステムに触れるのに惹かれてDeNAに転職したんです。したらDeNAがngmocoっていうスマホ用のゲームSDKの会社を買って,携帯端末で実行環境を書いた経験のあるプログラマーが社内にいたぞってことでサンフランシスコに送り込まれて......。その過程でJSXというプログラミング言語(注1)を開発して,JSXの実行環境の1つとして作られたWebソケットサーバが,今やっているH2Oのもとになっています。手頃なHTTP/2のサーバがなかったんです。そのあとH2Oの一番大きなユーザーであるFastlyに転職して現在に至ります。注1)ReactのJSXとは別のもの。OSSを引っさげて飯を食べる竹馬:一穂さんと言えば,自作のOSSを引っさげて転職する人で,かっこいいな,まねしたいな,とあこがれてるんですが,なかなかそこまでできる人はいません。選ぶテーマにコツとかあるんでしょうか。品質が高いコードを書けることが前提で。奥:こういうスタイルの人は,そこまでいないわけでもないです。僕の知り合いにも,オープンソースのプロダクトを開発して,それで屋号を掲げて飯を食べている人は何人かいます。Hubertさんも似たような感じかな。通信プロトコルをやっている人たちにとっては,OSSを小規模な会社,1人あるいは小規模なそれ専業でやって,それをビジネスにしたり,コンサルティングをやるというのは一般的だと思います。通信ソフトだからこそだと思いますが。ソフトウェア自体は価値の中心ではなくて,インテグレーションが価値の中心。ライブラリを作っている人は,インテグレーションのコストを下げるためにオープンにしていくのが当然の流れなんだろうと思っています。竹馬:標準化の世界ですよね,通信って。奥:通信は相手と話せないと意味がないですから。一つの飯の食い方は,コストがかかっている部分をコンピュータサイエンスの技術を使って改善して,スケールメリットで儲けること。大きい会社のR&D部門に寄食する感じですよね。そこでは大きなイノベーションは不要なんです。新しいものを作るのではなくて,今あるものを改善するという話なので,着実に成果を出せる分野です。いうところに属するのが合理的な選択だと思いますね。竹馬:まさに今の一穂さんの立場ですよね。Network)ってなんだかんだ言ってWeb配信のための最適化をやる業界じゃないですか。僕みたいな仕事をやっている人がいっぱいいるわけです。いう環境がどれだけあるかという話になりますね。:一穂さんが今取り組んでいるQUICについて,技術的なことをお聞きします。Protocol)の上でTCPのような機能を実現しているものですよね。TCPのようなレイヤだと,古いものは負債もたまっているんでしょうか。Security)を置き換える部分をQUIC,HTTP特有の部分をHTTP/3と呼ぶことになりました。TCPについてはいろいろあるのですが,TCPが発明された50年ほど前にはすごいネットワークが細かった。今はネットワークが太いので,通信のボトルネックがパケットの量ではなく,エンド間で往復するラウンドトリップにあるんです。TCPがあって,TLSがあって,その上にHTTP/2がのっていたんだけど,やはりレイヤが多いのでオーバーヘッドがある。Blocking(パケットが届いていても利用できない状態)が発生してしまったりとか。TCP自体は平文なので,攻撃に対しても弱いんです。TCP/TLSを一体化させてしまえば攻撃耐性は上がるし,プライバシーも守れる。今はTCPが平文だから,中継装置が勝手にいろんなことやるんですね。そのせいでTCPの改良ができない。Openの導入もなかなか進まない。TCPは実質的に硬直化しています。この現状を踏まえて,できる限り硬直化しないように暗号化/難読化されたプロトコルを作ろうというのがQUICのもう一つの目的です。高速で,より安全なだけでなく,今後自由に進化するための基盤を作ろうということです。中継装置に関係なく,エンド間で自由に進化させることができるという,これがQUICの基本的な考え方です。フロントエンド著者プロフィール竹馬光太郎(ちくばこうたろう)フリーランスで先端技術の導入などを行う。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。