fujihori_eyecatch

 

Androidエンジニア向け勉強会「CA.apk」やiOSエンジニア向け勉強会「CA.swift」、Kotlinエンジニア向け勉強会「CA.kt」、フロントエンドエンジニア向け勉強会「Frontrend」など、様々な技術領域においてサービス開発で得た知見を発信、共有する場を設けているサイバーエージェント。

 

この度サーバーサイドの領域でもGo初中級者をターゲットにした勉強会「CA.go」を2017年6月21日(水)より開催いたします。

 

テクニカルマネージャーとして数々の勉強会やイベント企画、運営を推進している藤原と、映像配信プラットフォーム「FRESH!」でサーバーサイドエンジニアとして日々Goを使い、「CA.go」の主催者でもある新卒4年目の堀にインタビュー。サイバーエージェントでGoがいつから、またどのくらい使用されているのか、そして勉強会開催に至った経緯など話してもらいました。

 

IMG_4420

藤原 聖
メディア統括本部 技術戦略室 テクニカルマネージャー。2011年サイバーエージェント中途入社。
入社後は、Androidエンジニアとして数々のコミュニティサービスの開発、運営に携わった後、2015年4月より映像配信プラットフォーム「FRESH!」の立ち上げに参画。その後、2016年9月より現職。

 

IMG_4432

堀 良太
映像配信プラットフォーム「FRESH!」 サーバーサイドエンジニア。2014年サイバーエージェント新卒入社。
入社後、グループ会社でメディアサービスのインフラ、サーバーサイド担当として立ち上げ、運用に携わった後、2015年4月より現職。

 

社内でGoが使われ始めたのは約3年前

 

ーーまずはじめに、現在の担当業務について教えてください


藤原:2016年の9月まで「FRESH!」のAndroidアプリの開発を担当していました。現在は、技術戦略室という当社のメディア事業を統括する部門の横断組織に所属していまして、約400名のエンジニアの組織づくりを担当しています。主に、採用や育成、広報活動や評価制度の仕組み作りを行なっているのですが、現在最も力を入れているのが社内のコミュニティマネージャー的な役割です。

 

もともとAndroidエンジニアとして開発していた際にAndroidエンジニア向けコミュニティ「shibuya.apk」を立ち上げ、運営していました。その経験を生かして社内で主にネイティブエンジニアの技術コミュニティ活動を推進しているのですが、エンジニア同士のつながりだけではなく技術の発展にサイバーエージェントが貢献できるくらいの取り組みに成長させていければと思っています。

 

horifujiwara2

 

:新卒2年目の2015年4月に、「FRESH!」の開発立ち上げ期にジョインしました。藤原と同じタイミングですね。現在動画周りを中心に開発していまして、GoもJavaも書いています。

 

 

 

 

ーー社内ではいつ頃からGoが使われているのでしょうか?


:社内で一番最初にGoが採用されたのは、無料ホームページ作成サービス「Ameba Ownd」でした。2015年3月にリリースされたサービスなので、技術選定自体は約3年前ですね。その後、定額制音楽配信サービス「AWA」「FRESH!」、インターネットテレビ局「AbemaTV」と新たなサービスが次々と誕生しましたが、いずれもサーバーサイドではGoを採用しています。

私が担当している「FRESH!」は2015年4月から開発がスタートしましたが、当時はバージョン1.4でした。

 

 

藤原:最近だとメディア事業の広告部門「MDH」でもGoを使っていますね。

かつてサイバーエージェントが提供するサービスのサーバーサイドはJavaとNode.jsが主流でしたが、「Ameba Ownd」で採用されたことをきっかけに2015年頃徐々にGoに移行する流れができてきました。

 

 

:「FRESH!」の開発立ち上げ時はちょうどGoが流行り始めたタイミング。JavaにするかGoにするかで話し合っていたのですが、皆ぜひGoを使ってみたいよねということになりました。

当時はサーバーサイドメンバーが私含めて3名いて、そのうち1名が「Ameba Ownd」からジョインしてきたメンバーだったのでGo経験者でしたが、私たちは全くの未経験でした。

 

現在はGoに関する情報はほどほどにあるかなと思いますが、当時は圧倒的に情報が少なく、色々なライブラリが乱立していて、どれを選ぶか苦労していましたね。

フレームワークとかログ周りのライブラリもどれが正解が決まっていなくて。後に変わることも考えて、薄くてパフォーマンスが良いものを選定するように心がけていました。ちなみに、フレームワークは主にgojiを使用しています。

また、2年前はカンファレンスの情報もあまりなくて、ブログで使ってみた系のアーリーアダプターの記事を読んで学ぶようにしていました。日本語での情報が特に少なくて、正しいコードを書くためには国外のエンジニアが執筆したブログなどで得られる情報が必須でしたね。ノウハウが少なかった時代を経験してきたからこそ、「CA.go」を通して2年間のサービス開発で得た知見をGoコミュニティに還元できればと思っています。

 

 

藤原:Androidもそうですが、フレームワークなので最初皆書き方が違うってことですよね。

私はAndroid開発をしていましたが、技術の変遷はどの領域も同じだと思っていて、Goは現在黎明期の真っ只中で、2017年末くらいにはスタンダードが決まってくるのではないでしょうか。

ここから先はもっと多くの方々にとって取り組みやすい環境になってくるのではと思っています。

 

 

:初心者の方でも、こう書けば良いんだという正解が見つかりやすくなるといいですよね。

 

 

 

 

様々なサービスを提供するサイバーエージェントならではの知見を発信したい

 

ーー今回「CA.go」開催に至ったきっかけは何だったのでしょうか?


藤原:さきほどお話したように社内の様々なサービスでGoの利用事例が増えてきたこと、そして言語的にも成熟しはじめてきたことがきっかけです。このタイミングで開発事例を積極的にアウトプットして、コミュニティに貢献していきたいと考えています。

「CA.go」のターゲットとしてはGoの初級中者を想定していまして、実際に使用した方々がつまずきそうな部分を解決できるようなセッションを用意しているところです。

使ってみた、というような切り口ではなく、サイバーエージェントではこれだけGoが使われているので実用的な話をメインにフィードバックしていきたいですね。サイバーエージェントでしか聞けない事例を参加者のみなさんにご紹介できると思います。

 

 

:Goを使い始めて約2年、負債を返済しつつ最前線で開発を続けています。まだまだ悩み続けている課題も含めて、得た知見を「CA.go」を通して業界に還元していきたいと思っています。

特に、サイバーエージェントでしか聞けない事例については積極的に公開していきたいです。たとえば「FRESH!」は生放送サービスなので、Java製の配信サーバと併せて動画データをリアルタイムにユーザーに届けるノウハウや、Docker、クラウドベンダー、マイクロサービスといったキーワードについては強みがあります。

 

 

 

ーー堀さんはこれまでも積極的に勉強会の運営などに携わっていたのですか?


:ちょくちょく参加はしていたのですが、実は主催するのは今回が初めてなんです。

「FRESH!」チームは技術領域に関係なく対外的なアウトプットを推進する文化が根付いていて、先輩方にもっと外に出るべきだとずっとアドバイスいただいていました。

1年目は同期だけのプロジェクトに所属していたこともあって開発に必死で、正直アウトプットする余裕がなかったのですが、新卒4年目になったこのタイミングで登壇機会もアウトプットも増やしていければと思っています。

 

horigfujiwara1

 

 

ーーさいごに、今後どのように「CA.go」を盛り上げていきたいか、また「CA.go」を通してGoコミュニティにどのように貢献していきたいと考えていますか?


:サイバーエージェントには様々なメディアサービスがあり、その中でGoの活用事例や知見も多く蓄積されているにも関わらず、これまでそれらを十分にアウトプットしきれていなかったように思います。「CA.go」を通してサーバーサイドのノウハウを発信する流れをつくっていきたいです。主催者としてこういう場を提供することでその流れを後押ししていきたいですし、まずは自分自身が積極的にアウトプットする習慣を身につけていければと考えています。

 

藤原:Goはまだまだ発展途中にあると思いますが、サイバーエージェントでは様々な種類のサービスで、多くのエンジニアがGoを使っている事例が既に多くあります。

まずは「CA.go」でしっかり知見を共有することでGoの国内コミュニティに貢献していきたいと思っていますが、いずれは「CA.go」で登壇したメンバーがGoの海外カンファレンスで登壇したり、海外へのアウトプットも強化できたら嬉しいですね。