2014年と2015年の話
〜エンジニア業界総決算と大予測〜

第1話
2014年を振り返る
第2話
ペパボでのチャレンジ
第3話
2015年のトレンド予測

2014年と2015年の話
〜エンジニア業界総決算と大予測〜

第1話  2014年を振り返る
第2話  ペパボでのチャレンジ
第3話  2015年のトレンド予測

今回の登場人物

栗林 健太郎

栗林 健太郎(あんちぽ)
ペパボの技術責任者兼技術部長。最近読んだ本は『イノベーション戦略の論理 - 確率の経営とは何か』。WEB業界で経験的にのみ語られがちな合理性の追求について、経営学的な視点から読み解くことのできる一冊。あわせて「100倍で考える - Preferred Research」を読むのがおすすめとのこと。

柴田 博志

柴田 博志
技術基盤チームのチーフエンジニア。Rubyコミュニティに最も貢献した個人へ贈られるRubyPrize 2014を受賞。愛妻家。最近読んだ本は『Rubyのしくみ -Ruby Under a Microscope-』と『Effective Ruby』。Rubyのコードについて、より理解を深めたい方におすすめの本。

近藤 宇智朗

近藤 宇智朗(うづら)
技術基盤チームのアドバンスド・シニアエンジニアとして福岡で活動。二児の父として子育てにも奮闘中。最近読んだ本は絲山秋子の小説『逃亡くそたわけ』。愛知から始まり九州に至るストーリーが、愛知出身・福岡在住の身にかなり刺さったとのこと。ブログでは「The Tao of HashiCorp - HashiCorp」が印象に残っている。

黒田 良

黒田 良
技術基盤チームのアドバンスド・シニアエンジニア。サービスパフォーマンスを最大化するための環境整備などを積極的に手がける、縁の下の力持ち。最近気になるブログは「ゆううきブログ」と「SOTA」。若手の台頭の気配を感じつつも、有用な情報を柔軟に取り入れ、粛々と日々研鑽に励む。

伊藤 洋也

伊藤 洋也(ひろやん)
技術基盤チームのアドバンスド・シニアエンジニア。新卒入社エンジニアなどの新人教育に力を注いでいる。最近読んだ本は『成人教育の現代的実践―ベダゴジーからアンドラゴジーへ』。“「教える」ことから「学ぶことの支援」への転換を考えるための一冊”として非常に啓発されたとのこと。

今回インタビューに登場するのは、ペパボの技術基盤チーム。メンバーは、日々更新される新しい技術や情報にキャッチアップし、サービスの安定稼働に尽力する一方で、社内のエンジニアを統括する部門として、教育や評価体制などのインプット・アウトプットを促進し、会社全体の技術力向上を図るという大きなミッションも背負っている。

2014年の振り返り

あんちぽ
それでは「2014年エンジニア業界総決算と2015年大予測」ということで始めましょう。2014年を振り返るということですけど、技術面やサービスでおもしろかったなぁというネタを話していきましょうか。じゃあうづらさん、何か。
うづら
え!一番僕ですか(笑)。そうですねぇ、節操無くいろいろつまみ食いをした年だったんですよね・・・。Swift が出たのは2014年ですよね?
あんちぽ
2014年6月の WWDC ですね。
うづら
こんなこというと斧が飛んできそうで怖いですけど、Scalaにすごく似ていてかなり関数型なんですよ、Swiftって。case文でパターンマッチみたいなのができるとかあって、そういうマニア向けな機能がいっぱい入っている言語をAppleとして出してきたっていうのがちょっとおもしろいなって思いましたね。
そういうのもあって印象に残ってます。
本日は福岡中継しながらお送りします
あんちぽ
今言語作るんだったらこんな感じかなーっていうのを盛り込んできて、結構良いとこ取りしている感じですよね。
うづら
Objective-Cも僕は悪くないと思っているんですけど、Rubyが出てきたときの感じもありつつ、古色蒼然ともしていて、その感じとのギャップは凄いなと思いました。
あんちぽ
Swiftに関しては、Appleがやっている以上使わない訳にはいかないという感じですよね。もう移行が進みつつあるんですか?
うづら
いや〜、CocoaPods がやっと対応したっていう話は聞いていますが、正直まだまだかかると思います。
あんちぽ
その周辺のエコシステムが追走できれば、どんどん移っていくんでしょうか?
うづら
基本的な文法は整ってきているようですけど、ライブラリ的なものはObjective-Cでがっつり書いてあるのがいっぱい残っていて、Swiftで使うために単に薄くラップしてあるだけみたいなところがあるみたいですね。ただ、僕は最近Puppetばかり書いていてSwiftを触っていないんです。社内のアプリエンジニアの方がガンガン調べていて詳しいと思います(笑)。
あんちぽ
うちとしての取り組みがどんな感じかっていうのを補足しておくと、Swiftで書かれた新しいアプリはまだ特にないですよね。ただ、もちろん注目はしています。WWDC自体もペパボから二人当選したので初めて行ってもらって、そこで発表されたものだから、速攻かぶれて帰って来て(笑)。早々に「Swift勉強会やるぞ!」みたいな企画をしたり、ペパボエンジニア個々の間では、だいぶ広まってきている印象です。勉強会開いて発表したり、アプリエンジニア以外でもライブラリを作る人が出てきたりとかしていて、今後新しいアプリを出す動きがあれば、Swiftで書いていくというような流れになるのかなーっていう感じですかね。
新卒採用入社の話
うづら
そうですね。世間のモバイルエンジニア一人一人の意識も、2014年は一気にガガガッと上がった気がします。potatotipsGMO Yours で何回かやりましたし。
あんちぽ
ペパボ社員も何人か出て発表しましたよね。モバイルの辺りは、なかなか僕らとしてはやれてない面があるなっていう方なんですけども、2015年は外に出て何かするっていうのをもっと支援して行きたいですね。ペパボ主催の勉強会をもっとやるとか。
うづらさんが仰ったように、Swiftがでてきたことで、今までモバイルやっていた人たち以外にも、これだったらモバイルやってみっかみたいな感じの取っ掛かりがあるかなーっていう風には思ってますけどね。
うづら
そうですね、Androidもだいぶ変わりましたからね。VMが変更して、ARTと Go 1.4 を使って実験的とはいえAndroidアプリ書けますよみたいになりましたよね。
あんちぽ
ここ1、2年で、Android Studio 0.いくつみたいなの入れて頑張ってたんだけど、バージョンが一個上がると一部動かないみたいなのが改善されましたね。アルファな人たちが頑張って切り開 いていたことでちょっと落ち着いてきたのかなっていう。
うづら
そうですね、IDEで定番みたいなのがちゃんと出て、開発環境でいろいろ悩まなくてよくなったっていうのがいいなと思いますね。
あんちぽ
Android Studioへの移行は、うちのアプリも進めてますよね。古いのはAndroid Studioに置き換えて開発していくぞって感じなんですけど、まあでも社内でAndroidやって行くぞっていう人の割合が少ないんですよね。
うづら
そうですね、出会いたいですね。
あんちぽ
新しい人、来てほしいですね。iOSに比べてAndroid はキャッチーな話題が少ないので魅力がつたわりづらいのかなと思いつつ、やってみるとなかなか楽しいので。今いる人も、もっとAndroidをやっていく感じになるといいですね。iPhoneが出て約8年、スマホアプリを皆が作り出しているからそろそろ成熟しても良い時期なのに、まだまだ今年もいろいろあるんだろうなーってところで次は柴田さんにも聞いてみましょうか。2014年を振り返って、面白かったものは何でしたか?
柴田
いっぱいありますけど、Go ですかね。
あんちぽ
おお〜。何がおもしろかったですか?
柴田
今までRuby書いてた人が皆Go書き始めたんですよね(笑)Heroku、GitHubのHubのクライアントとかRubyで書かれていた有名どころが、いつのまにかGoに書き替わっていたんですよね。表現力が多くて書きたいものがすぐ書けるというのがRubyのなのに、「遅いからGoで書き直してみたら速くて乗り換えちゃいました」みたいな、元々Rubyが好きな人も乗り換えが進んでいるなぁというところに感じるものがありましたね。
楽しそうなhsbt氏
あんちぽ
ちょっと違う風が吹いてきたなっていう感じがありますね。
柴田
そうですね。僕はRubyが大好きなんで、Rubyを応援したいんですけど。
あんちぽ
もともとはOps系ツールにRubyを使うっていうのはあまりなかったですよね。2005年に出たPuppetがRubyで書かれたあたりから、Ops系ツールや柴田さんが紹介されたようなユーティリティ的なものもRubyで書くっていうのが割と一般的になってきましたよね。運用方法やエコシステムも揃ってきてさぁ活用しよう!って盛り上がった矢先、Goを書き出して・・・っていう流れが、2014年で大きかったなと思いますね。
柴田
HASHICORPMitchell Hashimoto さんの作っているプロダクトも、特にOps系のツールの代表的なものだと思いますけど、あれも Vagrant 以外は全部Goですよね。
あんちぽ
象徴的ですよね。Vagrantを書いた当初はGoで書くという選択肢はなかったと思うんですけど。彼がGoを使い始めて、皆Go使おうぜ!みたいな感じになったのかもしれないですね。Goで書くか、Rubyで書くかって何か使い分けがあると思うんですけど、その辺って柴田さん的にはどう思います?
柴田
どっちがどっちで良いかっていう観点で見るなら、WEBサービスを作るときはRubyを使っておいた方が良いのかなぁと思います。例えば、うづらさんが作ったライブラリをGitHubからインポートして、どんどんビルドしていくなかで、うづらさんが何か破壊的な変更を入れた時に全部ぶっ壊れる、みたいなことが容易に起こりうると思うんです。ビルドして出てきたバイナリを見るというのはほぼ不可能なので、サードパーティのライブラリの品質をどこまで信頼するかというところがまだ未知数なのかなと思っています。なのでGoはWEBサービスというよりは、何かおかしいなと思ったらすぐ前のバージョンに戻すみたいなことができるOps系ツールやユーティリティでバンバンやっていくのがいいのかな、というのが現状の僕の見解ですね。
あんちぽ
確かに、僕らみたいにチーム開発をしつついろんなOSSを取りこんで作っている場合には、エコシステムが整っていないとまだまだ不安が残りますね。それに向き不向きもあって、WEBサービスみたいな大きいものというよりは、ユーティリティやあるいは小さい仕事をするデーモンであるとか、そういうところの方が向いているのかなぁと感じます。僕が作って今動いているのも、Nginxの裏にいてリクエストを取って来て加工して返すみたいな細かいサーバーが多いんですよね。そういう流れでもうひとつバズワードをぶっ込むと、マイクロサービスみたいな話があるかもしれないですね。
一同
出たー!(笑)
あんちぽ
正しくは“Microservices”ですね。これが出てきた背景としては、今まではアプリケーションなどはRailsで作ってドーンと出しましょうという感じで進めてきていたのを、サービス側の要求が複雑化してきたために小分けして出していかざるを得なくなったことですよね。WEBサービスではないですが、一つの機能を提供するものとして、例えばGoみたいな小回りがきいてかつパフォーマンスも高い言語を使って作っていきましょうと。ここは実は僕らも実践している面が少なからずある訳で、それに対応してサービスを作っていく流れになっていくと、インフラ側もいろんな変化が出て来ると思いますが・・・その辺はインフラエンジニアの黒田さん、いかがですか?
黒田
突然(笑)。インフラ的にも独立した小さなコンポーネントに分けて疎結合な構成にしていくみたいな動きになるんじゃんないかって話だと思うんですが、それを今あるペパボのサービスにそのまま当てはめられるかって言ったら、そういうことはないですよね。歴史のあるサービスが多いこととか、オンプレでのノウハウが結構あって、さっき言ってたコンテナとかDockerとかそういうのを導入すると、恩恵もたくさんあると思うんですけど・・・。
lamanotrama氏の後ろにはいつもudzura氏が映り込む
あんちぽ
複雑性が高まる?
黒田
いや、複雑性が高まる部分とシンプルになる部分と両方あるとは思うんですけど、それより運用フローとか扱う人間の考え方を大きく切り替えなきゃいけないんで、そこの切り替え部分のコストが凄い高そうな気がするんですよ。ペパボはサービスがたくさんあって、規模がそこそこ大きいので、一部にポンと導入してもあまりメリットがないかなと。あと、ホスティングはサービスの性質上むちゃくちゃステートフルなコンポーネントが多いので、コンテナ型のアーキテクチャは適用しにくいと思ってます。勢いだけで導入するんじゃなく、全社的にスムーズに導入出来るように準備をしないとただコストが高まるだけな気がしますね。
あんちぽ
やり切れるかどうかっていうのはありますね。一部の意識が高まって、これからはマイクロサービスだ!って切り離しても、もしそこだけで終わったら一部分だけがいびつに飛び出た形になって結局意味がなくなってしまう。
黒田
そうそう、そんな感じがするんです。便利なツールがいろいろ出てくることで恩恵も多いけど、あくまで運用効率化やサービス価値向上、ユーザーメリットにつながらないと意味がない。実際に実務に活かしていくのであれば、僕としてはまだちょっと慎重になりたいですね。もちろん、個人で触ってどういうものか把握しておくのは大事ですけどね。
あんちぽ
そういう意味では、WEBの流行とかって僕ら含めこの会社のエンジニアは全体的に取り入れていこうっていう意欲が高いのかなと思います。そんな中で、ひろやんは流行りを追うだけではなく、もっと基礎的なところを学習していますよね。
ひろやん
僕は流行りが終わった頃に導入するっていうスタイルです(笑)。流行りに乗っかってみたもののやっぱり運用できませんでしたみたいになっているのは嫌っていう部分もありまして。熱が冷めたぐらいの頃に「うちではこうやって使っていました」っていうノウハウが出てきたところで見極めてから判断します。
あんちぽ
バズった後に、それでも生き残ったものに関してやっていくぞって感じですかね?
ひろやん
それだけだと、作った人に対して恩恵を受ける側なんでズルいですけど。新しいから良いってものでもなくて、一歩引いて見てる人がいてもいいかなっていうスタンスでやっています。
hiboma氏
あんちぽ
ではひろやん的には、2014年を振り返るというよりは2008年くらいにあったことを、今も追っているっていうことになるのかもしれないんですけど、そういうトピックってありました?
ひろやん
柴田さんと同じようにGoであったりとか、mrubymod_mruby など実用的な面であれこれ活用されているとか、そういう技術がペパボの実践の中で定着を見せてきたものに関してはあったなぁと思ってます。Dockerは既存のプラットフォームを置き換えるにはもうちょっとまだまだかなぁ。
あんちぽ
ペパボではDockerを何らかの形で導入している事例ってありましたっけ?
うづら
minne ではDockerにPuppet適用して Serverspec をあてるっていうのをやってみていて、他のサービスへも展開しようとは思っています。ただ本物のマシンとDockerとの違いは微妙にあるので、ちょっと苦戦しているところもありますね。
あんちぽ
なるほど。インターナルなところでは、DockerなりGoなりどんどん使ってやっていきましょうってしている一方で、一部で使っているものはそれはそれで慎重に見極めてノウハウを構築しながら使っていこうねっていうようなバランスの取れたスタイルではありますね。


~第2話へつづく~