【勉強会メモ】MonotaRO Tech Talk #6 (大阪梅田オフィスオープン記念)
- 日時:2018/07/25(水) 18:30 〜 22:00
- 場所:MonotaRO 梅田オフィス
BigQueryを中心とした大規模データ基盤開発
香川 和哉 さん
データの種類
- 商品、在庫、顧客、サプライヤ問い合わせ、受発注
- WMS(Warehouse Management SYstem)
- プロモーション
- Webサーバログ
- アプリログ
- GA
- 1,000テーブル
- 受注5,000万行
- 明細1億5,000万
- ログ4,000万行/日
ETL / Binlog Connector
旧DWHでのMySQLデータ同期における課題
- 依頼ベースでの同期テーブル追加
- 割り込み差魚う、そもそも依頼が面倒
- 差分更新だと物理削除に対応できない
- 数億レコード右や全件洗い替えが難しい
- 全件更新も差分更新も困難
⇒課題を解決するために作ったのがBinlog Connector
DWH/DataMart
- Raw Dataから何段階か加工してDataMartを作る
- エンジニアはdigdagを使う
- マーケターなどはGAS制のツールを使う
Google Sheet JobScheduler
## バッチ処理基盤
- Solr(検索エンジン) への転送
- 並列処理で180分
- BigQueryで15分
- 実行時に新しいテーブルを作成して実行時にできるだけ並列化
データ基盤のこれから
- データの民主化
- 安全な仕組み
- メタデータ基盤(いつどこからきてつかわれたか)
- データマート構築
- 社内での勉強会やサポートの充実
- より高度なデータ分析・処理基盤
- 機械学習基盤の高速化
- リアルタイムデータ処理基盤
- マーケティングプラットフォームの構築
- より早く、より最適化されたアクションにつなげる仕組み
- WMSなど連携システムの拡大
チームの戦闘力をガンガンにあげろ!
鈴木 圭 さん
チームが抱えていた色々なこと
- 時間がない
- 本来の仕事が進まない
- リリースに2時間かかる
- 開発環境が頻繁に壊れる
- リファクタリングしたい
- 昼も夜もアラート対応
キックオフでどうなりたいかを伝える
- 組織のはなし
- グループのはなし
- 意識してほしいこと
第一に仕事をコントロールして第二に生産性を向上する
- 生産性だけ上げても仕事が楽にならない
取り組んだこと
- 障害対応訓練
- リリースマネジメント
- 愚直なリファクタリング
- ペアワーク
- 1人案件をなくす
- マネージャーにできること
障害対応
- 障害対応のプレッシャー
- スピーディー
- イレギュラー
- 平常業務よりも難易度が高い
- 障害対応のプラスの側面
- エンジニアを強くする⇒貴重なリソース、発生頻度が低い
- 障害対応訓練は効果あり
- 事前に経験値を高める
- 心理的な負担も軽減
- 心理的負担を軽減する事前のすり合わせ
- 自分で手に負えなかったら⇒電話
- システム負荷が下がらない⇒再起動
- 深夜アラートに気づけない⇒仕方ない
- 会社の制度面でケアが必要な場合もある
- 待機手当は?
- プライベートを侵害しすぎてない?
- 夜間対応した場合の出勤時間の調整
- アラート対応はボランティアではない
例えば、
- 待機メンバーの当番制
- システムのことを完全忘れられる日を作る
スキル面、体制面、制度面それぞれのケアが必要
ペアワーク
- 予想通り品質が向上
- 予想外に生産性も向上
品質向上の理由
- 人数が2人
- フィードバックの心理的コストが低い
生産性向上の理由
- 立ち止まっている時間が圧倒的に減る
マネージャにできること
- グループの成果を最大化
- メンバーがパフォーマンスを発揮できる環境を作る
具体的には
- 意思決定を行う
- 期待値を伝える
- リアクションを返す
- なるべく予測可能に振る舞う
- 環境面の課題に取り組む
- 会社の制度に働きかける
まとめ
- 前を向けるメンバーに恵まれたならきっと今よりも良い状態にたどり着ける
- 個人ではなくちーむとしてパフォーマンスを発揮することを考える
モノタロウAIストアの話
牛島 真一 さん
AIストア
- 佐賀県
- 電車で約5時間
- 自動車で約8時間
2017年7月社内キックオフ
- だったが約2ヶ月半プロジェクトメンバーから外れる
- 2017年9月再キックオフ
- システム側のPL担当
条件
材料
社内リソースは最小限
やってみた
- アプリ本体はパケージソフトを利用
- バーコードリーダー部分のみネイティブ
- 残りはWebView
- スマホサイトをカスタマイズして利用
- 商品情報、顧客情報、決済処理
- 既存サイトに裏でつなげる
- 必要最小限のサーバを別途作成して別サービスドメイとして作る
注意したこと
- 外部システムとの連携
- サイトシステム以外に店舗ゲートなどの物理的なシステムが絡む部分を疎結合にする
- 新規システム開発を最小限に抑える
- アプリ操作はわかりやすくシンプルにかつ将来的に内製可能な仕様にしておく
- 約束したスケジュールに遅れない
やらないと決めたこと
ちょっと危なかったこと
- スマホアプリとして採用したパッケージソフトでJANコード以外のバーコードが読めなかった問題
- ゲートのQRコードリーダーの読み取り制度が想定以上に悪くゲートが開かないor正しくデータを読み取れない問題
- 予定外の店舗改装工事が入り、テストスケジュールを大幅に圧縮、短期間で実施せざるを得なくなった問題
2018年4月2日に無事サービスIN
まとめ
- 実店舗という商品を直接手にとって見る事ができるサービスを提供
- Webサイトから注文し社内システムでのフローを一部省略することができるようになった
- Web注文⇒在庫引当⇒売上計上⇒請求処理⇒ピッキング⇒梱包⇒発送
- 少し発想を変えることで化けるシステムができたこと
これからのモノタロウのIT開発
久保 征人 さん
これから3〜5年
- より大規模に
- よりデータドリブンに
- よりグローバルに
売上1,000億〜の売上を支える
- 高度なデータサイエンスに基づいたシステム開発
- これをさらにグローバルプラットフォームにする
つまり
- 自社開発を中心に
- 外部のプロダクトもうまく組み合わせて
- 差別化と生産性の両立
具体的には
日々使われるシステム/大きな売上/急成長するビジネス/拡大するチーム/で良いITを継続して開発することがチャレンジ
生産性=①向上する売上や利益/②かけたコスト
事業会社なので①も重要
- 機能追加変更が容易変化に強い②
- バグが少なく安定運用②
- 差別化できる(売上を上げる)①
①の例
- 検索
- レコメンデーション
- カート員・ユーザー登録、購入ステップ改善
- LPO(Landing Page Optimization)
②の例
その前に足元の課題にも愚直に取り組む
- ユニットテストE2Eテスト
- リファクタリング
- リリース時間短縮
- 自前FWからOSSのFW
- プロジェクトマネジメント・プロダクトマネジメント
- 生産性のモニタリングと改善
まとめ
- フロントエンド/バックエンド
- プロダクト/プロセス
- 個人スキル/チーム開発
- 日本/グローバル
- SoE/SoR
多くの切り口で様々なチャレンジ