JTF2014行ってきた
JTF2014行ってきました。
朝起きれなかったので途中からの参加で、かつ夜仕事があったので途中で帰ったわけですが、とても貴重なお話が聞けました!
箇条書きですが自分がメモったことをざっと書きます。
インフラエンジニアのための次世代プロトコル入門
※ 途中から参加
インフラエンジニアのための次世代プロトコル入門 - July TechFesta 2014
HTTP/2.0
- サーバからpushできる
- 1つのtcp接続で複数の情報をやりとりできる
QUIC
- quick udp internet connections
- udp上に多重化して通信
- googleが現状のinternetで動くプロトコル実装
- TCP/TLSは3RTTセッション確立、再接続は1RTT
- 1RTTでセッション確立、再接続は0RTT(ダイレクトにでデータ送信)
- QUICはやい
- packet pacing (流量調整)
- multi path
- wifi接続から3G接続のように回線が変わっても、セッションid送ることで0RTTで再接続可能
TLS
- v1.3策定中
- ハンドシェイク簡略化を目指す
- 0.5RTTでも早く
ipv6
- AzureのUSリージョンでipv4アドレス枯渇発生
- ipv4-ipv6移行共存技術
- 新サービスはipv6対応で作ると今度楽できるかも
- cloudフレアはipv6対応済み。CDN使うのもあり
ハイパフォーマンスブラウザネットワーキング(本)
- 素晴らしい
まとめ
- いずれ対応するなら事前に準備したほうがいい
- HTTP/2.0はデプロイ間近
Dockerのエンタープライズ開発での活用モデル
資料見つけたらはる。
dockerとは
- google trend 急上昇
- 軽い。使いやすい
- 起動が速い。仮想ハードウェア作詞して起動ではなく、ハードウェア、カーネルは共有してるから速い
- 異なるディストリでもカーネルは共有
- 物理と同じ速度が出る。virtualboxなどの仮想化は遅い
- インストール簡単
- Dockerfileで楽々イメージ作成
- コマンド一つで起動
- 後片付けも簡単
- Docker registry
- どこでも使える。ポータビリティ高い
仕組み
AUFS
- 何層にも重ねられるFS
- readonly-FSの上にwritable-FSを重ねて使用
- 変更のないファイルはベースで共有する
コンテナ仮想化
- namespace
- cgroups
- PID namespace コンテナ側からは他のPIDに見えない干渉できないが、ホストからはコンテナのPIDは別プロセスIDとして見える
- Net namespace hostからはvethという仮想NICとして見える
- cgroup
- プロセスのリソース制御
事例
CIに利用
- docker + jenkins + gitlab でCI
- jenkinsに様々な環境が必要になる
- virtualbox等で分けたのでは重い
- dockerで準備すれば軽くできる
評価環境
- tomcatがまとめて落ちるの困る
- とりあえずdockerで分けた
- 開発者の確認終わるまでコンテナ残す必要がある
- 削除フラグのjob作成していらなくなってから削除
開発環境
- 複数バージョンの保守が必要
- 必要なものを全て入れたイメージ作成して利用
- docker registry利用
- オーバーヘッド少ないのでいい
- 環境消すのも楽
複数拠点でのDB利用
- 海外の複数拠点での同じDB利用
- 東京-上海間でレジストリーサーバの同期
- 東京でpush、上海でpull
- 状況にあったインフラ上で同一環境を作れた
クラウドストレージを自前で構築できる「OpenStack Swift」をPuppetで数百台自動構築して見えた課題と現状のベストプラクティス
openstack swiftとは
- 世界中でエンプラ用途進む
- proxyとstorage
- 故障に備えて複数のレプリカに書き込む(3カ所 or 2カ所書き込みでOK、1カ所だけだとNG返す)
- ディスク故障時には自動復旧
- proxyを増やせばスループット上昇
- storage増やせば容量増える データ3倍保存なので帯域、容量全て食う
利用目的
- スケールアウトしたい
- 長期保存したい(非ベンダー依存)
- 高速、性能重視
- readのほうが速い
- 1ファイルへのアクセス集中に強い
- バックアップ
swift数百台自動構築
- 数百台(6セット)
- 監視サーバ等も必要
- 高水準、少人数
つかったもの
- kickstart
- puppet (理由なし)
- subversion
- pssh
- ipmi
- puppet 自動化、誰でも出来るようにわかりやすく書いた
- 数百台になったとき、puppetマスターが耐えられない可能性
- ローカルデプロイ方式でやった
デプロイ手順
- ipmiで電源on
- kickstart pxeboot
- psshでマニュフェスト配布
- puppetで一斉に実行
- 自動試験
- tempest(openstackの自動試験ツール)を拡張
- +お手製ツールでテスト(serverspecは評価段階だったのでやめ)
- tempestでできないこと
- tempestはapi試験なのでバックグラウンド処理の試験は出来ない
遭遇したトラブル
- 検証環境のファイルを本番にデプロイ
- 別の理由で止めておいたプロセスがpuppetで起動しちゃった
- ファイルでデプロイ出来たが、設定が反映されなかった
- 本番環境へのプロビジョニング運用はもうやめたい!
インフラプロビジョニングベストプラクティス
- イミュータブル
- blue-green deployment
- packer ビルドツール
- 複数クラウド仮想環境に対応
- 開発環境と本番環境の差異を吸収できる
- クラウド環境の移行も楽
- dockerもいい
- 基本はpackerを使う(dockerfileは使わない)
- dockerはあくまでプラットフォーム
- dockerはまだ課題あり
- DB、ログはどうする?
まとめ
- 自動構築は出来たけど、運用でトラブった。
- 本番環境に手を加えるべきじゃない。
- ネットワークの冗長度は落とさないほうがいい
- RAIDはいらない
世界で最も高機能なオープンソース・ハイブリッドクラウド自動化システム「openQRM」で実現するOpenStack/AWS統合管理
- セルフサービス化と課金システム
- 複数クラウド環境での双方向インテグレーション
- openQRMがあればvCenterいらない?
- KVMの管理も可能
- APIもある
ここで途中帰宅。。。
楽しかった
- これからopenstackやろうと思えた。
- GlusterFSでいいじゃん派だったけど、swiftも見てみようと思った。
- dockerはやっぱり楽しそう。
- お昼美味しかった。
- 最後まで見たかった。