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

171
-1

Published on

https://atnd.org/events/74772

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
171
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  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と上手く付き合っていくには? • できること・できないことを理解することが大切 • その中で今までやれなかったことを実現して、 便利にしていくのが最適解かと思います

×