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(パーソナリティ)

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

 

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