Submit Search
Upload
H2O x mrubyで人はどれだけ幸せになれるのか
•
18 likes
•
13,671 views
Ichito Nagata
Follow
YAPC::Kansai presentation slide about h2o and mruby
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 58
Download now
Download to read offline
Recommended
SmartNewsさん主催の『SmartNews Tech Night Vol.2』でお話した内容ですm(_ _)m
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理 (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05) NTTデータ 技術革新統括本部 システム技術本部生産技術部 インテグレーション技術センタ データ活用チーム 佐々木 徹
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
メルカリ社の創業時以来から存在しているモノリスサービスの Kubernetes 移行に関する話
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
マスタデータNight #1 https://masterdata.connpass.com/event/155533/
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
2019 年 11 月 18 日 Google Cloud INSIDE Game & Apps 『私たちがGCPを使い始めた本当の理由』 グリー株式会社 堀口 真司氏のセッションの登壇スライドです。
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
AbemaTV has faced a lot of technical challenges. In order to become mass media in Japan, we need to get over them. The presentation describes our approaches to solve them.
AbemaTV が対峙する技術的課題と開発の現場
AbemaTV が対峙する技術的課題と開発の現場
Yusuke Goto
2019年3月14日に開催されたHadoop / Spark Conference Japan 2019での講演資料です。
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
AbemaTV Developer Conference 2016 http://developer.abema.io/
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
yuichiro nakazawa
Recommended
SmartNewsさん主催の『SmartNews Tech Night Vol.2』でお話した内容ですm(_ _)m
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理 (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05) NTTデータ 技術革新統括本部 システム技術本部生産技術部 インテグレーション技術センタ データ活用チーム 佐々木 徹
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
メルカリ社の創業時以来から存在しているモノリスサービスの Kubernetes 移行に関する話
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
マスタデータNight #1 https://masterdata.connpass.com/event/155533/
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
2019 年 11 月 18 日 Google Cloud INSIDE Game & Apps 『私たちがGCPを使い始めた本当の理由』 グリー株式会社 堀口 真司氏のセッションの登壇スライドです。
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
AbemaTV has faced a lot of technical challenges. In order to become mass media in Japan, we need to get over them. The presentation describes our approaches to solve them.
AbemaTV が対峙する技術的課題と開発の現場
AbemaTV が対峙する技術的課題と開発の現場
Yusuke Goto
2019年3月14日に開催されたHadoop / Spark Conference Japan 2019での講演資料です。
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
AbemaTV Developer Conference 2016 http://developer.abema.io/
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
yuichiro nakazawa
Yahoo! JAPANのIaaS基盤では200超のOpenStackクラスタが稼働しており、それらのコントロールプレーンをKubernetes上にデプロイしています。IaaSチームで管理している十数のKubernetesクラスタは古いバージョンのまま運用が続けられていたため、現在、段階的にバージョンアップおよびその自動化に取り組んでいます。このようなクラスタ群をメンテナンスする中で、工夫した点や失敗した点、得られた知見を紹介します。 Yahoo! JAPAN Tech Conference 2022は2022年2月3日、4日に開催しました。 https://techconference.yahoo.co.jp/2022/ アーカイブ動画はこちらからご覧ください。 https://youtu.be/F5EQqWOw8So
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
Apache Kafka Meetup Japan #3 https://kafka-apache-jp.connpass.com/event/58619/ 発表資料
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
NTT Tech Conference #2 にて話した資料 時間が足りなかったので全部は話せなかった。
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
オープンソースカンファレンス2022 Spring https://event.ospn.jp/osc2022-online-spring/ 発表資料です。
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
分散システムのFault Injectionの話 NTTデータテクノロジーカンファレンス2017で発表する際に用いたプレゼン資料 https://oss.nttdata.com/hadoop/event/201710/index.html
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
CEDEC 2021 の講演資料です。 ノートに講演で話した内容をそのまま記載ありますので、 講演内容を完全に把握したい方はダウンロードしての閲覧をお勧めします。 株式会社セガ 開発技術部 山田英伸/竹原涼
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
talked by Cloud Operator Days 2020 https://cloudopsdays.com
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
DeNA TechCon 2017の登壇資料です。
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
Microservices Meetup vol.8 Lightning Talks Battle! で話した内容です https://microservices-meetup.connpass.com/event/99190/
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
XP祭り2017のセッションのスライドになります。 http://xpjug.com/xp2017-session-a5-1/ 元ネタは以下です。 http://i2key.hateblo.jp/entry/2017/05/15/082655 ※CCPMの表記について一部誤解を与える部分がありましたので、表記を削除いたしました。 2017/09/21 0:27
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
DeNA TechCon 2018の登壇資料です。
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNA
マイクロサービスアーキテクチャが話題を集め、コンポーネントのWeb API化が更なる急加速を見せる昨今。 とは言え「誰でも自由に叩いて良い」Web APIなんてのは事実上無く、ほぼ全てのケースで何かしらのアクセス制御が必要になります。 - Spring Security もサポートする昔ながらの「Basic認証」。古い、ということは、悪いソリューションなのか? - 最近のAPIのアクセス制御と言えば「OAuth 2.0」がトレンディ? Spring Security OAuth もあるし! - 一方でAWSは「APIキー方式」を採用。なぜAWSはOAuth2ではないのか? - Spring Security はまだ公式にサポートしていない「OpenID Connect」とは一体…? Webにおけるアクセス制御の歴史を振り返りつつ、様々なAPIの立ち位置と共に、その最適解を探っていきたいと思います。
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
立ち上げから3年経ったAbemaTV。様々な機能追加やサービス規模の拡大に伴う改修を行ってきました。本セッションでは、AbemaTVのこれまでの課題とそれを解決するためのアーキテクチャの変遷をお話します。
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
AbemaTV, Inc.
コンテナのメリットの一つとして「ポータビリティが高い」ことが挙げられます。 これはその通りなのですが、一度動いたからといって絶対にどこでも動くとは限りません。 コンテナの仕組みを振り返りながらその限界と私がDocker/Kubernetesで遊んでいた時に遭遇した事例について紹介したいと思います。
コンテナポータビリティの振り返りとハマった事例紹介
コンテナポータビリティの振り返りとハマった事例紹介
Ryo Yamaoka
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Golang勉強会 in Kagawa http://gdgshikoku.connpass.com/event/26262/
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
第63回 HTML5とか勉強会 with html5jゲーム部発足記念合同勉強会 の発表資料です。
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
Ryosuke Otsuya
東京Node学園 #26の発表
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
Yoshiki Shibukawa
2015/07/29 Developers Summit 2015 Summerでの、志田の講演資料になります
経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織
Recruit Technologies
2017/05/26のDB比較セミナーで使用した資料です。 NoSQLであるRedisについて説明しています。
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
appengine ja night #35の発表資料です。 http://gcpja.connpass.com/event/44024/
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント こちらでの登壇資料 人事任せにしないエンジニア採用 ー 自分でチームメンバーを採用したいエンジニア向け勉強会 - connpass https://forkwell.connpass.com/event/59774/
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
Narichika Kajihara
More Related Content
What's hot
Yahoo! JAPANのIaaS基盤では200超のOpenStackクラスタが稼働しており、それらのコントロールプレーンをKubernetes上にデプロイしています。IaaSチームで管理している十数のKubernetesクラスタは古いバージョンのまま運用が続けられていたため、現在、段階的にバージョンアップおよびその自動化に取り組んでいます。このようなクラスタ群をメンテナンスする中で、工夫した点や失敗した点、得られた知見を紹介します。 Yahoo! JAPAN Tech Conference 2022は2022年2月3日、4日に開催しました。 https://techconference.yahoo.co.jp/2022/ アーカイブ動画はこちらからご覧ください。 https://youtu.be/F5EQqWOw8So
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
Apache Kafka Meetup Japan #3 https://kafka-apache-jp.connpass.com/event/58619/ 発表資料
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
NTT Tech Conference #2 にて話した資料 時間が足りなかったので全部は話せなかった。
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
オープンソースカンファレンス2022 Spring https://event.ospn.jp/osc2022-online-spring/ 発表資料です。
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
分散システムのFault Injectionの話 NTTデータテクノロジーカンファレンス2017で発表する際に用いたプレゼン資料 https://oss.nttdata.com/hadoop/event/201710/index.html
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
CEDEC 2021 の講演資料です。 ノートに講演で話した内容をそのまま記載ありますので、 講演内容を完全に把握したい方はダウンロードしての閲覧をお勧めします。 株式会社セガ 開発技術部 山田英伸/竹原涼
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
talked by Cloud Operator Days 2020 https://cloudopsdays.com
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
DeNA TechCon 2017の登壇資料です。
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
Microservices Meetup vol.8 Lightning Talks Battle! で話した内容です https://microservices-meetup.connpass.com/event/99190/
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
XP祭り2017のセッションのスライドになります。 http://xpjug.com/xp2017-session-a5-1/ 元ネタは以下です。 http://i2key.hateblo.jp/entry/2017/05/15/082655 ※CCPMの表記について一部誤解を与える部分がありましたので、表記を削除いたしました。 2017/09/21 0:27
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
DeNA TechCon 2018の登壇資料です。
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNA
マイクロサービスアーキテクチャが話題を集め、コンポーネントのWeb API化が更なる急加速を見せる昨今。 とは言え「誰でも自由に叩いて良い」Web APIなんてのは事実上無く、ほぼ全てのケースで何かしらのアクセス制御が必要になります。 - Spring Security もサポートする昔ながらの「Basic認証」。古い、ということは、悪いソリューションなのか? - 最近のAPIのアクセス制御と言えば「OAuth 2.0」がトレンディ? Spring Security OAuth もあるし! - 一方でAWSは「APIキー方式」を採用。なぜAWSはOAuth2ではないのか? - Spring Security はまだ公式にサポートしていない「OpenID Connect」とは一体…? Webにおけるアクセス制御の歴史を振り返りつつ、様々なAPIの立ち位置と共に、その最適解を探っていきたいと思います。
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
立ち上げから3年経ったAbemaTV。様々な機能追加やサービス規模の拡大に伴う改修を行ってきました。本セッションでは、AbemaTVのこれまでの課題とそれを解決するためのアーキテクチャの変遷をお話します。
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
AbemaTV, Inc.
コンテナのメリットの一つとして「ポータビリティが高い」ことが挙げられます。 これはその通りなのですが、一度動いたからといって絶対にどこでも動くとは限りません。 コンテナの仕組みを振り返りながらその限界と私がDocker/Kubernetesで遊んでいた時に遭遇した事例について紹介したいと思います。
コンテナポータビリティの振り返りとハマった事例紹介
コンテナポータビリティの振り返りとハマった事例紹介
Ryo Yamaoka
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Golang勉強会 in Kagawa http://gdgshikoku.connpass.com/event/26262/
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
第63回 HTML5とか勉強会 with html5jゲーム部発足記念合同勉強会 の発表資料です。
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
Ryosuke Otsuya
東京Node学園 #26の発表
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
Yoshiki Shibukawa
2015/07/29 Developers Summit 2015 Summerでの、志田の講演資料になります
経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織
Recruit Technologies
2017/05/26のDB比較セミナーで使用した資料です。 NoSQLであるRedisについて説明しています。
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
What's hot
(20)
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
分散システムについて語らせてくれ
分散システムについて語らせてくれ
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
AbemaTVのアーキテクチャの変遷 / AbemaTV DevCon 2018 TrackA Session A2
コンテナポータビリティの振り返りとハマった事例紹介
コンテナポータビリティの振り返りとハマった事例紹介
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Viewers also liked
appengine ja night #35の発表資料です。 http://gcpja.connpass.com/event/44024/
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント こちらでの登壇資料 人事任せにしないエンジニア採用 ー 自分でチームメンバーを採用したいエンジニア向け勉強会 - connpass https://forkwell.connpass.com/event/59774/
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
Narichika Kajihara
ねむい
ICTutorialOverlay : A utility for making "Overlay Tutorial"
ICTutorialOverlay : A utility for making "Overlay Tutorial"
Ichito Nagata
2017年6月27日開催の「人事任せにしないエンジニア採用 ー 自分でチームメンバーを採用したいエンジニア向け勉強会」でのLT発表資料
スタートアップを目指す零細企業のエンジニア採用事情
スタートアップを目指す零細企業のエンジニア採用事情
Kohji Osamura
人事任せにしないエンジニア採用 ー 自分でチームメンバーを採用したいエンジニア向け勉強会 のLT資料 https://forkwell.connpass.com/event/59774/
エンジニア採用における技術広報の重要ポイント
エンジニア採用における技術広報の重要ポイント
Noriaki Kadota
Tech Summit 2017のセッション(DAL005)「Azure Cosmos DB を使った高速分散アプリケーションの設計パターン」資料です。
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
Andrew Betts Web Developer, The Financial Times at Fastly Altitude 2016 Running custom code at the Edge using a standard language is one of the biggest advantages of working with Fastly’s CDN. Andrew gives you a tour of all the problems the Financial Times and Nikkei solve in VCL and how their solutions work.
Solving anything in VCL
Solving anything in VCL
Fastly
Viewers also liked
(7)
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
やってみたら意外とできた!イベント・リクルーティングの成功させる2つのポイント
ICTutorialOverlay : A utility for making "Overlay Tutorial"
ICTutorialOverlay : A utility for making "Overlay Tutorial"
スタートアップを目指す零細企業のエンジニア採用事情
スタートアップを目指す零細企業のエンジニア採用事情
エンジニア採用における技術広報の重要ポイント
エンジニア採用における技術広報の重要ポイント
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Solving anything in VCL
Solving anything in VCL
Similar to H2O x mrubyで人はどれだけ幸せになれるのか
第2回 Game Gatling LTでお話した際のスライドとなります。 イベントページはこちら http://gglt.connpass.com/event/38134/ スライド中で紹介している入門記事は http://developers.mobage.jp/blog/mithril-introduction こちらになります。
まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩
Keisuke Mori
IoT Technology Conference powered by SORACOM if-up 2017 の資料になります
アプリエンジニアでもできる閉域網構築のススメ!
アプリエンジニアでもできる閉域網構築のススメ!
Tosihiyuki Hirai
SORACOM Conference 2017 “Discovery”でLTをさせて頂いた内容です。 タイトルがうまく表示されていませんが、 「SORACOM Canalを使った キャンペーン端末事例」がタイトルになります。
SORACOM Canalを使った キャンペーン端末事
SORACOM Canalを使った キャンペーン端末事
Tosihiyuki Hirai
ベトナムオフショア開発セミナー
オフショア開発の利用のコツと発注側が気をつけるポイント
オフショア開発の利用のコツと発注側が気をつけるポイント
株式会社DEHA SOLUTIONS
「DevLOVE199 越境CON」 の登壇資料です。 2017-01-28(土)13:00 - 20:00 https://devlove.doorkeeper.jp/events/55648 チーム改善を目指した取り組みについてお話しです。 ChatOpsによる運用改善・アジャイル開発手法をお手本にしたタスク可視化について紹介するとともに、チームの最若手メンバーとして実行の際に考えたこと・意識させられたことをお伝えしました。
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと
Masayuki Ueda
Bonfire API #1 「APIの役割の多様化」において発表された資料です。
Bonfire API #1 APIのリトライ処理
Bonfire API #1 APIのリトライ処理
Yahoo!デベロッパーネットワーク
DeNA TechCon 2017 での発表資料
自動運転に向けた取り組みと安全管理
自動運転に向けた取り組みと安全管理
Kuwabara Kunihito
2017.02.28 CAMPFIRE GrowthHack #1 https://yj-meetup.connpass.com/event/48214/ での発表内容です。
グロースハック なぜ我々は無意味な施策を打ってしまうのか
グロースハック なぜ我々は無意味な施策を打ってしまうのか
Yahoo!デベロッパーネットワーク
2017.07.03 CAMPFIRE Growth Hack #2 https://yj-meetup.connpass.com/event/58809/ での発表内容です。
スポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcamp
スポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcamp
Yahoo!デベロッパーネットワーク
Every body dance nowの論文解説とECCV2018行ってきた感想
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
Tenki Lee
How to 大量データ処理 ~Hadoop/Redshift/Aerospike~ ディマージシェア様と共同で勉強会を開催いたしました。 その際の資料を公開します。
マーケティングテクノロジー勉強会
マーケティングテクノロジー勉強会
伊藤 孝
Techconの資料となります。
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
Makoto Haruyama
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
Yahoo!デベロッパーネットワーク
WWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension について
Yahoo!デベロッパーネットワーク
「Nuxt.jsで中規模サービスを統合した話」 InsideFrontend 2019のA-3で発表した内容です。
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
HajimeSasanuma
グリー開発本部 Meetup #5 U30 で発表された資料です https://gree.connpass.com/event/143875/
インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
gree_tech
ITmedia社主催の特集連動勉強会(@特勉)の発表資料
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Yukinori Suda
OSC2021 Online/Fukuokaでの発表資料です。 Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来 https://event.ospn.jp/osc2021-online-fukuoka/session/408247
Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来
Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来
馮 富久
https://idcf.doorkeeper.jp/events/63057
kukai: 省エネ世界2位のディープラーニング・スパコン
kukai: 省エネ世界2位のディープラーニング・スパコン
Yahoo!デベロッパーネットワーク
Hadoop~Yahoo! JAPANの活用について~
Hadoop~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
Similar to H2O x mrubyで人はどれだけ幸せになれるのか
(20)
まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩
アプリエンジニアでもできる閉域網構築のススメ!
アプリエンジニアでもできる閉域網構築のススメ!
SORACOM Canalを使った キャンペーン端末事
SORACOM Canalを使った キャンペーン端末事
オフショア開発の利用のコツと発注側が気をつけるポイント
オフショア開発の利用のコツと発注側が気をつけるポイント
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り組んでわかったこと
Bonfire API #1 APIのリトライ処理
Bonfire API #1 APIのリトライ処理
自動運転に向けた取り組みと安全管理
自動運転に向けた取り組みと安全管理
グロースハック なぜ我々は無意味な施策を打ってしまうのか
グロースハック なぜ我々は無意味な施策を打ってしまうのか
スポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcamp
スポーツナビアプリ スモールチームでのアプリ強化の進め方 #yjcamp
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
ECCV2018 Everybody dance now論文紹介 (CV勉強会@関東)
マーケティングテクノロジー勉強会
マーケティングテクノロジー勉強会
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
WWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension について
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来
Gihyo Digital Publishing10年の歩み~専門書・専門雑誌の電子出版の過去・現在・未来
kukai: 省エネ世界2位のディープラーニング・スパコン
kukai: 省エネ世界2位のディープラーニング・スパコン
Hadoop~Yahoo! JAPANの活用について~
Hadoop~Yahoo! JAPANの活用について~
H2O x mrubyで人はどれだけ幸せになれるのか
1.
Copyright © DeNA Co.,Ltd. All Rights Reserved. H2O x mrubyで ⼈はどれだけ 幸せになれるのか March 4, 2017 @i110 Technology Development, System Management Unit DeNA Co., Ltd. YAPC::Kansai 御中
2.
Copyright © DeNA Co.,Ltd. All Rights Reserved. ⾃⼰紹介 ! @i110 ! 株式会社ディー・エヌ・エー !
システム本部技術開発室所属 ⁃ ⾊んな⼈が⾊んなことをやってる部署 ⁃ 平均年齢⾼め ! 昨年夏くらいにあれやこれやあってH2Oの開発にjoin ! 現在、業務時間の全てをH2Oの開発に注いでいる状態 ⁃ 最近はmrubyまわりの機能追加&改善が多め 2
3.
Copyright © DeNA Co.,Ltd. All Rights Reserved. H2Oについてさらっと 3
4.
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サイトの訪問者に有望な経験を提供します。
5.
Copyright © DeNA Co.,Ltd. All Rights Reserved. H2Oはなぜ⾼速なのか ! 主に3つの理由による 1. 優先度制御が優秀 2.
先進仕様への対応の速さ(Cache-digests、TLS1.3、etc..) 3. neatかつ無駄のない実装 ! 詳しくはWebで! 5
6.
Copyright © DeNA Co.,Ltd. All Rights Reserved. しかし… ! Apacheとnginxつよい ! 理由(私⾒) 1.
豊富なモジュール群 2. 情報の多さ 3. 枯れてる度 ! 私は当然H2Oが最⾼のWebサーバーだと信じているので 世界の⼈々をより幸せにするためにH2Oが普及してほしい ! 速いことはわかった。それ以外に何が必要か 6 hGps://w3techs.com/technologies/overview/ web_server/all
7.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 便利で快適なWebサーバーへ ! Apacheやnginxに出来て、H2Oに出来ないことを無くしたい ! 拡張モジュールの整備 !
ユーザー⾃⾝による拡張モジュールの書きやすさ ! Apacheやnginxよりも、同じことが簡単にできるようにしたい ! 設定ファイルの柔軟さ&テスタビリティ ! あとドキュメントももっと沢⼭書きますすいません 7
8.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 組み込み⾔語としてのmrubyの採⽤ ! 2015年7⽉にリリースしたv1.4で、 Ryosuke Matsumoto(@matsumotory) さんが初期実装 ! リクエストハンドラとしてmrubyのコードを実⾏できる 8
9.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 組み込み⾔語としてのmrubyの採⽤ ! ApacheやNginxよりも強いサポート ! コアに付属、デフォルトでON !
⾮同期I/Oを可能にする各種ライブラリの提供 ! Rack Specに準拠した⾃然なインターフェース ! 今後さらに⼿厚くしていく予定 ! 想定⽤途 ! アクセス制御、URIリライト、レスポンスの書き換え、etc.. ! プログラマブルで柔軟な設定が可能に ! サーバー機能の⼿軽な拡張も可能に 9
10.
Copyright © DeNA Co.,Ltd. All Rights Reserved. mrubyの何がどう嬉しいのか 1. サーバ機能の拡張性 2. 設定の柔軟性&テスタビリティ 10
11.
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
12.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 2. 設定の柔軟性&テスタビリティ ! 個⼈的な話にはなりますが、Apacheやnginxのディレクティブを ⼀切覚えられない(覚えるつもりもない)ので 毎回サーバー⽴てるたびに2時間くらいぐぐっている ! 凶悪なmod_rewrite、 ミスりやすいアクセス制御、 何故か効かないsection… !
理想 ! シンプルなことはディレクティブで簡単に ! 複雑なことはプログラマブルにがっつり 12
13.
Copyright © DeNA Co.,Ltd. All Rights Reserved. なんとなく印象と⼀致する参考値 ! ⽐較 ! Excel not working: 1,170万件 !
PowerPoint not working: 1,040万件 ! nginx config not working: 73万件 ! nginxはユーザーの⾃⼰解決能⼒が⾼いというのもありそう 13
14.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 2. 設定の柔軟性&テスタビリティ ! ディレクティブによる設定だと、設定がちゃんと効いているか 実際にリクエストを送って試してみるしかない ! 設定追加したらConflictして別の箇所が動かなくなった!とか… !
複雑であるからこそテストを書きたいのに… ! mrubyならテストを書ける ! 粒度の細かい単体テスト ! スタブを使ったテスト ! etc.. ! 近⽇中に何かしらのHowToを公開します(たぶん) 14
15.
Copyright © DeNA Co.,Ltd. All Rights Reserved. というわけで、本⽇は ! H2O x mruby の仕組みの簡単な解説 ! 知られざる機能の紹介 !
ステルスで追加した機能 ! 近々マージ予定の機能 15
16.
Copyright © DeNA Co.,Ltd. All Rights Reserved. H2O x mruby 概説 16
17.
Copyright © DeNA Co.,Ltd. All Rights Reserved. H2Oのアーキテクチャ ! マルチスレッド x イベントループ ! デフォルトでコア数と同じ数のスレッドが起動 !
各スレッドがイベント駆動でリクエストを捌く ! 外部I/Oによるブロックはスループットに直結するので、 全てのI/O絡みの処理をノンブロッキングで⾏うことが肝要 17
18.
Copyright © DeNA Co.,Ltd. All Rights Reserved. mruby中の処理もノンブロッキングでやりたい ! 何も考えずに既存のmrbgemsを使うと簡単にブロックする ! イベントループ対応された既存mrbgemsはほとんど無い !
特にh2oでは独⾃の(⾼速な!)イベントループを使っており、 例えばlibuv対応のmrbgemsがあっても普通には使えない ! CにもAnyEventみたいなレイヤがあればいいんですけどね ! H2O x mruby ではイベント駆動の恩恵を受けられないのか? 18
19.
Copyright © DeNA Co.,Ltd. All Rights Reserved. それFiberでできるよ ! Fiber: Rubyにおけるコルーチン/継続/協調的マルチタスク ! Perlでいうと…なんでしょうね?Coro?(使ったことない) 19
20.
Copyright © DeNA Co.,Ltd. All Rights Reserved. FiberによるノンブロッキングI/O 20
21.
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
22.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Rack ApplicaIon としての mrubyハンドラ ! Rack仕様に則ったRackアプリケーションとして(ほぼ)記述可能 ! v2.2以前はレスポンスの書き換えが不可だが、v2.3以降で出来るように なる予定 22
23.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Rack ApplicaIon としての mrubyハンドラ ! mrubyコードを外部ファイルに置くことも勿論可能 ! Rack Middleware的なことも勿論可能 !
そのうちRack::Builder互換のDSLも作りたい 23
24.
Copyright © DeNA Co.,Ltd. All Rights Reserved. H2O x mruby で あれやこれやできるよという話 24
25.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Access Control 25
26.
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
27.
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 警告: そんなにちゃんと動作確認してないので参考にしないで下さい
28.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Access Control - Apacheの場合 ! 僕の低いApache⼒では不可能でした ! 正直にいうと調べる気も起きませんでした 28
29.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Access Control - H2O 2.0以前の場合 ! うっこわい ! まぁやりたいことが素直にできはするし、読めもする !
しかしもうちょっとなんとかならないものか 29
30.
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
31.
Copyright © DeNA Co.,Ltd. All Rights Reserved. DoS DetecIon 31
32.
Copyright © DeNA Co.,Ltd. All Rights Reserved. DoS DetecIon ! 標準でDoSDetectorというライブラリを提供 ! IPアドレスベースで単位時間内のリクエスト数をカウントし、 超えたら⼀定期間BANする (403 Forbidden) !
Apacheのmod_dosdetectorに相当 ! https://github.com/stanaka/mod_dosdetector ! ロジックも参考にさせて頂きました 32
33.
Copyright © DeNA Co.,Ltd. All Rights Reserved. DoS DetecIon - Advanced ! DoS判定時の処理はcallbackでカスタマイズ可能 ! ログ吐いたりアラートメール⾶ばしたり !
strategyを⾃作すれば、DoS判定ロジックもカスタマイズ可能 33
34.
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
35.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request 35
36.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request ! mrubyハンドラからノンブロッキングなHTTP Requestが⾶ばせる ! proxy的なことが容易にできる !
2段階の同期ポイント ! req.joinしてステータスとヘッダのみを取得 ! resp[2].joinしてボディを取得 36
37.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request - 例1 ! 起動時にetcdから設定値を取得するサンプル(v2.3〜) ! 資料からは詳細省いたけど、このハンドラの外側で⾮同期処理させるや つ⼤変だったんですよ…詳しくはWebで… !
逆にいうと今はハンドラの外ではhttp_requestとか使えないので お気をつけ下さい 37
38.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request - 例2 ! 複数リクエストを同時に投げて、結合して返すサンプル 38
39.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request - 例2 - もっと効率よく ! こんな⾵にすると、より早くレスポンスのパイプラインに載せられる ! メモリフットプリントも⼩さくなる(多分) 39
40.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request - 例3 ! ESI (Edge Side Includes) のサンプル ! ちなみにESIとは !
エッジサーバ(e.g. CDN)側で、 動的にコンテンツを組み⽴てるためのマークアップ仕様(超古い) ! ページを構成する部品ごとにキャッシュできる 40
41.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request - 例3 ! 適当にこんなの作って… 41 <esi:include>タグの src属性を抜き出して HTTPリクエストを送信 bodyを受信(というか同期)
42.
Copyright © DeNA Co.,Ltd. All Rights Reserved. HTTP Request - 例3 ! こう ! シンプルに⾒えるが、この機能をcで実装することをご想像下さい… 42
43.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Redis 43
44.
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
45.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Redis: 例 ! 静的なページのHTTPレスポンスをまるっとredisにキャッシュする例 45
46.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Other TCP Bindings 46
47.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Other TCP Bindings ! HTTPやRedisやコア側で実装がすでにあったからそれを使えばよかった ! でも今後、他のプロトコルを使いたい場合等はどうする? !
MySQL, memcached, etc.. ! 個別にcでプロトコルバインディングを実装してくのはしんどい 47
48.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Other TCP Bindings ! ノンブロッキングなH2O::TCPSocketを作った ! 個別のバインディングは、mrubyでこれを使いつつ書けばよい !
ので、⾮常に書きやすくなったはず ! mrubyのパフォーマンスが問題になることは ほとんど無いだろう想定 ! とりあえずMySQLでも書いてみる予定(予定は未定) 48
49.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Image Filter 49
50.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Image Filter ! 発表駆動開発で、今⽇までになんとかそれっぽいもの作ろうと思ってた んですけど、間に合いませんでした… ! いちおう今後こんなことも考えてますよ、的なノリで紹介させて下さい !
主旨: ! mod_small_light的な、画像をオンザフライで縮⼩やクリップして くれるやつが欲しい ! 流⽯にmrubyで画像処理をするのは遅いだろう ! 外部コマンド実⾏できたらよいのでは ! それ以外にも出来ることの幅が広がるし 50
51.
Copyright © DeNA Co.,Ltd. All Rights Reserved. ベンチマーク 51
52.
Copyright © DeNA Co.,Ltd. All Rights Reserved. ベンチマーク ! ⽰したいこと ! mrubyであれこれやっても、システムのボトルネックはどうせ I/Oもしくはアプリケーションなので、問題にならないはず !
同じ処理をするnginxと⽐較して誤差レベルの劣化しかないはず ! サンプルアプリ: ! 単純なTODOリストみたいなやつのJSON API ! https://github.com/i110/tinytodo ! 設定ファイルやwrk scriptも⼊ってます 52
53.
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
54.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 事前ベンチマーク 54 ! ベンチ取る前にまず、H2O x mrubyとnginxの純粋な性能差を調べよう ! アプリ抜きで、それぞれが直接200返してみる !
mrubyぶんのoverheadのせいでnginxのほうが速い想定 負荷かけ サーバ revproxy (H2O or nginx) クソアプリ 負荷 sqlite 問答無⽤で 200
55.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 事前ベンチマーク – 結果 55 ! この時点でH2Oのほうが速いんですけど…まじで… ! クソアプリいらなかったわ… Requests per second
56.
Copyright © DeNA Co.,Ltd. All Rights Reserved. ベンチマーク: 考察 ! よくわからない ! まぁnginxもごにょごにょ書きすぎると遅くなるということですかね !
とにかく⼤勝利でよかった ! 少なくともほとんどのユースケースでは、mrubyであれこれやっても 問題ないと⾔えるのではないか 56
57.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 結論 57
58.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 結論 ! H2O x mrubyでみんなで幸せになろう ! つらみのある設定ファイルとはさよならしよう !
⾃由にサーバを拡張していこう ! 簡単に拡張機能を書けるので是⾮書いてみてください ! ブログに書いたりgithubで公開してくれる等すると⼤変嬉しいです ! Feature requestしてくれるだけでも⼤変嬉しいです ! ⾊々な機能&改善が⼊る予定のv2.3にご期待下さい ! むしろコアまわりのPRもお待ちしております 58
Download now