私は統計警察でも統計ヤクザでもなければ無限警察でもない。
そういう訳で、ヤフーに到着 #YJMU
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
去る2017年2月18日にYahoo! JAPANにて『Yahoo! JAPAN MeetUp #9 EC技術カンファレンス』に参加した。 きっかけは先日参加した『Python 3.6 リリースパーティ』における宣伝である。 土曜日で気兼ねなく参加できるし、今の自分の仕事と重なる部分も多そうと思い参加した。 ヤフーのシステム的な内部事情も知りたいし、縁があれば面接を受けるかもしれないとも思ったからである。
以下に講演中に取ったメモとツイートを掲載する。 最初はメモを取っていたが、だんだん面倒になりツイートで代替した。
Yahoo! ショッピングの技術の話
- ショッピングは1999年スタート。2012年に売り上げが前年割れして2013年にeコマース革命を行った。
- 出店料無料、手数料無料。すると商品数3倍、店舗数16倍。
- 2015年から11月11日(だったかな)を「いい買い物の日」と定めた。トラフィック量が急増。決済がダウンして偉い人に詰められる。
- 中国アリババを訪問。トラフィックの平準化の秘訣を聞いたところ「お客様の買い物体験を優先させよ」というシステム面ではなくユーザビリティからのアドバイスを受ける。
- カード後決済、サーキットブレーカを導入。2016年は乗り切った。
- システム構成はPHPとC++、たまにnode.js。今後はJava、node.js、C++でたまにPHPを使う。DBはOracle, MySQL, Cassandra, Redisを使っていく。
- テクニカルディレクターとして意識しているのはトラブル検知の徹底、テストコードの徹底。
- XPの導入、PaaSの導入、アリババのようなトラブルの自動検知及び自動解決を行っていきたい。
今後採用する技術としてJavaを選ぶあたりに、Yahoo!って大きい会社なんだなあという印象を持った。 開発規模が大きくなるとJavaの方がメリットが大きいのであろう。
どこでもオフィスは「結構」多い。結構と言われると誤魔化されている印象を受ける。 #YJMU
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
これは「Q&A」のコーナーでFAQとして出てきた「どこでもオフィス」の利用率に関する回答に対する嫌味感想。
例えば、利用率の当初の想定が対象者の5%だったけど実際は10%も利用している、という状況でも「結構利用している」と答えて何ら違和感はない。
恐らく、割合を言えるほど利用者はいないのではと邪推するが、果たしてどうか。
ゼロからわかるヤフオク!システム超入門
ヤフオクのシステム構成、マイクロサービスっぽい気がする。 #YJMU
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
ヤフオク!のシステムは米国Yahoo!のローカライズ版から始まったが2005年に日本独自システムが完成。 色々とレガシーな部分をどうにかこうにかリファクタリングを行っている。 現在の構成はマイクロサービスっぽい印象(そうは言っていなかったが)、かつFacadeパターンっぽい(Mediatorパターンも使っていたかも)。
#YJMU 並行開発ではと思いつつ、コンフリクト発生で開発が平行線という意味で平行開発は言い得て妙
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
これは「平行開発」という誤字を発見してほくそ笑んでいたらその誤字の真意に気づいてしまったツイート。
ヤフオク!の開発を支える技術
#YJMU ヤフオクが止まると企業で出店しているところが死ぬ。
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU CIツールとか開発基盤は今風で良い。憧れる
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU Dockerのようなコンテナではなく、PaaSにアプリケーションを乗せると
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
インフラチームによる発表でCIツールやらPaaSやらに関する話。 しっかりテストをしてるんだなー。
Yahoo! JAPANの決済 -これまでとこれから-
#YJMU ログインチーム… すごい名前だ
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 縦軸にメモリがないグラフは信用ならない。
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 通信事業者が決済に参入するのは何か理由があるのかな
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU データベースというか、データ構造が設計に多大な影響を与えるのはどこも変わらないなあ
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 新事業で片手間、あれどこかで聞いたことがあるぞ
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU クレジットカードが使いたくない人と使えない人…後者が多いのかなあ
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 決済は失敗したら即死だからウォーターフォールは妥当かなあ
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU うーん、やはり金融や決済は難しそう
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU アジャイルに「注目」、ヤフー全体ではどんな感じなんだろう。
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU データベースのスケール、このあたりはAWS RDSの方が得意そう
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 状態であるステート、
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU やはり決済データで個人の行動を知りたいんだなあ。
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU マイクロサービスはテストが辛い
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 開発手法は適材適所ですよね。
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
決済周りのシステムの開発の話。 縦軸に目盛りがない「単調増加」のグラフや言葉尻にかみついてみたりと自分の性格の悪さをひしひしと感じる。
ショッピングデータプラットフォームとデータ利活用
#YJMU グラフ使い回しで数字だけ変えているようなグラフ
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 150PBってすごいなあ
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 組み合わせ爆発するのはいいんだけど、実際にほしい組み合わせはどのぐらいだろう
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 輝かしいデータ活用と泥臭いデータの準備…
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU カンパニー間の仲の良さが知りたい(
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
#YJMU 組み合わせの個数よりも、好きなように出来るというのが重要ですね
— Hayao(-ε-δ) (@CardinalXaro) 2017年2月18日
データプラットフォーム整備の話。 こんなに組み合わせがあります!というのをアピールするより好きな組み合わせで分析できる、のが主題である。 「可能性は無限大」と言っていたが、有限の選択肢なので高々可算である。
懇親会
ヤフオク!のインフラチームの方々、ショッピングのエンジニアの方、学生の方と雑談を行っていた。 料理はオードブルとお寿司であった。 場所が場所だけに(千代田区紀尾井町)怖くてお寿司を頼めない。
感想
日本インターネット業界の巨人『Yahoo! JAPAN』という見出しから始まる記事もある通り、ヤフーは日本のインターネットの代表の1つである。
その日本を代表するインターネット系企業の花形事業であるEC分野のシステムの様子を垣間見たのである。 その姿は、最新技術をどんどん取り入れて所謂イケてる企業、という姿ではなく長年インターネットを支えてきた、レガシーとなってしまったシステムと戦う姿であった。 システムの由来が米国Yahoo!であるものも多かった。利用者も非常に多いのでサービスを稼働させながらのリファクタリングは相当難しいだろう。 クラウド化も進んではいるものの、という印象。自前でできてしまうという面もあるし、AWSに移行させてもメリットが少ないのであろう。
社内がカンパニー制で区切られているが、カンパニーごとに文化が微妙に異なるらしい。良いことなのか悪いことなのかはちょっとすぐには判断できない。
「縁があれば面接を受けるかもしれない」と書いた。果たして僕は応募するだろうか? 率直な感想を綴ると、僕のスキルセット(Python少々、AWS少々、学部数学科レベルの数学(?)、修士(工学))とかみ合うだろうか?という思いがある。 事業は面白そうであり、全国規模(世界規模?)なので影響範囲も大きくやりがいもありそうである。 スキルに関しては今後伸ばせばよいではないか、という話でもあるのでかみ合わなそうだからやらないというのは違う気もする。
最後に、Yahoo!のスタッフの皆さんは丁寧に誘導を行ったり対応を行ったりしてとても楽しく時間を過ごすことができた。 楽しく時間を過ごしておいてグラフにケチをつけるという恩を仇で返す行為を平然と行う自分の行為を恨みつつ…。