Slide 1

Slide 1 text

地域密着型組織が挑む! 北海道全域で利用される 宅配システムのクラウドネイティブ化 〜宅配システム「トドック」のEC (トドックアプリ・サイト)の変遷〜 2024/6/15 生活協同組合コープさっぽろ 木原 卓也、小笠原 豊

Slide 2

Slide 2 text

2 本日お話すること

Slide 3

Slide 3 text

本日お話することの概略 宅配サービスを利用している46万世帯の組合員が利用できる 宅配注文用のWebサイト・スマホアプリが、 どのようにAWSを中心としたクラウドネイティブ変遷を 遂げたのかを木原・小笠原よりお話します。 ● コープさっぽろの Cloud Native へ向けた準備 ● 内製開発での Cloud Native 化への取組

Slide 4

Slide 4 text

4 生活協同組合 コープさっぽろ概要

Slide 5

Slide 5 text

生活協同組合コープさっぽろについて(※2024年3月現在) 設立年月日 1965年7月18日 組合員数 201万人(北海道総人口523万人の約38%) 出資金額 897億円 総事業高 3,186億円 職員数 14,743名(契約職員・パートアルバイト含む) 店舗数 109店舗 移動販売車 94台(134市町村) 宅配物流センター 41センター 10デポ 車両1,300台 配食工場 6工場(札幌、函館、苫小牧、旭川、釧路、帯広) 生産工場 石狩食品工場、江別食品工場、はまなす食品、江別物流セン ター 生鮮センター(PC)、ドリームファクトリー(函館)

Slide 6

Slide 6 text

コープさっぽろ 組合員200万人達成! 1965年に札幌中心に事業開始 してから57年、組合員200万 人まで到達することができた。 200万人の組合員に支持されて いることを背景に、社会的役割 を発揮していきたい。 組合員は世帯加入のため、道内 全247万世帯のうち80%以上 (組合員数÷世帯数)の加入率 になった。大きくなることで、 北海道に貢献できることも増え る。組合員の皆さんと一緒に事 業を進めていきたい 2023年10月28日 200万人達成セレモニー

Slide 7

Slide 7 text

北海道で生きることを誇りと喜びにする 3つのつなぐ 福祉活動 文化教室 組合員活動 葬祭事業 旅行事業 物流事業 店舗事業 移動販売 宅配事業 配食・給食 食育 食品製造 共済事業 エネルギー 子育て支援 環境活動 リサイクル フードバンク 育英奨学金 と 人 人 をつなぐ と 人 食 をつなぐ と 人 未来 をつなぐ はじめての方へ:https://www.sapporo.coop/about/beginner/

Slide 8

Slide 8 text

8 木原が話すこと 〜コープさっぽろの  Cloud Native へ向けた準備〜

Slide 9

Slide 9 text

自己紹介 木原 卓也 Kihara, Takuya / @tacck 生活協同組合コープさっぽろ デジタル推進本部システム企画部 (2021年4月入協) 店舗チーム → アプリ・サイトチーム ゆるWeb勉強会@札幌 主催 Amplify Japan User Group 運営メンバー AWS Community Builder Since Q2 2021 Frontend Web and Mobile 好きなフィギュアスケートの技 スプレッド・イーグル

Slide 10

Slide 10 text

木原が話すこと(概要) コープさっぽろの Cloud Native へ向けた準備 ● コープさっぽろの今までのシステム ● 負債との戦い ○ コープさっぽろの内製開発 ○ AWSへ全部持っていくプロジェクト 内製開発での Cloud Native 化への取組 (小笠原)

Slide 11

Slide 11 text

11 コープさっぽろの 今までのシステム

Slide 12

Slide 12 text

コープさっぽろのシステム部の今まで ● ホストでの業務運用が中心 (2023年に廃止済) ● 90%のシステムが開発ベンダーへ外注 ○ 開発ベンダーからの見積に対する精査ができない ● システム部から現場部門へ提案することがあまりなかった ○ 他の事業部からは何をしているか良く分からない部署 ● 現場部門からシステム部へ異動してきたメンバーが多い ○ 業務システムのスペシャリスト≠IT技術のスペシャリスト

Slide 13

Slide 13 text

長年の蓄積で負債の宝庫 ● 古いマシン・古いOS ● 複雑なネットワーク ● 縦割りで乱立する基盤 ● 高額なデータセンター代 ● etc... コープさっぽろの今までのシステム

Slide 14

Slide 14 text

長年の蓄積で負債の宝庫 ● 古いマシン・古いOS→ AWS移行・作り直し ● 複雑なネットワーク→ AWS移行時に整理 ● 縦割りで乱立する基盤→ AWS移行時に整理 ● 高額なデータセンター代→ AWS移行時にスペック見直し ● etc... コープさっぽろの今までのシステム デジタル推進本部で見直し

Slide 15

Slide 15 text

長年の蓄積で負債の宝庫 ● 古いマシン・古いOS→ AWS移行・作り直し ● 複雑なネットワーク→AWS移行時に整理 ● 縦割りで乱立する基盤→AWS移行時に整理 ● 高額なデータセンター代→AWS移行時にスペック見直し ● etc... 内製開発を! AWSへ全部持っていく! コープさっぽろの今までのシステム デジタル推進本部で見直し

Slide 16

Slide 16 text

16 コープさっぽろの 内製開発

Slide 17

Slide 17 text

内製開発 Why 内製開発? ● 事業を自分ごととして捉えて、システムに落とし込める。 ● 「今」必要なものと「将来」必要なものを、 自分たちで選択しながら作っていくことができる。

Slide 18

Slide 18 text

内製開発・内製エンジニア ● 2020年からエンジニア採用を実施 ○ PM・アプリケーションエンジニア・インフラエンジニア ● 内製エンジニア + 外部委託エンジニアで開発 ○ 手が足りないところを補いながら一体となって進める ● 内製エンジニアとしての仕事 ○ システム構築・開発 ○ 各事業への研修参加 (店舗・宅配・移動販売 etc) ○ 外注するシステム導入・更新の見積確認 ○ コープさっぽろ内外への情報発信 ■ 他部門からの相談が増加

Slide 19

Slide 19 text

システム部の取り組みの発信 https://dx.sapporo.coop/ 


Slide 20

Slide 20 text

内製開発 (再) Why 内製開発? ● 事業を自分ごととして捉えて、システムに落とし込める。 ● 「今」必要なものと「将来」必要なものを、 自分たちで選択しながら作っていくことができる。

Slide 21

Slide 21 text

内製開発とAWS Why 内製開発? ● 事業を自分ごととして捉えて、システムに落とし込める。 ● 「今」必要なものと「将来」必要なものを、 自分たちで選択しながら作っていくことができる。 Why AWS? ● 内製開発を始めるに当たって、AWSに詳しい人材が集まった。 ● AWS Communityに関わる人材が多く、情報を得やすい。 ● どのように作るかの選択肢が、サービスとして用意されている。 ○ Cloud Native にも、インスタンスベースにもできる。

Slide 22

Slide 22 text

選択の進め方 優先順位 アプリケーション データベース 高 AWS Lambda Amazon Aurora Amazon DynamoDB 中 Amazon ECS Amazon RDS どうしようも なければ Amazon EC2 Amazon EC2 スケールアウトしやすい構成か? ● マネージドサービスを優先 ● 疎結合な構成

Slide 23

Slide 23 text

AWSにしたことでできるようになったこと Infrastructure as Code (IaC) ● 環境設定書のコード化 ○ インフラエンジニア: AWS CloudFormation ○ アプリケーションエンジニア: AWS CDK ● CI/CD によるデプロイの自動化 ○ リリースサイクルの高速化・安定化 Observability - 可観測性 ● コープさっぽろでは New Relic を採用 ○ APIやDBクエリのレスポンス状況の把握 ○ ログとの横串確認・ボトルネック調査

Slide 24

Slide 24 text

24 AWSへ全部持っていく プロジェクト

Slide 25

Slide 25 text

移行対象システム: 200 over ベテランシステムが大量にあるため、 あまり悠長にはできない。 かつ、停止すると業務影響の大きいものが多い。 万が一止まってしまうとこれだけ影響がある ● お店 109店舗 ● 宅配 46万世帯 ● 組合員 200万人 ● 職員 14,000 人 AWSへ全部持っていく前

Slide 26

Slide 26 text

リフト(&シフト) ● オンプレのイメージをAmazon EC2(インスタンス)へ複製しそのまま稼働させる。 ● 前後の連携システム間の調整が大きな作業。 連携ができれば全体への影響を最低限に押さえられる。 ● 場合によってはOS・ミドルウェアアップグレードを伴う。その時はテストも念入りに実施。 リビルド ● オンプレのシステムの要件を基に、新たにシステムを開発・改修を行う。 ● ここは可能な限り Cloud Native 前提で進める。 リプレイス ● 業務や連携内容自体を再整理し、別のシステムと統合、SaaSへの切り替え、を行う。 ● 再整理の結果、業務自体が不要になることもある。 AWS移行の大まかな進め方

Slide 27

Slide 27 text

リフトを基本として、2021年より開始。 2022年より、システム部全体で全力推進開始。 業務部門に応じたシステム部内のチーム、 担当部門のシステムのリフトを漸進的に進行。 AWSへ全部持っていくプロジェクト開始

Slide 28

Slide 28 text

期間: 2022年2月〜2024年2月 木原が取りまとめつつ、 ベンダーやインフラの移行担当チーム、運用チームと連携。 内訳 • リフト: 19 • リビルド: 2 • リプレイス: 6 店舗系システムでの事例 (木原担当分)

Slide 29

Slide 29 text

● システム機能 ○ POSの購買情報を集約し別システムへ配布するシステム ● 方針 ○ AWS Application Migration Service (AWS MGN) でEC2へ ○ 前後の連携システムとの経路をEC2経由に切り替え ● やったこと ○ 連携システムとの調整 ■ 利用経路の関係から一部の連携先に直接接続できないことが直前に判明。 急ぎ迂回経路を利用して対応。 ○ 連携タイミングの整理 ■ 深夜帯の閉塞時間が(歴史的経緯で)考慮されていないシステムだった。 バッチの起動時間や連携タイミングを整理して閉塞時間を調整。 店舗系システムでの事例 (木原担当分: リフト)

Slide 30

Slide 30 text

店舗系システムでの事例 (木原担当分: リフト)

Slide 31

Slide 31 text

● システム機能 ○ お惣菜部門の製造計画・原料発注支援システム ● 方針 ○ サバクラからWebシステム化。サバクラからのベンダーさんが開発。 ○ ECS / Lambda Functions / S3 / EventBridge で構成。 ● やったこと ○ 部門からの要求ヒアリング・要件定義(を引き継ぎ) ■ Webシステム化するにあたってのアーキテクトの調整。 ○ 全店舗導入(108店舗 2024年1月当時 ) ■ 事業部門の担当者、ベンダーさんと連携して対応。 ■ 担当者への教育、店舗や事業部門の繁忙期もあり、導入に時間はかかったが 何とか導入完了。 ■ 現在はさらなる改善の対応中。 店舗系システムでの事例 (木原担当分: リビルド)

Slide 32

Slide 32 text

店舗系システムでの事例 (木原担当分: リビルド)

Slide 33

Slide 33 text

● システム機能 ○ 基幹システムからデータを一部取得しCSV出力するシステム ● 方針 ○ 機能整理して停止。 ● やったこと ○ 利用実態の把握 ■ 加工したCSVを業務部門が利用する、というシステムだが、 別の仕組み (Amazon QuickSight) も導入しておりほぼ使われていなかった。 ○ 対応 ■ 一部必要なものだけ別システムへ移植し、システムクローズ。 ■ 基幹システムからデータを受けるために使っていた商用DBのライセンス費用も 一緒にクローズ。 店舗系システムでの事例 (木原担当分: リプレイス)

Slide 34

Slide 34 text

店舗系システムでの事例 (木原担当分: リプレイス)

Slide 35

Slide 35 text

リフト中心に、多くのシステムがAWSへ移行。 本格的な Cloud Native に向けた下準備が ようやく終わった段階。 およそ2年経った結果

Slide 36

Slide 36 text

総数:218システム(くらい) 全事業で利用されているシステム総数の状況 分類 総数 対象 AWS稼働中 189 AWSで稼働中システム AWS移行予 定 21 オンプレからAWSへの移行予定数 SaaS 6 オンプレからSaaSへ移行して稼働 中 オンプレ 2 オンプレで稼働中 合計 218 コープさっぽろシステム合計 これ以外にも潜んでいるシステムがあるので、 総数は増える場合がある....

Slide 37

Slide 37 text

総数:218システム(くらい) 全事業で利用されているシステム総数の状況 分類 総数 対象 AWS稼働中 189 AWSで稼働中システム AWS移行予 定 21 オンプレからAWSへの移行予定数 SaaS 6 オンプレからSaaSへ移行して稼働 中 オンプレ 2 オンプレで稼働中 合計 218 コープさっぽろシステム合計 これ以外にも潜んでいるシステムがあるので、 総数は増える場合がある.... 今日はAWS稼働中の 宅配システムの話を します

Slide 38

Slide 38 text

38 小笠原が話すこと 〜宅配システムの変遷〜

Slide 39

Slide 39 text

{ "入協(入社)": "2021年6月", "名前": "小笠原 豊(@y_ogagaga)", "趣味": ["筋トレ", "模型", "DIY", "スノーボード",”仕事部屋”], "コミュニティ活動暦": [    "アジャイル札幌(初期メンバー)", "札幌Ruby会議実行委員"], "主な担当領域": [ "プロジェクト計画・推進・マネジメント", "Webアプリケーションの全体アーキテクチャ設計"], "やってきたこと": [ "トドックアプリ内製開発推進", "宅配注文サーバリプレースの計画と推進", "必要に応じて他事業の案件推進支援も担当しています"] } トドックアプリの開発チームリーダーを担当しています ご挨拶と自己紹介

Slide 40

Slide 40 text

40 宅配システムの クラウドネイティブ 化の変遷

Slide 41

Slide 41 text

本日お話することの概略 宅配事業を利用している46万世帯の組合員が利用できる宅配注 文用のWebサイト・モバイルアプリがどのようにAWSを中心と したクラウドネイティブ変遷を遂げたのかをお話します。 ● 2020年2月のデジタル推進本部設立前後からのフロントエン ド(Web、モバイルアプリ)・バックエンド・インフラ刷新 ○ Webサイトリプレース ○ モバイルアプリリプレース ○ オンプレミス環境からの脱却 ○ インスタンスからコンテナ・サーバレスへの変遷

Slide 42

Slide 42 text

北海道で生きることを誇りと喜びにする 3つのつなぐ 福祉活動 文化教室 組合員活動 葬祭事業 旅行事業 物流事業 店舗事業 移動販売 宅配事業 配食・給食 食育 食品製造 共済事業 エネルギー 子育て支援 環境活動 リサイクル フードバンク 育英奨学金 と 人 人 をつなぐ と 人 食 をつなぐ と 人 未来 をつなぐ はじめての方へ:https://www.sapporo.coop/about/beginner/

Slide 43

Slide 43 text

デジタル推進本部のゴール 組合員さんが「安心安全」で豊かな食生活を送ることができる インターネットテクノロジーの力で200万人の組合員さんの買い物に楽しい体験時間を増やす 年間テーマ 2018年 2019年 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 シ ス テ ム Web スマホ サーバ サイド 宅配注文 チャンネル デジ推ゴール チーム ミッション

Slide 44

Slide 44 text

2018年-宅配ECシステムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる デジ推ゴール テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web スマホ サーバ サイド オンプレ ECはブラウ ザで注文でき るeトドック のみ 2018年 2019年 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 Myトドック (認証機能) 宅配注文 チャンネル チーム ミッション

Slide 45

Slide 45 text

2018年-宅配ECのシステム構成 組合員 オンプレ リクエスト レスポンス HTML生成 「eトドック/Myトドック(※1)」 2009年に構築 スマホ アプリ AWS 利用 「eトドック/Myトドック(※1)」 用サーバ ※1 Myトドックは認証機能 などを提供するシステム

Slide 46

Slide 46 text

eトドックに限らず宅配関連のシステムは オンプレ or ホスト で稼働していました ホストオープン化の取り組みについては、dx.sapporo.coop の 「ホストオープン化」で変わったのはシステムだけじゃない! オープン化が職場にもたらしたもの を見てみてね。

Slide 47

Slide 47 text

eトドック トドックア プリ(V1) オンプレ EC2(C#) 
 (宅配機能) 
 2019年9月-宅配ECシステムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 2022年 2023年 2024年 iOS(Swift) Android (Kotlin) EC2(PHP) 
 (アプリ中継) 
 2020-2021年 Myトドック (認証機能) 宅配注文 チャンネル デジ推ゴール eトドック Myトドック (認証機能) オンプレ 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション

Slide 48

Slide 48 text

2019年9月-宅配ECのシステム構成 組合員 オンプレ リクエスト レスポンス HTML生成 「eトドック/Myトドック」 スマホの 注文チャンネル が増えた iOS(Swift) Android (Kotlin) EC2 RDS MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ 基幹 システム群 スマホアプリ用として オンプレにファイル サーバー構築 「eトドック/Myトドック (※1)」サーバ ※1 Myトドックは認証機能 を提供するシステム アプリ認証

Slide 49

Slide 49 text

機能はそこまで多い訳ではないのに、アプリ会社に委託 して作ってもらった額が、例えば数千万円だったとし て、、、基幹システムとアプリとをつなぐ改修にその4 倍かかったんです。 フロントエンドの物を作るために、裏の基幹(システ ム)というサクラダファミリアの分析をし、調整をする のに、時間をかけていても、どうにもならないじゃない ですか。新しく、組合員向けのサービスを追加しようと しても、丸が一個二個増えるだけで。これは、もう何を どうしようとしても無理だろう。って、思ったんですよ ね。

Slide 50

Slide 50 text

50 2020年2月 デジタル推進本部誕 生

Slide 51

Slide 51 text

eトドック オンプレ EC2(C#) (宅配機能) 2020年2-7月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 2022年 2023年 2024年 2020-2021年 eトドック トドックアプ リ(V1) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) Myトドック (認証機能) Auth0導入 CIO の長谷川 がJOIN 内製エンジニアもJOIN EC2(C#) (宅配機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ オンプレ 宅配注文 チャンネル デジ推ゴール 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション

Slide 52

Slide 52 text

2020年2-7月-宅配ECのシステム構成 組合員 オンプレ
 リクエスト レスポンス HTML生成 「eトドック/Myトドッ ク」 iOS(Swift) 
 Android 
 (Kotlin) 
 EC2 RDS MySQL 中継API 
 CMS機能 
 設定管理
 アプリ用サーバ オンプレ
 データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ
 基幹 システム群 「eトドック/Myトドック (※1)」サーバ ※1 Myトドックは認証機能 を提供するシステム Auth0 幅広いユーザー層を想定した、 Auth0利用でのログイン基盤リニューアル https://classmethod.jp/cases/coop-sapporo/

Slide 53

Slide 53 text

eトドック オンプレ EC2(C#) (宅配機能) 2020年12月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 2022年 2023年 2024年 2020-2021年 eトドック トドックア プリ(V1) Auth0導入 ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) EC2(C#) (宅配機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ 宅配注文 チャンネル デジ推ゴール トドック サイト トドックサイト、こんなに変わったよ!! https://dx.sapporo.coop/n/ndeb1b74e9225 SPA (Vue.js) 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション

Slide 54

Slide 54 text

2020年12月-宅配ECのシステム構成 組合員 トドックサイト (内製開発) EC専用の 
 商品データ連携 
 Auth0 CloudFront S3 Spreadsheet Google Apps Script コンテンツ 認証/認可 宅配API Call 認証/認可 認証・認可 
 iOS(Swift) Android (Kotlin) EC2 RDS MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ
 データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ
 基幹 システム群

Slide 55

Slide 55 text

オンプレで稼働していたシステムを閉鎖し、 AWS上にレスポンシブデザイン 対応したフロントシステムを構築しました。

Slide 56

Slide 56 text

eトドック オンプレ 2021年3月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web申込 組合員加入、宅配申込がWeb(ア プリはWebview)からできな かっ たのができるようになりました。 フロント:S3(Vue.js配置) バックエンド:Lambda(Node.js) お店で申し込む、紙で郵送、電話で依頼する必 要がありました iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) デジ推ゴール 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション

Slide 57

Slide 57 text

2021年3月-宅配ECのシステム構成 組合員 トドックサイト( 内製開 発) iOS(Swift) Android (Kotlin) EC2 RDS MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ 基幹 システム群 Auth0 宅配API Call 認証/認可 認証・認可 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 Web組合員・宅配申込( 内製開発) 認証・認可 CloudFron t S3 Lambda コンテンツ Spreadsheet t Google Apps Script 申込データ 最終的にSlackまで 連携されています

Slide 58

Slide 58 text

またクラウドを利用した システム構築が進んできた

Slide 59

Slide 59 text

宅配から始まったトドックアプリだけど 今後は他の事業利用も提供していきたい

Slide 60

Slide 60 text

eトドック オンプレ 2021年4月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) ⭐2021年4月 
 全事業利用ができるアプリを高速 に開発するために内製開発へ切替 
 ・トドックアプリの内製開発 
 ・トドックアプリで組合員証表示 
 の2大プロジェクト発足 
 小笠原は6月に入協し、アプリ内製化の PMを担当しました。 
 デジ推ゴール これまで経験した開発プロジェクトの中で一番 炎 上していた やりがいのあるプロジェクトでした! チーム ミッション

Slide 61

Slide 61 text

eトドック オンプレ 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) 2022年1〜3月-宅配システムの様子 トドックアプ リ(V2) Auth0(認証) トドック サイト Web宅配申込 EC2(C#) (宅配機能) SPA (Vue.js) iOS/Android (Flutter/Dart ) Firebase AppSheet ⭐2022年1月 
 ・トドックアプリV2 リリース 
 ⭐2022年3月 
 ・電子組合員証リリース 
 デジ推ゴール チーム ミッション

Slide 62

Slide 62 text

2022年1〜3月-トドックアプリ 62 泣く泣く一部の機能を落としてリリース しました。ごめんなさい。

Slide 63

Slide 63 text

2021年3月-宅配ECのシステム構成 組合員 トドックサイト( 内製開 発) iOS(Swift) Android (Kotlin) EC2 RDS MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ 基幹 システム群 Auth0 宅配API Call 認証/認可 認証・認可 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 Web組合員・宅配申込( 内製開発) 認証・認可 CloudFron t S3 Lambda コンテンツ Spreadsheet t Google Apps Script 申込データ 最終的にSlackまで 連携されています

Slide 64

Slide 64 text

2021年3月-宅配ECのシステム構成 組合員 トドックサイト( 内製開 発) Auth0 宅配API Call 認証/認可 認証・認可 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 Web宅配申込( 内製開発) 認証・認可 CloudFron t S3 Lambda コンテンツ Spreadsheet Google Apps Script 申込データ オンプレ データ連携 サーバ EC2(API) EC2(バッチ) RDS MySQL 基幹APIサーバ 
 オンプレ 基幹 システム群 トドックアプリ( 内製開 発) 宅配API Call 認証・認可 設定管理
 CMS機能
 ➕
 iOS/Android (Flutter/Dart) 内製開発 スマちょこAPI 内製開発

Slide 65

Slide 65 text

EC2が一つ減り またよくなってきた

Slide 66

Slide 66 text

eトドック オンプレ 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) 2022年4月-宅配システムの様子 トドックアプ リ(V2) Auth0(認証) トドック サイト Web宅配申込 EC2(C#) (宅配機能) SPA (Vue.js) iOS/Android (Flutter/Dart ) Firebase AppSheet ⭐2022年4月 「組合員がトドックアプリから全 事業でポイントを利用できるよう にする」大プロジェクト開始 (ポイント統合プロジェクト) https://dx.sapporo.coop/n/n3c6f2965512f デジ推ゴール チーム ミッション

Slide 67

Slide 67 text

2022年4月-宅配ECのシステム構成 組合員
 トドックサイト( 内製開発)
 オンプレ
 データ連携 
 サーバ
 EC2(API) EC2(バッチ) RDS MySQL 基幹APIサーバ 
 オンプレ
 基幹
 システム群 
 Auth0 宅配API Call 
 認証/認可 
 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 
 Web宅配申込( 内製開発)
 認証・認可 
 CloudFrontS3 Lambda コンテンツ 
 Spreadsheet Google Apps Script 申込データ 
 トドックアプリ( 内製開発)
 宅配API Call 
 認証・認可 
 認証・認可 
 設定管理
 CMS機能
 ➕
 iOS/Android 
 (Flutter/Dart) 
 トドックアプリ( 内製開発)
 ⭐このサーバは次の課題を抱えており、ここにポイント統合向けの機能追加するのは難しい 状況でした。 ● スケールしないインフラ(フロント側刷新により利用者が増大しているが、サーバの性 能が厳しい状態)

Slide 68

Slide 68 text

2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ (オンプレ) トドック アプリ Auth0 商品管理 システム CRM システム 宅配基幹 システム 受発注 システム 基幹バッチサーバ(Windows) 検証と 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 本人確認

Slide 69

Slide 69 text

2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ (オンプレ) トドック アプリ Auth0 商品管理 システム CRM システム 宅配基幹 システム 受発注 システム 基幹バッチサーバ(Windows) 検証と 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 本人確認 内製開発


Slide 70

Slide 70 text

2023年4月-ポイントシステム刷新

Slide 71

Slide 71 text

2023年4月-ポイントシステム刷新 ポイント利用促進 アプリでポイントステージを確認 簡単にポイント利用可能

Slide 72

Slide 72 text

時を進める前に 2022年6月まで話を戻します

Slide 73

Slide 73 text

商品検索機能の改善

Slide 74

Slide 74 text

● 「ビール」で検索しても、「ビール漬け」が一番上にくる... ● 「醤油」で検索しても、「醤油煎餅」が一番上にくる... 目的商品が探せない状態 ● 検索結果表示に時間がかかる上に、タイムアウトで検索できないこ とが多かった... 2022年6月までの検索機能について  課題    検索機能改善で解決できること 組合員さん 目的の商品が見つけられず購入できない  目的の商品をすぐに見つけられるように

Slide 75

Slide 75 text

2022年11月 ZETA社の検索エンジン導入 https://zetacx.com/pressrelease/case/search-engine/coop-sapporo-todok-site-202211/2022/1129

Slide 76

Slide 76 text

次は 宅配注文サーバのリプレース

Slide 77

Slide 77 text

2022年6月-宅配ECのシステム構成 組合員
 トドックサイト( 内製開発)
 オンプレ
 データ連携 
 サーバ
 EC2(API) EC2(バッチ) RDS MySQL 基幹APIサーバ 
 オンプレ
 基幹
 システム群 
 Auth0 宅配API Call 
 認証/認可 
 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 
 Web宅配申込( 内製開発)
 認証・認可 
 CloudFrontS3 Lambda コンテンツ 
 Spreadsheet Google Apps Script 申込データ 
 トドックアプリ( 内製開発)
 宅配API Call 
 認証・認可 
 認証・認可 
 設定管理
 CMS機能
 ➕
 iOS/Android 
 (Flutter/Dart) 
 トドックアプリ( 内製開発)
 ⭐ポイント統合プロジェクトから数ヶ月遅れること、宅配ECの心臓部で ある基幹APIサーバ(ほぼ宅配機能)のリプレースプロジェクトが開 始...! 【課題】 ● スケールしないインフラ(フロント側刷新により利用者が増大しているが、サーバ性 能が厳しい状態) ○ 必要に応じてAuroraを6〜9台、EC2を6〜12台に調整する運用を手動でやって おり人とインフラ費用がとても高い状況であった。 ● アプリとサイトの認証・認可機能も兼ねており、このサーバがアクセスできなくなる とアプリそのものが利用できなくなる問題を抱えている。

Slide 78

Slide 78 text

組合員
 トドックサイト( 内製開発)
 オンプレ
 データ連携 
 サーバ
 EC2(API) EC2(バッチ) RDS MySQL 基幹APIサーバ 
 オンプレ
 基幹
 システム群 
 Auth0 宅配API Call 
 認証/認可 
 認証・認可 
 トドックアプリ( 内製開発)
 宅配API Call 
 認証・認可 
 認証・認可 
 設定管理
 CMS機能
 ➕
 iOS/Android 
 (Flutter/Dart) 
 内製開発
 スマちょこAPI 内製開発
 2023年4月-宅配ECのシステム構成

Slide 79

Slide 79 text

2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ トドック アプリ Auth0 商品管理 システム CRM システム 宅配基幹 システム 受発注 システム 売掛管理 システム 基幹バッチサーバ(Windows) 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤

Slide 80

Slide 80 text

どういう構成にしようかな?

Slide 81

Slide 81 text

81 内製開発とAWS

Slide 82

Slide 82 text

選択の進め方 優先順位 アプリケーション データベース 高 AWS Lambda Amazon Aurora Amazon DynamoDB 中 Amazon ECS Amazon RDS どうしようも なければ Amazon EC2 Amazon EC2 スケールアウトしやすい構成か? ● マネージドサービスを優先 ● 疎結合な構成

Slide 83

Slide 83 text

AWSにしたことでできるようになったこと Infrastructure as Code (IaC) ● 環境設定書のコード化 ○ インフラエンジニア: AWS CloudFormation ○ アプリケーションエンジニア: AWS CDK ● CI/CD によるデプロイの自動化 ○ リリースサイクルの高速化・安定化 Observability - 可観測性 ● コープさっぽろでは New Relic を採用 ○ APIやDBクエリのレスポンス状況の把握 ○ ログとの横串確認・ボトルネック調査

Slide 84

Slide 84 text

2023年9月-宅配ECのシステム構成 トドック アプリ・サイト Auth0 商品管理 システム CRM システム 宅配基幹 システム 受発注 システム 売掛管理 システム ステージ・購買 履歴システム ポイント システム ポイントAPI Auth0 アクセストークン ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 内製開発
 Amazon Aurora PostgreSQL Auth0公開鍵 検証と認可 宅配注文バッチサーバ Amazon ECS Amazon Fargate Amazon S3 宅配注文APIサーバ Amazon ECS Amazon Fargate Auth0 アクセストークン

Slide 85

Slide 85 text

2023年9月-宅配ECのシステム構成 S3 各種連携データ トドック アプリ サイト 宅配注文サーバ Auth0 組合員証番号 /本人確認 商品情報 システム 組合員情報 宅配CRM 宅配受発注 購入上限金額情報 Amazon Aurora PostgreSQL Webカタログ 検索エンジン カタログ取り込みバッチ S3 カタログデータ S3 訳ありデータ RunCommand S3 連携データ バックアップ 宅配申込 組合員加入 ALB AWS WAF API Gateway S3 商品画像 宅配中継 Auth0 アクセストークン ECS Cluster DynamoDB Beanstalk認証Web 共通認証認可基盤 S3 画像変換元 データ Fargate(API Service) Container1 Container2 Fargate(バッチService) Container1 Container2 ECR ElastiCache for Redis デプロイ詳細は こちら スマちょこ API ポイント操作 API ステージ /購買/履 歴API 宅配ポイント 基幹システム これらもほぼAWS ヘ移行完了。 デジタル納品書

Slide 86

Slide 86 text

2023年9月-トドックアプリからみたバックエンド CRM 認証 Token(JWT) 宅配注文API トドックアプリ 組合員情報 Auth0 内製Webアプリ機能 ・組合員情報の同期機能 ・サービス利用停止機能 ・スマちょこ利用時の本人確認機能 ・情報変更画面 共通認証認可基盤(Auth0 + 内製Webアプリケーション) 注文 Auth0発行の公 開鍵 認可 データ同期 ステージ/購買API 注文 Auth0発行の公 開鍵 認可 デジタル納品書API 注文 Auth0発行の公 開鍵 認可 ポイント操作API 注文 Auth0発行の公 開鍵 認可 スマちょこAPI 注文 Auth0発行の公 開鍵 認可 基幹システム 宅配機能と認証機能が 切り離されて耐障害性 が向上、インスタンス 型のサーバ消滅

Slide 87

Slide 87 text

内部への成果報告 本件に関する問い合わせ:デジタル推進本部 システム企画部 トドックアプリチーム 小笠原 豊(Slack@小笠原 豊 ) トドックアプリ向けの宅配注文システムを刷新し、宅配機能開発の促 進、AWS費用及びシステム運用作業を大幅削減 旧システム(As-Is) ① AWS上にサーバを多く配置する必要があ り、費用が高額になっている ② システム構成が古いため、システムリリー ス、機能開発に多くの時間が必要となる システム費用が高額・運用時間が多い状況 システム 刷新 宅配関連のリリース が3回/月 から 5回/月に‼ 新システム(To-Be) ① AWS費用の大幅な削減を達成 ② 機能リリース促進、システム運用時間削減 を達成 システム費用を1/3に削減 システムリリース 時間が9時間/月 から 1時間/月に‼ AWS費用が $10,016 / 月(¥1,502,400)から $3,700 / 月(¥555,000/月) に‼

Slide 88

Slide 88 text

eトドック オンプレ 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) トドックアプ リ(V2) Auth0(認証) トドック サイト Web宅配申込 EC2(C#) (宅配機能) SPA (Vue.js) iOS/Android (Flutter/Dart ) Firebase AppSheet 2023年9月-宅配システムの様子 ⭐モバイルアプリ  ・フレームワーク : Flutter  ・開発言語: Dart  ・CI: GitHub Actions、CircleCI ⭐サーバ  ・インフラ: AWS Lambda or ECS  ・開発言語: Go言語(主流)、 Node.js  ・データベース : PostgreSQL、MySQL  ・CI: GitHub Actions、CircleCI ⭐Webフロントエンド  ・フレームワーク : Vue3 + TypeScript  ・開発言語: JavaScript  ・CI: GitHub Actions、CircleCI ⭐ツール  ・ソースコード管理 : GitHub  ・ドキュメント : Google Workspace  ・チャット: Slack デジ推ゴール チーム ミッション

Slide 89

Slide 89 text

eトドック
 オンプレ
 EC2(C#) 
 (宅配機能) 
 現在利用している技術要素 組合員さんが「安心安全」で豊かな食生活を送ることができる 
 ゴール
 テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 
 ミッション
 年間テーマ
 基盤構築
 宅配注文
 チャンネル
 シ ス テ ム
 Web
 スマホ
 サーバ
 サイド
 2018年
 2019年
 iOS(Swift) 
 Android 
 (Kotlin) 
 EC2(PHP) 
 (アプリ中継) 
 基盤構築・新アプリ 
 ポイント利用促進
 宅配機能強化
 オールコープ利用
 2022年
 2023年
 2024年
 2020-2021年
 トドックアプリ (V1)
 Auth0(認証)
 ECは
 eトドック
 のみ
 (PHP)
 Myトドック
 (認証機能)
 トドックアプリ (V1)
 Myトドック
 (認証機能)
 EC2(C#) 
 (宅配機能) 
 iOS(Swift) 
 Android 
 (Kotlin) 
 EC2(PHP) 
 (アプリ中継) 
 オンプレ
 トドック
 サイト
 SPA
 (Vue.js) 
 トドックアプリ (V1)
 Auth0(認証)
 トドック
 サイト
 Web宅配申込
 EC2(C#) 
 (宅配機能) 
 iOS(Swift) 
 Android 
 (Kotlin) 
 EC2(PHP) 
 (アプリ中継) 
 SPA
 (Vue.js) 
 トドックアプリ(V2) 
 Auth0(認証)
 トドック
 サイト
 Web宅配申込
 EC2(C#) 
 (宅配機能) 
 SPA
 (Vue.js) 
 iOS/Android 
 (Flutter/Dart) 
 Firebase 
 AppSheet 
 ⭐モバイルアプリ  ・フレームワーク: Flutter  ・開発言語: Dart  ・CI: GitHub Actions、CircleCI ⭐サーバ  ・インフラ: AWS Lambda or ECS  ・開発言語: Go言語(主流)、Node.js  ・データベース: PostgreSQL、MySQL  ・CI: GitHub Actions、CircleCI ⭐Webフロントエンド  ・フレームワーク: Vue3 + TypeScript  ・開発言語: JavaScript  ・CI: GitHub Actions、CircleCI ⭐ツール  ・ソースコード管理: GitHub  ・ドキュメント: Google Workspace  ・コミュニケーション: Slack

Slide 90

Slide 90 text

90 4年でここまできました

Slide 91

Slide 91 text

注文サーバを刷新したことにより たくさん積んである開発案件が 2024年1月から爆速で進んでいるし、運用 がとても楽になりました。 リリースノートはこちら https://dx.sapporo.coop/n/n66190cc39f5d

Slide 92

Slide 92 text

92 まだまだやることはたくさん あります! 絶賛仲間を募集中です...!

Slide 93

Slide 93 text

ありがとうございました https://www.wantedly.com/companies/company_7505384