Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Nobutoshi Ogata Engineering Manager, Site Reliability Engineering SmartNews, Inc. サーバサイドの 技術スタック・アーキテクチャ総ざらい
Slide 2
Slide 2 text
1. はじめに 2. 自己紹介 3. SmartNews とは 4. SmartNews の技術スタック 5. ニュースが配信される流れと規模 6. ニュース配信のアーキテクチャ 7. おわりに Agenda
Slide 3
Slide 3 text
はじめに
Slide 4
Slide 4 text
● SmartNews のサーバサイドで利用している技術スタック・アーキテクチャに ついてざっとご紹介 ● ニュース選定などのアルゴリズムに関する話はしません はじめに
Slide 5
Slide 5 text
自己紹介
Slide 6
Slide 6 text
尾形暢俊 (Nobutoshi Ogata) ● Engineering Manager, Site Reliability Engineering ● 2015 年 5 月に入社し、開発基盤やインフラ周りの整備を担当 ● 2016 年より SRE チームを立ち上げ、Engineering Manager に ● ゲームと車と猫と酒で出来ています 自己紹介 @nobu666
Slide 7
Slide 7 text
SmartNews とは
Slide 8
Slide 8 text
SmartNews とは
Slide 9
Slide 9 text
● スマートフォン・タブレット向けニュースアプリ ● 日米 4,000 万以上のダウンロード ● 月間利用者数 (MAU) 1,000 万人以上 ● マスコットキャラクターは地球くん SmartNews とは http://about.smartnews.com/ja/2019/02/20/20190220/
Slide 10
Slide 10 text
SmartNews の 技術スタック
Slide 11
Slide 11 text
本日は、ニュース配信基盤にしぼってお話をします SmartNews の技術スタック ニュース配信基盤 広告配信基盤
Slide 12
Slide 12 text
● 基本的には AWS + Amazon Linux ● CDN は Akamai(一部 CloudFront) + WAF ● Java 8 → 11 ○ 一部 Ruby, Golang, Scala, Kotlin SmartNews の技術スタック
Slide 13
Slide 13 text
● 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 の技術スタック
Slide 14
Slide 14 text
● Instance Provisioning ○ AMI に共通で必要なものを焼き込み ○ インスタンスがタグによって自律的に必要なものを Provisioning ○ Code Deploy によりアプリケーションを Deploy ● itamae, Terraform, CircleCI, Jenkins, VAddy SmartNews の技術スタック
Slide 15
Slide 15 text
● 監視・通知 ○ Datadog + PagerDuty ○ Runscope ○ New Relic SmartNews の技術スタック
Slide 16
Slide 16 text
● PipelineDB ○ News 側では内部利用のみ ● Hazelcast ○ 後述 ちょっと珍しいかもしれないもの
Slide 17
Slide 17 text
ニュースが配信される 流れと規模
Slide 18
Slide 18 text
ニュース配信基盤のデータの流れ Publishers SNS
Slide 19
Slide 19 text
ニュース配信基盤が扱う トラフィック・データの規模 Online 30k+ requests / second Push Notification 25M+ users / 5 minutes Index 100k+ articles / day Log Aggregation 500M+ logs / day
Slide 20
Slide 20 text
ニュース配信基盤が扱う トラフィック・データの規模 CDN(Akamai) 480k+ hits / second 35G+ bits / second 120T+ bits / day
Slide 21
Slide 21 text
ニュース配信の アーキテクチャ
Slide 22
Slide 22 text
Online のアーキテクチャ ● メインのサービスは ○ API gateway under L7 LB (ALB) ○ search engine ○ personalized engine ● API gateway では ○ 複数のデータソースから非同期に結果を取得 ○ I/O を極力減らして non-blocking に
Slide 23
Slide 23 text
Online のアーキテクチャ ● Auto Scaling Group (ASG) で制御される EC2 群に よるサービス ○ ASG, Lambda, Simple Notification Service (SNS) を組み合わせて scale out を自動化 ○ scale out が前提なので、scalable なアーキテク チャである必要がある
Slide 24
Slide 24 text
Online のアーキテクチャ ● search engine は cache layer で守る ○ L1: in-memory ○ L2: Memcached cache cluster ● cache hit rate が重要 ○ offline 処理で絶えず L1/L2 cache を作成
Slide 25
Slide 25 text
Online のアーキテクチャ ● cache が効きづらい personalized engine には、 in-memory data grid を採用し高速化 ○ Hazelcast cluster ● Application Framework には Reactive Streams (Reactor) を採用 ● 負荷状態に応じて自律的に処理内容を変更
Slide 26
Slide 26 text
おわりに
Slide 27
Slide 27 text
● プロダクト・開発組織・サービス提供範囲の全てがより成長します ○ それに対して scalable なアーキテクチャが必要です ○ さらに高速で安定した分析基盤が必要です ○ 時差を超えて、より簡単・スムーズに開発できる環境が必要です ● もっとたくさんの仲間が必要です、ぜひ一緒にとりくみませんか! おわりに
Slide 28
Slide 28 text
We are hiring! https://smartnews.workable.com/
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
ご静聴ありがとう ございました