Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CloudNative Days Summer 2024-北海道全域で利用される宅配システムの...
Search
CO-OP Sapporo
June 18, 2024
Technology
0
380
CloudNative Days Summer 2024-北海道全域で利用される宅配システムのクラウドネイティブ化
2024/6/15 に開催された、CloudNative Days Summer 2024でお話しした内容です
CO-OP Sapporo
June 18, 2024
Tweet
Share
More Decks by CO-OP Sapporo
See All by CO-OP Sapporo
大量リダイレクトも怖くない!CloudFront KeyValueStoreでサービスサイトリニューアルを楽々乗り越えた話 / How we redirect large-scale web pages by CloudFront Functions and CloudFront KeyValue Store
coopsapporo
1
340
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜 / School lunch for anywhere
coopsapporo
0
480
AWSアカウントをOrganizations配下に入れようとしたらVPCまるごとお引越しをした件 / JAWS PANKRATION 2021 / What makes me to migrate entire VPC
coopsapporo
1
2.7k
絶対にテストコードを書かないチームのテストルール
coopsapporo
2
3.5k
混沌から離脱までの道のり アウトソースをする事業会社がすべきことは?
coopsapporo
0
110
社会人2年目のエンジニアがPMになるとき
coopsapporo
2
320
KPTの空回りを防ぐ! エンジニアリングチーム 立ち上げの取り組み
coopsapporo
0
4.1k
あなたならどうする?DXの現場におけるエンジニアの葛藤
coopsapporo
0
2k
JAWS DAYS 2021 わたし達はなぜ「北海道で生きること」を選択したのか 〜移住を決めたエンジニア達のエトセトラ〜 / Why we choose "Living in Hokkaido" ~Our worries, decisions, and their fruits~
coopsapporo
2
2.1k
Other Decks in Technology
See All in Technology
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
960
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
120
AIチャットボット開発への生成AI活用
ryomrt
0
170
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
180
21k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Done Done
chrislema
181
16k
Scaling GitHub
holman
458
140k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Six Lessons from altMBA
skipperchong
27
3.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Building Adaptive Systems
keathley
38
2.3k
Documentation Writing (for coders)
carmenintech
65
4.4k
Building Your Own Lightsaber
phodgson
103
6.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Transcript
地域密着型組織が挑む! 北海道全域で利用される 宅配システムのクラウドネイティブ化 〜宅配システム「トドック」のEC (トドックアプリ・サイト)の変遷〜 2024/6/15 生活協同組合コープさっぽろ 木原 卓也、小笠原 豊
2 本日お話すること
本日お話することの概略 宅配サービスを利用している46万世帯の組合員が利用できる 宅配注文用のWebサイト・スマホアプリが、 どのようにAWSを中心としたクラウドネイティブ変遷を 遂げたのかを木原・小笠原よりお話します。 • コープさっぽろの Cloud Native へ向けた準備
• 内製開発での Cloud Native 化への取組
4 生活協同組合 コープさっぽろ概要
生活協同組合コープさっぽろについて(※2024年3月現在) 設立年月日 1965年7月18日 組合員数 201万人(北海道総人口523万人の約38%) 出資金額 897億円 総事業高 3,186億円 職員数
14,743名(契約職員・パートアルバイト含む) 店舗数 109店舗 移動販売車 94台(134市町村) 宅配物流センター 41センター 10デポ 車両1,300台 配食工場 6工場(札幌、函館、苫小牧、旭川、釧路、帯広) 生産工場 石狩食品工場、江別食品工場、はまなす食品、江別物流セン ター 生鮮センター(PC)、ドリームファクトリー(函館)
コープさっぽろ 組合員200万人達成! 1965年に札幌中心に事業開始 してから57年、組合員200万 人まで到達することができた。 200万人の組合員に支持されて いることを背景に、社会的役割 を発揮していきたい。 組合員は世帯加入のため、道内 全247万世帯のうち80%以上 (組合員数÷世帯数)の加入率
になった。大きくなることで、 北海道に貢献できることも増え る。組合員の皆さんと一緒に事 業を進めていきたい 2023年10月28日 200万人達成セレモニー
北海道で生きることを誇りと喜びにする 3つのつなぐ 福祉活動 文化教室 組合員活動 葬祭事業 旅行事業 物流事業 店舗事業 移動販売
宅配事業 配食・給食 食育 食品製造 共済事業 エネルギー 子育て支援 環境活動 リサイクル フードバンク 育英奨学金 と 人 人 をつなぐ と 人 食 をつなぐ と 人 未来 をつなぐ はじめての方へ:https://www.sapporo.coop/about/beginner/
8 木原が話すこと 〜コープさっぽろの Cloud Native へ向けた準備〜
自己紹介 木原 卓也 Kihara, Takuya / @tacck 生活協同組合コープさっぽろ デジタル推進本部システム企画部 (2021年4月入協)
店舗チーム → アプリ・サイトチーム ゆるWeb勉強会@札幌 主催 Amplify Japan User Group 運営メンバー AWS Community Builder Since Q2 2021 Frontend Web and Mobile 好きなフィギュアスケートの技 スプレッド・イーグル
木原が話すこと(概要) コープさっぽろの Cloud Native へ向けた準備 • コープさっぽろの今までのシステム • 負債との戦い ◦
コープさっぽろの内製開発 ◦ AWSへ全部持っていくプロジェクト 内製開発での Cloud Native 化への取組 (小笠原)
11 コープさっぽろの 今までのシステム
コープさっぽろのシステム部の今まで • ホストでの業務運用が中心 (2023年に廃止済) • 90%のシステムが開発ベンダーへ外注 ◦ 開発ベンダーからの見積に対する精査ができない • システム部から現場部門へ提案することがあまりなかった
◦ 他の事業部からは何をしているか良く分からない部署 • 現場部門からシステム部へ異動してきたメンバーが多い ◦ 業務システムのスペシャリスト≠IT技術のスペシャリスト
長年の蓄積で負債の宝庫 • 古いマシン・古いOS • 複雑なネットワーク • 縦割りで乱立する基盤 • 高額なデータセンター代 •
etc... コープさっぽろの今までのシステム
長年の蓄積で負債の宝庫 • 古いマシン・古いOS→ AWS移行・作り直し • 複雑なネットワーク→ AWS移行時に整理 • 縦割りで乱立する基盤→ AWS移行時に整理
• 高額なデータセンター代→ AWS移行時にスペック見直し • etc... コープさっぽろの今までのシステム デジタル推進本部で見直し
長年の蓄積で負債の宝庫 • 古いマシン・古いOS→ AWS移行・作り直し • 複雑なネットワーク→AWS移行時に整理 • 縦割りで乱立する基盤→AWS移行時に整理 • 高額なデータセンター代→AWS移行時にスペック見直し
• etc... 内製開発を! AWSへ全部持っていく! コープさっぽろの今までのシステム デジタル推進本部で見直し
16 コープさっぽろの 内製開発
内製開発 Why 内製開発? • 事業を自分ごととして捉えて、システムに落とし込める。 • 「今」必要なものと「将来」必要なものを、 自分たちで選択しながら作っていくことができる。
内製開発・内製エンジニア • 2020年からエンジニア採用を実施 ◦ PM・アプリケーションエンジニア・インフラエンジニア • 内製エンジニア + 外部委託エンジニアで開発 ◦
手が足りないところを補いながら一体となって進める • 内製エンジニアとしての仕事 ◦ システム構築・開発 ◦ 各事業への研修参加 (店舗・宅配・移動販売 etc) ◦ 外注するシステム導入・更新の見積確認 ◦ コープさっぽろ内外への情報発信 ▪ 他部門からの相談が増加
システム部の取り組みの発信 https://dx.sapporo.coop/
内製開発 (再) Why 内製開発? • 事業を自分ごととして捉えて、システムに落とし込める。 • 「今」必要なものと「将来」必要なものを、 自分たちで選択しながら作っていくことができる。
内製開発とAWS Why 内製開発? • 事業を自分ごととして捉えて、システムに落とし込める。 • 「今」必要なものと「将来」必要なものを、 自分たちで選択しながら作っていくことができる。 Why AWS?
• 内製開発を始めるに当たって、AWSに詳しい人材が集まった。 • AWS Communityに関わる人材が多く、情報を得やすい。 • どのように作るかの選択肢が、サービスとして用意されている。 ◦ Cloud Native にも、インスタンスベースにもできる。
選択の進め方 優先順位 アプリケーション データベース 高 AWS Lambda Amazon Aurora Amazon
DynamoDB 中 Amazon ECS Amazon RDS どうしようも なければ Amazon EC2 Amazon EC2 スケールアウトしやすい構成か? • マネージドサービスを優先 • 疎結合な構成
AWSにしたことでできるようになったこと Infrastructure as Code (IaC) • 環境設定書のコード化 ◦ インフラエンジニア: AWS
CloudFormation ◦ アプリケーションエンジニア: AWS CDK • CI/CD によるデプロイの自動化 ◦ リリースサイクルの高速化・安定化 Observability - 可観測性 • コープさっぽろでは New Relic を採用 ◦ APIやDBクエリのレスポンス状況の把握 ◦ ログとの横串確認・ボトルネック調査
24 AWSへ全部持っていく プロジェクト
移行対象システム: 200 over ベテランシステムが大量にあるため、 あまり悠長にはできない。 かつ、停止すると業務影響の大きいものが多い。 万が一止まってしまうとこれだけ影響がある • お店 109店舗
• 宅配 46万世帯 • 組合員 200万人 • 職員 14,000 人 AWSへ全部持っていく前
リフト(&シフト) • オンプレのイメージをAmazon EC2(インスタンス)へ複製しそのまま稼働させる。 • 前後の連携システム間の調整が大きな作業。 連携ができれば全体への影響を最低限に押さえられる。 • 場合によってはOS・ミドルウェアアップグレードを伴う。その時はテストも念入りに実施。 リビルド
• オンプレのシステムの要件を基に、新たにシステムを開発・改修を行う。 • ここは可能な限り Cloud Native 前提で進める。 リプレイス • 業務や連携内容自体を再整理し、別のシステムと統合、SaaSへの切り替え、を行う。 • 再整理の結果、業務自体が不要になることもある。 AWS移行の大まかな進め方
リフトを基本として、2021年より開始。 2022年より、システム部全体で全力推進開始。 業務部門に応じたシステム部内のチーム、 担当部門のシステムのリフトを漸進的に進行。 AWSへ全部持っていくプロジェクト開始
期間: 2022年2月〜2024年2月 木原が取りまとめつつ、 ベンダーやインフラの移行担当チーム、運用チームと連携。 内訳 • リフト: 19 • リビルド:
2 • リプレイス: 6 店舗系システムでの事例 (木原担当分)
• システム機能 ◦ POSの購買情報を集約し別システムへ配布するシステム • 方針 ◦ AWS Application Migration
Service (AWS MGN) でEC2へ ◦ 前後の連携システムとの経路をEC2経由に切り替え • やったこと ◦ 連携システムとの調整 ▪ 利用経路の関係から一部の連携先に直接接続できないことが直前に判明。 急ぎ迂回経路を利用して対応。 ◦ 連携タイミングの整理 ▪ 深夜帯の閉塞時間が(歴史的経緯で)考慮されていないシステムだった。 バッチの起動時間や連携タイミングを整理して閉塞時間を調整。 店舗系システムでの事例 (木原担当分: リフト)
店舗系システムでの事例 (木原担当分: リフト)
• システム機能 ◦ お惣菜部門の製造計画・原料発注支援システム • 方針 ◦ サバクラからWebシステム化。サバクラからのベンダーさんが開発。 ◦ ECS
/ Lambda Functions / S3 / EventBridge で構成。 • やったこと ◦ 部門からの要求ヒアリング・要件定義(を引き継ぎ) ▪ Webシステム化するにあたってのアーキテクトの調整。 ◦ 全店舗導入(108店舗 2024年1月当時 ) ▪ 事業部門の担当者、ベンダーさんと連携して対応。 ▪ 担当者への教育、店舗や事業部門の繁忙期もあり、導入に時間はかかったが 何とか導入完了。 ▪ 現在はさらなる改善の対応中。 店舗系システムでの事例 (木原担当分: リビルド)
店舗系システムでの事例 (木原担当分: リビルド)
• システム機能 ◦ 基幹システムからデータを一部取得しCSV出力するシステム • 方針 ◦ 機能整理して停止。 • やったこと
◦ 利用実態の把握 ▪ 加工したCSVを業務部門が利用する、というシステムだが、 別の仕組み (Amazon QuickSight) も導入しておりほぼ使われていなかった。 ◦ 対応 ▪ 一部必要なものだけ別システムへ移植し、システムクローズ。 ▪ 基幹システムからデータを受けるために使っていた商用DBのライセンス費用も 一緒にクローズ。 店舗系システムでの事例 (木原担当分: リプレイス)
店舗系システムでの事例 (木原担当分: リプレイス)
リフト中心に、多くのシステムがAWSへ移行。 本格的な Cloud Native に向けた下準備が ようやく終わった段階。 およそ2年経った結果
総数:218システム(くらい) 全事業で利用されているシステム総数の状況 分類 総数 対象 AWS稼働中 189 AWSで稼働中システム AWS移行予 定
21 オンプレからAWSへの移行予定数 SaaS 6 オンプレからSaaSへ移行して稼働 中 オンプレ 2 オンプレで稼働中 合計 218 コープさっぽろシステム合計 これ以外にも潜んでいるシステムがあるので、 総数は増える場合がある....
総数:218システム(くらい) 全事業で利用されているシステム総数の状況 分類 総数 対象 AWS稼働中 189 AWSで稼働中システム AWS移行予 定
21 オンプレからAWSへの移行予定数 SaaS 6 オンプレからSaaSへ移行して稼働 中 オンプレ 2 オンプレで稼働中 合計 218 コープさっぽろシステム合計 これ以外にも潜んでいるシステムがあるので、 総数は増える場合がある.... 今日はAWS稼働中の 宅配システムの話を します
38 小笠原が話すこと 〜宅配システムの変遷〜
{ "入協(入社)": "2021年6月", "名前": "小笠原 豊(@y_ogagaga)", "趣味": ["筋トレ", "模型", "DIY",
"スノーボード",”仕事部屋”], "コミュニティ活動暦": [ "アジャイル札幌(初期メンバー)", "札幌Ruby会議実行委員"], "主な担当領域": [ "プロジェクト計画・推進・マネジメント", "Webアプリケーションの全体アーキテクチャ設計"], "やってきたこと": [ "トドックアプリ内製開発推進", "宅配注文サーバリプレースの計画と推進", "必要に応じて他事業の案件推進支援も担当しています"] } トドックアプリの開発チームリーダーを担当しています ご挨拶と自己紹介
40 宅配システムの クラウドネイティブ 化の変遷
本日お話することの概略 宅配事業を利用している46万世帯の組合員が利用できる宅配注 文用のWebサイト・モバイルアプリがどのようにAWSを中心と したクラウドネイティブ変遷を遂げたのかをお話します。 • 2020年2月のデジタル推進本部設立前後からのフロントエン ド(Web、モバイルアプリ)・バックエンド・インフラ刷新 ◦ Webサイトリプレース ◦
モバイルアプリリプレース ◦ オンプレミス環境からの脱却 ◦ インスタンスからコンテナ・サーバレスへの変遷
北海道で生きることを誇りと喜びにする 3つのつなぐ 福祉活動 文化教室 組合員活動 葬祭事業 旅行事業 物流事業 店舗事業 移動販売
宅配事業 配食・給食 食育 食品製造 共済事業 エネルギー 子育て支援 環境活動 リサイクル フードバンク 育英奨学金 と 人 人 をつなぐ と 人 食 をつなぐ と 人 未来 をつなぐ はじめての方へ:https://www.sapporo.coop/about/beginner/
デジタル推進本部のゴール 組合員さんが「安心安全」で豊かな食生活を送ることができる インターネットテクノロジーの力で200万人の組合員さんの買い物に楽しい体験時間を増やす 年間テーマ 2018年 2019年 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化
オールコープ利用 2022年 2023年 2024年 2020-2021年 シ ス テ ム Web スマホ サーバ サイド 宅配注文 チャンネル デジ推ゴール チーム ミッション
2018年-宅配ECシステムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる デジ推ゴール テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web
スマホ サーバ サイド オンプレ ECはブラウ ザで注文でき るeトドック のみ 2018年 2019年 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 Myトドック (認証機能) 宅配注文 チャンネル チーム ミッション
2018年-宅配ECのシステム構成 組合員 オンプレ リクエスト レスポンス HTML生成 「eトドック/Myトドック(※1)」 2009年に構築 スマホ アプリ
AWS 利用 「eトドック/Myトドック(※1)」 用サーバ ※1 Myトドックは認証機能 などを提供するシステム
eトドックに限らず宅配関連のシステムは オンプレ or ホスト で稼働していました ホストオープン化の取り組みについては、dx.sapporo.coop の 「ホストオープン化」で変わったのはシステムだけじゃない! オープン化が職場にもたらしたもの を見てみてね。
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トドック (認証機能) オンプレ 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
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トドックは認証機能 を提供するシステム アプリ認証
機能はそこまで多い訳ではないのに、アプリ会社に委託 して作ってもらった額が、例えば数千万円だったとし て、、、基幹システムとアプリとをつなぐ改修にその4 倍かかったんです。 フロントエンドの物を作るために、裏の基幹(システ ム)というサクラダファミリアの分析をし、調整をする のに、時間をかけていても、どうにもならないじゃない ですか。新しく、組合員向けのサービスを追加しようと しても、丸が一個二個増えるだけで。これは、もう何を どうしようとしても無理だろう。って、思ったんですよ
ね。
50 2020年2月 デジタル推進本部誕 生
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) (アプリ中継) オンプレ オンプレ 宅配注文 チャンネル デジ推ゴール 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
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/
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) 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
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サーバ オンプレ 基幹 システム群
オンプレで稼働していたシステムを閉鎖し、 AWS上にレスポンシブデザイン 対応したフロントシステムを構築しました。
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#) (宅配機能) デジ推ゴール 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
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まで 連携されています
またクラウドを利用した システム構築が進んできた
宅配から始まったトドックアプリだけど 今後は他の事業利用も提供していきたい
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を担当しました。 デジ推ゴール これまで経験した開発プロジェクトの中で一番 炎 上していた やりがいのあるプロジェクトでした! チーム ミッション
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月 ・電子組合員証リリース デジ推ゴール チーム ミッション
2022年1〜3月-トドックアプリ 62 泣く泣く一部の機能を落としてリリース しました。ごめんなさい。
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まで 連携されています
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 内製開発
EC2が一つ減り またよくなってきた
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 デジ推ゴール チーム ミッション
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) トドックアプリ( 内製開発) ⭐このサーバは次の課題を抱えており、ここにポイント統合向けの機能追加するのは難しい 状況でした。 • スケールしないインフラ(フロント側刷新により利用者が増大しているが、サーバの性 能が厳しい状態)
2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ (オンプレ) トドック アプリ Auth0 商品管理 システム
CRM システム 宅配基幹 システム 受発注 システム 基幹バッチサーバ(Windows) 検証と 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 本人確認
2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ (オンプレ) トドック アプリ Auth0 商品管理 システム
CRM システム 宅配基幹 システム 受発注 システム 基幹バッチサーバ(Windows) 検証と 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 本人確認 内製開発
2023年4月-ポイントシステム刷新
2023年4月-ポイントシステム刷新 ポイント利用促進 アプリでポイントステージを確認 簡単にポイント利用可能
時を進める前に 2022年6月まで話を戻します
商品検索機能の改善
• 「ビール」で検索しても、「ビール漬け」が一番上にくる... • 「醤油」で検索しても、「醤油煎餅」が一番上にくる... 目的商品が探せない状態 • 検索結果表示に時間がかかる上に、タイムアウトで検索できないこ とが多かった... 2022年6月までの検索機能について 課題
検索機能改善で解決できること 組合員さん 目的の商品が見つけられず購入できない 目的の商品をすぐに見つけられるように
2022年11月 ZETA社の検索エンジン導入 https://zetacx.com/pressrelease/case/search-engine/coop-sapporo-todok-site-202211/2022/1129
次は 宅配注文サーバのリプレース
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台に調整する運用を手動でやって おり人とインフラ費用がとても高い状況であった。 • アプリとサイトの認証・認可機能も兼ねており、このサーバがアクセスできなくなる とアプリそのものが利用できなくなる問題を抱えている。
組合員 トドックサイト( 内製開発) オンプレ データ連携 サーバ EC2(API) EC2(バッチ) RDS
MySQL 基幹APIサーバ オンプレ 基幹 システム群 Auth0 宅配API Call 認証/認可 認証・認可 トドックアプリ( 内製開発) 宅配API Call 認証・認可 認証・認可 設定管理 CMS機能 ➕ iOS/Android (Flutter/Dart) 内製開発 スマちょこAPI 内製開発 2023年4月-宅配ECのシステム構成
2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ トドック アプリ Auth0 商品管理 システム CRM
システム 宅配基幹 システム 受発注 システム 売掛管理 システム 基幹バッチサーバ(Windows) 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤
どういう構成にしようかな?
81 内製開発とAWS
選択の進め方 優先順位 アプリケーション データベース 高 AWS Lambda Amazon Aurora Amazon
DynamoDB 中 Amazon ECS Amazon RDS どうしようも なければ Amazon EC2 Amazon EC2 スケールアウトしやすい構成か? • マネージドサービスを優先 • 疎結合な構成
AWSにしたことでできるようになったこと Infrastructure as Code (IaC) • 環境設定書のコード化 ◦ インフラエンジニア: AWS
CloudFormation ◦ アプリケーションエンジニア: AWS CDK • CI/CD によるデプロイの自動化 ◦ リリースサイクルの高速化・安定化 Observability - 可観測性 • コープさっぽろでは New Relic を採用 ◦ APIやDBクエリのレスポンス状況の把握 ◦ ログとの横串確認・ボトルネック調査
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 アクセストークン
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 ヘ移行完了。 デジタル納品書
2023年9月-トドックアプリからみたバックエンド CRM 認証 Token(JWT) 宅配注文API トドックアプリ 組合員情報 Auth0 内製Webアプリ機能 ・組合員情報の同期機能
・サービス利用停止機能 ・スマちょこ利用時の本人確認機能 ・情報変更画面 共通認証認可基盤(Auth0 + 内製Webアプリケーション) 注文 Auth0発行の公 開鍵 認可 データ同期 ステージ/購買API 注文 Auth0発行の公 開鍵 認可 デジタル納品書API 注文 Auth0発行の公 開鍵 認可 ポイント操作API 注文 Auth0発行の公 開鍵 認可 スマちょこAPI 注文 Auth0発行の公 開鍵 認可 基幹システム 宅配機能と認証機能が 切り離されて耐障害性 が向上、インスタンス 型のサーバ消滅
内部への成果報告 本件に関する問い合わせ:デジタル推進本部 システム企画部 トドックアプリチーム 小笠原 豊(Slack@小笠原 豊 ) トドックアプリ向けの宅配注文システムを刷新し、宅配機能開発の促 進、AWS費用及びシステム運用作業を大幅削減
旧システム(As-Is) ① AWS上にサーバを多く配置する必要があ り、費用が高額になっている ② システム構成が古いため、システムリリー ス、機能開発に多くの時間が必要となる システム費用が高額・運用時間が多い状況 システム 刷新 宅配関連のリリース が3回/月 から 5回/月に‼ 新システム(To-Be) ① AWS費用の大幅な削減を達成 ② 機能リリース促進、システム運用時間削減 を達成 システム費用を1/3に削減 システムリリース 時間が9時間/月 から 1時間/月に‼ AWS費用が $10,016 / 月(¥1,502,400)から $3,700 / 月(¥555,000/月) に‼
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 デジ推ゴール チーム ミッション
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
90 4年でここまできました
注文サーバを刷新したことにより たくさん積んである開発案件が 2024年1月から爆速で進んでいるし、運用 がとても楽になりました。 リリースノートはこちら https://dx.sapporo.coop/n/n66190cc39f5d
92 まだまだやることはたくさん あります! 絶賛仲間を募集中です...!
ありがとうございました https://www.wantedly.com/companies/company_7505384