Slide 1

Slide 1 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 New Relicプラットフォームを使っ たオブザーバビリティ⼊⾨ PHP Conference Japan 2 0 2 0 2 0 2 0 . 1 2 . 1 2 - @dmnlk

Slide 2

Slide 2 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 プロフィール : @dmnlk 川⼝ 将貴 ( Kawaguchi Masaki ) BASE , Inc. 2017⼊社、2019-07からCTO 執⾏役員 CTO

Slide 3

Slide 3 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. Mission Payment to the People, Power to the People. 3 ひとりひとりに眠る、想いが、感性が、才能が。 世界中の、必要な⼈に届くように。 そこから⽣まれる、作品に、アイデアに、活動に。 正当な対価を、受け取れるように。 ペイメントを、世界中の⼈へ解放する。 世界のすべての⼈に、 ⾃分の⼒を⾃由に価値へと変えて ⽣きていけるチャンスを。 あたらしい決済で、あなたらしい経済を。

Slide 4

Slide 4 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. ネットショップ作成サービス「BASE」 4 ઐ໳஌͕ࣝͳͯ͘΋ ແྉͰଈ࠲ʹωοτγϣοϓΛ։ઃͰ͖·͢ɻ ·ͨݸਓͰ΋ɺ͔ΜͨΜɾεϐʔσΟʹ ܾࡁػೳΛಋೖͰ͖Δ࢓૊ΈΛఏڙ͍ͯ͠· ͢ɻ 「誰でもかんたんに使える」サービスで ⾃分のネットショップを開設

Slide 5

Slide 5 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. オンライン決済サービス「PAY.JP」 5 ⽀払いのすべてをシンプルに Webサービスやネットショップ にクレジットカード 決済を簡単に導⼊できる開発者向けのオンライン決済 サービスです。 わかりやすく安い料⾦体系と、シンプルなAPIや豊富 なライブラリを使って、スムーズに決済を導⼊いただ けます。 ※ BASEにより作成されたネットショップを除く ※

Slide 6

Slide 6 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 資⾦調達サービス「YELL BANK」 「BASE」を利⽤するショップオーナーが 即時に資⾦調達できる⾦融サービス 将来債権が発⽣しないリスクや、将来 未回収リスクを「YELL BANK」が負担 するため、ショップオーナーはこれらの 
 リスク無く資⾦調達が可能 6 ࢿۚௐୡΛϦεΫͳ͘ɺҰॠͰɻ

Slide 7

Slide 7 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 7 現在BASEで取り組み始めたことを話します。 まだまだ始めたてなので BASEが⼊⾨してる途中です。 おことわり

Slide 8

Slide 8 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 8 Webアプリケーションの運⽤をしている 1 監視についてはなんとなくやったことがある 2 アプリケーションが増えてきて⼤変 3 聴講者対象

Slide 9

Slide 9 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 9 そのアプリケーション、 ちゃんと動いてますか? 質問

Slide 10

Slide 10 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 0 • 画⾯は真っ⽩になってない • なんか動いてるからヨシ! • パッと⾒エラーもない ちゃんと is ?

Slide 11

Slide 11 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 1 (最近アラートが鳴るけど いつ何のリリースが影響して るかなんもわからない…) よくある話

Slide 12

Slide 12 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 2 (最近アラートが鳴るけど いつ何のリリースが影響して るかなんもわからない…) よくある話 ӬԕͷࣄޙରԠ

Slide 13

Slide 13 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 3 (何もリリースしてないの に特定画⾯が重い…) よくある話

Slide 14

Slide 14 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 4 (何もリリースしてないの に特定画⾯が重い…) よくある話 ผͷαʔϏεͷ ϦϦʔεӨڹ

Slide 15

Slide 15 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 5 • コンテナ • マイクロサービス • サーバーレス • サービスメッシュ • etc … etc … 複雑化するインフラ

Slide 16

Slide 16 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 6 • コンテナ • マイクロサービス • サーバーレス • サービスメッシュ • etc … etc … 複雑化するインフラ ߏ੒೺Ѳ͕஍ࠈ

Slide 17

Slide 17 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 7 ⾃分たちの アプリケーションで何が 起きてるかが把握できてない 何が良くない?

Slide 18

Slide 18 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 8 可観測性 必要なもの

Slide 19

Slide 19 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 1 9 • オブザーバビリティ • 定義は⼀意ではない • 「bringing better visibility into systems」 • システムに良い可視性をもたらすこと • ログ‧メトリクス‧トレース情報‧イベントなどから 可観測性とは ग़య -Distributed Systems Observability https://www.humio.com/free-ebook-distributed-systems-observability/

Slide 20

Slide 20 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 0 どうやってシステムに 可観測性をもたらすか‧

Slide 21

Slide 21 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 1 • メトリクスはCloudWatchにあるが? • ログ基盤くらいならなんとかなりそう • トレースまで全部とる? • イベントって? 全部⾃分たちでやる?

Slide 22

Slide 22 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 2 必要なものを集めるだけでは 可観測性を もたらすことはできない

Slide 23

Slide 23 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 3 必要なものを集めるだけでは 可観測性を もたらすことはできない 「監視は事前に決めておいた項⽬を 測定するもので、 可観測性とはシステムに関して知らないことを 尋ねることができる機能です。」 by Uber Technologies

Slide 24

Slide 24 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 4 ⾃分たちだけでやるのは 限界がある とはいえ

Slide 25

Slide 25 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 5 選ばれたのは

Slide 26

Slide 26 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 6 • 可観測性プラットフォームを提供 • 2018年から⽇本法⼈ができてる • 最近だとISUCONのスポンサーしてた New Relic

Slide 27

Slide 27 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 7 • APM(アプリケーションパフォーマンス管理)の み利⽤ • ホスト単位の課⾦のため⼀部サーバーのみ展開 • 負荷が⾼いときの調査ツールの⼀つ これまでのBASEでのNewRelic

Slide 28

Slide 28 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 8 New Relicが提供しているソリューション New RelicΑΓఏڙ

Slide 29

Slide 29 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 2 9 • APM(サーバーアプリのモニタリング) • INFRASTRUCTURE(AWSやGCPなどのインフラ) • LOGS(ログ管理基盤) • BROWSER(フロントエンドのモニタリング) • MOBILE(iOS/Androidアプリのモニタリング) • SYNTHEICS(外形モニタリング) 実はたくさん製品がある

Slide 30

Slide 30 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 0 • APM(サーバーアプリのモニタリング) • INFRASTRUCTURE(AWSやGCPなどのインフラ) • LOGS(ログ管理基盤) • BROWSER(フロントエンドのモニタリング) • MOBILE(iOS/Androidアプリのモニタリング) • SYNTHEICS(外形モニタリング) 実はたくさん製品がある これらをまとめて ダッシュボードに可視化できる 「New Relic One」があるよ

Slide 31

Slide 31 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 1 • アプリケーションパフォーマンス管理 • Agentをサーバーにインストール • コンテナの場合はSidecarで • どのURLが負荷になっているか分かる • その中のどの関数が重いかもわかる • まずはこれが最初に⾒る New Relic APM

Slide 32

Slide 32 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 2

Slide 33

Slide 33 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 3 Overview おおまかに何が処理時間を 占めているか⾒る

Slide 34

Slide 34 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 4 テキストテキスト Transactions どこが重そうかわかる

Slide 35

Slide 35 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 5 テキストテキスト Transactions Trace スタックトレースで 具体的に何が重いか分析していく

Slide 36

Slide 36 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 6 テキストテキスト APM Database どのクエリが 負荷かかってるのか分析

Slide 37

Slide 37 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 7 • デプロイをイベントとして記録できる • デプロイ時curl等でNew Relic APIを叩く • どの変更タイミングからパフォーマンスが変わったの かを追いやすくなる • デプロイだけじゃなくインフラの変更も記録しておく Deployments

Slide 38

Slide 38 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 8 テキストテキスト Deployments 変化を観測

Slide 39

Slide 39 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 3 9 • サーバーアプリケーションのパフォーマンス • DB処理、外部APIが重い、などの分析 • Deploymentsによる変更の差分観測 • バッチアプリケーションの場合は⼀⼯夫必要 • PHP⽤のAgentがちょっと重い…? APMで観測できること

Slide 40

Slide 40 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 0 • AWSやGCP、オンプレのインフラ監視 • APMと併⽤してサーバーをモニタリング • 最近k 8 s Agentも出来た New Relic INFRASTRUCTURE

Slide 41

Slide 41 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 1 テキストテキスト メトリクスを モニタリング

Slide 42

Slide 42 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 2 テキストテキスト マネージドサービスの統合 New Relic提供 IAM渡すだけで 統合できる

Slide 43

Slide 43 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 3 • インフラリソースの監視 • アプリとの負荷の相関を観測できる • 脆弱性のあるパッケージも⾒つけられる • CloudWatchより個⼈的に⾒やすい • CloudWatchメトリクスを使うので多少AWS側 にコストがかかる INFRASTRUCTUREで観測できること

Slide 44

Slide 44 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 4 • Log管理 • ⼤体kibana + ES • 各種ログを全部突っ込む • 検索が速い • TraceIdを埋め込むことでLBやサービス間のログが繋がり⼀気通 貫で検索することができる • マイクロサービスの分散トレーシングがログでも出来る New Relic LOGS

Slide 45

Slide 45 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 5 テキストテキスト Logs Overview

Slide 46

Slide 46 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 6 テキストテキスト Logs Overview Logを検索できる

Slide 47

Slide 47 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 7 テキストテキスト Logの横断 Deadlockの検索

Slide 48

Slide 48 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 8 テキストテキスト Logの横断 traceidで横断検索

Slide 49

Slide 49 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 4 9 テキストテキスト Logの横断 同じtraceidの別アプリ のログが⾒つかる。 リクエストパラメータで 原因を追えた。

Slide 50

Slide 50 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 0 • とりあえずログを放り投げるといい感じに検索できる • fluentdのpluginがあるのでES+kibana対応してるとこなら簡単 • BASEではfluentdの負荷が⾼くなったのでfluent-bitに変更した • フルに使うにはPHPアプリ側で対応がいるがmonolog • Traceidによる横断検索はめちゃ便利、APMとも連携できる LOGSで観測出来ること

Slide 51

Slide 51 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 1 • フロントエンドのモニタリング • JSのエラートラッキング • First Contentful Paint やFirst Paint • 重いAPI呼び出し検知、SPAアプリケーショ ン対応もされている New Relic BROWSER

Slide 52

Slide 52 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 2 テキストテキスト BROWSER Overview

Slide 53

Slide 53 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 3 テキストテキスト BROWSER Overview ⼤体APMと⼀緒

Slide 54

Slide 54 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 4 テキストテキスト レンダリングまでの traceが追える

Slide 55

Slide 55 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 5 テキストテキスト API呼び出しのエラー などを観測できる

Slide 56

Slide 56 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 6 • フロントエンドのパフォーマンスモニタリング • ユーザーが実際に体験しているスピードのモニタリングをす ることができる • セッショントレースによるボトルネックの可視化 • APMと連携しフロントエンドとバックエンドのパフォーマ ンスの相関をすぐに確認することができる • 地域別レポートが作れるのでグローバルプロダクトにも有⽤ BROWSERで観測出来ること

Slide 57

Slide 57 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 7 • iOS/Androidアプリケーションのモニタリング • クラッシュリポーティング • セッション数などの分析もできそう • BASEではまだ未検証のため割愛‧ New Relic MOBILE

Slide 58

Slide 58 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 8 • 外形モニタリング • ページ叩いて200返ってくるか? • 世界各所から検証できるので特定地域にお ける問題を検知可能になる • スクリプトを書くことでE 2 E的な事も New Relic SYNTHEICS

Slide 59

Slide 59 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 5 9 テキストテキスト SYNTHEICS Overview 地域単位で監視できる

Slide 60

Slide 60 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 0 テキストテキスト Scripted Browser SeleniumJSで ⼀連の操作を書いて監視できる

Slide 61

Slide 61 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 1 • アプリケーションの死活監視をモニタリング • status: 2 0 0 かどうかだけではない • ECで⾔えばカートに⼊って購⼊出来るまでが 正常系 • 欲を⾔えばpuppeteerで書きたい… SYNTHEICSで観測出来ること

Slide 62

Slide 62 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 2 • 今までのプロダクトをひとまとめにしたプラットフォーム • 開発者はOneにアクセスすることで⾃分たちのアプリケー ションのどこで何が起きてるかを観測することができる • 各種メトリクスやイベント、トレースなどをダッシュボー ドにすることで⼀覧化 New Relic One

Slide 63

Slide 63 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 3 • Oneを使いこなすために⾮常に重要な機能 • NRQRというクエリ⾔語を使うことでNew Relicのデータのクエリが出来る • ⼤体SQLっぽい感じ NRQL

Slide 64

Slide 64 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 4 テキストテキスト NRQLでチャート可視化 書いたクエリで グラフが出来る

Slide 65

Slide 65 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 5 テキストテキスト Dashboard 開発者毎に⾃分の ダッシュボードを作れる

Slide 66

Slide 66 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 6 • メトリックやトレースなどから⾃分が⾒たいものだけを 抽出する出来る • 慣れたクエリ⾔語で書く事ができる • 開発者それぞれの関⼼事は異なるので⾃分専⽤の ダッシュボードを作る事ができる • 開発者それぞれがオブザーバビリティエンジニアになる New Relic Oneでもたらされる価値

Slide 67

Slide 67 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 7 • SREやインフラに明るい⼈がだけが使うツールだった • インフラへの関⼼が薄まる • アプリケーションのモニタリングに意識が回らない • まずはNew Relicを⾒るだけで全体は⾒渡すことが出来る • 新⼊社員がサービス構成要素の把握にちょうどいいかも‧ • 売上などの数値を投⼊する事もできるのでビズチームとのコミュ ニケーションツールになるかも‧ CTOという⽬線から⾒たNew Relic

Slide 68

Slide 68 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 8 • 従来はプロダクト毎にホスト数課⾦だったりログ量課⾦だったり   分かりづらかった • 8⽉から料⾦体系が変更に • 1開発者毎のライセンス、機能はフルで使える(そこそこする) • +メトリクスのストレージコスト(安い) • ホスト数単位じゃないので開発環境などにも使えて最⾼ • その代わりライセンスを付与したメンバーにちゃんと使ってもらわな いと無駄になるので投資の覚悟が必要かも • 詳しくは公式サイトで 気になるお値段は…?

Slide 69

Slide 69 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 6 9 • エンジニアはコードをリリースしてビジネスに価値提供していく 必要がある • そのために打席に⽴つ回数を上げる必要がある • 不安なリリースするのはスピードが出ない===価値提供出来ない • 可観測性のあるアプリケーションであれば異常にいち早く気付 ける • New Relicを使いこなすのが⽬的にしない、武器の⼀つにする 可観測性による本当の価値

Slide 70

Slide 70 text

© ︎ 2 0 1 2 - 2 0 2 0 BASE, Inc. 7 0 可観測性のあるアプリケーションに していきたい開発者を積極募集中です! https://binc.jp/jobs というわけで