- Cookpad Tech Conf 2019に参加してきました。
タイトル | 発表者 |
---|---|
クックパッドが目指す、これからのデザインとプロダクトのあり方 | 宇野 雄 |
生鮮ECクックパッドマート - サービスの立ち上げから拡大に向けて | 長野 佳子 |
料理の学習体験をデザインする | 須藤 耕平 |
新規サービス開発を加速させる技術とデザイン | 藤井 謙士朗 |
Challenges for Global Service from a Perspective of SRE 2nd season | 渡辺 喬之 |
レシピを解析する!Machine Readable Recipe(MRR: 機械可読なレシピ)の開発 | 伊尾木 将之 |
クックパッド動画事業開発のチャレンジ | 渡辺 慎也 |
〜霞が関〜 クックパッドiOSアプリの破壊と創造、そして未来 | 三木 康暉 |
スケーラブルなセキュリティ監視基盤の作り方 | 水谷 正慶 |
新規アプリ開発を支えるユーザ・決済基盤 | 宇津 宏一 |
Re:silience から始めるカオスエンジニアリング生活 | 小杉山 拓弥 |
基調講演:なぜ毎日の料理を楽しみにするのか | 成田 一生 |
クックパッドが目指す、これからのデザインとプロダクトのあり方
- 宇野 雄
Cookpad
- 毎日の料理を楽しみにする会社
- 4000万人
- 71カ国
- 26言語
クックパッドができてないこと
- 全社通した横断体験が設計されてない
- アプリの体験がWeb
- もっとクックパッドっぽさがほしい
- 期待値に対するふるまいの享有
- 見た目は違ってもいい
デザイン
- 技術の全ては夢物語を現実にするための手段である
- BTCモデル
- Business
- Technology
- Creative
- デザインはデザイナーだけが作るわけじゃない
- 全員で作り上げる
- Figmaがいい
- 全員で作り上げてる感じ
生鮮ECクックパッドマート - サービスの立ち上げから拡大に向けて
- 長野 佳子
クックパッドマート
- アプリで注文して届けるサービス
- 家までは届けない
- 自分で都合のいい時に取りに行く
- 送料無料
- 最低注文金額なし
解決する課題
- 平日買い物できない
- 受け取りで家にいないといけない
- 最低注文金額があるのでまとめ買いしないといけない
仮説検証
- 買い物上手で時間のある主婦が買い物代行
- 社内でMVP検証
- Design Sprint
- 短期間で集中的に検証
- 今できる最速の方法で検証し仮説の確度を上げる
さらなる改善
料理の学習体験をデザインする
- 須藤 耕平
たべドリ
- おいしい食べ方学習ドリル
難しかった
- 上達の定義が難しい
- 定義できないから何を学ぶべきかわからない
どうなりたいか
- レシピ見なくてもぱぱっと作れるようになりたい
- 速さとかではなく対応力
新規サービス開発を加速させる技術とデザイン
- 藤井 謙士朗
komerco
- 料理が楽しくなるマルシェアプリ
- 器とか料理道具を買える
- 現在はiOSのみ
- 購入用と出品用のアプリ
開発立ち上げ
- iOSエンジニア4人
- デザイナー1人
- ディレクター1人
- サーバは専任なし
- Firebaseを使った
- スピード感が求められt
- クックパッドで使ってるアイコン使ったり
- UIは後から詰めていった
- 正常系のみ
デザインの享有
- デザインを考えるよりも享有に時間がかかる
- Sketch + Absstract + Zeplin + Marvel
- => Figmaに移行
- Figma
- オンラインで同時に編集ができる
- 変更履歴も管理できる
- プロトタイプも作れる
コンポーネント
- AtomicDesign導入
- 最小単位に区切って再利用性上げた
- 管理しやすい
- メンテしやすい
- 安心しながらいじくりまわせる
- Figmaとの相性も良い
- Sketchだと管理が大変だった
開発スピードの向上
UIガイドラインを作成
- Figma上に作成
- 色の定義とかmarginとか
- デザイナーとエンジニアのコミュニケーションを円滑に
アイコンフォントの作成
- 画像が複数必要
- @2x,@3xとか
- 管理するのが大変
- アイコンフォントならWebとも共通で使える
- gitで管理してgithub pagesで公開
アニメーションの導入
デザインをコード化
- デザインデータをReactコンポーネント化
- タップ時の挙動などWeb上で確認できる
- デザインに関するところは極力デザイナーがやる
- エンジニアは機能の実装に集中してもらう
Challenges for Global Service from a Perspective of SRE 2nd season
- 渡辺 喬之
クックパッドのグローバル版
- 日本のクックパッドとは別物で展開されている
SREの役割
- SREのユーザはエンドユーザと開発者
- SREが負担を背負って開発者が快適になるのは継続させることができない
レシピを解析する!Machine Readable Recipe(MRR: 機械可読なレシピ)の開発
- 伊尾木 将之
レシピのその先
- レシピの会社ではない
- 毎日の料理を楽しみにする会社
- レシピを検索する以上のことができていない
- スマートキッチンを去年から始めた
- 自動で調理してくれるもIoT家電もある
- メーカーに依存する
- クックパッドのレシピデータを使えないか
- 人間が書いたレシピを機会が簡単には理解できない
- => MRR(Machine Readable Recipe)
MRR
- レシピをグラフ構造で表現
- 中間ノードで検索
MMRを作る難しさ
- 材料情報
- 表記ゆれ
- 分量の正規化
- Action情報
- 焼くとか煮るとか
- input情報
- メタ情報
- 栄養成分
材料名の正規化
- 醤油だけで200パターン以上
- 醤油、しょう油、醤油(下味用)
- 地道に網羅するのは現実的でない
- 機会がクシュで対応
- Encoder-Decoder
- 翻訳でよく使われる技術
分量の正規化
MRRまとめ
- スマートキッチンなどさまざまな応用に期待
クックパッド動画事業開発のチャレンジ
- 渡辺 慎也
クックパッドTV
- 料理動画事業を切り出した会社
- 意思決定のスピードを向上するため
- 独自に採用をするため
cookpad storeTV
課題
- 再生数の制御
- 足りないとクレーム
- 多いとクックパッドが損する
- 一定期間で平準化させたい
- 配信計画、配信比率を出す
- 正確な在庫から予測できればいいが難しい
- 実測をもとに計算し変動させていく
- ログ収集してそれをもとに計算
cookpadTV
- クッキングLIVEアプリ
- 一緒に作れるクックパッド
課題
- 大量メッセージ
- AppSyncを通して配信
- コメントやスタンプなど
- 1秒間に何百万のメッセージが送られてしまう
- メッセージをバッファリングして軽減
- なるべく遅らせない
- 順序保証はしない
- ロストは許容
- go/gRPC
〜霞が関〜 クックパッドiOSアプリの破壊と創造、そして未来
- 三木 康暉
クックパッドのiOSアプリ
- 歴史がある
- コード量も多い
- ビルドにとても時間がかかある
- 1日/1時間費やしている人も
- Objective-Cが25%残ってる
プロジェクトの改善
- コードの整理
- Objective-Cをなくす
- ビルド時間の短縮
マルチモジュール化
- キャッシュが効くようになりビルド高速化
- 古い実装を疎結合化
Xcodeプロジェクトの破壊
- viper
- xcodegen
- yamlからxcodeprojを生成
スケーラブルなセキュリティ監視基盤の作り方
- 水谷 正慶
セキュリティ監視
- 防御
- 検出
- 対応
なぜ監視
- 完全な防御はありえない
- 防御より検出のほうが利用者の負担が少ない
スケーラブルな監視
- サービス規模が大きくなっても対応できること
- 監視対象が増えても対応できること
Security as Code
- ログ収集と分析
- 検知に係る処理をコード化
- テストできる
- アラート判定条件の高い記述力
- 自動化
- バージョン管理
アラートの検出
- S3に転送されたログから検出
- アラート検出のためのLambdaを実行
- アラート関連情報の収集
- それまでの操作履歴
- デバイス情報
- アラートの評価
- リモートワークの人がたまたまカフェのwifiからアクセスしただけとかそういうのを判断
新規アプリ開発を支えるユーザ・決済基盤
- 宇津 宏一
モバイルアプリ
- アプリ間で共通の機能がある
- ユーザ管理認証
- アプリ内課金
共通のユーザ決済基盤(クライアント)
共通のユーザ決済基盤(サーバ)
- サーバサイドはマイクロサービス化されている
Organized Around Business Capabilities
- 各サービスはそれぞれが独立したビジネスをやっている
- そうでなかったら別の構成になっていたかも
Re:silience から始めるカオスエンジニアリング生活
- 小杉山 拓弥
Chaos Engineering
クックパッドでChaos Engineeringをやる理由
- なぜマイクロサービス
- 開発速度向上
- リリース速度向上
- 複雑性は増加してしまう
- マイクロサービスの課題
- サービス間通信んお状況がすぐにっわからない
- 連鎖的障害
- 個々のサービスの状態はわかってもつながりはわからない
- => サービスメッシュ
- サービスメッシュ
- Envoy
- サービス間通信の状況がわかる
- タイムアウトやリトライをアプリではなく中央的に管理できるようになった
- Chaos Engineering
- マイクロサービスで発生する障害にたいするプロアクティブなアプローチ
Chaos Engineeringをどう実践したか
- Envoyの機能で一定割合を503で返すといったことができる
- Chaos Engineeringが効果的な領域
- 障害がおきたときにどんな影響があるかわからないもの
- Network Fault Injection
- 障害がおきることを考えたことがないもの
- 障害がおきたときにどんな影響があるかわからないもの
- 顧客影響が少なからずあると分かっていながら本当にやるか?
- ステージングでも分かることはあるはず
なぜ毎日の料理を楽しみにするのか
- 成田 一生
2018年のクックパッド
- cookpadTV LIVE
- Komerco
- cookpad mart
- Alexaスキルのスペイン語版
- たべドリ
- cookpad Do!
- OiCy Platform / OiCy Taste
- 投稿レシピ数世界で500万品
- 国内300万品
毎日の料理を楽しみにする
- 定款の第2条(ミッション)に追加
- ミンションを達成したら解散することも記載
料理って必要?
- からだは食べ物でできている