6月にアメリカのSanta Claraで行われた、O'Reilly Media主催の技術カンファレンス「Velocity 2016」の参加レポートを、『パフォーマンス向上のためのデザイン設計』の監訳を担当された西脇 靖紘氏にレポートしていただきました。最新の技術トレンドや、注目セッションなど、資料とあわせてチェックしてみてください。
みなさん、こんにちは。株式会社ウエディングパークにてエンジニアをしております西脇(@yasuhiro1711)と申します。アメリカはシリコンバレーにあるSanta Claraで開催された「Velocity 2016」という技術カンファレンスに参加してきましたので、この場をお借りして少々紹介させて頂きます。
Velocity とは?
VelocityはO'Reilly Mediaが主催する、パフォーマンスに関する技術カンファレンスです。5日間かけて開催される大規模なカンファレンスで、世界中からエンジニアが参加します。もともとは「Velocity」という名前の通りパフォーマンスにフォーカスした技術カンファレンスでしたが、近年はこのテーマに加えて、監視やモニタリング、サーバ運用、DevOps、SREといったキーワードが盛り込まれて、より幅広い技術を包括した技術カンファレンスとなっています。
このレポートではVelocityの概要よりも、Velocityで行われた熱かったセッション、気になったセッションの内容を中心に紹介させて頂きます。Velocityの概要や実施された各種イベント・雰囲気については、株式会社ウエディングパークのTechブログ「Velocity 2016 Santa Clara 参加レポート」に詳しく書いておりますので、こちらも合わせてご覧ください。
さて、今年のVelocityのセッションは、去年に引き続きDevOpsやSRE(Site Reliability Engineering)に関するテーマが熱かったのに加え、マシンラーニングのパフォーマンス分野への応用や、コンテナサービスに関するものが見られました。では、順に詳細を見て参りましょう。
「Velocity 2016」注目のテーマ
今年のポイントを以下にまとめました。前年(「Velocity 2015」)と比べて大きな変化があるわけではありませんが、ひとつひとつのテーマが深まった印象です。
- Performance Monitoring
- 既存の各種パフォーマンスモニタリングに加え、それに分析を組み合わせている事例が多かったです。分析はマシンラーニングを介し、半自動化やリアルタイムでステータスを返すケースなどが紹介されていました。
- DevOps、SRE
- サイト運用、アラートハンドリング、モニタリングなどの話から言葉の定義まで幅広く取り扱われていました。特にSREは企業によって考え方が違うところもありました。また、セッションの中には、DevOpsの次の概念の話もあり、非常に興味深かったです。
- 3rd party tag
- パフォーマンスへの影響を多様な視点から考察されたセッションがいくつかありました。
- HTTP/2
- HTTPSの話と合わせて、トピックスに多く上がりました。
- マシンラーニング
- パフォーマンスのモニタリングでも利用され始めており、自動解析が始まっています。パフォーマンスやモニタリング、インフラ以外の分野でも成長が目覚ましく注目されているワードでもあります。
他には、今では常識に近い「モバイルファースト」の概念や、Progressive Web Appsについても、パフォーマンスの観点で熱かったです。逆に、サーバレスやIoTに関するお話は分野柄あまりなかった印象です。
次に、特に注目すべきセッション10選を紹介していきます。
注目のセッション
The fundamentals of building progressive web apps — Pete LePage(Google)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/50526
- セッション資料:PWA Tutorial @ Velocity(Shared)
近年話題となっているProgressive Web Apps(PWA)についてのセッション。Progressive Web Appsとは、iOSやAndroidなど個別で作成する必要があるネイティブアプリではなく、プラットフォームに依存せず、ブラウザで動作するWebアプリを指します。概要について深く知るには、こちらのブログがわかりやすいでしょう。なぜ今PWAが求められているのか?どうやって、設計をしていくべきか?について述べています。PWAを実現するにあたり、資料にも上がっていますが、「Service Workers, Web App Manifests, Push」の概念は、大事な要素になります。
「Web App Manifests」をつくるためのドキュメントもGoogle側にあるので一度目を通してみると理解が深まります(下記参考リンク)。アプリからWeb回帰の流れがあり、今後PWAは盛り上がっていくと思われます。
Modern performance best practices — Dustin Whittle(AppDynamics)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/50142
- セッション資料:Modern Performance Best Practices 2016
サイトパフォーマンスを上げるため、サーバーサイド/クライアントサイドで有効なベストプラクティスを多数紹介したセッション。有名なルールを噛み砕いて説明されていて、非常に分かりやすかったです。簡単ですが、紹介されているベストプラクティスを挙げてみます。
- サーバサイドをスケールさせるためには
- できる限りキャッシュにする
- CDN+ブラウザキャッシュの活用
- サーバサイド側のリバースプロキシキャッシュ
- キューイング
- Async
- 有名なパフォーマンスベストプラクティス
- HTTPのリクエスト数を減らす
- HTTPのサイズを減らす
- コンテンツを最適化する
- DNSの名前解決を減らす
- ネットワークの遅延を減らす
また、Dustin Whittle氏が「これは使えるぞ!」と推しているパフォーマンスツールを一挙に取り上げている点でも要チェックのセッションです。パフォーマンスツールは環境ごとに適したものを使うのが鉄則ですが、この中から自分のサービスや開発にあったものを新たに見つけられるかもしれません。また、パフォーマンスを根本から変える注目のHTTP/2については、やはり『ハイパフォーマンス ブラウザネットワーキング――ネットワークアプリケーションのためのパフォーマンス最適化』を紹介しています(最強の書籍ですね)。本書の「12章 HTTP 2.0」では、かなり深くHTTP/2について解説されています。著者であるIlya Grigorik氏は、Velosity 2016でもセッションを行っています。
- ハイパフォーマンス ブラウザネットワーキング――ネットワークアプリケーションのためのパフォーマンス最適化
- Ilya Grigorik 著
- 和田 祐一郎/株式会社プログラミングシステム社 訳
- 2014年05月 発行
- 380ページ
- ISBN978-4-87311-676-1
- フォーマット:Print/PDF/ePub/mobi
A practical guide to monitoring and alerting with time series at scale — Jamie Wilkinson(Google)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/50383
- セッション資料:A practical guide to monitoring and alerting with time series at scale(Velocity Santa Clara 2016)
Site Reliability Engineering(SRE)についてのセッションです。SREは、DevOps Engineerだと言いつつも、何に責任を持ち、ゴールをどう見据えていくべきなのか? という定義に関する話に始まり、意味あるアラートを設定する方法や、メトリックスの作成、アラートデザインなどの話をしています。ストレージ分野のSREということで、実例を交えたセッションでもあり、SREエンジニアやインフラ、サーバエンジニア始め、DevOpesをしているエンジニアは一見の価値ありだと思います。また、SREについてはO'Reilly Mediaから書籍が出版されています。まだ英語版のみですが、必読書です。
- Site Reliability Engineering ―How Google Runs Production Systems
- Betsy Beyer、Chris Jones、Jennifer Petoff、Niall Richard Murphy 著
- 2016年03月 発行
- 552ページ
- ISBN978-1-4919-2912-4
- フォーマット:Print/Ebook
Building a user-centric Ops, support, and engineering team — Peter van Hardenberg(Heroku)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/50325
- セッション資料:Security and performance_ Breaking the conundrum_ _ _again Presentation.pdf
ユーザ指向のチームをどう作り上げるのかに関してのセッションです。トラブルの発生や問題を楽しみ、ユーザの近くに行こうと提唱しています。個人的には、リタイアしたコードやインフラを祝おう!と主張されてる部分に共感しました。シンクロしそうな部分から企業単位でも取り入れていけるとよいと思います。
Using machine learning to determine drivers of bounce and conversion — Patrick Meenan(Google), Tammy Everts(SOASTA)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/49936
- セッション資料:Using machine learning to determine drivers of bounce and conversion
マシンラーニングを利用して、コンバージョンを上げていこうというセッションです。マシンラーニングを利用することで、これまでは人間がしていた分析を自動化してリアルタイム化することが可能になります。バウンス率やコンバージョン率を上げるためにマシンラーニングを導入した結果、「複雑なセッションのページであるだけでコンバージョンが減少する」ことや、逆に「DNSルックアップの数やレンダリングの開始の時間は意味を成さない」などの発見をしたと報告されています。
Measuring ad blocker impact on site performance — Karan Kumar(Instart Logic)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/51264
- セッション資料:Measuring ad blocker impact on site performance Presentation.pptx
アドブロックのサイトパフォーマンスへの影響について考察しています。アドブロックはそもそも、3rd party tagの影響を廃止することでパフォーマンスアップやセキュリティアップを図るためのものです。通常はこれでパフォーマンスがアップすると思いますが、条件によっては逆に遅延するという話がありました。アドブロックにより引き起こされるCPU使用率上昇やレンダリングの遅延による劣化はユーザに悪影響を及ぼすので、注意が必要ですね。アドタグ戦国期の今だからこそ出てきている課題だと言えます。
Security and performance: Breaking the conundrum...again — Sonia Burney(Akamai), Sabrina Burney(Akamai)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/50173
- セッション資料:Security and performance_ Breaking the conundrum_ _ _again Presentation
パフォーマンスを発揮しつつもセキュリティを担保する方法を実際にコード例を出して説明しています。また、この資料でも3rd party tagについて触れられています。先の「Measuring ad blocker impact on site performance」とあわせて是非確認してみてください。
Taking back control over third-party content — Yoav Weiss(Akamai)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/49909
- セッション資料:Taking Back Control
3rd party tagとの向き合い方についてのセッションです。リクエスト数や3rd party tagの数についてポリシーを設けようという話が中心で、「アドのリクエストが大部分を占める現状」や「アドブロック技術の進化、ブラウザへの搭載」など、アド業界全体の動きについても触れています。「Ad blocker blocker blockers」というフレーズが途中で出てきますが、まさに「これだ!!」だと思いました。『パフォーマンス向上のためのデザイン設計』の付録で3rd party tagの扱いについて書いておりますので、ぜひ読んでみてください。
- パフォーマンス向上のためのデザイン設計
- Lara Callender Hogan 著
- 西脇 靖紘 監訳
- 星野 靖子 訳
- 2016年06月 発行
- 236ページ
- ISBN978-4-87311-755-3
- フォーマット:Print/PDF/ePub/mobi
Container orchestration wars — Karl Isenberg(Mesosphere)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/50085
- セッション資料:Container Orchestration Wars
コンテナのオーケストレーションツール(もしくはそれに分類されるツール)には、Docker SwarmやECS、Kubernetesなど、新しいものがどんどん出てきており、それぞれの特徴も出始めています。選択肢が増えるほどどうすればいいか迷うものです。このセッションでは、時代を追ってコンテナの歴史を解説し、各コンテナに関わるツールの特徴を説明しています。
Robust anomaly detection for real user monitoring data– Ritesh Maheshwari(LinkedIn),Yang Yang(LinkedIn)
- セッション概要:http://conferences.oreilly.com/velocity/devops-web-performance-ca/public/schedule/detail/50247
- セッション資料:Robust anomaly detection for real user monitoring data
モニタリング・運用に関して広くフォローしたセッションです。RUM(Real User Monitoring)でどうやってモニタリングを回していくか、要件定義から基準の作成、関連する指標、システム設計、運用のtipsなど一連の話をしているので、これからRUMを始める場合にも、運用の改善を検討する場合にも役立ちます。
最後に
いかがでしたでしょうか? 質・量ともに内容が非常に充実したカンファレンスが多くありました。セッションをピックアップしたためここでは紹介できていないセッションも数多くありますし、Keynoteでも良いプレゼンがたくさんありました。ぜひとも、上記各資料や以下リンクのスケジュールやビデオを参照してください。
関連ページ
-
Velocity 2016 Santa Clara
- Keynote一覧
- スケジュール一覧
- 動画リスト(YouTube)