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

SaaS WITH Infrastructure

SaaS WITH Infrastructure

インフラ系SaaSカジュアルトーク at IPROS 〜 New RelicやDatadog, Twillioなどを利用したインフラ運用ノウハウ大公開!〜 - IPROS Tech Meetup | Doorkeeper https://iprostm.doorkeeper.jp/events/25664

Toyama Hiroshi

June 26, 2015
Tweet

More Decks by Toyama Hiroshi

Other Decks in Technology

Transcript

  1. SaaS with
    Infrastructure
    インフラ系SaaS
    勉強会

    View Slide

  2. View Slide

  3. アジェンダ
    何故SaaS
    を使うのか
    使ってるSaaS
    IPROS
    の監視方法
    まとめ

    View Slide

  4. 何故SaaS

    使うのか

    View Slide

  5. 何故SaaS
    を使うのか
    インフラにおけるモニタリングや通知はサー
    ビスにおけ
    る本質の部分ではない
    サー
    バー
    を極力自ら持ちたくない
    欲しい時に欲しいだけリソー
    スを調達
    人的リソー
    スの削減

    View Slide

  6. 何故SaaS
    を使うのか2
    洗練されたAPI
    プロが運用するセキュリティ
    良質なサー
    ビスの激しい価格競争

    View Slide

  7. IPROS
    の開発は
    インフラエンジニアが1
    人もいない
    サー
    バー
    は全てAWS
    使っているSaaS
    は100
    以上。。

    View Slide

  8. SaaS
    における問題点
    アカウント管理
    サー
    ビスによっては不安定なSLA
    低レイヤー
    のチュー
    ニング

    View Slide

  9. インフラ
    エンジニア
    は死んだ?

    View Slide

  10. 死んでません!
    ただ求められるスキルは変わ
    ってきています

    View Slide

  11. ひとむかしのはなし
    1.
    デー
    タセンター
    を自分で持つ
    2.
    ラックサー
    バを買い設置
    3.
    ネットワー
    ク敷設
    4. OS
    をインストー

    5. shell script
    でProvisioning

    View Slide

  12. うっ、
    頭痛が。。

    View Slide

  13. 最近の傾向
    何をするにもコー
    ドが必要
    マシンイメー
    ジをベー
    スに必要な部分だけ構築
    洗練されたAPI
    Chef、Ansible
    などによるprovision
    サー
    バー
    の「
    使い捨て」

    View Slide

  14. 必要なスキルの変化
    cloud
    を使いこなすスキル
    洗練されたOSS
    を使いこなすスキル
    コー
    ドを書くスキル
    Cloud
    側が提供するAPI
    を把握するスキル

    View Slide

  15. 使ってるSaaS

    View Slide

  16. Infra
    で使っているSaaS
    NewRelic
    Pingdom
    Leftronic
    Twilio
    Hipchat

    View Slide

  17. View Slide

  18. NewRelic
    一番メジャー
    なモニタリングサー
    ビス
    から登録するとstandard PLAN
    を無料で使える
    レスポンスタイムやスロー
    クエリなど,
    パフォー
    マンス
    に関するさまざまな統計情報
    http://newrelic.com/aws

    View Slide

  19. NewRelic
    いいところ
    設定がほとんどないと言っていいほど簡単
    インフラ的な側面だけではなく、
    アプリケー
    ションやブ
    ラウザも含めた統合的なボトルネックが把握しやすい
    Rails
    の場合Controller
    別のレスポンスタイムの表示は秀

    smartphone
    アプリも良く出来ている
    smartphone
    にpush
    通知出来る

    View Slide

  20. NewRelic
    だめなところ
    有料プランの価格が高すぎる
    有料プランの価格
    LITE:Free
    PRO:$149/mo.per host
    ENTERPRISE:Call

    View Slide

  21. View Slide

  22. Pingdom
    URL
    監視サー
    ビス
    世界各地にある複数の監視サー
    バー
    から監視する
    異常を検知した場合は、
    あらかじめ指定したEmail
    アドレ
    スや携帯電話(SMS)
    にアラー
    トを通知。
    Webhook
    による通知。
    監視間隔(
    分)、
    異常を検知してからアラー
    ト通知するまで
    の時間(
    分)、
    異常を検知した場合のリピー
    ト通知間隔(

    数)。
    レスポンスタイム計測機能

    View Slide

  23. Pingdom
    いいところ
    外部からの監視なので、
    客観的な監視が出来る
    監視対象となるサー
    バー
    側の設定(Agent
    等)
    が不要
    レスポンスタイムやトランザクション監視
    2000
    円~
    と価格が安い

    View Slide

  24. View Slide

  25. Pingdom
    ダメなところ
    Twitter
    のDM
    とSMS
    くらいしか連携できない。
    Hipchat
    やSlack
    と連携したい場合はWebhook
    を作る必要
    がある。
    API
    が少し煩雑
    中国などネットワー
    ク環境が劣悪だとサー
    バー
    が生きて
    いてもエラー
    になったりする

    View Slide

  26. View Slide

  27. Leftronic
    可視化サー
    ビス
    大型スクリー
    ン用で見るダッシュボー
    ドを想定している
    ダッシュボー
    ドとして必要な機能を全て備えている
    Google Analytics、Twitter、Chartbeat、Mixpanel、
    Zendesk
    など各種サー
    ビスと連携可能
    レイアウトをドラッグ&
    ドロップだけでカスタマイズ出
    来る
    背景が黒い!

    View Slide

  28. View Slide

  29. Leftronic
    いいところ
    開発不要で綺麗なダッシュボー
    ドが作れる
    連携できるデー
    タソー
    スが豊富
    グラフの種類が豊富
    API
    もシンプル
    ダッシュボー
    ドのロー
    テー
    ション機能が便利

    View Slide

  30. View Slide

  31. View Slide

  32. Leftronic
    ダメなところ
    特になし

    View Slide

  33. Leftronic
    のPush API
    c
    u
    r
    l -
    i -
    X P
    O
    S
    T -
    k -
    d \
    '
    {
    "
    a
    c
    c
    e
    s
    s
    K
    e
    y
    "
    : "
    y
    o
    u
    r
    A
    c
    c
    e
    s
    s
    K
    e
    y
    "
    , \
    "
    s
    t
    r
    e
    a
    m
    N
    a
    m
    e
    "
    : "
    y
    o
    u
    r
    S
    t
    r
    e
    a
    m
    N
    a
    m
    e
    "
    , "
    p
    o
    i
    n
    t
    "
    : 1
    0
    0
    }
    ' \
    h
    t
    t
    p
    s
    :
    /
    /
    w
    w
    w
    .
    l
    e
    f
    t
    r
    o
    n
    i
    c
    .
    c
    o
    m
    /
    c
    u
    s
    t
    o
    m
    S
    e
    n
    d
    /

    View Slide

  34. Leftronic
    のPull API
    {
    "
    n
    u
    m
    b
    e
    r
    "
    : 1
    0
    0
    }

    のようなデー
    タを返すURL
    だけあればいい。
    ベー
    シック認証機能
    polling interval
    を設定可能

    View Slide

  35. View Slide

  36. Twilio
    電話API
    サー
    ビス
    Web API
    になっており電話を掛けることも受けることも
    出来る
    TwiML
    というXML
    言語で設定を記述する
    電話を受けた際には、
    相手の電話番号や国、
    通話時間な
    どがパラメー
    タとして受け取れる

    View Slide

  37. Twilio
    の主なユー
    スケー

    コー
    ルセンター
    電話受信のトラッキング
    通知

    View Slide

  38. Twilio
    いいところ
    各種言語のライブラリが豊富でコー
    ドが書きやすい
    電話という通知が気軽にできる
    応用範囲が広い

    View Slide

  39. Twilio
    ダメなところ
    日本語の発音がかなりおかしい
    WEB API
    なので受ける場合はEndpoint
    が必要
    掛ける場合はtwimlets
    というサー
    ビスがEndpoint
    を肩
    代わりしてくれる

    View Slide

  40. TwiML
    <
    ?
    x
    m
    l v
    e
    r
    s
    i
    o
    n
    =
    "
    1
    .
    0
    " e
    n
    c
    o
    d
    i
    n
    g
    =
    "
    U
    T
    F
    -
    8
    "
    ?
    >
    <
    R
    e
    s
    p
    o
    n
    s
    e
    >
    <
    S
    a
    y v
    o
    i
    c
    e
    =
    "
    w
    o
    m
    a
    n
    " l
    a
    n
    g
    u
    a
    g
    e
    =
    "
    j
    a
    -
    j
    p
    "
    >
    障害が発生しました<
    /
    S
    a
    y
    <
    /
    R
    e
    s
    p
    o
    n
    s
    e
    >
    fluent-plugin-twilio
    を使えば面倒な設定はほぼ不要(
    後述)

    View Slide

  41. IPROS

    監視方法

    View Slide

  42. 通知元
    Fluentd
    Zabbix
    NewRelic
    Pingdom

    View Slide

  43. 通知先
    Hipchat
    Twilio

    View Slide

  44. View Slide

  45. Fluentd
    アプリのロギングはfluent-logger
    経由でFluentd
    に集約
    fluent-logger-java, fluent-logger-ruby
    などライブラリで
    ロギング
    Zabbix
    での通知もあるが、
    徐々
    にフェー
    ドアウトし
    Fluentd
    に移植中

    View Slide

  46. 通知ランクB
    Hipchat

    View Slide

  47. View Slide

  48. 通知ランクB(Hipchat)
    NewRelic
    サー
    バー
    障害
    Rails
    のError Rate 5%
    以上
    Pingdom
    サイトが1
    分以上応答がない
    heroku
    へのWEBHOOK
    経由で通知
    Fluentd
    Batch
    でERROR
    以上が発生した場合、fluent-plugin-
    hipchat
    で運用メンバー
    に通知

    View Slide

  49. 通知ランクA
    Twilio

    View Slide

  50. View Slide

  51. 通知ランクA(Twilio)
    NewRelic
    サー
    バー
    障害(10
    分以上応答がない)
    heroku
    へのWEBHOOK
    経由で架電
    Pingdom
    サイトが5
    分以上応答がない
    heroku
    へのWEBHOOK
    経由で通知
    Fluentd
    Batch
    でFATAL
    が発生した場合、fluent-plugin-twilio

    運用メンバー
    に通知

    View Slide

  52. まとめ

    View Slide

  53. まとめ
    便利SaaS
    多すぎて戦国時代
    コー
    ド書けたほうが圧倒的に通知システム作りやすい
    IPROS
    はSaaS
    とOSS
    を組み合わせた通知システム

    View Slide

  54. Hiring

    View Slide

  55. View Slide

  56. 興味ある方は
    イプロスエンジニア採用サイト
    で検索!

    View Slide

  57. ありがとう
    ございました

    View Slide