H2O x mrubyで人はどれだけ幸せになれるのか

Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
H2O	x	mrubyで	
⼈はどれだけ	
幸せになれるのか	
March	4,	2017	
@i110	
Technology	Development,	
System	Management	Unit	
DeNA	Co.,	Ltd.		
YAPC::Kansai	御中
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
⾃⼰紹介	
!  @i110	
!  株式会社ディー・エヌ・エー	
!  システム本部技術開発室所属	
⁃  ⾊んな⼈が⾊んなことをやってる部署	
⁃  平均年齢⾼め	
!  昨年夏くらいにあれやこれやあってH2Oの開発にjoin	
!  現在、業務時間の全てをH2Oの開発に注いでいる状態	
⁃  最近はmrubyまわりの機能追加&改善が多め	
2
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
H2Oについてさらっと	
3
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
H2Oとは	
!  https://h2o.examp1e.net/	
!  Google翻訳いわく	
!  おおむねこの通りです(⾚字部分を除いて)	
!  みんな⼤好き某kazuho	sanが開発	
!  現在の最新verはv2.2.0-beta1	
4	
H2Oは、古い世代のWebサーバーと⽐較して、	
CPU使⽤率が低いユーザーに迅速な応答を提供する、	
新しい世代のHTTPサーバーです。	
基盤から設計されたサーバーは、優先コンテンツ配信と	
サーバープッシュを含むHTTP	/	2機能をフルに活⽤し、	
Webサイトの訪問者に有望な経験を提供します。
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
H2Oはなぜ⾼速なのか	
!  主に3つの理由による	
1.  優先度制御が優秀	
2.  先進仕様への対応の速さ(Cache-digests、TLS1.3、etc..)	
3.  neatかつ無駄のない実装	
!  詳しくはWebで!	
5
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
しかし…	
!  Apacheとnginxつよい	
!  理由(私⾒)	
1.  豊富なモジュール群	
2.  情報の多さ	
3.  枯れてる度	
!  私は当然H2Oが最⾼のWebサーバーだと信じているので
世界の⼈々をより幸せにするためにH2Oが普及してほしい	
!  速いことはわかった。それ以外に何が必要か	
6	
hGps://w3techs.com/technologies/overview/
web_server/all
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
便利で快適なWebサーバーへ	
!  Apacheやnginxに出来て、H2Oに出来ないことを無くしたい	
!  拡張モジュールの整備	
!  ユーザー⾃⾝による拡張モジュールの書きやすさ	
!  Apacheやnginxよりも、同じことが簡単にできるようにしたい	
!  設定ファイルの柔軟さ&テスタビリティ	
!  あとドキュメントももっと沢⼭書きますすいません	
7
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
組み込み⾔語としてのmrubyの採⽤	
!  2015年7⽉にリリースしたv1.4で、
Ryosuke	Matsumoto(@matsumotory)	さんが初期実装	
!  リクエストハンドラとしてmrubyのコードを実⾏できる	
8
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
組み込み⾔語としてのmrubyの採⽤	
!  ApacheやNginxよりも強いサポート	
!  コアに付属、デフォルトでON	
!  ⾮同期I/Oを可能にする各種ライブラリの提供	
!  Rack	Specに準拠した⾃然なインターフェース	
!  今後さらに⼿厚くしていく予定	
!  想定⽤途	
!  アクセス制御、URIリライト、レスポンスの書き換え、etc..	
!  プログラマブルで柔軟な設定が可能に	
!  サーバー機能の⼿軽な拡張も可能に	
9
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
mrubyの何がどう嬉しいのか	
1.  サーバ機能の拡張性	
2.  設定の柔軟性&テスタビリティ	
10
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
1.	サーバ機能の拡張性	
!  ユーザ⾃⾝が、欲しい機能をさくっと書いて追加できる状態が理想	
!  しかしcでモジュール作るのは⼤変	
!  Cloudbleed	(2017)	
!  https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-
parser-bug/	
!  Cloudflare	(CDN)で発⽣したユーザ秘匿情報の漏えい問題	
!  原因は、内製のnginxモジュール(HTMLパーサ)のバグ	
!  ポインタ管理のミスによるバッファオーバーラン	
!  mrubyで書けば原理的に発⽣しえない問題	
!  コードにバグがあっても、バッファオーバーランが発⽣することはない	
11
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
2.	設定の柔軟性&テスタビリティ	
!  個⼈的な話にはなりますが、Apacheやnginxのディレクティブを
⼀切覚えられない(覚えるつもりもない)ので
毎回サーバー⽴てるたびに2時間くらいぐぐっている	
!  凶悪なmod_rewrite、
ミスりやすいアクセス制御、
何故か効かないsection…	
!  理想	
!  シンプルなことはディレクティブで簡単に	
!  複雑なことはプログラマブルにがっつり	
12
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
なんとなく印象と⼀致する参考値	
!  ⽐較	
!  Excel	not	working:														1,170万件	
!  PowerPoint	not	working:						1,040万件	
!  nginx	config	not	working:									73万件	
!  nginxはユーザーの⾃⼰解決能⼒が⾼いというのもありそう	
13
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
2.	設定の柔軟性&テスタビリティ	
!  ディレクティブによる設定だと、設定がちゃんと効いているか
実際にリクエストを送って試してみるしかない	
!  設定追加したらConflictして別の箇所が動かなくなった!とか…	
!  複雑であるからこそテストを書きたいのに…	
!  mrubyならテストを書ける	
!  粒度の細かい単体テスト	
!  スタブを使ったテスト	
!  etc..	
!  近⽇中に何かしらのHowToを公開します(たぶん)	
14
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
というわけで、本⽇は	
!  H2O	x	mruby	の仕組みの簡単な解説	
!  知られざる機能の紹介	
!  ステルスで追加した機能	
!  近々マージ予定の機能	
15
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
H2O	x	mruby	概説	
16
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
H2Oのアーキテクチャ	
!  マルチスレッド	x	イベントループ	
!  デフォルトでコア数と同じ数のスレッドが起動	
!  各スレッドがイベント駆動でリクエストを捌く	
!  外部I/Oによるブロックはスループットに直結するので、
全てのI/O絡みの処理をノンブロッキングで⾏うことが肝要	
17
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
mruby中の処理もノンブロッキングでやりたい	
!  何も考えずに既存のmrbgemsを使うと簡単にブロックする	
!  イベントループ対応された既存mrbgemsはほとんど無い	
!  特にh2oでは独⾃の(⾼速な!)イベントループを使っており、
例えばlibuv対応のmrbgemsがあっても普通には使えない	
!  CにもAnyEventみたいなレイヤがあればいいんですけどね	
!  H2O	x	mruby	ではイベント駆動の恩恵を受けられないのか?	
18
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
それFiberでできるよ	
!  Fiber:	Rubyにおけるコルーチン/継続/協調的マルチタスク	
!  Perlでいうと…なんでしょうね?Coro?(使ったことない)	
19
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
FiberによるノンブロッキングI/O	
20
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
FiberによるノンブロッキングI/O	
!  実際のH2Oのコード	
!  https://github.com/h2o/h2o/blob/master/lib/
handler/mruby/embedded/core.rb#L51	
!  設定ファイルから得たmrubyハンドラの
コードを、Fiber	Runnerに変換	
!  最適化のため、⾒た⽬がそこそこ怖い	
!  作成したFiberの再利⽤	
!  begin-rescueのオーバーヘッド回避	
!  ちなみにv2.3からはもっと怖い感じにな
ります	
21
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Rack	ApplicaIon	としての	mrubyハンドラ	
!  Rack仕様に則ったRackアプリケーションとして(ほぼ)記述可能	
!  v2.2以前はレスポンスの書き換えが不可だが、v2.3以降で出来るように
なる予定	
22
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Rack	ApplicaIon	としての	mrubyハンドラ	
!  mrubyコードを外部ファイルに置くことも勿論可能	
!  Rack	Middleware的なことも勿論可能	
!  そのうちRack::Builder互換のDSLも作りたい	
23
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
H2O	x	mruby	で	
あれやこれやできるよという話	
24
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Access	Control	
25
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Access	Control	
!  v2.1から、aclという組み込みメソッドを⽤意	
!  アクセス制御が簡単に書けるように	
!  サンプルケース	
!  127.0.0.1からのアクセスは常に許可	
!  192.168.*以外からのcurlは403	
!  特定のipからのリクエストには503	
!  “moved”	が含まれるパスへのリクエストは特定URLにリダイレクト	
!  /admin/	以下へのリクエストにはBasic認証を要求	
26
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Access	Control	-		nginxの場合	
!  多分こんな感じ	
!  つれぇ…	
!  Ifの条件中で、andやorが使
えないしネストもできない	
!  変数使ってうまいこと
やりくり…	
!  そもそも公式がif	is	evilと⾔
っている模様…何だと…	
!  https://www.nginx.com/
resources/wiki/start/topics/
depth/ifisevil/	
27	
警告:	そんなにちゃんと動作確認してないので参考にしないで下さい
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Access	Control	-		Apacheの場合	
!  僕の低いApache⼒では不可能でした	
!  正直にいうと調べる気も起きませんでした	
28
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Access	Control	-		H2O	2.0以前の場合	
!  うっこわい	
!  まぁやりたいことが素直にできはするし、読めもする	
!  しかしもうちょっとなんとかならないものか	
29
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Access	Control	-		H2O	2.1以降	
!  なんとなくエレガントに書けるようになった!	
!  aclブロックの中では各種DSLメソッドが使える	
!  allow:	即座に後続のハンドラにpass	through	
!  deny:	即座に403	
!  etc..	
!  各メソッドのブロック内では、適⽤条件を好きに書ける	
!  ここでもaddrやpathなど、envにアクセスするための
DSLメソッドが使える	
30
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
DoS	DetecIon	
31
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
DoS	DetecIon	
!  標準でDoSDetectorというライブラリを提供	
!  IPアドレスベースで単位時間内のリクエスト数をカウントし、
超えたら⼀定期間BANする	(403	Forbidden)	
!  Apacheのmod_dosdetectorに相当	
!  https://github.com/stanaka/mod_dosdetector	
!  ロジックも参考にさせて頂きました	
32
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
DoS	DetecIon	-	Advanced	
!  DoS判定時の処理はcallbackでカスタマイズ可能	
!  ログ吐いたりアラートメール⾶ばしたり	
!  strategyを⾃作すれば、DoS判定ロジックもカスタマイズ可能	
33
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
DoS	DetecIon	–	もろもろ	
!  注意点	
!  現在の実装は、スレッド単位のローカル変数でカウントしているの
で、閾値をホスト数×スレッド数で割り算する必要がある	
!  v2.3あたりから、mrubyからRedisが使えるようになる予定(後
述)なので、そういったstrategyを⽤意する予定がなくはない	
!  Pure	mrubyで書かれているため、モジュール⾃作したいユーザーさんの
サンプルとして良いのでは	
!  なおPure	mrubyコードなら単にrequireするだけでよく、
H2Oの再ビルドは不要	
!  c等を使ってmrbgemsを書きたい場合は、mrubyとh2oをビルドし
なおす必要あり	
!  個⼈的にはjoin初⽇に書いたやつなので思い⼊れがある
(⾃分で使ってないけど)	
34
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	
35
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	
!  mrubyハンドラからノンブロッキングなHTTP	Requestが⾶ばせる	
!  proxy的なことが容易にできる	
!  2段階の同期ポイント	
!  req.joinしてステータスとヘッダのみを取得	
!  resp[2].joinしてボディを取得	
36
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	-	例1	
!  起動時にetcdから設定値を取得するサンプル(v2.3〜)	
!  資料からは詳細省いたけど、このハンドラの外側で⾮同期処理させるや
つ⼤変だったんですよ…詳しくはWebで…	
!  逆にいうと今はハンドラの外ではhttp_requestとか使えないので
お気をつけ下さい	
37
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	-	例2	
!  複数リクエストを同時に投げて、結合して返すサンプル	
38
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	-	例2	-	もっと効率よく	
!  こんな⾵にすると、より早くレスポンスのパイプラインに載せられる	
!  メモリフットプリントも⼩さくなる(多分)	
39
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	-	例3	
!  ESI	(Edge	Side	Includes)	のサンプル	
!  ちなみにESIとは	
!  エッジサーバ(e.g.	CDN)側で、
動的にコンテンツを組み⽴てるためのマークアップ仕様(超古い)	
!  ページを構成する部品ごとにキャッシュできる	
40
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	-	例3	
!  適当にこんなの作って…	
41	
<esi:include>タグの	
src属性を抜き出して	
HTTPリクエストを送信	
bodyを受信(というか同期)
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP	Request	-	例3	
!  こう	
!  シンプルに⾒えるが、この機能をcで実装することをご想像下さい…	
42
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Redis	
43
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Redis	
!  v2.2から、TLS	Session	Resumptionのバックエンドとして使うため、
ネイティブでredisサポートしてます	
!  ID	basedの場合:キャッシュの保管場所として	
!  ticket	basedの場合:チケットの保管場所として	
!  ちなみにauto	rotate機能付き	
!  2.1以前はmemcachedだけだった	
!  HiRedisをラップしてh2oコアに持ってる	
!  v2.3以降	
!  そのredisライブラリをmrubyからも扱えるようにした
H2O::Redisがリリース予定	
!  キャッシュをredisから取ってきて返却する、みたいな処理を
mrubyで⾏うことが可能に	
44
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Redis:	例	
!  静的なページのHTTPレスポンスをまるっとredisにキャッシュする例	
45
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Other	TCP	Bindings	
46
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Other	TCP	Bindings	
!  HTTPやRedisやコア側で実装がすでにあったからそれを使えばよかった	
!  でも今後、他のプロトコルを使いたい場合等はどうする?	
!  MySQL,	memcached,	etc..	
!  個別にcでプロトコルバインディングを実装してくのはしんどい	
47
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Other	TCP	Bindings	
!  ノンブロッキングなH2O::TCPSocketを作った	
!  個別のバインディングは、mrubyでこれを使いつつ書けばよい	
!  ので、⾮常に書きやすくなったはず	
!  mrubyのパフォーマンスが問題になることは
ほとんど無いだろう想定	
!  とりあえずMySQLでも書いてみる予定(予定は未定)	
48
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Image	Filter	
49
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Image	Filter	
!  発表駆動開発で、今⽇までになんとかそれっぽいもの作ろうと思ってた
んですけど、間に合いませんでした…	
!  いちおう今後こんなことも考えてますよ、的なノリで紹介させて下さい	
!  主旨:	
!  mod_small_light的な、画像をオンザフライで縮⼩やクリップして
くれるやつが欲しい	
!  流⽯にmrubyで画像処理をするのは遅いだろう	
!  外部コマンド実⾏できたらよいのでは	
!  それ以外にも出来ることの幅が広がるし	
50
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ベンチマーク	
51
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ベンチマーク	
!  ⽰したいこと	
!  mrubyであれこれやっても、システムのボトルネックはどうせ
I/Oもしくはアプリケーションなので、問題にならないはず	
!  同じ処理をするnginxと⽐較して誤差レベルの劣化しかないはず	
!  サンプルアプリ:	
!  単純なTODOリストみたいなやつのJSON	API	
!  https://github.com/i110/tinytodo	
!  設定ファイルやwrk	scriptも⼊ってます	
52
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ベンチマーク構成	
53	
!  検証環境	
!  EC2東京リージョン	c4-8xlarge	3台	(論理コア数36)	
!  リバースプロキシ(H2O	or	nginx)	
!  アプリケーションサーバ	(Plack	app)	
!  負荷かけサーバ(wrk	with	lua	scripting)	
!  同⼀プレイスメントグループ、拡張ネットワーキング有効	
負荷かけ	
サーバ	
revproxy	
(H2O	or	nginx)	
クソアプリ	
負荷	 proxy	
sqlite
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
事前ベンチマーク	
54	
!  ベンチ取る前にまず、H2O	x	mrubyとnginxの純粋な性能差を調べよう	
!  アプリ抜きで、それぞれが直接200返してみる	
!  mrubyぶんのoverheadのせいでnginxのほうが速い想定	
負荷かけ	
サーバ	
revproxy	
(H2O	or	nginx)	
クソアプリ	
負荷	
sqlite	問答無⽤で	
200
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
事前ベンチマーク	–	結果	
55	
!  この時点でH2Oのほうが速いんですけど…まじで…	
!  クソアプリいらなかったわ…	
Requests	per	second
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ベンチマーク:	考察	
!  よくわからない	
!  まぁnginxもごにょごにょ書きすぎると遅くなるということですかね	
!  とにかく⼤勝利でよかった	
!  少なくともほとんどのユースケースでは、mrubyであれこれやっても
問題ないと⾔えるのではないか	
56
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
結論	
57
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
結論	
!  H2O	x	mrubyでみんなで幸せになろう	
!  つらみのある設定ファイルとはさよならしよう	
!  ⾃由にサーバを拡張していこう	
!  簡単に拡張機能を書けるので是⾮書いてみてください	
!  ブログに書いたりgithubで公開してくれる等すると⼤変嬉しいです	
!  Feature	requestしてくれるだけでも⼤変嬉しいです	
!  ⾊々な機能&改善が⼊る予定のv2.3にご期待下さい	
!  むしろコアまわりのPRもお待ちしております	
58
1 of 58

Recommended

1 Linux入門 第1章 UNIX/Linuxとは by
1 Linux入門 第1章 UNIX/Linuxとは1 Linux入門 第1章 UNIX/Linuxとは
1 Linux入門 第1章 UNIX/LinuxとはEnpel
3.2K views9 slides
今こそ知りたいSpring Batch(Spring Fest 2020講演資料) by
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
8.5K views53 slides
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019) by
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Noritaka Sekiyama
20.5K views61 slides
webエンジニアのためのはじめてのredis by
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredisnasa9084
8.3K views31 slides
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!) by
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
13.4K views22 slides
コンテナネットワーキング(CNI)最前線 by
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
31.6K views34 slides

More Related Content

What's hot

EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!- by
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-Yuta Imai
42.1K views64 slides
Apache NiFi の紹介 #streamctjp by
Apache NiFi の紹介  #streamctjpApache NiFi の紹介  #streamctjp
Apache NiFi の紹介 #streamctjpYahoo!デベロッパーネットワーク
3.3K views25 slides
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み by
開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組みJumpei Miyata
827 views39 slides
フロー効率性とリソース効率性について #xpjug by
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
106.2K views62 slides
Ceph アーキテクチャ概説 by
Ceph アーキテクチャ概説Ceph アーキテクチャ概説
Ceph アーキテクチャ概説Emma Haruka Iwao
30.4K views62 slides
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料) by
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)NTT DATA Technology & Innovation
1.4K views55 slides

What's hot(20)

EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!- by Yuta Imai
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
Yuta Imai42.1K views
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み by Jumpei Miyata
開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み
Jumpei Miyata827 views
フロー効率性とリソース効率性について #xpjug by Itsuki Kuroda
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda106.2K views
Ceph アーキテクチャ概説 by Emma Haruka Iwao
Ceph アーキテクチャ概説Ceph アーキテクチャ概説
Ceph アーキテクチャ概説
Emma Haruka Iwao30.4K views
PostgreSQLによるデータ分析ことはじめ by Ohyama Masanori
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori17.5K views
マスターデータの キャッシュシステムの改善の話 by natsumi_ishizaka
マスターデータの キャッシュシステムの改善の話マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
natsumi_ishizaka2.6K views
AWS で Presto を徹底的に使いこなすワザ by Noritaka Sekiyama
AWS で Presto を徹底的に使いこなすワザAWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザ
Noritaka Sekiyama1.3K views
MogileFSをバックエンドとしたPrivate S3の作り方 by Ryo Kuroda
MogileFSをバックエンドとしたPrivate S3の作り方MogileFSをバックエンドとしたPrivate S3の作り方
MogileFSをバックエンドとしたPrivate S3の作り方
Ryo Kuroda15K views
AbemaTVの動画配信を支えるサーバーサイドシステム by yuichiro nakazawa
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
yuichiro nakazawa30.5K views
AbemaTV が対峙する技術的課題と開発の現場 by Yusuke Goto
AbemaTV が対峙する技術的課題と開発の現場AbemaTV が対峙する技術的課題と開発の現場
AbemaTV が対峙する技術的課題と開発の現場
Yusuke Goto6.2K views
HTTP2 最速実装 〜入門編〜 by Kaoru Maeda
HTTP2 最速実装 〜入門編〜HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
Kaoru Maeda32K views
MySQL 5.7にやられないためにおぼえておいてほしいこと by yoku0825
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825175.1K views
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな by Amazon Web Services Japan
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
OpenStackでも重要な役割を果たすPacemakerを知ろう! by ksk_ha
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
ksk_ha3.9K views
SPAと覚悟 by Teppei Sato
SPAと覚悟SPAと覚悟
SPAと覚悟
Teppei Sato67.4K views

Viewers also liked

メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法 by
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法Takuya Ueda
10.1K views40 slides
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント by
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイントやってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイントNarichika Kajihara
3K views36 slides
ICTutorialOverlay : A utility for making "Overlay Tutorial" by
ICTutorialOverlay : A utility for making "Overlay Tutorial"ICTutorialOverlay : A utility for making "Overlay Tutorial"
ICTutorialOverlay : A utility for making "Overlay Tutorial"Ichito Nagata
5.6K views14 slides
スタートアップを目指す零細企業のエンジニア採用事情 by
スタートアップを目指す零細企業のエンジニア採用事情スタートアップを目指す零細企業のエンジニア採用事情
スタートアップを目指す零細企業のエンジニア採用事情Kohji Osamura
2K views20 slides
エンジニア採用における技術広報の重要ポイント by
エンジニア採用における技術広報の重要ポイントエンジニア採用における技術広報の重要ポイント
エンジニア採用における技術広報の重要ポイントNoriaki Kadota
50.8K views16 slides
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン by
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
5.5K views64 slides

Viewers also liked(7)

メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法 by Takuya Ueda
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda10.1K views
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント by Narichika Kajihara
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイントやってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
ICTutorialOverlay : A utility for making "Overlay Tutorial" by Ichito Nagata
ICTutorialOverlay : A utility for making "Overlay Tutorial"ICTutorialOverlay : A utility for making "Overlay Tutorial"
ICTutorialOverlay : A utility for making "Overlay Tutorial"
Ichito Nagata5.6K views
スタートアップを目指す零細企業のエンジニア採用事情 by Kohji Osamura
スタートアップを目指す零細企業のエンジニア採用事情スタートアップを目指す零細企業のエンジニア採用事情
スタートアップを目指す零細企業のエンジニア採用事情
Kohji Osamura2K views
エンジニア採用における技術広報の重要ポイント by Noriaki Kadota
エンジニア採用における技術広報の重要ポイントエンジニア採用における技術広報の重要ポイント
エンジニア採用における技術広報の重要ポイント
Noriaki Kadota50.8K views
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン by Kazuyuki Miyake
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake5.5K views
Solving anything in VCL by Fastly
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
Fastly13.3K views

Similar to H2O x mrubyで人はどれだけ幸せになれるのか

まだまだ戦えるweb!mithril.js最初の1歩 by
まだまだ戦えるweb!mithril.js最初の1歩 まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩 Keisuke Mori
863 views32 slides
アプリエンジニアでもできる閉域網構築のススメ! by
アプリエンジニアでもできる閉域網構築のススメ!アプリエンジニアでもできる閉域網構築のススメ!
アプリエンジニアでもできる閉域網構築のススメ!Tosihiyuki Hirai
2.9K views31 slides
SORACOM Canalを使った キャンペーン端末事 by
SORACOM Canalを使った キャンペーン端末事SORACOM Canalを使った キャンペーン端末事
SORACOM Canalを使った キャンペーン端末事Tosihiyuki Hirai
171 views22 slides
オフショア開発の利用のコツと 発注側が気をつけるポイント by
オフショア開発の利用のコツと発注側が気をつけるポイントオフショア開発の利用のコツと発注側が気をつけるポイント
オフショア開発の利用のコツと 発注側が気をつけるポイント株式会社DEHA SOLUTIONS
154 views15 slides
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと by
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り組んでわかったことMasayuki Ueda
1.1K views39 slides
Bonfire API #1 APIのリトライ処理 by
Bonfire API #1 APIのリトライ処理Bonfire API #1 APIのリトライ処理
Bonfire API #1 APIのリトライ処理Yahoo!デベロッパーネットワーク
6.5K views18 slides

Similar to H2O x mrubyで人はどれだけ幸せになれるのか(20)

まだまだ戦えるweb!mithril.js最初の1歩 by Keisuke Mori
まだまだ戦えるweb!mithril.js最初の1歩 まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩
Keisuke Mori863 views
アプリエンジニアでもできる閉域網構築のススメ! by Tosihiyuki Hirai
アプリエンジニアでもできる閉域網構築のススメ!アプリエンジニアでもできる閉域網構築のススメ!
アプリエンジニアでもできる閉域網構築のススメ!
Tosihiyuki Hirai2.9K views
SORACOM Canalを使った キャンペーン端末事 by Tosihiyuki Hirai
SORACOM Canalを使った キャンペーン端末事SORACOM Canalを使った キャンペーン端末事
SORACOM Canalを使った キャンペーン端末事
Tosihiyuki Hirai171 views
オフショア開発の利用のコツと 発注側が気をつけるポイント by 株式会社DEHA SOLUTIONS
オフショア開発の利用のコツと発注側が気をつけるポイントオフショア開発の利用のコツと発注側が気をつけるポイント
オフショア開発の利用のコツと 発注側が気をつけるポイント
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと by Masayuki Ueda
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと
Masayuki Ueda1.1K views
自動運転に向けた取り組みと安全管理 by Kuwabara Kunihito
自動運転に向けた取り組みと安全管理自動運転に向けた取り組みと安全管理
自動運転に向けた取り組みと安全管理
Kuwabara Kunihito999 views
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東) by Tenki Lee
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
Tenki Lee2K views
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon by DeNA
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA5.7K views
マーケティングテクノロジー勉強会 by 伊藤 孝
マーケティングテクノロジー勉強会マーケティングテクノロジー勉強会
マーケティングテクノロジー勉強会
伊藤 孝1.3K views
DeNAのゲーム開発を支える Game Backend as a Service by Makoto Haruyama
DeNAのゲーム開発を支える Game Backend as a ServiceDeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
Makoto Haruyama20.4K views
Unification of the middle scale services by Nuxt.js by HajimeSasanuma
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
HajimeSasanuma2.6K views
インフラエンジニアの楽しい標準化活動 by gree_tech
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
gree_tech2.1K views
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス by Yukinori Suda
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービスHadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Yukinori Suda3.2K views
Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来 by 馮 富久
Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来
Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来
馮 富久706 views

Recently uploaded

システム概要.pdf by
システム概要.pdfシステム概要.pdf
システム概要.pdfTaira Shimizu
44 views1 slide
onewedge_companyguide1 by
onewedge_companyguide1onewedge_companyguide1
onewedge_companyguide1ONEWEDGE1
54 views22 slides
Najah Matsuo Self Introduction by
Najah Matsuo Self IntroductionNajah Matsuo Self Introduction
Najah Matsuo Self IntroductionNajahMatsuo
10 views29 slides
SSH超入門 by
SSH超入門SSH超入門
SSH超入門Toru Miyahara
457 views21 slides
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私修治 松浦
208 views36 slides
概要.pdf by
概要.pdf概要.pdf
概要.pdfTaira Shimizu
6 views1 slide

Recently uploaded(6)

onewedge_companyguide1 by ONEWEDGE1
onewedge_companyguide1onewedge_companyguide1
onewedge_companyguide1
ONEWEDGE154 views
Najah Matsuo Self Introduction by NajahMatsuo
Najah Matsuo Self IntroductionNajah Matsuo Self Introduction
Najah Matsuo Self Introduction
NajahMatsuo10 views
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by 修治 松浦
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦208 views

H2O x mrubyで人はどれだけ幸せになれるのか