Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

さくらインターネットベアメタル自動化への挑戦

3,346 views

Published on

https://atnd.org/events/74772

Published in: Internet

さくらインターネットベアメタル自動化への挑戦

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

×