2016年7月24日(日)に産業技術大学院大学で開催された July Tech Festa 2016 に参加しました。 1000台以上の物理サーバがあるテストベッド で研究してるので最近はインフラ系をいじることが多く、そっち方面の最新技術についての情報収集ができればと思い参加しました。
ハンズオンも含めて最大8パラレルセッションなので、聞きたいセッションがかなりかぶりました。聞いたセッションについて、内容のログと感想を書きます。
現実が正解だ! やってみんとわからんことだらけ。 さくらのIoT企画・開発365日の軌跡。そして、次の365日へ。
さくらインターネット株式会社 小笠原 治(@ogasahara)さんの基調講演。記事になってました。
- チームビルディングの話をします
- 自己紹介
- ABBALabという投資ファンドをやってます
- DMM.makeというモノづくりスペースも運営してます
- Orphe,Exiii,Vincle,SYMAC,Sensprout,犬パシー
- 14年経ってさくらに出戻り
- IoTとは
- さくらのIoTプラットフォームの話
- プロトコルを簡単に
- Mesos / MARATHON / Dockerで構築
- 会社という組織の中でやるとチームをつくったり離れたりしやすいのがいい
- 天草でパラグライダーの追跡実験を行った
7月からはリーダーを山口さんにバトンタッチした。僕(小笠原さん)はまた別のことをやれる。この柔軟さも会社の良さ。
よくある誤解
エンジニアの愚痴を聞くことが増えた
- 「流動性が増えるのはよいこと」
Q&A
- Q. 他のクラウドとの差別化は?
- ハードウェア屋さんにとってさくらのほうが使いやすい
感想
さくらのIoTプラットフォームは、サービス面はもちろん、ネットワーク技術が絡んだ話なので開発にもすごく注目してます。チームビルディングをメイントピックとし、チームメンバーを1人あたりにスライド1枚つかって紹介していたのも印象的でした。絶賛開発中なのでリリースに向けて頑張ってください。
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術
さくらインターネット株式会社 山田修司(@uzyexe)さんの発表。
Arukasの紹介
Arukasのインフラを支える技術
- 今後のインフラ環境予測
- 2010年まではベアメタル
- 2020年まではIaaSだろう
- 2025年までは lightweight PaaS (Container as a Service)
- その後に PaaS
- CaaSの流れ: Build -> Ship -> Run
- 構成
- インフラ:さくらのクラウド
- OS: CoreOS
- ツール: Mesos / MARATHON / Zookeeper
- その上にdocker
- エンドポイント 'hoge.arukascloud.io' のアクセスを許可(HTTPのみ)
- HAProxyによるリバースプロキシ (malathon-lb)
- Marathonと連携してコンテナの動的なポート変動にも追従する
- malathon-lb以外の候補
- haproxy-consul
- hipache
- etc.
- malathonとの相性でmalathon-lbに
- 最近注目されている traefik がstable releaseされてなかった
- 「ゾーン」という単位で資源管理している
運用にともなう痛み
- 様々なトラブル
- 対処
- キレイに落とす(Reboot)
- 幅広い設計が必要
- 1ノード数万コンテナは幻想。実際は100〜200コンテナ
- Dockerは枯れていない技術なので追いつく努力が必要
Q&A
- Q. Docker Hub経由ではなくDocker imageの直接アップロード対応は?
- いまのところ非対応サポートしきれない。
- Q. Dockerイメージのキャッシュは?
- してる。しててもディスクがあふれる
- Q. マルチテナント対応の工夫は?
- 特別な対応はしていない
- Q. Docker標準のリソース配分機能が弱いけど、大丈夫?
- 厳しい。設定が対応されればいいなと思ってる。
感想
実際に環境構築につかったソフトウェア(Mesos / MARATHON / Zookeeper)を知れてとてもよかった。Arukas 使ったことなかったので、話聞きながらコンテナひとつ立ち上げてみたらすぐにできた。アカウントはGitHubアカウントが使えて、コンテナ立ち上げはwebをポチポチ叩くだけ。簡単!
Arukasの講演聴いてる間にアカウント作ってコンテナ立ち上げられた!超簡単! https://t.co/rYMvKESEYp #JTF2016
— 湯村 翼 (@yumu19) 2016年7月24日
ベータリリース期間で無料で使用できます。しょうもないコンテナでリソースつかってすみません・・・。あとで落とします。
Mackerelの技術の全て。これまでの道のりと更なる発展に向けて
- 自己紹介
- ブログを書いた
Mackerel概要
- サーバ監視・管理のツールが当時は良い物がなかったので自社でつくった
- 100週連続リリースを達成
- 毎週火・木を定期リリース
- オンプレからクラウドに移行してビジネスの本質に集中する流れ
- モニタリングが大事になってきた
- 『マイクロサービスアーキテクチャ』
- 「やっていくしかない」みたいなことが書いてある
Mackerelの開発
- Mackerel開発運用体制
- プロダクトマネージャ / エンジニア / デザイナー / インフラ / セールス
- スクラムのような体制
- オンプレミス環境
- Scalaで開発
- 大きくてかっちりしたものを作るのに向いている
Mackerel関連ソフトウェア
- mackerel-agent
- mkr
- Mackerel 操作のためのCLIツール
- Goの使い所
- コマンドラインツール
- 機能の多いWebアプリケーションとかには向いてない
- Perlでコードの中にテストコードを書ける(proveでテスト実行)のがよい
- fluentdとの連携を勧めていて、プラグインも提供している
- Capistranoをつかってる
- ちょっとつらい
- Graphiteをつかってる
- 時系列データベース
- 最近は結構コントリビュートしている
エンジニア向けSaaSを開発するということ
- ドッグフーティングするのが当たり前なので楽しい
- エンジニアコミュニティからものすごい感謝される
- サポートのために新しい技術を広く学ぶ必要がある
Mackerelのこれから
- 1000台のサーバを監視するシステムがなかったので作った
- インフラ全体を管理する仕組みが必要となってくる
- アルゴリズムによる支援をやっていきたい
- 次世代の時系列データベースに刷新したい
感想
Mackerel、想像してたよりもかなり少ない人数で開発・運用していて驚いた。mackerel-agentはOSSになってるので活用してプルリクしていきたい。
MOM (Message Oriented Middleware) に求めるモノ
株式会社DMM.comラボ 大山裕泰 さんの発表。
MQ技術と各種実装(MOM)
- Queuing
- Brokerを介して通信。プロセス同士が直接通信しない
- Pub/Subモデル
- トピック(メッセージのキー)を共有する
- マルチキャスト
- もしMQがなかったら
- サーバが増えた場合などにアプリケーションでケアする必要がある
- Broker-MQ
- トラフィックが倍
- Broker-less MQ
- クライアントにBrokerをもつ
- 実装例
- AMQP(RabbitMQ)
- MQTT
- Kafka
- その他たくさんある
- 完璧なMOMはない
- アプリケーションの要件に応じて選ぶ
AMQP (RabbitMQ)
- 柔軟なメッセージルーティング
- Advanced Messaging Queuing Protocol
MQTT
- 軽量なメッセージプロトコル
- ヘッダが3Bytes
- 高品質なメッセージの到達保証
- At-most-once
- 送りっぱなし
- At-least-once
- ack返す
- Exactly-once
- 確実に1度送る
- メッセージを送った後に開封メッセージを送る
Kafka
- スケーラブル
- 順序保証
MOMを使う目的
- 非同期通信
- システムの孤立化
- 負荷平準
- スケーラビリティ
- データストア
MOMの使用事例
- SENSU
- OpenStack
- IBM
- さくらもだいたい一緒らしい
結論
- 完璧なMOMはない
- アプリケーションの要件に応じて選ぶ
感想
MQ話題になってて、あまり良く知らなかったのだけど、いろいろあることがわかった。きちんと知るにはたぶん触ったほうが早いので、とりあえずRabbitMQとMQTTあたりから触ってみよう。
ベアメタルクラウドの運用をJupyter NotebookとAnsibleで機械化してみた
株式会社ボイスリサーチ 谷沢智史(@yacchin1205)さんと株式会社N.ジェン 丸岡隆さんの発表。NII(国立情報学研究所)にて構築したプライベートクラウドの話。
Jupyter Notebook を用いた運用
- NIIでは研究で使うので要求が多様
- 判断は人にさせる
- 手順は機械的に再実行できるようにしたい
- Jupyter Notebookにすべて書く
- インストール手順
- 動作確認
- ディスク壊れた時用 Notebook
- コードの実行はAnsible経由
- 文芸的機械化
- 機械的に再現できる
- 人が読み解ける手順
- オートメーションは大事だが、コミュニケーションが大事
- テンプレートをGitHubにて公開
Jupyter Notebook の改善
- 株式会社 N.ジェン
- もともと運用のために作られたものではない
- JavaScript拡張
- Server Extension
- nb extensionを2つつくった
- 出力をタブで表示
- JavaScriptのprototypeを拡張しているので衝突する可能性がある
- server extensionはまだ使ったことがない
- PullRequestもお待ちしています
Q&A
- Q. 最初は試行錯誤があるのはわかるが、何周かして落ち着いたらAnsibleやJenkinsに移行するとよいのでは?
- 固められればいいがバージョンが変わると手順も変わったりしてしまう
感想
研究所でのプライベートクラウド構築という、同じような境遇での話。すべてJupyter Notebookに書いておくというやり方は、情報とスクリプトを蓄積できて導入の敷居も低くてすごくよさそう。
仮想ネットワークアプライアンスで実現するネットワークエンジニアのためのDevOps
株式会社インターネットイニシアティブ 川又幸恵(@Strange_bird496)さんの発表。
- 運用自働化
- ネットワークエンジニアの対象
- ネットワーク構成
- showコマンドなど
- config設定
- 障害対応
- ネットワーク構成
- コマンドがベンダ毎にバラバラ
- それでも自動化したい場合はオーケストレータの導入
- expect とかになりがち
- ベイビーステップ
- できそうなところからはじめる
- 仮想ネットワークアプライアンス
- ネットワークOSのVM
- 操作感は実機と変わらない
- 挙動は実機と異なる
- Devにおける活用方法
- 本番環境と同じに
- 仮想アプライアンス例
- VyOS
- vMX,vSRX(Juniper)
- vEOS(Arista)
- SEIL/x86
- VMとは言え毎回立てるのは大変なのでVagrantやpackerなどを活用
- VagrantはVirtualBoxを便利に使えるラッパー
- ベンダからディスクイメージを取得してVMを作成
- 仮想アプライアンスのメリット
- 安い
- 何をしてもいい
- 願望
Q&A (答え書き漏らしてます、すいません)
- Q. スイッチのポート数は設定で変えられる?
- Q. Aristaがすごく開発しやすそうだが、他のベンダは?
- これから充実してくるのではないか
- Q. 仮想アプライアンスのバージョン指定はできない?
- Q. Aristaの実機持ってなくて仮想NW落とせるか?
- 担当者に要相談
- Q. 仮想環境のバグの切り分け / 不具合での苦労
感想
「本番環境にあるスイッチは開発に使えないし、実機は高いから余分に買えないので、仮想アプライアンスをつかいましょう」という、激しく同意する話。ただ、今回紹介してたAristaとJuniper以外に仮想アプライアンスがあまり無い模様(あるのかな、あとでちゃんと調べよう)。Arista の仮想マシンと開発環境がとてもよさ気なので、Arista 最強という結論。
#jtf2016 全部Aristaやったら良かったんや、という感想を持った
— ひつまぶし食べたいし、スイカバー食べたい (@_hitsumabushi_) 2016年7月24日
Mesosphere DC/OS-データセンターOSの世界
クリエーションライン株式会社 木内満歳さんの発表。
- 自己紹介
- シニアコンサルタント
- 技術営業的な立場
- シニアコンサルタント
- クリエーションライン
- もともとCloudstackではじまった会社
DC/OS
- データセンターの構築もウォーターフォールでは間に合わない
- 要求される構成が頻繁に変わる
- 今の開発はほとんど(8〜9割くらい?)オープンソースベースなので基盤管理もオープンソースに
- 現在のデータセンターの問題はPUE(電源効率)ではない
- 先進的なPUEは1.1〜1.05程度で十分に省電力
- PUE = (サーバの消費電力+空調の消費電力)/サーバの消費電力
- DCの稼働率はめちゃくちゃ低い → リソーススケジューラの必要性
- 第一世代: VMware DRSなど
- 第二世代: コンテナ仮想化
- Hyperviser型VMとはちょっと異なる
- 第三世代: マイクロサービス
- サービスを細切れにして必要な部分を改修できる
- AWS Lambda もマイクロサービスと言ってもよいかも
- (Mesosphereが言う)未来のコンピューティングとは
- ハードウェアの効率的な利用
- タイムリーなリリース
- DC/OS
- オーケストレーション、セキュリティ、監視・管理、UIを提供
- この上にアプリを載せてください
- 5月にオープンソース化
- アプリケーションリポジトリを持っている
- 様々なアプリが1コマンドで導入できる
- dcos package install spark
- Dockerが稼働する
- DC/OS とは Apache MESOS + パッケージマネージャ
- Microsoft, Cisco, Apple etc. で使われている
- Apple
- Siriのバックエンド
- Microsoft
- Azure Container Service を DC/OS で
- Autodesk
- たった1人のエンジニアがクラスタリング環境を作り上げた
- 理研 遺伝子データベース FANTOM5-CAGE
感想
DC/OSとても気になる。触ってみよう。会場の設備不具合でデモが見られなかったのが残念。 あと、関係ないけど会社紹介でちらっと出てた Neo4j も気になる。
全体の感想
- インフラ系のイベントに参加することがあまりないので、知り合いもあんまりいなくて新鮮な感じだった。
- 知らないツールたくさん知れてよかった。何から手を付けるのがいいのかもわからない状態だったのが、優先順位が掴めてきたので、重要そうなものから触ってみよう。
- JTFでスポンサーしている会社が人材募集に力入れてるのだけど、ビジネスも技術もしっかりした良い会社ばかりだと思うので、新卒の人とか転職したい人とかは候補に入れておくのをオススメします。