狠狠撸

狠狠撸Share a Scribd company logo
(C)Copyright 1996-2016 SAKURA Internet Inc.
さくらインターネットのベアメタル自動化への挑戦
さくらインターネット株式会社
プラットフォーム事業部 インフラ開発チーム
伊東 宏起
2016年3月4日
自己紹介
? 伊東 宏起
– 2015年4月 新卒採用にて入社
? プラットフォーム事業部 インフラ開発チーム
– さくらのVPS開発担当
? 物理からミドルウェア辺りまでの検証?開発が主な業務
? ベアメタルプランの開発主担当
– JANOG37 プログラム委員
– @_nihi
– https://www.facebook.com/hiroki.ito.1990
さくらのVPS ベアメタルプランリリース!
さくらのベアメタルの特徴 (1)
? 自動プロビジョニングシステムの開発
– kickstart / preseed を動的に生成して実現
? PXE Server の config とひも付け
– ユーザーの設定
? 管理者パスワード
– 最低限のパッケージのインストール
– ネットワークの設定
? NIC の Mac address の書き換え
– 9C-A3-BA OUI はさくらインターネット独自だったり
? OS のグローバル IP などなどの設定
集約スイッチ
アクセススイッチ
ベアメタルサーバ
さくらのベアメタルの特徴 (2)
集約スイッチ
アクセススイッチ
ベアメタルサーバ
ホワイトボックススイッチを
使ってます
さくらのベアメタルの特徴 (2)
ホワイトボックススイッチ (WBSW) 使ってる?
? 国内での WBSW の議論まだまだ盛んじゃない
– そもそもサービスで利用している事業者が少ない
? 弊社でも利用は初めてで、まさに五里霧中
– だったらまずは自分たちで発信してみよう
? WBSW のカスタマイズについて
? 自動化にどうやって活かしたのか
WBSW のカスタマイズ
? WBSW のカスタマイズというと…
– SDK を利用して ASIC の処理を実装?
? これはやっていません
– じゃあなにやったの?
? WBSW 用 OS のユーザランド上で、
自前で REST API サーバを実装
? Jenkins + Serverspec を利用して、
セットアップスクリプトの CI
? 全体像
WBSW のカスタマイズ – REST API サーバ編
WBSW
WBSW 用 OS
Python + Flask 製
REST API サーバ
WBSW のカスタマイズ – REST API サーバ編
? REST API を使ってなにしてるの?
– 各ポートの情報の取得や変更
? ポートのリンク状態
? RX/TX の各カウント
? access VLAN ID
? policing の帯域
? IP/MAC address spoofing 対策用ホワイトリスト
? 通信断制御の ON/OFF
WBSW のカスタマイズ – REST API サーバ編
? REST API をどんなときに使うの?
– access VLAN の変更
– policing の帯域変更
? お試し期間時の帯域制限
– IP/MAC address spoofing 対策用ホワイトリスト
? ユーザの再収容時に変更
– 通信断制御の ON/OFF
? 不正利用時などにON!
WBSW のカスタマイズ – REST API サーバ編
? REST API だと何が嬉しい?
? 前項で紹介した様な制御がとても楽になった
– before: ssh 越しに内部コマンドを頑張ってポチポチ…
– after: 任意のエンドポイントを叩くだけ!
? チーム毎のフロントツールが容易に実装できた
– NW管理者/サーバ管理者では観点が違う
– 必要なエンドポイントが足りなければ
継ぎ足して実装すればOK
WBSW のカスタマイズ – REST API サーバ編
? ハマりどころ (1)
? サーバと同じ感覚で扱うとリソースが枯渇する
WBSW のカスタマイズ – REST API サーバ編
? ハマりどころ (1)
? サーバと同じ感覚で扱うとリソースが枯渇する
– 検証機で virtualenv で環境構築
ライブラリとソースだけ抽出して Ansible で配布
検証機
本番機
本番機
本番機
最低減必要な
ものだけを抽出
WBSW のカスタマイズ – REST API サーバ編
? ハマりどころ (2)
? リクエストの取りこぼしの危険性がある
– Gunicom 入れるとリソースが足りない…
WBSW のカスタマイズ – REST API サーバ編
? ハマりどころ (2)
? リクエストの取りこぼしの危険性がある
– Gunicom 入れるとリソースが足りない…
– RabbitMQ を前面に置いて、リクエストの管理
本番機
本番機
本番機
Client
Client
Client
WBSW のカスタマイズ – Jenkins + Serverspec 編
? Jenkins + Serverspec のよくある使い方
– セットアップスクリプトのテスト
– 今までサーバでやってきたことが違和感なく
同じようにやれることが大きい
テスト機
まとめ
? WBSWと上手く付き合っていくには?
? できること?できないことを理解することが大切
? その中で今までやれなかったことを実現して、
便利にしていくのが最適解かと思います

More Related Content

さくらインターネットヘ?アメタル自动化への挑戦

  • 1. (C)Copyright 1996-2016 SAKURA Internet Inc. さくらインターネットのベアメタル自動化への挑戦 さくらインターネット株式会社 プラットフォーム事業部 インフラ開発チーム 伊東 宏起 2016年3月4日
  • 2. 自己紹介 ? 伊東 宏起 – 2015年4月 新卒採用にて入社 ? プラットフォーム事業部 インフラ開発チーム – さくらのVPS開発担当 ? 物理からミドルウェア辺りまでの検証?開発が主な業務 ? ベアメタルプランの開発主担当 – JANOG37 プログラム委員 – @_nihi – https://www.facebook.com/hiroki.ito.1990
  • 4. さくらのベアメタルの特徴 (1) ? 自動プロビジョニングシステムの開発 – kickstart / preseed を動的に生成して実現 ? PXE Server の config とひも付け – ユーザーの設定 ? 管理者パスワード – 最低限のパッケージのインストール – ネットワークの設定 ? NIC の Mac address の書き換え – 9C-A3-BA OUI はさくらインターネット独自だったり ? OS のグローバル IP などなどの設定
  • 7. ホワイトボックススイッチ (WBSW) 使ってる? ? 国内での WBSW の議論まだまだ盛んじゃない – そもそもサービスで利用している事業者が少ない ? 弊社でも利用は初めてで、まさに五里霧中 – だったらまずは自分たちで発信してみよう ? WBSW のカスタマイズについて ? 自動化にどうやって活かしたのか
  • 8. WBSW のカスタマイズ ? WBSW のカスタマイズというと… – SDK を利用して ASIC の処理を実装? ? これはやっていません – じゃあなにやったの? ? WBSW 用 OS のユーザランド上で、 自前で REST API サーバを実装 ? Jenkins + Serverspec を利用して、 セットアップスクリプトの CI
  • 9. ? 全体像 WBSW のカスタマイズ – REST API サーバ編 WBSW WBSW 用 OS Python + Flask 製 REST API サーバ
  • 10. WBSW のカスタマイズ – REST API サーバ編 ? REST API を使ってなにしてるの? – 各ポートの情報の取得や変更 ? ポートのリンク状態 ? RX/TX の各カウント ? access VLAN ID ? policing の帯域 ? IP/MAC address spoofing 対策用ホワイトリスト ? 通信断制御の ON/OFF
  • 11. WBSW のカスタマイズ – REST API サーバ編 ? REST API をどんなときに使うの? – access VLAN の変更 – policing の帯域変更 ? お試し期間時の帯域制限 – IP/MAC address spoofing 対策用ホワイトリスト ? ユーザの再収容時に変更 – 通信断制御の ON/OFF ? 不正利用時などにON!
  • 12. WBSW のカスタマイズ – REST API サーバ編 ? REST API だと何が嬉しい? ? 前項で紹介した様な制御がとても楽になった – before: ssh 越しに内部コマンドを頑張ってポチポチ… – after: 任意のエンドポイントを叩くだけ! ? チーム毎のフロントツールが容易に実装できた – NW管理者/サーバ管理者では観点が違う – 必要なエンドポイントが足りなければ 継ぎ足して実装すればOK
  • 13. WBSW のカスタマイズ – REST API サーバ編 ? ハマりどころ (1) ? サーバと同じ感覚で扱うとリソースが枯渇する
  • 14. WBSW のカスタマイズ – REST API サーバ編 ? ハマりどころ (1) ? サーバと同じ感覚で扱うとリソースが枯渇する – 検証機で virtualenv で環境構築 ライブラリとソースだけ抽出して Ansible で配布 検証機 本番機 本番機 本番機 最低減必要な ものだけを抽出
  • 15. WBSW のカスタマイズ – REST API サーバ編 ? ハマりどころ (2) ? リクエストの取りこぼしの危険性がある – Gunicom 入れるとリソースが足りない…
  • 16. WBSW のカスタマイズ – REST API サーバ編 ? ハマりどころ (2) ? リクエストの取りこぼしの危険性がある – Gunicom 入れるとリソースが足りない… – RabbitMQ を前面に置いて、リクエストの管理 本番機 本番機 本番機 Client Client Client
  • 17. WBSW のカスタマイズ – Jenkins + Serverspec 編 ? Jenkins + Serverspec のよくある使い方 – セットアップスクリプトのテスト – 今までサーバでやってきたことが違和感なく 同じようにやれることが大きい テスト機
  • 18. まとめ ? WBSWと上手く付き合っていくには? ? できること?できないことを理解することが大切 ? その中で今までやれなかったことを実現して、 便利にしていくのが最適解かと思います