エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン
  • TOP
  • キーパーソン
  • 旬ネタ
  • コラボ
  • ノウハウ
  • 女子部
  • キャリア

10年続くサービスは技術的負債をどう解決してきたのか?『カラーミーショップ』システムと組織改善の取り組み

タグ : EC, GMOペパボ, カラーミーショップ, 技術的負債 公開

 
10周年を迎えた『カラーミーショップ』のシステム改善の取り組みなどについて語ったGMOペパボEC事業部の開発陣

10周年を迎えた『カラーミーショップ』のシステム改善の取り組みなどについて、テックカンファレンスで語ったGMOペパボEC事業部の開発陣

Webサービスを長く続けていると、いわゆる技術的負債から開発スピードが上がらなくなる局面を迎える。システム面のみならず、組織体制もフェーズに応じて適切な形に刷新していく必要があるだろう。少なくない開発チームがこうした問題に頭を悩ませている。

GMOペパボが運営するネットショップ開業・運用支援サービスの『カラーミーショップ』も節目の10年を迎え、こうした“痛み”と直面したという。国内導入店舗数ナンバーワンの老舗ECサービスは、どのようにして危機を乗り越えたのか。

11月12日に開催された同社のテックカンファレンスは、まさにこうしたテーマを扱うものだった。当日の模様をレポートする。

カート機能を切り離し、マイクロサービス化へ舵切り

10年サービスを運営する間には、顧客からのさまざまなニーズに応えるために機能がどんどん増える。機能が複雑化すれば開発スピードの減速にもつながる。組織が大きくなって分業も進むだろうから、仕様全体を把握できている人がいない状況にもなる。

そこで『カラーミーショップ』では、PHPのモノリシックな構成だった従来のシステムから、決済部分を担うショッピングカート機能を切り離し、AngularとRuby on Railsで新たに作り直すプロジェクトに踏み切った。将来的なマイクロサービス化を視野に入れた施策だった。

機能を切り離したことで、全体のシステムと新たなカートシステムとの間で、ユーザーのログイン情報を安全に受け渡しする必要が生じることになった。そこで活用したのが、JWT(JSON Web Token)と呼ばれるJSONの署名、暗号化の技術だ。

発表者の@tsuchikazu氏によれば、JWTはOpenID ConnectなどのID連携周りで使われることの多い技術。JWTを使えば、複数のシステムが密結合になることなく、それでいて改ざんなどを防いで安全に情報の受け渡しができるという。

国内ではまだあまり事例がないが、ログイン以外にも活用の可能性はあり、引き続き注目したい技術とのことだった。

新しいショッピングカートシステムの開発にあたっては、デザインも一新された。担当したデザイナーの@shikakun氏は、新たなカートデザインに関する思いと取り組みを詩にのせて発表した。

従来はバラバラだったボタンサイズや色に関するルールを統一。理想のカート像を動画にして表現することで、チームメンバーの合意を取りながら作業を進めた。あらかじめカートのCSSフレームワークを作り、考えられる要素を全てスタイルシートに書き出しておくことで属人性をなくし、今後も継続的に改善できる体制を整えた。

今回のシステム切り離しで、決済までの画面遷移は従来の6画面から4画面まで減り、コンバージョン率は4%改善したという。

クラウド化に合わせインフラをイミュータブルに刷新

『カラーミーショップ』と並ぶペパボEC事業部のショッピングモールサービス『カラメル』も、2006年ローンチと歴史が長い。OSやPHPのバージョンは古いまま。サーバの構成管理はほとんど行われておらず、「秘伝の構築手順があればいい方という状態だった」(@yano3氏)。

そのため急激な負荷や規模拡大に対応できず、バージョンが古いために機能的な制限を受けたり、脆弱性対応のパッチが出なかったりと、恒常的に問題を抱えていた。

ペパボでは今年初頭に、各サービスのサーバをオンプレミスからプライベートクラウド「Nyah」へと移行するよう号令がかけられた。『カラメル』はこのタイミングで、インフラアーキテクチャの刷新に挑戦することになった。

こうしたアーキテクチャ設計においては安定性を重視して技術選定をしがちだが、自社の他サービスでの実績があったこともあり、最新のバージョンを採用。管理し切れなくなって数年後に同じ状況に陥らないよう、常に最新に追従しやすい構成を心掛けたという。

さらに、当初は予定していなかったが、最終的にはイミュータブルな構成にも挑戦した。こうした取り組みの結果、コマンド1発でWebサーバの構築も可能になり、インフラ担当者に依存しない体制が出来上がった。

今後はさらなる効率化に取り組むとともに、他サービスへの横展開も視野に入れているという。yano3氏は「同じ問題が生じないためには、継続して運用していくことも当然大事になる」と強調していた。

ママさんエンジニアが担う「普通に動く」ための運用と改善

ECサイトには何より「普通に」動くことが求められる。いかに仕様が複雑化しようとも、万が一にもシステムが動作しなくなるということは許されない。

それでも日々、ユーザー(ここで言うユーザーはショップオーナーはもちろん、購入者や購入を検討している人も含まれる)からは数々の問い合わせが寄せられる。こうした問い合わせの意図を素早く把握して問題を解決し、アラートが出れば場所と原因を特定して対応し、さらにはこうした問題が起こらないよう先手を打つ。

それら全ての泥臭い役割を担っているのが、2004年にペパボ初の女性エンジニアとして入社したayamiさんだ。

ayamiさんは4歳の女児と5歳の男児を持つ2児の母で、勤務時間は他の社員とは異なる朝8時から17時まで。保育園への迎えがあるため残業することはできず、「限られた時間で最大限の価値を出すこと」を常に意識しながら仕事をしているという。

また、仮に自分が欠けてもシステムが「普通に」動くよう、自分がやったことは手順を添えてメモに残すなど、情報共有には気を使っている。さらには2度の産休を経ても最前線で活躍するayamiさんは「ママさんエンジニア」として社内のロールモデルのような存在にもなっており、決定までのプロセスや調べ方のコツなど、新人教育にも日々奮闘中という。

目的別のチーム制を敷き、スクラム開発で課題にあたる

開発スピードを維持し、継続的に新機能開発と不具合対応にあたっていくためには、システムの改善とともに組織の見直しも必要になってくる。ペパボでは個人の技術力向上のために技術基盤チームを設け、業界でも名の知れたエンジニアが新技術を社内で広めるなどして、メンバーの技術底上げを図っている。

一方では組織の拡大も必要になるが、ただ数を増やしただけではコミュニケーションコストの問題などから機能しない。大人数で開発するには大人数で開発するのに適した体制を作る必要がある。こうした組織面の取り組みについて@hikalin8686氏が発表した。

ペパボでは役割ごとのチーム制を敷いており、不具合対応、新機能開発、売り上げ向上のための施策など、多岐にわたる役割を場当たり的に振るのではなく、チームごとに役割をはっきりさせて、単一の目的で動く体制にしているという。

チームはおおよそ5、6人のスクラムで開発を進める。スクラムのメリットは意思決定が早く情報共有もしやすいなどさまざまあるが、@hikalin8686氏は「タスクの見える化」と「チーム感の醸成」に大きなメリットを感じていると語った。

@hikalin8686氏は「10年もサービスを続けているとシステム的にも人的にも課題が出るのは自然の摂理。それを放置していたのでは開発スピードは落ちてしまう。改善するためには日々運用しているだけでなく、将来への投資という考え方が大事なのではないか」と総括していた。

取材・文/鈴木陸夫(編集部) 画像提供/GMOペパボ




人気のタグ
業界有名人 スタートアップ 開発 SE 転職 エンジニア Web プログラマー スキルアップ ソーシャル アプリ シリコンバレー プログラミング 起業 キャリア スマートフォン Android SIer 技術者 えふしん クラウド UI アプリ開発 btrax Webサービス スペシャリスト Twitter Apple ギーク CTO Facebook 英語 デザイン IoT ツイキャス Brandon K. Hill Google SNS 世良耕太 モイめし IT 30代 赤松洋介 採用 コーディング 20代 村上福之 勉強会 プロジェクトマネジメント UX Ruby 中島聡 法林浩之 ITイベント Webエンジニア 五十嵐悠紀 モノづくり ひがやすを LINE 受託開発 ビッグデータ ウエアラブル IT業界 ドワンゴ コミュニケーション MAKERS ハードウエア ロボット インフラ Webアプリ SI 女性 tips ゲーム ソーシャルゲーム iPhone 高須正和 女性技術者 UI/UX トヨタ マイクロソフト イノベーション 研究者 ノウハウ 自動車 息抜き iOS システム プラットフォーム 和田卓人 チームラボ グローバル メイカームーブメント 教育 イベント エンジン 開発者 ソニー オープンソース Java サイバーエージェント 女子会 コミュニティ 家入一真 メーカー ソフトウェア スーパーギーク GitHub 増井雄一郎 IPA ニュース テスト駆動開発 日産 40代 TDD グーグル 音楽 モバイル PHP ソフトウエア TechLION

タグ一覧を見る