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
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
Search
JunkiIshida
February 16, 2026
Programming
1
800
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
【Go特集】バックエンドGo開発の裏側 直面する課題と今後の展望とは?
https://findy.connpass.com/event/378623/
で使用した登壇資料です。
JunkiIshida
February 16, 2026
Tweet
Share
Other Decks in Programming
See All in Programming
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
3
1.6k
AI活用のコスパを最大化する方法
ochtum
0
130
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
140
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
500
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
330
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
240
AHC061解説
shun_pi
0
350
TROCCOで実現するkintone+BigQueryによるオペレーション改善
ssxota
0
170
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
170
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
360
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
770
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Marketing to machines
jonoalderson
1
5k
Ruling the World: When Life Gets Gamed
codingconduct
0
170
Typedesign – Prime Four
hannesfritz
42
3k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Darren the Foodie - Storyboard
khoart
PRO
3
2.8k
Speed Design
sergeychernyshev
33
1.6k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
82
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Transcript
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために 朝日新聞社 朝デジ事業センター 石田 隼基
朝デジ事業センター 開発部 次長 Confidential Copyright © The Asahi Shimbun Company.
All rights reserved. 2 2023年3月〜 朝日新聞社に中途入社 ※以前はNode/TypeScriptエンジニアで、入社までGo は未経験でした 2023年10月〜 朝日新聞のデジタル版アプリのリニューア ルプロジェクトに参画 石田 隼基 Ishida Junki
本日のアジェンダ Confidential 3 Copyright © The Asahi Shimbun Company. All
rights reserved.
アジェンダ Confidential 4 Copyright © The Asahi Shimbun Company. All
rights reserved. 1.朝日新聞のデジタル版について 2.Go × バックエンドシステム 3.技術的な課題 4.今後の展望
朝日新聞のデジタル版 Confidential 5 Copyright © The Asahi Shimbun Company. All
rights reserved.
朝日新聞社 Confidential 6 Copyright © The Asahi Shimbun Company. All
rights reserved. 株式会社 朝日新聞社 東京都中央区築地5-3-2(東京本社) • 社員数 3742人 (2025年4月現在) • 事業内容 • 新聞・デジタルメディアによるコンテンツ事業、展覧会などのイベント事業、不動産事業など
サービス規模 Confidential 7 Copyright © The Asahi Shimbun Company. All
rights reserved. 朝日新聞メディア指標: https://www.asahi.com/corporate/info/15487077
朝日新聞のデジタル版 Confidential 8 Copyright © The Asahi Shimbun Company. All
rights reserved. Web App(iOS/Android)
アプリ版は2種類 Confidential 9 Copyright © The Asahi Shimbun Company. All
rights reserved. 速報ニュースや「ニュースの要点」、 トピックスなどの機能・コンテンツが 使える「朝日新聞アプリ」 紙の新聞の形でニュースが読める 「朝日新聞紙面ビューアーアプリ」
朝日新聞のデジタル版のあゆみ Confidential 10 Copyright © The Asahi Shimbun Company. All
rights reserved. 1995年に「asahi.com」(アサヒ・コム) を開設。 インターネット上でのニュース配信を開始 2011年春 サブスクリプションのニュース サイト「朝日新聞デジタル」を開始 2011年夏 朝デジアプリ(iOS/Android) オープン 2020年 内製化へ舵を切る 2025年1月 朝日新聞アプリを全面リニューアル サービス名を「朝日新聞」に統一
Go × バックエンドシステム Confidential 11 Copyright © The Asahi Shimbun
Company. All rights reserved.
バックエンドの内製化&マイクロサービスへ分割 Confidential 12 Copyright © The Asahi Shimbun Company. All
rights reserved. •2020年からの内製化を機に、モノリシックなシステムをログイン / 課金 / コンテンツ配信 / 通知管理 などのコンテキストに分割し、フ ルスクラッチで新規開発&リプレイス中 •基本的にバックエンド領域はGoで統一 •マイクロサービスとして分割することで各サービスの改修・デプロ イが独立化。また機能・サービス単位ごとのスケールも容易に
記事を表示するまでの一連の流れ 13 Web用 バックエンド システム 記事データベース アプリ用 バックエンド システム Webフロント
エンドシステム Goを利用 アプリ用 BFF Node.js データの 整形等 C D N
記事を表示するまでの一連の流れ(有料会員限定記事) 14 Web用 バックエンド システム 会員管理システム アプリ用 BFF アプリ用 バックエンド
システム 記事データベース 認証・認可 システム Webフロント エンドシステム php worker Roadrunner 既存の phpコードを流用
フォロー機能等を利用するまでの一連の流れ 15 Web用 バックエンド システム 会員管理システム アプリ用 BFF アプリ用 バックエンド
システム 記事データベース 認証・認可 システム Webフロント エンドシステム php worker Roadrunner フォロー管理 システム データベース フォロー中の 連載・記者・ジャンル に紐 づくコンテンツを返却
プッシュ通知を届けるまでの一連の流れ 16 アプリ用 BFF プッシュ 通知用 システム 記事データベース 編集者 記事入稿
CMS プッシュ配信 ダッシュボード 運用担当者 デバイス トークン 登録 APNs / FCM プッシュのトリガーは2種類 • 運用者が手動で配信するもの • 例)「速報席」と呼ばれる運用担当者が選択し配信 • 記事の更新をトリガーに自動で配信するもの • 例)連載記事をフォローしているお客様に自動配信
有料会員契約時 17 Web用課金 バックエンド システム 会員管理システム アプリ用 BFF アプリ内課金 バックエンド
システム 認証・認可 システム Webフロント エンドシステム Apple / Google ストア
技術スタック Confidential 18 Copyright © The Asahi Shimbun Company. All
rights reserved. • Go × クリーンアーキテクチャで統一し、アプリケーション間のスイッチング コストを抑制 • 書き込みと読み込み両方のユースケースを担保するサービスの一部では、CQRSパターンも採用 • DBは主にDynamoDBとAurora+PostgresSQLを採用 • Dynamoで十分なユースケースでは積極的にDynamoを使うことで運用負荷を下げる • PostgresはORMは使わずにsqlxとgolang-migrateで統一 • その他Go以外の技術スタック • システム間通信にはgRPCを採用。クライアントアプリ・BFF間もgRPCを導入 • サービス同士はAWS TransitGateway でAWSアカウントのVPCを跨いだ相互接続を実現 • モニタリングツールはNewRelicを導入
Goを採用して実際のところどうなのか Confidential 19 Copyright © The Asahi Shimbun Company. All
rights reserved. •良かった点 •コードスタイルのばらつきが少ない • 可読性が均質になりやすく、マイクロサービス間の行き来もしやすい •高い後方互換性 • Go周りのメンテコストはほぼゼロ •ビルトインのツール・標準ライブラリが充実 • 初期セットアップが簡単。マイクロサービスの立ち上げが容易 •goroutine による並行処理の書きやすさ • 複数のマイクロサービスと通信する際の実装に最適
Goを採用して実際のところどうなのか Confidential 20 Copyright © The Asahi Shimbun Company. All
rights reserved. •課題 •エラーハンドリングの冗長さ • ハンドリングを忘れてContext Canceledエラーをエラーログで出すこと 多数 •並行処理が気軽にできる反面、扱いが難しい • Race Condition の回避、Context Canceled の伝播など
コーディングエージェント活用 Confidential 21 Copyright © The Asahi Shimbun Company. All
rights reserved. •Devin/Cursorの利用を経て、Claude Codeの利用に最適化 •一部の開発者は自分で一切コードを書かない体制が確立 •Claude Code Actionでコードレビューも自動化 •CLAUDE.mdにGoの言語特性として気をつけるべき観点を明記 •文章自体Claude Codeに記述させた •その他、SkillsやCommandsも実験的に導入 •Postgres用のSkillを導入(supabase-postgres-best-practices) •JIRAのMCPを使いチケットの記述を参照して、実装・テスト・PRまでを一連で実行 するコマンド(/pr)を整備
CLAUDE.mdの実際の例(一部) 22
CLAUDE.mdの実際の例(一部) 23
技術的な課題 Confidential 24 Copyright © The Asahi Shimbun Company. All
rights reserved.
Webバックエンドシステムのパフォーマンス問題(一例) Confidential 25 Copyright © The Asahi Shimbun Company. All
rights reserved. • Web用の記事データ取得バックエンドのパフォーマンスが劣化 •記事表示までのレスポンスタイムが2秒以上かかることもあるなど著しく劣化 •ただし定常的に劣化しているわけではなく、問題の切り分けに難航 • 記事データベースのレスポンスタイムに大きな要因はなく、ボトルネックがアプ リケーションにあると判明し原因を詳細調査 •開発環境で負荷をかけ、pprofで結果を集計し地道に分析 記事データベースから得られたJSONデータをGoの構造体に変換する処理に時間が かかっていた。JSONデコーダを標準のものからサードパーティ(json-iterator)の ものに変更しパフォーマンスが改善 •JSONデータは時には巨大(数MB単位)になることがある
アプリバックエンドシステムのパフォーマンス問題 Confidential 26 Copyright © The Asahi Shimbun Company. All
rights reserved. •2025年1月に大規模なアプリリニューアルを敢行。それから2週間に 1回のアプリリリースペースを1年以上継続中 •マイクロサービス間でN+1リクエストを飛ばしてしまっていたり、 並列リクエストできるところを直列リクエストしてしまっていたり、 様々な性能劣化が起きている •CPU使用率のベースラインもじわじわ増加中 •現在進行形で検知・対応中だが、まだまだ十分に手が回っていると は言い難い
今後の展望 Confidential 27 Copyright © The Asahi Shimbun Company. All
rights reserved.
今後の展望 Confidential 28 Copyright © The Asahi Shimbun Company. All
rights reserved. •LLMをフル活用し、バックエンド専門ではないエンジニアでもバッ クエンド開発ができるような環境のさらなる整備 •統一したアーキテクチャ×LLMによるブーストで、フルサイクルエンジニア リングに挑戦する環境は整えやすいはず •賢いスケーリング戦略の導入 •コスト度外視で画一的にオートスケールする戦略を取ってきたが、注目度の 高い報道や、それらに伴うプッシュ通知を覚知して、あらかじめスケールし ておくなどの戦略的なスケーリングを導入したい
We are hiring Confidential 29 Copyright © The Asahi Shimbun
Company. All rights reserved. 我々は「つながれば、見えてくる。」をスローガンに、朝日新聞の デジタル版を「情報のプロセスをクリアにして多様な視点を提供し、 ユーザー自身が行動するメディア」に創り直し、デジタル上で最も 信頼されるメディアを目指しています。 一緒に未来のメディアを創っていきませんか? 採用情報:https://www.asahishimbun-saiyou.com/career/
Confidential 30 Copyright © The Asahi Shimbun Company. All rights
reserved.