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

ホスティング事業におけるSREの取り組みとSREの面白さ/SRE Efforts in the Hosting Business and the Interest of SRE

ホスティング事業におけるSREの取り組みとSREの面白さ/SRE Efforts in the Hosting Business and the Interest of SRE

Pepabo tech conference #20

Takuma Kume

April 14, 2023
Tweet

More Decks by Takuma Kume

Other Decks in Technology

Transcript

  1. ホスティング事業における
    SREの取り組みと面白さ
    久米拓馬 / GMO PEPABO inc.
    2023.4.14 Pepabo Tech Conference #20 春のSREまつり
    1

    View Slide

  2. 2
    自己紹介
    ホスティング事業部 SREチーム シニアエンジニア
    2016年 中途入社
    久米拓馬 @takumakume
    ● Webアプリケーションプラットフォームの開発・
    運用
    ● Kubernetes / Cloudnative
    ● 信頼性と生産性のバランスを取る
    ● 子育てと感染症対策

    View Slide

  3. 3
    本セッションでお話すること
    ● ホスティング事業部におけるSREの領域
    ● SREの取り組み
    ● 現状の課題と今後
    ● ホスティング事業部におけるSREの面白さ

    View Slide

  4. 4
    本セッションでお話すること
    ● ホスティング事業部におけるSREの領域
    ● SREの取り組み
    ● 現状の課題と今後
    ● ホスティング事業部におけるSREの面白さ
    ホスティングSREの仕事の全体像がイメージできる
    セッションにしたいと思っています!

    View Slide

  5. ホスティング事業部における
    SREの面白さ
    • 世にないアーキテクチャを生み出す面白さ
    • ホスティングはコストを抑えつつ大量の Webサイトを運用するというニッチな領域
    • 前例のないミドルウェアやアーキテクチャを生み出すチャレンジングな仕事
    • 幅広い技術を取り扱うことの面白さ
    • ホスティングは一般的な Webアプリケーションと異なり、数百人で 1台のサーバを共有するマルチ
    テナントアーキテクチャのため Linux Kernelなどの低レイヤの技術も必要
    • WebアプリやKubernetesを始めとしたプラットフォームの運用
    • オンプレのBaremetal Server、プライベートクラウド、パブリッククラウドの使用
    • 様々な技術スタックに触れることができるためエンジニアとしての成長機会が多い
    5

    View Slide

  6. ホスティング事業部に
    おけるSREの領域

    View Slide

  7. ホスティング事業部における
    SREの領域
    7
    ペパボのサービス

    View Slide

  8. ホスティング事業部における
    SREの領域
    8
    ホスティング事業部のサービス

    View Slide

  9. ホスティング事業部における
    SREの領域
    9
    • Webホスティング
    • データベース
    • メール
    • ドメイン
    • DNS
    主な機能

    View Slide

  10. ホスティング事業部における
    SREの領域
    10
    規模
    Web site
    250万+
    Traffic
    18Gbps+
    Baremetal
    1000+
    VM
    500+

    View Slide

  11. ホスティング事業部における
    SREの領域
    11
    技術スタック
    ref https://tech.pepabo.com/tech-stack/hosting/
    SREの領域

    View Slide

  12. ホスティング事業部における
    SREの領域
    12
    ホスティングサービスの全体像
    プライベートクラウド( OpenStack)
    Kubernetes
    Web Apps
    (サービスサイト、
    コントロールパネル 等) ユーザ向けホスティングサーバ
    (Web、DB 等)
    Baremetal Baremetal

    View Slide

  13. ホスティング事業部における
    SREの領域
    13
    ホスティングサービスの全体像
    プライベートクラウド( OpenStack)
    Kubernetes
    Web Apps
    (サービスサイト、
    コントロールパネル 等) ユーザ向けホスティングサーバ
    (Web、DB 等)
    Baremetal
    ホスティング事業部のSREの領域
    Baremetal

    View Slide

  14. ホスティング事業部における
    SREの領域
    14
    • Baremetal Serverの運用
    • ホスティングインフラプラットフォームの開発・運用
    • Webアプリケーションプラットフォームの開発・運用
    • プロダクトの安定性や信頼性向上のためのモニタリングと改善
    • 各種オペレーションの自動化
    • SRE文化の醸成、各チームへの展開
    SREの仕事

    View Slide

  15. ホスティング事業部における
    SREの領域
    15
    ホスティングインフラプラットフォームの開発・運用
    • サーバの構成管理(IaC)
    • ユーザーのオーダーからホスティング環境のプロビジョニングを行う
    API
    • マルチテナントホスティングサーバのセキュリティ担保
    • 新機能や技術課題を解決するためのアーキテクトやミドルウェア等の開発

    View Slide

  16. ホスティング事業部における
    SREの領域
    16
    Webアプリケーションプラットフォームの開発・運用
    • Kubernetesクラスタの運用
    • アプリケーションのコンテナライズ
    • 開発環境の整備
    • CI/CDパイプラインの構築

    View Slide

  17. ホスティング事業部における
    SREの領域
    17
    プロダクトの安定性や信頼性向上のためのモニタリングと改善
    • PrometheusやGrafana等を用いた可観測性の向上
    • SLI/SLOの策定、運用
    • パフォーマンス改善、可用性の向上

    View Slide

  18. SREの取り組み

    View Slide

  19. SREの取り組み
    19
    Web Server Web Server Web Server
    API
    Control
    Panel
    FTP Proxy SSH Proxy
    Reverse
    Proxy

    a.jp
    b.jp
    c.jp z.jp
    全体像
    ユーザーからのオーダーを受け取り
    Web Server にセットアップ
    FTPアクセスを制御 SSHアクセスを制御
    TLS終端
    キャッシュ、フィルタリングルールの実行
    HTTPアクセスを制御
    500+
    250万+

    View Slide

  20. SREの取り組み
    20
    大量のドメインに対するリクエストハンドリング
    • 課題
    • リバースプロキシは大量のドメインに対して以下の要件を満たさなければならない。
    • コンテンツをホストしているWebサーバを選択してリクエストを転送する
    • キャッシュやフィルタリングのルールを適用する
    • TLS終端を行う
    • リソースの観点で静的な設定をリバースプロキシに適用することができない。
    • メモリが枯渇する
    • 解決方法
    • matsumotory/ngx_mruby を用いて、動的にリクエストをハンドリングしている

    View Slide

  21. SREの取り組み
    21
    Web Server Web Server Web Server
    Reverse
    Proxy

    a.jp
    b.jp
    c.jp z.jp
    大量のドメインに対するリクエストハンドリング
    へアクセス
    Database
    ngx_mruby
    a.jp
    Databaseから取得したデータを元にハンドリング
    - TLS終端
    - キャッシュ、フィルタリングルールの実行
    - Web Serverへプロキシ
    以下の情報をDatabaseから取得
    - TLS証明書
    - キャッシュやフィルタリングルール
    - Web Server ホスト

    View Slide

  22. SREの取り組み
    22
    大量のドメインに対するリクエストハンドリング
    https://speakerdeck.com/takumakume/2-million-more-than-the-domain-the-back-of-the-rental-server-content-cache

    View Slide

  23. SREの取り組み
    23
    大量のドメインに対するリクエストハンドリング
    https://rand.pepabo.com/article/2017/06/16/iot37-matsumotory/ (スライド、論文)

    View Slide

  24. SREの取り組み
    24
    動的なSSH/FTPのハンドリング
    • 課題
    • サーバの収容変更をしたときに、 SSH/FTPのエンドポイントが変わってしまい不便。
    • 解決方法
    • 以下のソフトウェアを用いて動的に接続先を決定している
    • SSH: tsurubee/sshr
    • FTP: pyama86/pftp

    View Slide

  25. SREの取り組み
    25
    Web Server Web Server Web Server
    FTP Proxy
    SSH Proxy

    a.jp
    b.jp
    c.jp z.jp
    動的なSSH/FTPのハンドリング
    へアクセス
    Database
    a.jp
    各プロキシミドルウェアは、プロトコルの処理に割って入り、
    動的に転送先を決めている。
    接続元ユーザ名をもとに転送先を取得
    Pluggable
    Hook

    View Slide

  26. SREの取り組み
    26
    動的なFTPのハンドリング
    https://speakerdeck.com/heat1024/gochu-xin-zhe-gagoroutinedetiao-ndaftppurokisi
    https://speakerdeck.com/pyama86/golangdezuo-ruftppurokisisaba

    View Slide

  27. SREの取り組み
    27
    動的なSSHのハンドリング
    https://speakerdeck.com/tsurubee/golangtesshhurokisisahawoshi-zhuang-sita-6ff62aee-12f3-40f5-9e99-f21c5e169d97

    View Slide

  28. SREの取り組み
    28
    各種Webアプリケーションのコンテナ化
    VM + Chef による構成管理から、イミュータブルなコンテナへ
    Kubernetes を始めとしたクラウドネイティブなエコシステムによりアプリケーション開発に集中できるようにする

    View Slide

  29. SREの取り組み
    29
    開発体験の向上
    アプリケーションの動作確認を
    Pull Request毎に自動生成して生産性を上げていく

    View Slide

  30. SREの取り組み
    30
    SLI/SLOの運用
    ホスティング、Webアプリケーション環境それぞれ
    SLI/SLOを策定し運用する

    View Slide

  31. 現状の課題と今後

    View Slide

  32. 現状の課題と今後
    32
    • ユーザ向けサーバ群の可用性向上
    • ハードウェア故障などで一時的なサービス断が発生してしまう
    • 数百円から利用できる安価なホスティングサービスを提供している。コストを抑えつつ可用性が
    高いアーキテクチャを作る
    • コントロールパネルからのオペレーションを非同期かつ冪等に実装し、アプリケーションとイ
    ンフラ間の不整合が発生しにくいアーキテクチャにする
    • 現状はアプリケーションからインフラへ同期的にオペレーションをするアーキテクチャとなってお
    り、失敗した後の検知とリカバリをしなければ整合性が取れない
    • Kubernetesのアーキテクチャのように、定義した状態に収束する実装にしていく

    View Slide

  33. 現状の課題と今後
    33
    • 可能な限りコンテナ化していく
    • Baremetal Serverに直接OSとアプリケーションをプロビジョニングしている。
    • リソース要求の変更に弱く、ミュータブルなため管理コストが高い。
    • 可観測性を向上させノイジーネイバーに対応する
    • ホスティングサーバはユーザが任意のプログラムを実行することができる。
    • 極論、CPUをぶん回す処理も実行可能。
    • ノイジーネイバーの発生原因を観測し、適切な手段でリソース分離をする技術が必要。

    View Slide

  34. ホスティング事業部における
    SREの面白さ

    View Slide

  35. ホスティング事業部における
    SREの面白さ
    • 世にないアーキテクチャを生み出す面白さ
    • ホスティングはコストを抑えつつ大量の Webサイトを運用するというニッチな領域
    • 前例のないミドルウェアやアーキテクチャを生み出すチャレンジングな仕事
    • 幅広い技術を取り扱うことの面白さ
    • ホスティングは一般的な Webアプリケーションと異なり、数百人で 1台のサーバを共有するマルチ
    テナントアーキテクチャのため Linux Kernelなどの低レイヤの技術も必要
    • WebアプリやKubernetesを始めとしたプラットフォームの運用
    • オンプレのBaremetal Server、プライベートクラウド、パブリッククラウドの使用
    • 様々な技術スタックに触れることができるためエンジニアとしての成長機会
    35
    再掲

    View Slide

  36. 36
    Thank You!
    Thank You!
    GMOペパボのSREに興味がある方は @takumakume までご連絡ください!
    カジュアル面談でもお待ちしております。

    View Slide