Upgrade to Pro — share decks privately, control downloads, hide ads and more …

メディアドゥ Go Conference 2021 スポンサーセッション/gocon-2021-mediado

メディアドゥ Go Conference 2021 スポンサーセッション/gocon-2021-mediado

Go Conference 2021 "Go"ldスポンサーにて登壇した際のスライドです。

Go Conference 公式ページ
https://gocon.jp/

kent-hamaguchi

April 24, 2021
Tweet

More Decks by kent-hamaguchi

Other Decks in Technology

Transcript

  1. Go Conference 2021
    メディアドゥ
    スポンサーセッション
    Go 活用事例の紹介

    View full-size slide

  2. 2012年 メディアドゥ入社 (新卒採用)
    書店システムの開発担当
    濱口賢人
    名前
    経歴
    自己紹介

    View full-size slide

  3. メディアドゥについて

    View full-size slide

  4. 最先端のテクノロジーにより電子書籍の流通事業を推進し、
    電子書籍市場、ひいては出版市場全体の拡大に貢献することを
    目指しています。
    メディアドゥとは

    View full-size slide

  5. メディアドゥとは

    View full-size slide

  6. 電子書籍の取次事業
    国内シェアNo.1
    東証一部上場
    エンジニアは約100名
    メディアドゥとは

    View full-size slide

  7. Go 活用事例の紹介

    View full-size slide

  8. メディアドゥ 配信サービス
    事例 1つ目
    数あるコンテンツを書店向けに取りまとめ、
    オンラインでサイトやアプリへ
    コンテンツ本体を配信するシステム

    View full-size slide

  9. 取扱コンテンツ数
    200万点以上
    配信件数
    数百億リクエスト/月
    メディアドゥ 配信サービス システム規模

    View full-size slide

  10. 7万リクエスト/秒
    ピークタイムのリクエスト頻度
    メディアドゥ 配信サービス システム規模

    View full-size slide

  11. ● 元々は Java で開発された旧システムが配信処理をしていた
    ● システム刷新に伴い Java から Go へ言語を変更
    ○ パフォーマンス自体は元々出せていたが、開発効率等から Go を選択
    ● コンテナ (AWS ECS) に Go 製のサーバを実行している
    ● Go の強みを活かして、日々開発と運用を続けている
    ○ パフォーマンスを活かした大量のリクエスト処理
    ○ Go のシンプルな言語構文、チームでの開発
    ○ コンテンツデータの取り込みなど、複雑なビジネス要件を実装
    メディアドゥ 配信サービス まとめ

    View full-size slide

  12. MDCMS-SD
    事例 2つ目
    電子書店を構築・運用するために、
    課金や書籍の閲覧などを提供する
    電子書店ウェブサイトの構築システム

    View full-size slide

  13. 電子書店(サイト)数
    約100書店
    提供内容
    BtoC 領域
    会員登録
    課金/ポイント管理
    書籍購入/閲覧
    MDCMS-SD システム規模

    View full-size slide

  14. MDCMS-SD システム切替戦略
    MDCMS-SD
    (Java, PHP)
    md-dc
    (旧基幹システム)
    従来
    MDCMS-SD
    (Java, PHP)
    中間システム
    (Go)
    現在 配信サービス

    View full-size slide

  15. MDCMS-SD システム切替戦略
    MDCMS-SD
    (Java, PHP)
    中間システム
    (Go)
    現在 配信サービス
    Java と PHP で構築されたシステムを更に改修するより、
    md-dc と同じAPIを持ったシステムを間に追加。
    改修の影響範囲の縮小と、テスタビリティの向上を狙った。
    (ストラングラーパターンに近い設計 )

    View full-size slide

  16. MDCMS-SD システム切替戦略
    中間システム
    (Go)
    中間システムの中身自体も
    マイクロサービスで構築
    コンテンツの
    購入
    コンテンツの
    ダウンロード
    コンテンツの
    メタデータ登録
    コンテンツの
    サムネイル配置

    View full-size slide

  17. ● システム境界として分かれていたシステムの置き換えを Go で実装した
    ● メディアドゥ 配信サービスと同様に、パフォーマンスと可読性の利点を実感
    MDCMS-SD は登壇者である濱口の担当システムのため、詳細に踏み込んだ内容は下記。
    ● 型定義、型推論が使いやすく、保守性に優れる
    ● 言語構文がシンプルなため、若手メンバーの学習も早かった
    ● Go Modules や テスト機能など、エコシステムが標準で整っており、使いやすい
    ● インターフェース と それを満たす 構造体 の関係性が便利
    ○ Clean Architecture を取り入れており、かなりマッチした
    MDCMS-SD まとめ

    View full-size slide

  18. コミなび リニューアル
    事例 3つ目
    メディアドゥが運営する
    電子書店「コミなび」を
    リニューアルし、システムを刷新

    View full-size slide

  19. コミなび リニューアルについて
    別途発表したスライドをご覧ください
    10年続いている電子書店をリニューアルした話
    https://speakerdeck.com/tschy/jaws-days-2021

    View full-size slide

  20. メディアドゥでは、BtoB や BtoC、
    既存システムの拡張 や 新規構築 まで、
    様々なシステムへ Go を導入しています。
    それぞれのケースで Go の強みを実感しています!
    まとめ

    View full-size slide

  21. 「テクノロジーで出版業界を
    盛り上げていきたい」
    こちらに共感・興味をお持ちの方は、
    是非とも一緒に
    エンジニアリングしていきましょう!
    最後に

    View full-size slide

  22. ひとつでも多くのコンテンツを、ひとりでも多くの人へ
    著作物の健全なる創造サイクルの実現
    VISION
    MISSION

    View full-size slide

  23. Engineer
    Engineering Manager
    Product Owner
    We’re Hiring !
    https://recruit.mediado.jp/

    View full-size slide