2015年1月30日金曜日

CROSS2015参加


2015年1月29日に開催されたCROSS2015に参加しました

http://cross2015.peatix.com/



自分用の議事メモを兼ねて記録を残しておきます。



■開会挨拶

・いろんな人たちと交流することが大事
・色んなことをCROSSして商品開発を明日からがんばろう



C会場:
俺はどうしてそのデータストアを選択したのか

銀河と小宇宙を語る会


桑野さん
サイバーエージェント
MongoDBを使っている

宍戸さん
サイバーエージェント
Cassandraを使っている

久森さん
フリックアウト社?
MySQL、分散DBをいくつか体験

冨田さん
富士通システム社


・データストアってなんでしょう?
MySQL NoSQL objectstore


・導入前に十分検証しましたか?
Webのサービスなので負荷を考えた
データストア自体が要件にあっているか
MongoDBを使ったのはシャーディング・JavaScriptとの連携・レプリケーション・負荷検証

Cassadraを選んだ理由
単一障害点がなしに動く スケールするか

・検証方法
ユニークIDに紐づくデータをどれだけたくさん扱えるか
レイテンシが数ミリ秒で返却されることを要求された
エアロスパイク?の検証をはじめた
単体テストができるようにするのが大変
本番のトラフィックにクライアントから二重書き込みして、ダメならすぐ引っ込める

流通・製造などをお客様にする
スーパーのPOSはデータが多そうなイメージ
数百件のお店がある可能性がある
実績があるからデータ量・トラフィック読みやすいが、その分きっちりしなければならない


・NoSQLなら何台くらい運用してますか?
1サービスあたり60台ー70台のMongODB
更新が多いため、設定を変えたシャード?を避けたい

Cassandra99台
当初は30台で運用していた
データ量が増えて、サービスの拡大をやった
90台くらいで落ち着いていたがクラスタの一部でホットスポットができてた
担当レンジを狭くするためにノードを追加した

また、用途は別だが15台、30台使ってるケースもある


エンタープライズシステムは台数を増やしたくない
NoSQLのうまみが少ない

PosのシステムのデータをRDBに入れる意味がない

システムを組むとしたらフェイルオーバするマシンで複数台運用


・非力なメンバーで運用する勇気が欲しい
定常的に動いて、夜起こされないようにしたい
経験の少ないメンバーはどうしたら?

一番簡単な解はクラウドを使う
クラウドは物理インフラやトラフィックはお金で解決
負荷管理、設計はエンジニアの腕の見せ所、覚悟をもってやらないといけない
それがやりたくないならDB運用屋さんにアウトソーシングすればいい


・ユースケースを意識して使っていますか?
新しいNoSQLを使う際はどのようなきっかけで使い始めることがありましたか?

サービスがあっているか
既に動いていた
人に依存する

MongoDBはサービスにあっていた
全データの検索は弱いのでそのサービスがなかったから使えた

データストア自体がもっている機能、運用面を期待するか
しばらく一緒に付き合ってみてベストプラクティスが見つかるもの

ユースケースがなくてデータストアを使いたいってことはない!趣味以外。
どのようなきっかけで?
→ 運用がつらい クライアントのアルゴリズムで動くためスケールアウトできなかった


・BigQueryの話
バッチ処理したログの結果とかビッグクエリに放り込む。
深刻なバッチ処理障害がでたらメールをだすようにしている。

「レッドシフト」はスケール戦略をちゃんとすればいいが設計が大変
ビッグクエリはスケールだけ考えればいい 設計に頭を使わなくていい

ビッグクエリのいいところ
データのユースケースが変わってもそれなりに対応できる
全スキャンでいいじゃないというところが自由度高い

油断してるとクエリ単価があがっていくのが注意
でも そんなにビッグなデータを使うことはほとんどないと思う


・どんな障害がありましたか?
グローバルロックがMongoDBとして多い
書き込み量が多い場合はスケールしないことを考える

ホットスポットがでてきた。ハード故障が続いた。
同性能なハードウェアは連番で並べてはいけない。


・アップデート
分散データストアのバージョンアップは
ローリングアップデートになる。
キャパがギリギリだと、耐え切れなくなる
間のネットワークの帯域が増えていることも忘れずに

MongoDBのアップデート
止めずにやるのがローリング
サービス的に止めていいならバイナリ置き換えてアップデート

Casandraのバージョンアップ
ローリングでやる
中途半端に間あけずに
リバランスは、ノードの追加と退避をうまくやれば良い データストアの特性をみつつやりましょう

おっきいバージョンアップは基本的にやらない


・最近注目してるデータストアとその理由
マイクロソフトさん、富士通、オムロンで実験している
オムロンは製造の機械の会社 基盤に印刷したりはんだ付けする会社
工場の中の機械を管理する
アジュールを使った

PostgreSQLに注目中
JSON型がでてきたから

エアロスパイク
データ型があるから気になる

いろいろでているので整理したい
MongoDB2.8でストレージエンジンがつく
メモリの管理、ロックがグローバルなどの弱点がなくなる予定

「オーロラ」が気になってる
プロビジョニングが不要
MySQL互換
人柱募集中(笑)


・導入時の障壁としては何があったか(政治、技術領域など)
ジャパニーズエンタープライズカンパニーに新規導入はない
「あるもの」を使わないといけない

書籍がないとできない という大きな問題がある。
「教えます」という環境・教育コストが障壁になりつつある

今苦しんでいるデータストアのお守りが大変

学習・教育コストがある


・ネティーザの話
ひと箱1億円
I/Oドライブ使ってる人が少ない


・データストアあるある
スモールスタートと称して
すごい台数になって運用が死ぬ

運用したことないデータストアがいろんなサービスに点在してる

ノウハウが点在してしまう

SSDが高い
帯域が死ぬ
エッジスイッチのアップリンクが1Gで死ぬ


・これだけは言っておきたい
転んでも泣かない

辛くないデータストアはない
できるだけ消耗しないやり方で選定していくのがいい
機械は壊れたら買えるけど、人は買えない

選んだら勇気をもって探究していく

新しいものを使うなら覚悟が必要


<<所感>>
MongoDBやCassandraの導入事例が聞けたのは良かった。
教育コストがかかるというのはごもっともだと思う。



D会場
インフラエンジニアの睡眠時間を確保する方法
 ~Infrastructure as a Code時代のインフラ運用~


くららオンライン 寺尾さん、宇野さん
フィックスポイント 三角さん
ハートビーツ 馬場さん


・まず最初に睡眠時間は何時間とってますか?
→ 会場の大半は6-7時間くらい


・インフラ運用で大事な事ってなんでしょう?
「無理をしない」
「自分の時間を犠牲にしない」
「属人化をしない」
気合い 夜中に電話もメールもきていた → 長持ちしない
 安定的にサービスを提供しないといけない


・運用(定型業務・アラート対応)の自動化についてのアプローチ
ドキュメントに残す
ツールに頼る


・自動化について
人はいるけどキャパを超えないようにしたい
pythonとパブリック(ファブリック?)というツールを使ってる
pythonを使うことが多い 初学者にも使いやすい

自動化のツールはたくさんあるけど
bashを使い続けてる
ansibleやchefで補いきれないこともある
ある程度はパッケージしたい
スクリプトを書いてしまうとほかの人はわかりにくい

人手の運用が続いているカルチャーがある?
自動化するためのモチベーションがあがってこない
どういう風に自動化して効果をだしていくのか考えることが重要


・冗長化しているシステムのサービス断が発生しないメンテナンスは
 昼やるべきか 夜やるべきか

できるだけ昼にやるようにしている。
昼の方がエンジニアが多いしクヲリティが高いしリカバリもしやすい

お客さんに「うん」と言ってもらう言葉を言う
【有料になります、夜は高いです】

基本的には昼にやった方がよい エンジニアが豊富だから
どうしてもミッションクリティカルなど決まってる場合は夜にやる

「昼」にやれるために仕事をしましょう。
運用でなんとかする はやめましょう。


・Infrastructure as a Codeって実際どうですか?
サーバスペックを使ったテストをノウハウためてテンプレート化する
プロビジョン側はあんまりやってない
Chefソロでできることはやる

ちょっと合わない
自社のシステムを大量に抱えているところはやっている
異なるサーバ、システムを使っていると使いずらく、最終的にシェルになる

自動化しても効果が小さい場合がある
OSやアプリのバージョンがバラバラなことが多々ある


・インフラエンジニアはプログラムができるようになるべきか?おすすめの言語は?
pythonが必須
好みはあるが言語は特徴がある これしかできないって人は少ない


楽しくなる方面でプログラミング部みたいなのがあって
業務に関係ないものを作る
意味のないbotを作ったりしてる
もういいから勉強しろ

前までは何でもいいから言語をやれ
今はpythonをやるようにしている

シェルを覚えなさいとは言う

くららオンラインのくららカフェという勉強会で
発表する機会を若者に与える


・最後に一言ずつ
インフラエンジニアの方はもう少し表にでてもいい

日本発の自動化のツールを作りたい


<<所感>>

たしかに属人化してる面も多々あると思う。
自動化ツールも結果的に属人化してしまう可能性もあるかと。
pythonが推されてるのはなんでかわからなかった。


■D会場:
Webエンジニアなら抑えておきたい最近のOSS事情

MOONGIFT 中津川さん

@masuidrive  TORETA社

@moongift 宛に質問OK
資料はアップするらしい

Ruby on Rails
Node.js
mruby
MobiRuby

@yosuke_furukawa DeNA

BizReacn社
 GitBucket 
Githubを極力パクる

Scalaのエンジニアが少ない


・2014年の振り返り

fc2ブログがOSS化した
LICEcap 使ってみたらよかった
Atom 期待はずれ キーバインドを覚えられなかった

io.jsは2014年驚き

io.jsについて知っていること

Node.jsのfork

Node.jsは
リリーススケジュールの不透明さ
issue/feature管理ができてない

io.jsとNode.jsに大きな機能的な違いはない
一番の違いはプロジェクトの進め方

io.jsではオープンガバナンスモデル
→ コアチームがISSUEやFeatureの追加をオープンにする

議事録がGithubで管理公開することでnon-nativeにも優しい

OSSという特殊なプロダクトをどうするのがいいか
これからのOSSプロダクトを考えていきましょう

そもそもNode.jsが課題だらけで不透明なのはなんで?
 コアコントリビュータが辞めちゃってる

フロントエンド用のOSS


・キーワードで話すOSS
マテリアルデザイン
スタイルガイド
フラットUI
Web Font
管理画面 Bootstrapを使ったものが多い

管理画面はBootstrap ピュア 

フラットデザインだとボタン押したかどうかわからない


・セキュリティ

インシデントがたくさんあった
Fingerprint Cookieを使わずブラウザを特定
サンドボックス JavaScriptを安全に実行
WAF パケットではなくWebアプリケーションを保護
情報漏えい/侵入

Node.jsに関して
 脆弱性を伝えるBotがTwitterアカウントがいる

どうやってセキュリティを担保するのか考える

セキュリティの心構え
→ ミッションクリティカルのシステムは有名なプロダクトを使おう
  脆弱性の報告はされるから

情報収集をしっかりすること

OSSを使うときは古いバージョンのメンテナンス情報を気にする

不要な情報を持たない
個人情報と他の情報はわける

ワードプレス
PHPなどのセキュリティが怖い


・HTML5の話

仕様化準拠はあまり気にしてない
WebView→CromeViewになった

TiZenが復活してほしい

互換性でフロントエンドが動かないことがある
新しいブラウザができるとギクッとする

Single Page Application


・フレームワークのおすすめ
バックボーンがしっかりしてるところ
新しいフレームワークは古い端末が動かない

アンゲラ→IE8が切られた


・仮想
Vagrant
Docker
VR Oculus Rift

Dockerは便利だけど
分散環境を今まで作ってたのが1台で済むようになった

OSから上ごと仮想化することが流行ってる
過剰な期待をしすぎてる

Dokerだけあってもサービスが作れない


・2015年はどうなるか?

マイクロサービス
フルスタックフレームワーク離れ

VR/ウェアラブル
IoT

セキュリティ
 Let's Encrypt 無料SSL/TLS

マイクロサービスは並列処理していく流れになる

Scala普及期になってきている

ギットバケットをよりよくしたい
プラグイン作れるようにしたい
コミッターに参加してほしい

SinglePageApplication + Ajax
 Node.js

io.jsも使えるんだということを示していきたい

1つくらいオープンソースをだす。
言語は英語から逃げられない 英語やりたい


・HTTP/2についてはどうなのでしょう?

Webアプリケーションの書き方がかわってくる。
→ 本当に必要かは別

ipv6みたいに流行らないかも



<<所感>>
Node.jsについて語ってる時間が多かった
もっと他のOSSについても触れてほしかった印象



大会場:
先輩に聞くこれからのエンジニア像


山口さん
及川さん Googleの人
伊勢幸一 @ibucho
よしおかひろたかさん


・第一部
 じわじわした漸進的な進歩でなく不連続な進化をしたと感じたのはどんなとき?
 その時の進化圧とは?

 その時はわからない、後で考えるとターニングポイントに気づく
 過去4回くらいあった
 転職・部署移動

 環境が変わった時
 転職も一つ
 前の会社でオープンソースに出会った時
 今までの価値観と180度かわって、産業構造が変わる予感がした

 ターニングポイントが先にくる。
 あえて「やります」といって一生懸命になる

 できないことをやれと言われてしょうがなくスタートする

 年をとると自分で変えられないので環境を変えろ

 追い込まれないとやらない
 宿題は期日3日前から

 快適なゾーンから出た時に成長する
 あえて厳しい時にゾーンからでる

 無理強いを受ける


・生存戦略
 自らのバリューについて意識して心がけている点は?
 個の戦略としての転職とは? 巨人からおもちゃ屋へ

 会場にいる人は積極的にカンファレンスに来てるので「いい」
 会社に戻ると、自分から学ばないで仕事をする人が8割
 日々の経験から学ぶこと
 学び方を学ぶ。
 学校は「学び方」は教えてくれない。
 勉強会で学ぶか、先輩に導かれるか
 もう少し、学び方のイノベーションを考えると良い

 最近、師匠がいない?
 ある分野の師匠は必ずいる とんがっている人は絶対会社にいる
 すげーところを言語化してコピーしていく

 常に転職できるようにしたい。
 1年に1回転職コンサルに 自分の価値を聞く
 自分は商品としてどんな価値があるか
 危機感を感じて、学んで、人脈をつくる
 自分がどういう市場価値か、弱点は何か客観的に考える

 来たボールは全部打ち返す。
 「できない」「やったことない」は言わない。
 
 
・第二部 遺伝子生存戦略

 利他行動
 働き蟻の法則(技術者版)
 8割は働いてない
  企業のうち2割が勉強会に参加する
  参加者の2割が「参加した」以上のメリットを見だす
  
  ・安定志向が増えることの恐怖
  ・成長志向を見抜く方法


 2:8の割合は変わらない
 母数の問題
 働いてる人の指示を受けて働くだけの人が8割

 安定志向8割が増えていく?
 → 増えないけどなくならない
 2割はすぐみてわかる

 稀にあるが2割の人たちが成長しようとする行為を妨げないこと
 8割の人を2割の中にいれることはしてない

 ハッカーセントリック
 新しいビジネスモデルを考える人
 文化的な価値
 8割は日常業務をこなすだけ
 8割の人にハッカー文化を理解してもらう仕組みが欲しい

 日本という地域はハッカー的な文化がない
 CROSSみたいなとこを面白いと思う人が増えれば面白くなる
 
 評価システムのせいかも?
 8割が働いてないなら辞めてもらえ
 簡単にクビ切れる海外ならよくある
 人間は評価が大事
 評価できる仕組みが重要

 人材の流動性と評価の仕組みを導入することで組織が変わる

 人事評価をどうシステマティックで透明性があるものにするか
 マネージャが訓練を受けているかというとそうでもない
 
 Googleは全員技術がわかる
 評価はまわりからされるもの
 すごい人は自然とリーダーになっていく
 まわりから評価・リスペクトを受けられるようになると良い

 競争が圧力になる


 いい経営者とは?
 技術者にとってよい経営者とは、また、その役割分担
 昨今のCTO議論の加熱

 いい経営者は継続的に利益を生み続けられること
 テクノロジーの会社はテクノロジーで利益を生む

 CTOは経営が先で、技術はあと。両方できないとダメ。

 経営の勉強しよう
 得意不得意はあるが勉強すりゃいい

 マネージメントが好きな人が向いている

 経営をリスペクトした方がいい

 多様性をもつとよい
 マネージメントに進まなくていいし、それだけがキャリアじゃない
 技術一本であがっていくのもあり

 経営トップの人に技術も知ってほしい

 経営は経営しながら学べる

 理想的には技術を尊敬して技術を認める経営者がベスト
 現実は違う

 わかってくれる経営者がいる会社に異動してしまえ

 経営者とCTOは別物?
 経営層は利益をあげるのが当然 会社を永遠に続けることが大事
 継続するにあたって、どういう技術を使えばいいのか考える

 経営層を狙う若い人は技術が好きでもそれ以上経営を勉強しよう
  
 この人尊敬できるって人が経営層にいるか
 自分たちが作ったものを経営層が理解しているか
 世に出しているものを経営層が愛しているか


 【宿題】
  自分の経営層が自社製品を使っているか確認


・第三部 これからの成長戦略
 自らを成長させるために
 8割の蟻から2割の蟻になるための方法

 自分で考えろw

 学び方を学ぼう

 30代くらいになって成長してないと思ったら
 今までと違う学び方をした方がいい

 自分のやりたいことをやるために、あらゆる努力をしろ
 
 やりたいことをやりたいが
 やりたくないことを2倍くらいやらないといけない

 できるだけ若い人と話す
 自分が人に「会いたい」と思われるようにならないといけない

 説教を飲み会でしちゃいけない
 何でもいいから君から何か学びたい

 エンジニアにあんまり年齢は関係ないのではないか

 アウトプットを意識する
 呼吸法は吸うのを意識する
 勉強会は参加するだけじゃなくて絶対質問すること
 LT募集してたら手をあげて必死になる
 スルー力が重要 負のフィードバックも大事 受け入れること

 大学とか大学院みたいな旧来型の学びのメソッドを再評価すると面白い
 大学には図書館があるし本がある
 もう少しアナログな世界に戻って、古い学び方を再評価するとよいかも

 日本では社会人になって大学に戻る人は2%
 他国では20%程

 何か「今」とは違うことをやる
 MBAは大人になって自らの意思で学ぶことがすごい
 新しいことを今の仕事をわきにおいてやるのがいい

 自ら学んでアウトプットをして、それを継続できるか

 
・質疑応答

 30代前半でCTOの人
 → 若い人のモチベーションをあげるにはどうすれば?
  → その人がどうしたいのかを持ち出す
   → つまり「我慢」!

 アクロクエスト中川さん
 → まったくやったことがないことの勉強はまずどうすれば?
  → MBAみたいなフォーマルなメソッドが確立しているところに行く
  
  アウトプットをだしてフィードバックをもらう



<<所感>>
社員の8割が指示通り働くだけで、
2割が成長するというのは納得。