Developers Summit 2013レポート(2)

デブサミ2/15分前半です。長くなったので2つに分けました。

2日目は同じ会場で続けてセッションを聞く場合、廊下に出ずにチェックインできるようになっていました。ラウンジの電源も1日目の終わりから使えるようになっていましたし、スタッフのみなさんも改善が早いですね! そしてGREEさんのミネラルウォーターをいただきました。お水は本当に助かります。いつもありがとうございます。

「爆速」を支えるテクノロジー

  • 15-A-1
  • 村上臣 Y! チーフモバイルオフィサー
  • スライド
  • 漢字でわかるのはいいですね「爆速」
村上さんについて
  • Y!は基本的にPCの画面が想いうかぶでしょう。CMOを設置したのは…
    • PCのカテゴリー検索サイトとしてスタートしたY!、時代ともに形態も変わる
    • ガラケーiモード版が1998年、ケータイインターネットが世界に先がけてスタート。しかしあまり変わらなかった
    • iPhone 2007年からはスマホの世界がやってきた。このインパクトが大きい。タブレットも含めればPCより大きい
    • 新大陸が出てしまった。全容はわからないがどでかい。そっちに移らないといけないんじゃないか
    • CMO「Chief Mobile Officer」を置いた
  • 自分はPCの経験がない。ずっとモバイル畑
    • 最初は社内でも肩身のせまい部門だった。回りとPVもケタが違う。いつも携帯をたくさん並べてポチポチやってる人達、みたいなカンジ
    • 転機は2006年、ソフトバンクがキャリアを売収してYモバがはじまった
  • アマチュア無線
  • 小学校のころは自転車に無線機を乗せていた
    • 子供のころから移動体通信していた!
    • MSX 中学生のころ
      • MSXからシリアルをたたいて無線通信していた
  • 大学生のころ、電脳隊
    • IDO ezweb
    • auブラウザのuser agentに「UP」入っているのはUnwired Planetが起源
    • 1997年夏にシリコンバレーに遊びに行った
    • インターネットが使える携帯を見せられ、これはヤバイと思った
    • 外に出てインターネットが使えるというのはいい
      • NEC PCをカプラで公衆電話につなげたりしてたけど
    • そのうちメールが来て、日本に行くことになったよ「IDO
    • WAP技術。日本で知っている会社が他になかった → 仕事をもらったりとか
Yahoo! Japanについて
  • 2012年3月1日 Y!の経営体制変更
    • 創立以外増収増益をした、伸び続けている会社の役員を全部交代した。これはすごいこと
    • スマホの大陸が大きい、進化スピードも速い。それに合わせた体制にする
    • 経営陣も10歳以上若返り
  • 爆速
    • 速く世の中に出してフィードバックを得ていかないといけない
    • Y!自体も大きい会社になった(6千人、そのうち2千人くらいが開発)
    • アジャイルになかなかできない。承認が遅いなど
    • 結果はこれからついてくると思うが、大企業病からの脱却ができればと思う
  • 「迷ったらワイルドに行け」
    • 新社長宮坂の新入社員への言葉: 4つの約束
      • Focus。やるならフォーカスしろ、1個の得意技
      • Fast。早く動け
      • Fun。楽しんでやれ
      • Be Wild。迷ったらワイルドに行け
  • インド進出
    • Y! Inc.は世界中にブランドを持っているので、日本国外で何かやるときにはY!の名前は使えない
    • Bharti、エアテルとやっている
  • 米Bashoと提携
    • IDCフロンティアでRiakを導入
    • bashoを使った分散ストレージ 19-9の堅牢性(千京分の1)
    • S3互換APIを持っているので某A社と同じことができる
  • 石巻復興ベース開所 2012/7/30
    • Y-LD (Yahoo! Life Design)
    • 復興として会社がいろいろできている。みんな30年続くかというと、そうはいかない。数が減っていく。それ自体は自然なこと
      • 地元の人を巻き込んで黒字の会社を作ると続けていける。それができないと復興とは言えない
爆速について
  • 爆速
    • 状況把握 → 意思決定 → 実行: 三位一体として速くないと爆速にならない
    • PDCAと同じだがPがない。Pはふんわりと全体にかかっている感じ
    • トップだけが爆速ではダメ
    • 大組織になっても恐竜になってはいけない
      • 恐竜は尻尾を切ってから痛がるまでに数分かかると言われている。何が起こったかを即座に理解し、一体としてマネージしないといけない
    • 魚群になるべき。イワシの大群。「イワシ的なカタマリ」がわさーっと動いている。リーダーはいない
  • エンジニアの才能を生かす
  • 1. 承認プロセス数: 8 → 2
  • 2. iPhone/iPad全社員に配布、VPNも開放。内線をiPhoneに集約
    • プロファイル一括設定を使って社員ひとりひとりの証明書もインストール済みのiPhoneを配布
    • iPadでペーパーレスが進んだ。PCの画面を見せようと思うと2人でのぞき込むが、iPadならぽいっと渡してしまう
    • PCで入ってきた人達を変えるにはいろいろやらないといけない
  • 3. 月1ペースで全社ハッカソン実施
    • 任意参加
    • テーマを決める
    • 限られた時間で必ずアウトプットを出さないといけないと決まっているところがいい。爆速
    • 考えることが多くてあーだこーだ言ってるけど、それってどうなの?、がわからない。「で、それ、最初の画面に何が出るの?」が大事
    • 直接的な課題解決のための鍛錬にはハッカソンが向いている
    • 石巻Hackathon
      • 元々地方が持っていた課題、シャッター街とか。プラス震災。両方を解決しないといけない
      • 現地の人を巻きこんでいく
  • 4. Hack Day
    • 24時間以内に普段の業務とは関係なく自らが望むものを作り上げ、90秒で発表するというイベント
    • エンジニアはプレゼンが苦手という意識がある → いい訓練
    • 2012年夏の面白かったもの
      • PraRace: スマホを振っているとミニ4駆が動く
      • ブレインコプター: 脳波で動かす
      • i刺身: 刺身に電極をさしてSNSに刺身の気持ちを投稿する。食べられたら退会
    • 才能の無駄づかい推奨
    • 明日から2013/2/16〜18 今回は社内だけでなくフルオープンにした
  • 5. MYM
    • Hack Day生まれのプロダクト
    • コミュニケーションツール
    • 社内採用をYammerと競って勝利
    • 働き方が変わった。「メールよりMYM」
    • 趣味の部屋、秘密の部屋もたくさんある
    • 内製なのでフィードバック→即改善
  • 6. GitHub Enterprise全社導入
    • 2012年3月末、エンジニアがほしい → 上層部が「いいね、動いてみて」
    • 7月、アカウント数160でスタート → 一瞬でなくなる
    • 現在アカウント数500
    • Gitのすごさはpull request
    • 自律的な現場への変化、活性化
  • 7. アジャイル
    • 職能で分けていたチームをサービス単位に再編
    • 認定スクラムマスターを「黒帯」として迎える
  • つまり爆速を支えるテクノロジーとは
  • Y! だけが爆速でもダメ
    • すべての会社、すべてのエンジニアを爆速に
  • 課題解決エンジン
  • IT業界なんて世界全体から見るとまだまだ小さいですよ
感想

小学生のころから自転車で移動体通信とはすごいですね! 爆速、そのスピード感はすごいものを感じました。「エンジニアの才能を生かす」というのにしびれます。「マインドを変える」ということに関してエンジニアは柔軟であるだろうと思います。エンジニアのマインドが変わることによって、回りの人達も巻き込んでいけるんじゃないかと思っています。

モバイルファースト再考

  • AKQAの紹介ムービー
    • The Biggest Revolution is Happening on the Smallest Screen We Have
モバイルファースト
  • モバイルファーストの時代と言うが、モバイルファーストとは何?
    • 会場でモバイルファーストやってるって人? → いない
    • モバイル向けのWebサイト ┓
    • スマートフォン対応     ┣ ではない! (大きな×印)
    • モバイルアプリ       ┛
  • モバイルファーストの時代
    • モバイル端末を起点にしたサービス戦略
    • モバイルを第一に考えると良いサービスが作れる
    • Eric Schmidt (Google), Kate Aronowitz (Facebook )
  • 元気あるサービスはモバイルオンリーのものが多い
  • モバイル向けのデザイン原則
    • 小さな画面内での効果的なデザイン
    • 情報の見せ方、整理の仕方
    • タッチ/ジェスチャーのinteraction
    • バイス依存しない画面遷移
    • OSに依存した画面遷移
    • プラットフォームに依存した機能
  • Mobile First!
    • Luke Wroblewski (Y!)
    • Growth, Constrain, Capability (成長性、制約、可能性)
  • モバイルの成長性: まあわかってますしいいですよね
  • モバイルの制約
    • 小さい画面/パフォーマンス/場所と時間(モバイルではむしろ自由)
    • マイナスのデザイン
    • ネイティブの機能を使ってどうやるか
      • 必ずしもWebデザインの話ではないはず
  • モバイルの可能性 ← ここが本来のmobile firstでは?
  • Mobile First
    • モバイルで出来ること、出来ないこと → 特性を活かしたサービス
  • Contents First?
    • モバイルでもPCでも同じコンテンツを
    • まずはコンテンツありきであるべき
    • → 本来はデバイスに依存しない情報提供という考え方
    • Future Friendly
  • Mofile Firstの利点
    • 閲覧環境を選ばない
    • ブラウザに依存しない
    • 情報構造がシンプル
    • データが小さく軽い ……はず
  • デルタ航空の例
    • iPadアプリからチケットの予約、機内の映画情報、機内での現在地などがアクセス可能
ユーザーを見る
  • モバイルを使う人ってどんな人?
    • モバイルな場面を観察する エスノグラフィー(シャドウイング等)
    • 座って使う、カベ使ってメモしたり
    • 背中にかべが来るように立つ人が多い
    • パーソナルスペースを確保した上で使う
  • デザイン思考
    • まずはプロトタイプを作って、現場で実験と検証を行い、問題点を発見→改善、をくり返す
    • エスノグラフィーは本質を見抜くためには上流の手法
      • 小中学校を観察した例
      • TVがまったく使われない
      • 連絡ボード(コルクボード)があっても黒板が使われる
      • 椅子の足にテニスボールをかぶせている
      • キタナイ雑巾とキレイな雑巾を彼らなりに分けているが大人にはわからない
    • 新しい発見があります。本物(本筋)の発見があります
  • Action!
    • 書を捨てよ、町へ出よう(寺山修司)
      • デスクを捨てよ、モバイルを使おう
    • 本当のユーザーを知ろう
    • 実際にモバイル端末を使い倒そう
    • 端末は自分で買おう
      • 自分で買わないと使い倒しません
    • モバイル端末を使う日を週4日、少なくとも3日設定しよう
  • 参考書籍
    • Mobile First, Luke Wroblewski, Book A Part
    • The Mobile Frontier, Rachel Hinman, Rosenfeld Media
    • モバイルデザインパターン, Theresa Neil, オライリー
    • Design & Research Method Index 〜リサーチデザイン、新・100の法則, BNN
感想

モバイルファーストというお題でしたが、エスノグラフィーの話が面白かったです。もっとたくさん聞きたいと思いました。これまで会議室やデスクワークでのエスノグラフィーの話を聞いていたのですが、モバイルになるとフィールドがまた変わってくるのでしょうね。

Opsから挑むDevOps

  • 15-D-4
  • 千葉則行さん エクシード
  • インフラエンジニアとして
    • Dev - DevOps <= Ops
  • Action!
    • 人と艱難を共にすべく、人と安楽を共にすべからず
  • お題
    • エンジニアを解放する
      • 深夜の仕事が多い。年とってきた
    • DevOps
      • 2009年か2010年?
    • 私たちの取り組み
    • 改めて考えてみる
    • 再びAction!
インフラエンジニア
  • インフラエンジニアの苦悩
    • 突然の…
    • 明日までに…
    • そんなこと言われても…
  • 分業〜すべてのスキルを持つことができない時代
    • Dev vs Ops
    • エンジニア vs 営業
    • 企画部門 vs 技術部門

草勢衛基味

  • 対立なんて不毛
    • 世界中でスーパーな人たちが切差たくましているのに
DevOps
  • コラボレーションの仕組みをつくること
  • Cluture, Lean, Automation, Measurement, Sharing
    • DevOpscafe.org
Culture┳Lean   ━Automation
       ┗Sharing━Measurement
  • DevOpsと言って思いうかぶのは
    • Chef, puppet, cfengine
  • 例えばChef
    • 〜マイナーなんですよね
    • Facebookが採用、Erlangでスケーラビリティ拡大
  • Chef: 無防備な状態でつっこんでいくと間違いなく返り撃ちにあう
  • Chefの解説
  • スクリプトでよくね?
    • スクリプトよりも
      • 簡単、確実に記述できる
      • べき等性がある
    • Puppetよりも柔軟性があるが…
      • ベタのRubyを書ける
    • とっつきにくさは否めない
  • Mcollective
    • Puppet labsのブロダクト
    • 去年かおととし
    • スケーラビリティーがある
    • MQに入れ、ノードが取りに行く
  • 実際のインフラ屋の仕事
    • 設計、構築: とても静的な仕事〜設定したら変えたくない
    • 障害対応: とんでもなく動的〜急いで対応しないといけない
  • Automation?
    • 自動化できるのは静的なコトだけ
←静的 動的→
Chef Mcollective
Puppet Capistrano
  • ツールのまとめ
Pull Chef/Puppet 状態の一貫性
× 動的な操作は難しい(順番を指定して実行)
Push Capistrano 任意のタイミングで操作
× なんでもアリになってしまう
× スケールしない
async Mcollective 非同期型、スケールする
任意のタイミングで操作可能
× 単なるメッセージトランスポーターである
こんなのはじめました
  • cloudrop
    • 運用の静的な部分と動的な部分をあわせ持つような仕組みを作りたい
  • アーキテクチャ
   Portal
    ┃
 Restful API => Mcollective Client
    ┃
   ActiveMQ
 ┏━━┻━━┓
Mcollective Mcollective
Servers     Servers    
 ┃     ┃
Chef-solo  Chef-solo
Script     Script
  • pullでもpushでもなく非同期なカンジで仕事を流していく
  • オペレーションの標準化
    • なんでもアリにすると荒れる
    • 再利用するべき → 標準化

ボトムアップ
↑ システム構築の標準化
↑ 利用パッケ必ジの規格化
↑ 作業の細分化

    • → 品質(Q)-コスト(C)-スピード(Agility)のバランス
  • ボトムアップな標準化
    • タスク → パッケージ → バインダー → ライブラリ
    • パッケージ: MySQLなどミドルウエアのレベル
    • バインダー: 最終調整してシステムにする
  • フレームワーク」とは、流れは提供できるがノウハウ蓄積はお客様でやってね、ということ
  • 仕事はできる人に集まってくる
    • シニアなエンジニアはシニアな仕事をしてほしい。どんどんクックブックを生産してもらいたい
    • 現場の人は手順として確立されたものを確実に実行してほしい
  • ポータルですべての操作ができる → SSHでログインする必要がなくなる → 完全に誰が何をやったかをトラッキングできる
  • cloudropの効能: 標準化してナレッジをためると何ができるか
    • 手元の環境でテスト → 本番へ
    • テスト、QA、本番環境を同一に
      • configureの引数変えないでください! など
    • public <=> private間の相互利用
    • blue green deployment
      • 本番と新しいバージョンを全一構成で用意しておいて切り換えるデプロイ手法
改めて考えてみる
  • サービスを回し続けることである。そこにはDevもOpsもない
    • 関わる人全員が関連してはじめてできる仕事
  • サービス仕様 - アーキテクチャ - 運用 の三角形。どれかを先行してやれるものではない
  • もはや、そこには開発屋もインフラ屋も区別がない。あるのはスペシャリティだけ
再びAction!
  • Shareできるコト、できないコトがある。
  • 「人と艱難を共にすべく、人と安楽を共にすべからず」
    • つらいこと、難しいことは共有しやすい
    • 楽なことを共有しようとすると堕落してしまう
  • つらいコト、大変なコトを共有することから始めましょう
感想

ボトムアップからの積み上げというのは、インフラ・オペレーションの仕事にはよく合うと思います。

NoSQLの野心的な使い方 〜Apache Cassandra編〜

  • NoSQLのよくある誤解
    • 正解: 負荷分散に優れている、たい障害性が高い、データ一貫性は弱い
    • 誤解
      • ×データ一貫性がない
        • 弱いだけでないわけではないCassandraでもconsintency levelを調整してやればいい
        • CAP定理は正しい。が、誤解が異常に多い。同時には満たせないが同時でなければなんとかなる
      • ×トランザクションは無理
        • 一番カンタンには管理ノードを置いて、そこで処理すればいい
        • マスターノードを作っちゃうと分散は難しい。工夫が必要。工夫すればできる
      • ×業務系フロントシステムには向かない
        • RDBMSを主役にすえたNot Only SQL →なんて言ってるのはもう古い!
  • Cassandraを選んだ理由
  • どういったものを使いたいかをよく考えて選んでほしい
    • 一長一短あるので検討してほしい
  • NoSQLとRDBMSとの本当の関係
    • RDBMSでの高速化(負荷分散)
      • replicationで読み込み負荷分散 → 書き込みは負荷分散できない。RDBMSの最大の弱点
      • テーブル単位で複数サーバーに分割〜テーブルを分割 → 発想はNoSQLと同じ
      • インデックスを張る → 発想はNoSQLと同じ
      • 番外) SQLの解析を飛ばして直接ストレージアクセス → SQLですらない!
    • 設計を深くつきつめると同じ
      • そもそもCPUの処理量はDBに関係なく一定
      • CPU処理量の配分の最適化(「処理量保存の法則」)
    • いい使い方
      • NoSQL: フロント(オンライン)
      • RDBMS: バックヤード(オフライン)
      • Not Only SQLで推奨するのは↑とは逆の使い方
    • NoSQL: フロント向き
      • 書き込み負荷も容易に分散
      • 障害・アクシデントに強い
      • 分散がバックアップもかねる
    • RDBMS: バックヤードでの分析・統計向き
      • SQLが便利
      • 検索、ソートが効率的
  • 実案件でのNoSQL
    • 大規模ポイント管理サービス: 視聴率データの取り込み
    • 拡張性の担保
      • サーバーを追加すればOK
      • すでに秒間16000回を実証済
    • サーバー障害もひと通り経験
      • HDの大規模障害(半分落ちた)にも耐えた
    • こんなシステムを1人で構築することもできるのがNoSQLの面白いところ
  • NoSQLあるある
    • 社長「NoSQLって何?」 → 「さすがですね! これからのびる技術です」
    • 人事「新人でもできる?」→「ちょうど良かったです。そういう人の方が向いてます」→人材確保
    • 部長「お金になるワケ?」
  • NoSQLが熱い領域
    • M2M(広い意味で)
      • センサーネットワーク
      • 業界大手はHadoopによる可視化まで
    • 既存領域でもまだまだいける
  • Action!
  • 合言葉
    • NoSQLでうでを試そう
  • 大切な考え方・キーワード
    • 「○○マスター」を作らない
    • NoSQLは画面から作る(RDBMSのようにモデルから考えると失敗する)
      • DBは入れ物。だから分散できる
      • ロジックはアプリ側へ
    • CAP定理とBASE
    • めげない心
    • NoSQLはエンジニアの腕の見せ所がとても多い
      • NoSQLは技術ではなく市場である
    • RDBの誕生からSQLの標準化まで20年かかった
      • そこからNoSQLの誕生までやはり20年
      • 次の20年は?
感想

NoSQLにはなんでも入れられるから、モデルを先に作るより画面を考えよう、というのは、SQLに慣れた頭だと逆に難しそうです。

その他

ランチは1日目に満席で入れなかったカレー屋さんに行きました。おいしかったです。イベント会場周辺のランチ事情をどこかにまとめておきたいですね。