CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
こんにちはー。野田貴子です。
今月も海外のRails情報で面白そうなものを意訳してご紹介しますね。興味がある方はご覧ください。
###
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/
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes