エンジニア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ペパボ


編集部からのお知らせ

RANKING

エンジニアtype姉妹サイト



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

タグ一覧を見る