IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby on Rails 海外事情コラム

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第22回 RailsConf 2017でのAaron Patterson氏へのインタビュー抜粋 (野田貴子) 2017年10月

こんにちはー。野田貴子です。

今月も海外のRails情報で面白そうなものを意訳してご紹介しますね。興味がある方はご覧ください。

###

RailsConf 2017でのAaron Patterson氏へのインタビュー抜粋

Railsへのコミット数が突出しているAaron Patterson氏が、RailsConf 2017でインタビューを受けました。現在の勤め先であるGithubの話からBBQのレシピの話まで、ざっくばらんに答えてくれています。日本語の技術ブログを読むために11年も日本語を勉強したにもかかわらず、そのきっかけとなったブログは大して良くなかったという話も・・・!Twitterの自己紹介に日本語で「ひげの山男」とある、面白い方です。

元記事はこちらです。

INTERVIEW: Aaron Patterson, Rack, Github and BBQ | Rubyroid Labs Blog
https://blog.rubyroidlabs.com/2017/05/patterson/

---

Aaron Patterson氏はRubyの世界でとても評判がよく、素晴らしい開発者です。RubyやRuby on Railsコアチームのメンバーである彼は、最高にプロフェッショナルな技術と、それ以上に素晴らしい人格で知られています。今回のRubyConfでは当社のCEO Valentine ZavadskiyとDatarockets社のDmitry Zhlobo氏がAeron氏にインタビューを行い、Rubyの将来から彼の好みのBBQレシピまで、あらゆることについて尋ねました。

Q. Aaron、あなたは現在Githubで働いていますが、自身の経験とバックグラウンドを活かして、Githubではどんなことをしているのかを教えてもらっていいでしょうか。

A. もちろんです。私はGithubで働いていますが、私のプロジェクトはここのところずっとRubyのガーベージコレクターです。私はSystem Platformチームに所属していて、このチームでは下層の問題に対処しています。しかし私の焦点は、最近はほとんどRubyのガーベージコレクションです。ずっとこれをやってきました。

Q. Rubyを書く量が減ってC言語が増えました?

A. そうですね。Cが増えてRubyは減りましたね。もちろん今でもRubyのあれこれはやる必要がありますが、最近はほとんどの時間をCのコードを書くために費やしています。残念なことですね。

Q. それが理由で日本語を勉強するのでしょうか?

A. そうですね。Rubyの学習を始めたのは、おそらく2006年だったと思いますが、コードのサンプルを検索しても、見つけたブログ記事はすべて日本語で書かれていました。コードを見ても何も読み取れませんでした。何が書かれているかを知りたくて日本語を学び始めました。そして11年経ち、私はついにそのブログ記事を読めるようになりました。読めるようになったのですが、大したものではありませんでした。

Q. その記事は良かったですか?読む価値がありましたか?

A. それが、その記事が大して良くないと気づくのに11年を費やしましたよ。

Q. ありふれた質問かもしれませんが、あなたはどのようにプログラミングを始めたのでしょうか。というのも、あなたは現在C言語を書いていますが、以前はRubyを書いていましたよね。そこのところで、どういう経緯があったのでしょうか。

A. 私がプログラミングを始めたのは、高校の時でした。いや、実際はそれよりも前だったかもしれません。プログラミングの授業があったのです。正確には授業ではなかったですね。小学校の教室にパソコンが一台ありました。そして私はそのパソコンで遊んでいました。それが私の初めての経験のようなものです。しかし、本当にプログラミングを始めたのは、たしか高校の時でした。もっと前だったかもしれません。最初のパソコンは1988年で、最初に書いたプログラムはBasicでした。私はある本を持っていて、その本の裏にとても長いプログラムが、天気を予測する方法についてのプログラムがあったのです。データを元に将来の天気を求めるような、今でいう機械学習みたいな。そして私はそのプログラムを書きました。6ページくらいでしょうか、それをタイプしたのですが、動きませんでした。全てのコードをチェックして、本の通り正確に打ちましたが、全く動きませんでした。「最悪だ。これじゃどうしようもないよ。」という気分でした。これが私の最初の体験です。

Q. Githubについて聞いてもいいですか。Railsが動作しているバージョンは今公開されているのでしょうか?

A. はい、公開しています。今はRails 3.2を運用中ですが、バージョン4へアップグレードをしている途中です。私は数ヶ月以内に4.2になると考えています。たしかテストが10個ほど失敗していたと思います。それが解決されればなので、本当にすぐですね。

Q. そんなバグはすぐ取っちゃいましょうよ。

A. その通りですよ。そのバグが無くなれば完璧です。

Q. Githubは今でもRailsアプリケーションだと言えますか?

A. そうです。その通りです。あれはとても巨大なRailsアプリケーションです。周囲には大量のシステムが存在していますが、そのメインアプリは確かにRailsです。巨大なシステムですが、サービスもあります。私たちはGitをウェブサーバー上で動かしていません。バックエンドサーバがあって、ウェブサーバーとそのサーバとの間で通信を行なっています。そのためGithubはモノリスとマイクロサービスの中間です。マイクロサービスの方に近いですね。少し変な話なのですが、私たちはこれをモノリスと呼んでいるのですが、恐らく戦略上、アプリケーションから分離された物が存在するんです。しかしこれは確かにRailsアプリです。

Q. あなたはGithubはモノリスのままでいいと思いますか?

A. モノリスのままキープするべきかについては現場で様々な議論があります。これに関連して私たちが抱えている主な問題、あるいは、マイクロサービスに変更することに対する議題は、デプロイのスピードです。私たちがどのように作業しているかというと、誰かがバグを直し、その人がプルリクエストを送り、別の誰かが修正をレビューし、その人が修正許可を出し、それからバグを直した人がコードを製品版にデプロイします。私たちのところには10分おきにデプロイが発生するほどたくさんのエンジニアがいます。そこで問題になるのは、そんなに多くのエンジニアがいるために、10分すら長くて待ちきれないということです。1人が自分の修正箇所をデプロイするために列に並んで待つ時間が、エンジニアの数だけ掛け算になり、結果的にものすごい時間量になります。そこで今考えている解決策の一つは、もしこれがもっと小さなサービスに分かれていたら、「オーケー。バグを直さなきゃならんが、このバグはたった一つだけだから、すぐにやっつけられるぜ。」というようになります。そしてデプロイ待ちの列は、モノリスで開発しているよりも短くなりますね。

Q. マイクロサービスに書き直すことは可能だと考えていますか?どのくらい大変なのでしょう。

A. わかりません。マイクロサービスに書き直そうとしていたわけではないんですよ。ただ、「ここの部分はアプリケーションから取り出そう」と言っていただけで。例えば認証コードを取り出すとか、そんな感じです。もしかしたらそれを特定のサービスに移動したりとかですね。

Q. RubyやRailsからJavaのような別のものに移行する話は出ていますか?

A. いいえ、出ていないと思います。CやC++のコードはたくさんありますがね。多くの作業がありますが、そのほとんどはRubyですし、そのメインアプリケーションから離れる方法は私には分かりません。

---

字数の都合上、BBQの話までたどり着けませんでした。

続きは原文をご覧ください。
https://blog.rubyroidlabs.com/2017/05/patterson/

協力:株式会社Dive into Code 野呂浩良氏
https://diveintocode.jp/

 


 

Ruby開発に強いTRANSNET
Ruby開発に強いトランスネットが運営する「Ruby開発・事例サイト」
  • 20以上のRuby開発の事例・提案書を公開中
  • 毎月公開されるテクニカルコラムも好評連載中
  • Rubyエンジニアも常時募集中です!

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート