spangled shalalala blog

諦めたらそこで試合終了だよ。

DeNA Tech Con 2016に行ってきました! #denatechcon

先日、渋谷ヒカリエホールにて開催されたDeNA Tech Con2016に参加してきました。

techcon.dena.com

今年初のカンファレンス参加でしたが、自分は仕事の都合で2本しかトークを見れずでした。。。

f:id:brokenspeaker888:20160129131258j:plain

拝見したトークは

  • Webを速くするためにDeNAがやっていること〜HTTP/2と、さらにその先〜
  • DeNAが取り組むSoftware Engineer in Test

の2本です。

以下はトークを聞いた時のメモです。

Webを速くするためにDeNAがやっていること〜HTTP/2と、さらにその先〜

KAZUHO OKU

  • HandlerSocket
  • MySQL向けのKVSプロトコル実装
  • スレーブ台数とネットワーク負荷を削減できた
  • レスポンスタイムの削減
  • webレスポンスタイムを削減することで売上が1%かわる
  • HTTP2の基本
  • HTTP2の最適化
  • H2O
  • DeNAで開発しているWebサーバー
  • データ量も増えてるがバンド幅も増えてる
  • 問題無いようにみてて、ページロード時間はバンド幅に比例しない
  • ページロードはレイテンシが小さいほど早い
  • HTTP1.1は多重性が無いため1度に1つのリクエストしか送受信できない
  • レイテンシは今後も小さくならない
    • 光の速度は変わらない
    • スマホはレイテンシが大きい
  • HTTP2 RFCが2015年策定
  • バイナリプロトコル
  • 多重化
  • ヘッダ圧縮
    • 圧縮率50%もでる
  • 多重化でレイテンシの低減
  • ヘッダ圧縮で通信料を低減
  • http2におけるレスポンスタイムの最適化
  • グラフの赤の部分は画面が最初に表示されるまでの時間
  • 青の時間はデータの受信時間
  • 優先度制御の最適化
  • H2Oでは優先度を自動で付け替えている
  • サーバープッシュ
  • CDNによるウェブ高速化にも応用可能
  • アプリケーションサーバの設置箇所を減らすことができる
  • サーバープッシュの課題
    • 優先度制御
    • サーバプッシュの使い方
    • ブラウザキャッシュ
  • ユーザー待ち時間の最適化
    • ユーザー体験向上、売上の向上
  • まとめ
  • より短いレスポンスタイム
  • より高いスループット
  • H2OがHTTP2サーバ実装をリード
  • DeNAはH2Oの成果を社会に還元

DeNAが取り組むSoftware Engineer in Test

NAKAGAWA MASAKI

  • SWET SoftWare Engineer in Test
  • GoogleのブログではSWETは配活者の役割と書かれている
  • 開発者がテストしやすくするために色々する
  • SWETのミッション・ステートメント
    • プロダクトサービスの品質向上
    • エンジニアの生産性向上
  • サーバ期
    • 大規模システムの拡張とリファクタリング
    • オープンプラットフォームのグローバル展開
    • -> E2Eテストを確立して自動化
    • RESTful APIテスト自動化
      • APIの仕様はグローバルで共通
      • まずはバックエンドを抑える
      • つくったもの
      • HTTP(S)WebAPIテスト(Perl)
      • Mobage API専用クライアント(Perl
    • ブラウザテスト自動化
      • つくったもの
      • オープンプラットフォームのブラウザテスト
      • Movageブラウザテスト(Ruby)
      • Mobage専用クライアント (Ruby)
    • 技術的な取組み
    • Seleniumを使用
  • クライアント期
    • Webブラウザベースからネイティブアプリへ転換
    • SDKテスト自動化の課題
    • SDK単体ではSDKの機能テストを実行できない
    • SDKを使ったテストドライバが必要
    • SDKを使ったテストアプリを作ることに
    • そして、そのアプリをどうにかして自動操作する
    • SDKには種類がある(Android, iOS, Unity…)
    • つくったもの
      • SDKをつかったテストアプリ
      • テストアプリを使ったモバイルテスト
    • 技術的な取組み
      • Mobile Automation
      • まだデファクトが確率されていない
      • 自動化の要件次第で選択しが変わってくる
    • 取組み
      • 昔はCalabashだった
      • ブラウザテストとの統合も見据えてAppiumに着手
  • プラットフォームのSWETとして
    • 各種自動テストに対応
    • その過程で各種アプリケーションも作成
    • Jenkinsで自動化
  • 各サービスプロダクトへの応用
  • Game Baasのサポートを開始
  • 全社横断組織として テスト基盤チーム の設置
  • 最近の取組み
    • 百原テスト
    • puraibe-to debaisu fa-mu koutiku
    • テスト環境の構築
  • シナリオテストあるある
    • 実行に時間がかかる
    • 分割したいけどWoekerファイルによってばらつきがある
    • テスト実行計画管理ツールの作成
      • 並列数に応じてシナリオを分割
      • シナリオ単位の実行時間を集計
      • 累積集計結果を次回実行計画に反映
  • テスト環境の仮想化
    • 分割・並列化で高速化できたので有効活用したい
    • 環境準備が以外と面倒なのが課題
    • Dockerの利用をはじめた
  • AWSデバイスファーム
    • 手元に端末がなくてもリモートでデバッグをする
  • STF
    • OSSのオンプレミスデバイスファーム
  • モバイル検証
  • モバイル自動テスト
  • これから
  • 方向性としてはモバイルてスティグ関連技術を高める
  • テスト基盤チーム
  • 課題解決のためのエンジニアリングを大切にしていく
  • エンジニアの成長として開拓すべき新しい技術がたくさん
  • 開発サイクル全般に関わる
  • アーキテクトに繋がる1つの道だと思う

 

HTTP2のトークでは最後にあった技術を社会に還元するという話が印象的でした。Webをもっと早くしていくために先陣を切っているのがオープンソースで開発されているH2Oであり、そこに力を入れているDeNAの取組みは非常に魅力的に感じました。

テストの話では、私自身SWETという言葉を知らなかったのですが話を聞いてみると今まさに私が所属する会社でもテストの環境を整えよう、考えようという機運が高まっているので丁度いいタイミングの内容のトークが聞けたと思う。

 

大きなトーク会場のほかにもカジュアルトーク会場が用意されていて、そこではLTが行われていました。

私がLT会場に行った時はファインドトラベルというサービスを開発しているエンジニアの方がLTをしていました。

find-travel.jp

ファインドトラベルさんは月間ユニークユーザー1200万人とのこと…すごっ。

エンジニアの35歳定年説についてトークしている話をされており、ウイスキーのV.S.O.Pを各年代ごとのキャリアに分けて

20代:V(バラエティ)

30代:S(スペシャリスト)

40代:O(オリジナリティ)

50代:P(パーソナリティ)

と例えられていたのが印象に残っています。自分はまだ幅広い知識を集めてバラエティを増やすために先入観とかに凝り固まらず色々挑戦してみよう。

 

短い時間しかいることができませんでしたが、非常に勉強になりました!来年も開催されるようならぜひ参加したいです!

オブジェクト指向の最高の本が復活した件について

最高の本と名高いオブジェクト指向入門 第二版(上・下巻)の在庫が復活してました。

 

オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)

二日酔いとリモートワーク

実家でも仕事頑張ろうと思ってパソコン持ってきたけど全く捗らなくて驚く。駅伝見て、親戚が遊びに来て、テレビ見て、夜に親戚の家に食事に行ったら終わった。夜中はスター・ウォーズエピソード6がテレビでやってたから見た。それまでの話の流れが全くわからなかったことや、途中から見たこともあり結局最後まで何もわからなかった。最後、ダースベイダーのマスクを取った顔がなんか気持ち悪かった。それにしても仕事が捗らなすぎてなんか雑な感じのドキュメント1枚書いただけでこれは本当にそろそろアカンなって感じがする。これは察するに居間で作業しようとするからであって自分の部屋や仕事部屋みたいなところが必要という感じがする。家族が話しかけてきたりテレビの音がしたりで色々と集中できない部分がある。いや、テレビの音は気にならないけど人が話しかけてくるとそれに答えたりしないといけないからダメだ。テレビは気にならない。テレビは無視しても問題がないからだ。それに元々自分は少し騒音がある方が集中できる質であり、昔から音楽かけたりテレビをつけっぱなしにしていたりしながら作業をしていたのを思い出した。つまり、自分が集中力を発揮できる条件としては少し騒音がするほうが良いのだと考えられる。会社ではシーンっとした環境で仕事をしているが、もしかしたら本当はそれは良くないのかもしれない。前はイヤホンを付けて音楽を聴きながら作業をしていたこともあるが、最近はそういうこともなくなった。前の会社では同僚はイヤホンしてたら耳栓にしなさいと言われていた。でも、耳栓でもイヤホンでも変わらない気がする。そういうことを気にするよりも他の改善が必要な部分があると思う。実家での作業は捗らないから年明け早々地獄っぽい仕事になると思うけど自分が蒔いた種だからなんとか回収しないといけない…それで、さらに年明け早々出張とかあるとすべてが破滅に向かってる感じがして色々絶望っぽい。地酒飲み過ぎて二日酔いになったりするから帰省中の仕事は効率が悪いと思う。リモートワーク、今の自分にはちょっと無理かな…