海外ECサイトを成長させるため、保守・運用時間を削減したかった
工場・工事向けの間接資材、および自動車アフターマーケット商品などのECサイトを展開しているモノタロウ。創業以来右肩上がりで成長を続け、2015年には556億円の売り上げを達成。「今年度は700億円を目指して頑張っている」と古畑氏は語る。
モノタロウが現在、取り扱っている商品点数は900万点。ネジや軍手、ドリルなどの工具・消耗品から、コピー用紙やガムテープなどの事務用品、ビーカーなどの化学用品、エンジンオイルや寝板などのカー用品などはその一例だ。
モノタロウがこのように順調に成長してきた背景にあるのが、「間接資材の購買に時間や人的コストがかかっていたこと」と古畑氏は指摘する。ある企業が間接資材を購入する場合、購入先企業の営業に連絡して価格交渉し、見積もり書を発行してもらい、その価格でよければ発注、納品となる。しかしモノタロウであれば、「この部品が欲しい」と思ったときに、サイトにアクセスさえすれば価格交渉などすることなく、手に入る。しかも、注文した当日中に配送手配がされるので、すぐ手に入れることができるのだ。
「このようにこれまでの常識を覆して、お客さまに利便性を提供してきたことが、当社が順調に成長してきた理由」と古畑氏は胸を張る。
「モノタロウ」のECサイトの構築、運用を任されているのが同社IT部門である。IT部門が担当しているシステムはECサイトだけではない。システムインフラやCRM、SCMなどの基幹システム、物流システム、データ分析なども担当している。「在籍している社員は60~80人。創業当初はベンダーに任せていたこともあるが、私が入社した2002年以降はオープンソースに切り替え、内製化している」と古畑氏は語る。その理由は時代の変化にすばやく対応し、競争優位に導くためだ。
国内で順調にビジネスを成長させてきた同社では、さらにビジネスを伸張させようと海外に進出。2011年に韓国に現地子会社を設立し、間接資材のECサイト「NaviMRO」をオープンさせた。2013年10月にはシンガポール、15年1月にはマレーシアにECサイトをオープン。「国内案件だけでもやることが目白押しの状態。その上海外案件も担当しており、いずれも大切な案件なので優先順位が付けられなかった」とその当時を振り返る。そこでIT部門に海外案件チームが発足することとなり、現在、古畑氏は2人の若手エンジニアを率いるチームリーダーとして海外案件を担当している。
海外案件チームのミッションは、海外ECサイトの流入および売り上げを数倍に増やすこと。「チームリーダーとしてはこの目標をいち早く達成したいという思いがあった」と古畑氏は語る。そこで保守・運用にかかる時間を減らすことを検討した。「保守・運用にかかる時間を削減すれば、期待効果の高い施策を考える時間もできる。また開発に取り組む時間が増えるので、リリースまでの時間も短縮できると考えた」とその理由を語る。
2016年5月にはタイ、ベトナム、フィリピン、インドネシア、台湾でECサイトをオープンさせたのだが、「困ったことが起こった」と古畑氏は続ける。それはGooglebotである。「Googlebotの欠点は、サイトをクロールしすぎること」と古畑氏は苦笑交じりに語る。モノタロウの海外ECサイトは一つ当たりの掲載商品数は約40万点。1商品1ページで構成しているため40万ページとなり、7カ国で展開しているため、合計280万ページとなる。Googlebotはページ数があればあるほど、訪れやすい。そのため海外サイトがGooglebotによりダウンしてしまったのだ。
インフラチームと協力し、運用の手間が少ないシステムを実現
「Googlebotのためにチューニングするということを繰り返していくと、それに要する時間がもったいない。そのための対策を練るためにインフラチームと対応を協議することにした」と古畑氏は語る。その結果、従来の構成にAWSのAutoScale機能を導入し、最大8台まで自動でオートスケールする仕組みにしたのである。この仕組みにより、「今後Googlebotが来ても、自動でスケールされるので、その手間から解放されるようになった」と古畑氏は満足そうに語る。
開発スピードの向上にも取り組んだが、「いろいろ解決すべき課題があった」と古畑氏。その一つが「秘伝のタレ化」、つまり担当者しかわからない属人的なセットアップ手順が存在していたことだ。同社では普段の開発はデスクトップPCで開発しており、その環境はWindows+XAMPPを採用している。海外チームは人数も少ないため、結合試験用のサーバは1台のみで、それをVirtualHostで切り分けて複数の機能のテストをしたりするため、VirtualHost職人的な人が存在していたというのだ。開発環境の理解に時間がかかる上、「●●さんに聞けばわかる」という状態を放置したままでは、そこがボトルネックになってしまう。
そこで「新人が入ってきてもすぐに開発に着手できるよう、開発環境をもっとシンプルにすることにした」と古畑氏。ミドルウェアやアプリケーションのセットアッププロセスをDockerに格納したのだ。DockerfileはGitで管理。Gitを選択したのは「ブラックボックスになっていると秘伝のタレ化しやすい。環境構築に関わるものを全てGitで管理し、チームメンバーに対してオープンな状況にしたかった」と語る。そして各エンジニアのローカルマシンには、Docker Machineを導入し、「Linux上で開発しているような環境を実現した」と言う。さらに結合試験環境にはAmazon ECS、DockerリポジトリにはAmazon ECRを採用。これによりできあがったのが、下図のような環境である。「今はまだECSの部分はまだ本番運用には至っていないが、それを早期に実現する予定。さらに今後は自動テストが完了した後、本番環境にそのまま移行できるような環境を構築していきたい」と意気込む。
このような仕組みを構築するに至り、「苦労したこともある」と古畑氏。その一つがDockerに対する知識があまりなかったこと。実は古畑氏は海外チームに異動するまで、SEOの担当だったという。そのため、Docker Swarm、ECS、ECRなどの知識に乏しく、勉強に苦労したというのだ。
もう一つがコミュニケーションである。Dockerに詳しいのはインフラチームのメンバーだが、古畑氏の知識不足により的確な質問ができなかったりしたそうだ。どんなことをするにしても「コミュニケーションは大事」と古畑氏は強調する。古畑氏はコミュニケーションを取る際は、歩み寄り笑顔で直接話しかけることを心がけたという。「そうすることで、互いの理解を深めることができた」と言い切る。
また海外チームならではの取り組みはほかにもある。例えば、国内サイトでは定例リリース日を設けているのだが、海外ECサイトでは設けていない。国内サイトで定例リリース日を設けている理由は、リリースタイミングを集中させ、何か不具合があった場合のお客さまへの影響を局所化させたり、開発にリズムを持たせたりすることができるという技術的およびビジネス的なメリットがあるからだ。一方で、リリース可能な状態の機能があるのにも関わらず、リリース日までその機能をリリースできないので、その機能が生み出すであろう利益の機会を損失してしまうデメリットがある。海外チームのミッションは売り上げを上げること。そこで古畑氏は、そのデメリットを排除するため、リリース可能状態になった機能はその日のうちにリリースし、利益を受け取れるまでの期間を短縮しているという。
モノタロウでは、どんな技術に取り組んでいるかなど外部に発信する機会「MonotaRO TechTalk」というイベントも設けている。最後に古畑氏は「エンジニアも募集しているので、興味のある人はぜひ」と呼びかけ、セッションを終えた。
お問い合わせ
株式会社MonotaRO