Slide 1

Slide 1 text

© SAKURA internet Inc. 在宅ワーク時代における 宅急便を活⽤したDXサービスの設計と仕組み ~さくらインターネットとヤマト運輸によるSlackアプリ~ TiDB User Day @ 2023-07-07 さくらインターネット株式会社 技術推進統括担当 執⾏役員 兼 CISO 兼 CIO 江草 陽太 ※「宅急便」はヤマト運輸の登録商標です

Slide 2

Slide 2 text

2 ⾃⼰紹介 @chibiegg 江草 陽太 【所属】 • さくらインターネット株式会社 新卒⼊社 執⾏役員 技術推進統括担当 兼 CISO 兼 CIO 【経歴】 • ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン • ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻 • 個⼈事業主 (⼤学⽣時代に開業) • ⼤阪⼤学⼤学院⼯学研究科中退 【趣味】 旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服

Slide 3

Slide 3 text

© SAKURA internet Inc. https://www.sakura.ad.jp/taqbin/

Slide 4

Slide 4 text

© SAKURA internet Inc. • 働き⽅の変化に伴い、社員間の荷物が増加 • 住所は聞けない、⾔えない • でも営業所留めはめんどくさい! 社員間で宅急便を楽に送りたい

Slide 5

Slide 5 text

© SAKURA internet Inc. 「宅急便の発送⼿続きがSlackでできるアプリ」 サービス紹介

Slide 6

Slide 6 text

• 荷物を送りたい⼈が受け取る⼈を指定する • 受け取る⼈は住所を⼊れる • 荷物をファミマかヤマトに引き渡す • またはPUDOステーションに投⼊する サービスの概要

Slide 7

Slide 7 text

© SAKURA internet Inc. コードネーム:ちゅーる便

Slide 8

Slide 8 text

© SAKURA internet Inc.

Slide 9

Slide 9 text

© SAKURA internet Inc.

Slide 10

Slide 10 text

© SAKURA internet Inc.

Slide 11

Slide 11 text

⽀払いについて • 荷物の発送や受け取り時に運賃の⽀払いは不要です • 運賃はさくらインターネットから毎⽉請求いたします

Slide 12

Slide 12 text

よくある質問 • ゲストも利⽤できますか? • ご契約時はゲストの利⽤が無効になっています • 「ゲストによる出荷」「ゲストによる受け取り」の許可を設定できま す • Connectで使えますか? • 相⼿のワークスペースにもAppをインストールしていただければゲス ト扱いで利⽤できます • 集荷依頼はできますか? • できます、Slack上で集荷⽇時の指定が可能です

Slide 13

Slide 13 text

集荷と持ち込み

Slide 14

Slide 14 text

管理機能

Slide 15

Slide 15 text

© SAKURA internet Inc. DXをインフラとサービスで⽀え、お客様のDXを実現 インテグ レーション コンサル ティング 教育 15

Slide 16

Slide 16 text

技術的な話 • Slack 3秒ルール • Eventに対して3秒以内に応答しなければならない • ユーザーを待たせるとユーザー体験が悪いため • ⾮同期処理が必須 • Django + Celery でできるだけ⾮同期処理に • ブローカーには Redis を利⽤ • スケジューラーは Celery Redbeat を利⽤ • 分散データベース TiDB • さくらのクラウド エンハンスドDB (TiDB) 利⽤でDB運⽤が楽に

Slide 17

Slide 17 text

⾮同期処理 • HTTPリクエストに対して応答を返した後に追加で処理を⾏う 場合 • 伝票情報のヤマト運輸システムへの登録 • Slack DMの送信 • スケジュール実⾏ • 荷物追跡情報の取得更新 • 請求⾦額の更新 • 有効期限切れの伝票の削除 • etc. Celery Celery Beat Scheduler + RedBeat

Slide 18

Slide 18 text

エンハンスドデータベース (TiDB) • さくらのクラウドで10秒でデータベースが使えます • データベース名、パスワードを指定して作成するだけ • MySQL互換なので、いつも通り利⽤可能 • ⼀部互換性のない機能もあります (ドキュメント) • pingcap/django-tidb • Djangoのデータベースとして利⽤可能 • (Django 4.2 LTS でも利⽤できるワークアラウンドあり)

Slide 19

Slide 19 text

(参考) データベースの作成

Slide 20

Slide 20 text

エンハンスドDBのメリット • すぐに使える • 5秒で作れる • 容量を気にせず利⽤できる • 使っている容量に応じて課⾦される (予定) • 最初から⼤きなディスクを⽤意しなくて良い • スペックを意識せずに利⽤できる • 同時接続数を後から増減できる (予定) • アップグレードやノード障害を意識しなくて良い • コネクションが切れてもすぐに再接続ができる

Slide 21

Slide 21 text

エンハンスドDBの機能拡張 • 5⽉18⽇にアップデートしました • 「さくらのクラウドのエンハンスドDBにおいてMariaDBと耐障害性 や安全性を⾼める2つの機能が追加〜接続可能なネットワークを制限 する機能の追加および東京リージョンが選択可能に〜」 • https://www.sakura.ad.jp/information/newsreleases/2023/05/18/1968211564/ • ⽯狩リージョンに加えて東京リージョンを追加 • IPアドレス制限を追加 • MariaDBを追加

Slide 22

Slide 22 text

エンハンスドDBの設計 • さくらのクラウドを利⽤ • TiDBをシンプルに構築して利⽤する⽅針 • GSLB (DNS) による負荷分散 • SSL終端やアクセス制限をするためのリバースプロキシサーバ を独⾃に開発

Slide 23

Slide 23 text

エンハンスドDBの構築・運⽤ • Terraform + Ansible + tiup によるIaC • Terraform • さくらのクラウドでのインフラ構築と設定を⾏う • Ansible • Linuxユーザーの設定 • TiDB以外のパッケージ等のインストール • その他TiDB以外に設定すべき設定 • tiup • TiDBクラスタのセットアップ

Slide 24

Slide 24 text

tiupによるTiDBのメンテナンス • tiupによるバージョン更新が素晴らしい • `tiup cluster upgrade clustername v7.1.0` • v5.3.0 → v5.3.1 → v5.4.1 → v6.5.1 → v7.1.0 • ノード追加もシンプル • `tiup cluster scale-out clustername scaleout.yaml`

Slide 25

Slide 25 text

TiDBの監視 •tiupによって Prometheus も構築される •Alertmanager も設定される

Slide 26

Slide 26 text

© SAKURA internet Inc. 26 さくらインターネットの企業理念 「やりたいこと」を「できる」に変える “インターネット”とは⼈々にチャンスをもたらし 創造性豊かな世界を作る⽂化です。 私たちは“インターネット”で熱量を持って挑戦する 全ての⼈の「やりたいこと」を「できる」に変えます。