SlideShare une entreprise Scribd logo
1  sur  112
Télécharger pour lire hors ligne
SPAのためのインフラ構築ノウハウ
Vert.xとSockJSによるスケールアウトWebSocketサーバー構築
小堤 一弘

株式会社ゼノフィ
Xenophy.CO.,LTD
本日のアジェンダ
自己紹介
SPAに必要なインフラとは?
WebScoketインフラとしてのVert.xとSockJS
デモ
まとめ
自己紹介

こつつみ   かずひろ

小堤 一弘
株式会社ゼノフィ 代表取締役
Sencha 公式トレーニング認定トレーナー
Japan Sencha User Group 主宰
html5jエンタープライズ部
!
Twitter
@kotsutsumi
!
Facebook
https://www.facebook.com/kotsutsumi

Books
Ext JS Data-Driven Application Design
Sencha Ext JS 4 実践開発ガイド
Sencha Ext JS 4 実践開発ガイド 2
Sencha Touch 2 実践開発ガイド (監修)
SPAに必要なインフラとは?
SPAに必要なインフラとは?

Webサーバー
SPAに必要なインフラとは?

Webサーバー
データーベースサーバー
SPAに必要なインフラとは?

Webサーバー
データーベースサーバー
ファイル共有サーバー
SPAに必要なインフラとは?

Webサーバー
データーベースサーバー
ファイル共有サーバー
ロードバランサー
SPAに必要なインフラとは?

Webサーバー
データーベースサーバー
ファイル共有サーバー
ロードバランサー
HA構成(ロードバランサーやデータベースサーバー) etc…
SPAに必要なインフラとは?

それって、いままでの普通のWebページ制作と一緒じゃん。
SPAに必要なインフラとは?

そうです、SPAだからといってインフラ何変わるの?って話。
SPAに必要なインフラとは?

やっぱり、SPAだから…
SPAに必要なインフラとは?

非同期通信(AJAX)
SPAに必要なインフラとは?

するよね!!
SPAに必要なインフラとは?

でも、それって別にリクエスト受けられれば、いままでかわら(ry
SPAに必要なインフラとは?

冗長化構成?負荷分散?
SPAに必要なインフラとは?

そんなのインフラ屋さんにお願いして…
SPAに必要なインフラとは?

フロントエンジニアは知らんよ、そんなの。
SPAに必要なインフラとは?

フルスタックエンジニア?なにそれ、おいしいの?
SPAに必要なインフラとは?

でも、フルスタックエンジニアとまでいかなくても、
全体の設計がイメージできないと
SPAアプリケーション作っていけるの?
SPAに必要なインフラとは?

アプリケーションできあがってから、
インフラ周りで困るとか、悲しい…
SPAに必要なインフラとは?

やっぱり、SPA設計したり構築する人は、インフラのことも気にしな
きゃダメじゃない?知ってて損はないよね!?
SPAに必要なインフラとは?

いやだから、それって別にリクエスト受けられれば、いままでかわら(ry
SPAに必要なインフラとは?

そうです。
SPAに必要なインフラとは?

単純にAJAX通信するとかだけなら、あまり変わらない。
SPAに必要なインフラとは?

HTML5といえば、WebSocketなんて使う場合、どうするの?
SPAに必要なインフラとは?

そんなのググって、socket.ioとか見つかってパクれば、
なんとか徹夜は回避でき(ry
SPAに必要なインフラとは?

実は、そんなわけにも行かない。
SPAに必要なインフラとは?

WebSocket、WebRTCなどの
コミュニケーション技術に関して欠かせないもの。
SPAに必要なインフラとは?

サーバー
SPAに必要なインフラとは?

知らなかったら開発環境すら作れないよ?
SPAに必要なインフラとは?

いや、だからnodeのサンプルコピってきて、
socket.io使って動かせばすぐじゃん…?
SPAに必要なインフラとは?

と思うじゃん?
SPAに必要なインフラとは?
node + socket.io
SPAに必要なインフラとは?
node + socket.io
確かに、ググるとWebSocketといればsocket.ioみたいな感じで、
記事一杯転がってるよね。
SPAに必要なインフラとは?
node + socket.io
確かに、ググるとWebSocketといればsocket.ioみたいな感じで、
記事一杯転がってるよね。
サンプルも簡単、双方向通信余裕♪
SPAに必要なインフラとは?

と思うじゃん?
SPAに必要なインフラとは?

その構成と同じ1台のsocket.ioサーバーで何人さばけんの?
SPAに必要なインフラとは?

スケールできるの?
SPAに必要なインフラとは?

できるよ!!(震え声)
SPAに必要なインフラとは?

RedisStore使ったりしてさ、
サイバー○ージェントさんとかよく書いてるじゃん!!
SPAに必要なインフラとは?

おまえ、それつくれんの?(上司)
SPAに必要なインフラとは?

理論的には…(震え声)
SPAに必要なインフラとは?

んじゃ、やって(上司)
SPAに必要なインフラとは?

マジンコ?
SPAに必要なインフラとは?

とならないためには、やっぱりフロントエンジニアといえども、
ネットワークインフラの事は、色々知っていて…
SPAに必要なインフラとは?

そして、何よりも触ったことがある経験値が重要。
SPAに必要なインフラとは?

でも、WebSocketやりたいけど、Redisの冗長化とか…監視…
nodeのインスタンスを複数立てて…
nodeのパフォーマンスどうよ…
SPAに必要なインフラとは?

レッツ、ググる生活開始
SPAに必要なインフラとは?

死にたい…
SPAに必要なインフラとは?

なんかいい方法ないの?
すっきり簡単なやつ!!
SPAに必要なインフラとは?

ということで、今日は勉強することが一杯のインフラの中でも、
WebSocketを利用するための環境に着目してみます。
WebScoketインフラとしてのVert.xとSockJS
WebScoketインフラとしてのVert.xとSockJS

Virt.xってなに?
WebScoketインフラとしてのVert.xとSockJS

Virt.xってなに?
SockJS
WebScoketインフラとしてのVert.xとSockJS

Virt.xってなに?
SockJS
SockJS サーバーを作ってみる
WebScoketインフラとしてのVert.xとSockJS

Virt.xってなに?
SockJS
SockJS サーバーを作ってみる
Hazelcastを利用したVert.xサーバーのクラスタリング
Virt.xってなに?

Vert.x is a polyglot, non-blocking, event-driven application
platform that runs on the JVM.
Virt.xってなに?

Vert.x は、JVM上で動作するポリグロット、ノンブロッキング、イベン
トドリブンなアプリケーションプラットフォームです。
Virt.xってなに?

ん??よくわかんない…マニュアル的には…
ポリグロット?
ポリグロット?

アプリケーションをJavaScriptでも、RubyでもGroovyでもJavaで
もPythonでも記述することができます。
ポリグロット?

アプリケーションをJavaScriptでも、RubyでもGroovyでもJavaで
もPythonでも記述することができます。
そして、これら複数のプログラミング言語を交ぜて1つのアプリケー
ションを作ることができます。
シンプルな同時並行性モデル
シンプルな同時並行性モデル

Vert.xを使用すると、シングルスレッドとして、すべてのコードを書
くことができます。
シンプルな同時並行性モデル

Vert.xを使用すると、シングルスレッドとして、すべてのコードを書
くことができます。
マルチスレッド·プログラミングの多くの落とし穴から解放されます
シンプルな同時並行性モデル

Vert.xを使用すると、シングルスレッドとして、すべてのコードを書
くことができます。
マルチスレッド·プログラミングの多くの落とし穴から解放されます
非同期プログラミングモデルです!
シンプルな同時並行性モデル

Vert.xを使用すると、シングルスレッドとして、すべてのコードを書
くことができます。
マルチスレッド·プログラミングの多くの落とし穴から解放されます
非同期プログラミングモデルです!
イベントループというのがあって、Vert.xインスタンスがサーバー上
で利用可能なCPUコアにスレッドの数と一致するスレッド立てて稼
働することで、CPUコアを活かしきるよ!!
イベントバス
イベントバス

Vert.xは、アプリケーション·コンポーネントと簡単に通信すること
ができ、クライアントとサーバ側にまたがる分散イベントバス持って
います。
イベントバス

Vert.xは、アプリケーション·コンポーネントと簡単に通信すること
ができ、クライアントとサーバ側にまたがる分散イベントバス持って
います。
イベントバスを使って簡単に、いわゆるリアルタイムWebアプリ
ケーションを作成できるようにすることができます。
Virt.xってなに?

わかったようで、わからん…
Virt.xってなに?

このままだと、今日Vert.xの説明し始めて終わっちゃう…
Virt.xってなに?

つまりは、JavaScriptをはじめいろんな言語で構築できる
サーバーサイドの技術
Virt.xってなに?
そして、速い!!
Virt.xってなに?

nodeより速くて、なんかすごそうじゃん?
SockJS

SockJS - WebSocket emulation
SockJS

要するに、Socket.ioみたいにWebSocket使えない環境でもエミュレー
ションして、抽象レイヤーになってくれるよ!!
sockjs-client

様々なブラウザに、WebSocket
をはじめ、Streaming/Pollingで
対応している。
SockJS

すばらしいねっ!
SockJS

もちろんサーバーサイドの準備が必要な
んだけど、Vert.xは最初からSockJS
Serverを内蔵している!!
SockJS

すばらしいねっ!すぐ使える。
SockJS サーバーを作ってみる
SockJS サーバーを作ってみる

SockJS サーバーコード作成
SockJS サーバーを作ってみる

SockJS サーバーコード作成
SockJS クライアントコード作成
構成図

ブラウザ
(SockJSクライアント)

ブラウザ
(SockJSクライアント)

Vert.x サーバー
(SockJSサーバー)

ブラウザ
(SockJSクライアント)
Vert.xの設置
yumコマンドを使ってJDKをインストール
# yum -y install java-1.7.0-openjdk-devel;
vert.xインストール(/rootにインストールする前提、どこでもよい)
# wget "http://dl.bintray.com/vertx/downloads/vert.x-2.1M2.tar.gz" -O vert.x-2.1M2.tar.gz;
# tar xvzf vert.x-2.1M2.tar.gz;
パスを通す
# vi .bash_profile
PATH=“$PATH”:/root/vert.x-2.1M2/bin
# source .bash_profile
バージョン確認
# vertx version
SockJS サーバーコード作成
var vertx = require('vertx');
var server = vertx.createHttpServer();
var sockJSServer = vertx.createSockJSServer(server);

サーバー生成

!

sockJSServer.bridge({prefix : '/eventbus'}, [{
address : 'demo.orderMgr'
}], [{
address : 'demo.orderMgr'
}] );

セキュリティ設定

!

server.listen(8080);

これだけ!
SockJS クライアントコード作成
<html>
<head>
</head>
<body>
<script src="http://cdn.sockjs.org/sockjs-0.3.4.min.js"></script>
<script src='vertxbus-2.1.js'></script>
!
<script>
!
var eb = new vertx.EventBus('http://133.242.50.31:8080/eventbus');
!
eb.onopen = function() {
!
console.log('open');
!
eb.registerHandler('demo.orderMgr', function(message) {
!
console.log('received a message: ' +
JSON.stringify(message));
!
});
!
}
!
eb.onmessage = function(e) {
console.log('message', e.data);
};
!
eb.onclose = function() {
console.log('close');
};
!

function ebSend() {
var v = document.getElementById("form1").value;
eb.publish('demo.orderMgr', v);
}

!
</script>
<input id="form1" type="text" />
<input type="button" onclick="ebSend();" value="Send Message" />
</body>
</html>
SockJS サーバーを作ってみる
SockJSサーバー起動
# vertx run app.js
SockJS サーバーを作ってみる

後ほどデモで動いてるところを見てもらいます。
WebScoketインフラとしてのVert.xとSockJS

これが動いたとしても…
WebScoketインフラとしてのVert.xとSockJS

さっき話してた、nodeとなんら話は変わってないじゃん。
スケールどうするのよ?とか。
WebScoketインフラとしてのVert.xとSockJS

なんかいい方法ないの?
すっきり簡単なやつ!!
WebScoketインフラとしてのVert.xとSockJS

Hazelcastがあるよ!
Hazelcastを利用したVert.xサーバーのクラスタリング
Vert.xに組み込まれているHazelcast、
クラスタリングは、XMLを設定するだけ!
という手軽さっ!
クラスタリング構成図
ブラウザ
(SockJSクライアント)

ブラウザ
(SockJSクライアント)

ブラウザ
(SockJSクライアント)

Vert.x サーバー
(SockJSサーバー)

Vert.x サーバー
(SockJSサーバー)

Vert.x サーバー
(SockJSサーバー)

ローカルスイッチ
/root/vert.x-2.1M2/conf/cluster.xmlを編集
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-basic.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<property name="hazelcast.mancenter.enabled">false</property>
<property name="hazelcast.memcache.enabled">false</property>
<property name="hazelcast.rest.enabled">false</property>
<property name="hazelcast.wait.seconds.before.join">0</property>
<property name="hazelcast.logging.type">jdk</property>
</properties>
<group>
<name>dev</name>
<password>dev-pass</password>
</group>
<network>
<port auto-increment="true">5701</port>
<join>
<multicast enabled="false">
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true">
<interface>192.168.0.2</interface>
<interface>192.168.0.3</interface>
<interface>192.168.0.4</interface>
</tcp-ip>
<aws enabled=“false">
…

クラスタリングしたいサーバーを
追加すればOK
クラスタ起動

vertx run app.js -cluster
デモ

         さんのご協力で、
さくらのクラウド環境を借りて検証環境を作成しました。
表示されるIPアドレスなどは、そのうち消えます。
デモ
Vert.x サーバー1へ接続するHTML
http://133.242.50.31/server1.html

みんなで、つないで
みよう!!

Vert.x サーバー2へ接続するHTML
自粛
http://133.242.50.31/server2.html

つながんなかったりし
たら、すまん!!

Vert.x サーバー3へ接続するHTML
http://133.242.50.31/server3.html
当日のデモ中のみ有効
まとめ
まとめ

SPAでWebSocketやWebRTCを利用しない限り、
今までのWebアプリケーションインフラと大差は
無い。
まとめ

SPAでWebSocketやWebRTCを利用しない限り、
今までのWebアプリケーションインフラと大差は
無い。
Webサーバーに比べて、WebSocketサーバーのス
ケールは世の中的な経験値がまだ浅い?
まとめ
まとめ

Vert.xは、Javaでサーバーサイドが記述できるた
め、エンタープライズシーンではマッチしやすい?
まとめ

Vert.xは、Javaでサーバーサイドが記述できるた
め、エンタープライズシーンではマッチしやすい?
Hazelcastによるイベントバススケールアウトは、
超簡単、無停止でスケールさせることも可能。
まとめ
まとめ

Vert.xは、SockJS Serverを内蔵しているので、
さっくり実装できてよい。
まとめ

Vert.xは、SockJS Serverを内蔵しているので、
さっくり実装できてよい。
スケールしやすいし、速いし、多言語で実装できる
し、WebSocketのインフラを自信を持って提供で
きる!!(もちろん自分で試せよ!!)
Vert.xとSockJSを、是非お試しください!!
ご清聴ありがとうございました!

Contenu connexe

Tendances

REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏Yusuke Hirao
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込むYoshiki Hayama
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術Takafumi ONAKA
 
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。憲昭 村田
 
えっ?まだそのツール使ってるの?
えっ?まだそのツール使ってるの?えっ?まだそのツール使ってるの?
えっ?まだそのツール使ってるの?Daiki Egashira
 
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す Kiro Harada
 
リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」Recruit Technologies
 
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!Yoshiki Hayama
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方UnityTechnologiesJapan002
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容sairoutine
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)Akihiro Kuwano
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案樽八 仲川
 
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめMitsutoshi Kiuchi
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 

Tendances (20)

REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
 
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
 
えっ?まだそのツール使ってるの?
えっ?まだそのツール使ってるの?えっ?まだそのツール使ってるの?
えっ?まだそのツール使ってるの?
 
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
 
リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」
 
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
 
良いコードとは
良いコードとは良いコードとは
良いコードとは
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 

En vedette

サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたItaru Kitagawa
 
install mosquitto-auth-plug - cheat sheet -
install mosquitto-auth-plug - cheat sheet -install mosquitto-auth-plug - cheat sheet -
install mosquitto-auth-plug - cheat sheet -Naoto MATSUMOTO
 
JJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynoteJJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynote心 谷本
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Akira Inoue
 

En vedette (7)

サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
install mosquitto-auth-plug - cheat sheet -
install mosquitto-auth-plug - cheat sheet -install mosquitto-auth-plug - cheat sheet -
install mosquitto-auth-plug - cheat sheet -
 
JJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynoteJJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynote
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
 
MVC 01
MVC 01MVC 01
MVC 01
 
MVC 02
MVC 02MVC 02
MVC 02
 
MVC 03
MVC 03MVC 03
MVC 03
 

Similaire à Spa のための web サーバ構築ノウハウ

#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチKazuya Sugimoto
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ慎一 古賀
 
Ext.js/Sencha SDKでえんぷら
Ext.js/Sencha SDKでえんぷらExt.js/Sencha SDKでえんぷら
Ext.js/Sencha SDKでえんぷらKazuhiro Kotsutsumi
 
Xen+Windowsで構築するサーバ仮想化環境
Xen+Windowsで構築するサーバ仮想化環境Xen+Windowsで構築するサーバ仮想化環境
Xen+Windowsで構築するサーバ仮想化環境VirtualTech Japan Inc.
 
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しDevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しAkira Nagata
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用de:code 2017
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Issei Hiraoka
 
CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりDaisuke Abe
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsTakashi Hatamoto
 
Php on windows vol.2 - session.1 - 公開用
Php on windows   vol.2 - session.1 - 公開用Php on windows   vol.2 - session.1 - 公開用
Php on windows vol.2 - session.1 - 公開用hirookun
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情Naoki Yamada
 
Php conference 2010 final
Php conference 2010 finalPhp conference 2010 final
Php conference 2010 finalhirookun
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうYusuke Kawabata
 
04 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r00104 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r001cyberblack28 Ichikawa
 
スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎
スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎
スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎schoowebcampus
 
SORACOM UG Explorer 2018 - IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
SORACOM UG Explorer 2018 -  IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウSORACOM UG Explorer 2018 -  IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
SORACOM UG Explorer 2018 - IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ紘之 大田黒
 
Q a9 for ics(lotus) developers
Q a9 for ics(lotus) developersQ a9 for ics(lotus) developers
Q a9 for ics(lotus) developers賢次 海老原
 

Similaire à Spa のための web サーバ構築ノウハウ (20)

#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
 
Ext.js/Sencha SDKでえんぷら
Ext.js/Sencha SDKでえんぷらExt.js/Sencha SDKでえんぷら
Ext.js/Sencha SDKでえんぷら
 
Xen+Windowsで構築するサーバ仮想化環境
Xen+Windowsで構築するサーバ仮想化環境Xen+Windowsで構築するサーバ仮想化環境
Xen+Windowsで構築するサーバ仮想化環境
 
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しDevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
 
CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がり
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
 
OSC2013@FUKUOKA
OSC2013@FUKUOKAOSC2013@FUKUOKA
OSC2013@FUKUOKA
 
Php on windows vol.2 - session.1 - 公開用
Php on windows   vol.2 - session.1 - 公開用Php on windows   vol.2 - session.1 - 公開用
Php on windows vol.2 - session.1 - 公開用
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
Php conference 2010 final
Php conference 2010 finalPhp conference 2010 final
Php conference 2010 final
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
 
04 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r00104 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r001
 
スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎
スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎
スマホ最適化のためのデザイン・コーディング実習 先生:池田 祐太郎
 
SORACOM UG Explorer 2018 - IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
SORACOM UG Explorer 2018 -  IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウSORACOM UG Explorer 2018 -  IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
SORACOM UG Explorer 2018 - IoTxAIを活用した小売業向け店舗解析サービスの仕組みとノウハウ
 
Q a9 for ics(lotus) developers
Q a9 for ics(lotus) developersQ a9 for ics(lotus) developers
Q a9 for ics(lotus) developers
 

Dernier

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Dernier (10)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

Spa のための web サーバ構築ノウハウ