Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サーバサイドの技術スタック・アーキテクチャ総ざらい - SmartNews Tech N...
Search
Nobutoshi Ogata
May 28, 2019
Technology
17k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバサイドの技術スタック・アーキテクチャ総ざらい - SmartNews Tech Night in Fukuoka Vol.1
Nobutoshi Ogata
May 28, 2019
Transcript
30 slides
Nobutoshi Ogata Engineering Manager, Site Reliability Engineering SmartNews, Inc. サーバサイドの
技術スタック・アーキテクチャ総ざらい
1. はじめに 2. 自己紹介 3. SmartNews とは 4. SmartNews の技術スタック
5. ニュースが配信される流れと規模 6. ニュース配信のアーキテクチャ 7. おわりに Agenda
はじめに
• SmartNews のサーバサイドで利用している技術スタック・アーキテクチャに ついてざっとご紹介 • ニュース選定などのアルゴリズムに関する話はしません はじめに
自己紹介
尾形暢俊 (Nobutoshi Ogata) • Engineering Manager, Site Reliability Engineering •
2015 年 5 月に入社し、開発基盤やインフラ周りの整備を担当 • 2016 年より SRE チームを立ち上げ、Engineering Manager に • ゲームと車と猫と酒で出来ています 自己紹介 @nobu666
SmartNews とは
SmartNews とは
• スマートフォン・タブレット向けニュースアプリ • 日米 4,000 万以上のダウンロード • 月間利用者数 (MAU) 1,000
万人以上 • マスコットキャラクターは地球くん SmartNews とは http://about.smartnews.com/ja/2019/02/20/20190220/
SmartNews の 技術スタック
本日は、ニュース配信基盤にしぼってお話をします SmartNews の技術スタック ニュース配信基盤 広告配信基盤
• 基本的には AWS + Amazon Linux • CDN は Akamai(一部
CloudFront) + WAF • Java 8 → 11 ◦ 一部 Ruby, Golang, Scala, Kotlin SmartNews の技術スタック
• Online ◦ ALB(CLB) + ASG + EC2 ▪ nginx
+ Spring Boot embedded Tomcat ◦ ALB + ECS ▪ nginx + Consul Template ◦ EKS (検証中) • DMP ◦ EMR, Airflow, Hive LLAP, Presto ◦ Chartio, Superset, Jupyter SmartNews の技術スタック
• Instance Provisioning ◦ AMI に共通で必要なものを焼き込み ◦ インスタンスがタグによって自律的に必要なものを Provisioning ◦
Code Deploy によりアプリケーションを Deploy • itamae, Terraform, CircleCI, Jenkins, VAddy SmartNews の技術スタック
• 監視・通知 ◦ Datadog + PagerDuty ◦ Runscope ◦ New
Relic SmartNews の技術スタック
• PipelineDB ◦ News 側では内部利用のみ • Hazelcast ◦ 後述 ちょっと珍しいかもしれないもの
ニュースが配信される 流れと規模
ニュース配信基盤のデータの流れ Publishers SNS
ニュース配信基盤が扱う トラフィック・データの規模 Online 30k+ requests / second Push Notification 25M+
users / 5 minutes Index 100k+ articles / day Log Aggregation 500M+ logs / day
ニュース配信基盤が扱う トラフィック・データの規模 CDN(Akamai) 480k+ hits / second 35G+ bits /
second 120T+ bits / day
ニュース配信の アーキテクチャ
Online のアーキテクチャ • メインのサービスは ◦ API gateway under L7 LB
(ALB) ◦ search engine ◦ personalized engine • API gateway では ◦ 複数のデータソースから非同期に結果を取得 ◦ I/O を極力減らして non-blocking に
Online のアーキテクチャ • Auto Scaling Group (ASG) で制御される EC2 群に
よるサービス ◦ ASG, Lambda, Simple Notification Service (SNS) を組み合わせて scale out を自動化 ◦ scale out が前提なので、scalable なアーキテク チャである必要がある
Online のアーキテクチャ • search engine は cache layer で守る ◦
L1: in-memory ◦ L2: Memcached cache cluster • cache hit rate が重要 ◦ offline 処理で絶えず L1/L2 cache を作成
Online のアーキテクチャ • cache が効きづらい personalized engine には、 in-memory data
grid を採用し高速化 ◦ Hazelcast cluster • Application Framework には Reactive Streams (Reactor) を採用 • 負荷状態に応じて自律的に処理内容を変更
おわりに
• プロダクト・開発組織・サービス提供範囲の全てがより成長します ◦ それに対して scalable なアーキテクチャが必要です ◦ さらに高速で安定した分析基盤が必要です ◦ 時差を超えて、より簡単・スムーズに開発できる環境が必要です
• もっとたくさんの仲間が必要です、ぜひ一緒にとりくみませんか! おわりに
We are hiring! https://smartnews.workable.com/
None
ご静聴ありがとう ございました
More Decks by Nobutoshi Ogata
See All by Nobutoshi Ogata
Datadogセミナー 2025/3/13 Datadog On-Callの活用事例のご紹介
nobu666
0
550
SmartNews x PLAID - Cost cut and AWS Enterprise Support
nobu666
0
340
Why Slack?
nobu666
0
360
A Complete Work of SmartNews's SRE
nobu666
2
3.4k
SRE at SmartNews
nobu666
0
8.3k
SmartNews の最近の取り組みについて
nobu666
4
3.6k
Introducing in-hourse PaaS
nobu666
1
360
Monitoring of SmartNews
nobu666
0
210
The story becase happy with itamae
nobu666
0
180
Other Decks in Technology
See All in Technology
ゼロから作るWebアプリの新定番!?Amplify Gen 2 × AWS Blocksで実現する「開発速度とRDBの柔軟性のいいとこ取り」
amixedcolor
1
240
[General] 개발자로 해외 기업에서 일하기
skydoves
1
330
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
690
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
170
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.6k
Biohub - Cell Tracking During Development 5th place solution
rist
0
110
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
450
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
620
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
7
3.8k
Intro to Kiro (One agent, every surface) | Kiro: Zero to Hero 01
inariku
PRO
2
110
Bots in Kiro Crew (One point of contact for ongoing work) | Kiro: Zero to Hero 12
inariku
PRO
1
120
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
610
Featured
See All Featured
Practical Orchestrator
shlominoach
192
12k
My Coaching Mixtape
mlcsv
0
390
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
690
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
For a Future-Friendly Web
brad_frost
184
11k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
KATA
mclloyd
PRO
35
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
470
The agentic SEO stack - context over prompts
schlessera
0
1k
Statistics for Hackers
jakevdp
799
230k