SlideShare a Scribd company logo
1 of 55
.NET最先端技術による
ハイパフォーマンスウェブアプリケーション
株式会社グラニ
取締役CTO
河合 宜文 - @neuecc
http://neue.cc/
2
自己紹介
• @仕事
• 河合 宜文(Kawai Yoshifumi)
• 株式会社グラニ 取締役CTO
• 技術的な目標としては、C#で日本を代表する会社にする!
• @個人活動
• Microsoft MVP for Visual C#
• Web http://neue.cc/
• Twitter @neuecc
• JavaScriptにLINQ to Objectsを移植したライブラリ作ってます
• linq.js - http://linqjs.codeplex.com/
3
グラニについて
• 株式会社グラニ
• http://grani.jp/
• ソーシャルゲーム開発
• 去年9月に設立→今年1月に「神獄のヴァルハラゲート」リリース
• GREE FP版ランキング1位
• 会員数60万人突破
• CM放送
4
ソーシャルゲームの規模感
• 普通のウェブアプリケーション
• ただしユーザーの1クリックの度にDB更新が入るなど負荷が高い
• 1ユーザーのPV数、滞在時間も通常のウェブに比べて長い
• ピーク時5000リクエスト/sec以上
• デイリーで1億リクエスト以上
• 非常に高負荷のかかるウェブアプリケーション
• 神獄のヴァルハラゲートはPHPで動いてる(所謂LAMP)
• え?
• え?え?
5
PHP→C#
• なぜPHP?
• 諸事情あって
• 現在C#に全面移行作業中
• この発表までには間に合いませんでした!
• なので実例、ではないですが、まあPHPで実績ありますので……
• リリース後にはReal Worldな実例としてまたどこかで
6
なぜC#?
• パフォーマンス上の問題
• 圧倒的な皮下脂肪率
• 台数増えすぎによる影響
• 但しCakePHPという
クソ重いフレームワークのせいもあり
• 開発効率の問題
• コンパイルエラーで発見できる
ものが見落とされる
• 何でもハッシュに詰めるしかないのでIntelliSenseが利かなすぎる
• 貧弱なコレクション処理(LINQがない!)
• その他その他、あげればキリがない
7 7
Infrastructure
8
AWSを利用した現在(PHP)の構成
9
AWSを利用した現在(PHP)の構成
200台辛い…
10
C#に変わった時の構成
はたして何台に削減で
きているでしょうか!
Memcachedはさようなら
11
基本構成
• Windows Server 2012(EC2)
• AWSのWindows Serverインスタンス
• IIS8 + .NET Framework 4.5
• RDS(MySQL)
• AWSのマネージドなデータベースサービス
• RDSにはSQL Serverもある
• 1から作るのだったらSQL Serverを選ぶ、今回はPHPからの移植なので
• Redis(EC2 Amazon Linux)
• インメモリ型KVS
• キャッシュ・セッション・その他NoSQL的な使い方
12 12
Database
13
なぜリレーショナルデータベースを使うのか
• NoSQLでいい?
• Azure Table, Riak, Dynamoなど無限にスケールするし?
• 機能面では満たせるかもしれないが、依然として選べない
• 少なくともヴァルハラゲートの規模で、何とかなっている
• 水平分割が始まったらさすがに苦しいのですが、まだ垂直だけで済んでる
• 利点
• ちょっとSQL叩いてのカジュアルな解析
• データの弄りやすさ
• 周辺ツールの充実具合
• を、補足できるだけの仕掛けがない限りはRDBを選択する
14
DB側の性能問題対策のための垂直分割
• 一台では負荷に耐えられないので機能単位での垂直分割
• ユーザー情報/ギルド情報/バトル情報、みたいな分け方
• 現在6分割
• テーブルが物理的別DBに分かれるため外部キーが張れない
• よって一切、外部キーは使っていない
• クエリに若干の制限(DBを超えたジョインが不可能)
• 水平分割は無限にスケールするが最終手段として極力避ける
• 記述可能なクエリにかなり制限がかかる
• アプリケーション側での分割制御の手間がかかる
• アドホックなクエリでの集計が不可能になる
15
MySQLのツール
• HeidiSQL
• クエリ書いたりテーブル定義したりエクスポートしたり
• MySQL Workbenchよりも使いやすい
• JetProfiler
• リアルタイムなプロファイラ
• Linux, Mac, Windows
16
C#からのDB取り扱い事情
• EntityFrameworkなどの重量級O/Rマッパは不採用
• DBの垂直分割により外部キーによるリレーションが存在しないの
で、ORMのクエリ生成が生かせない
• マスタを積極的にキャッシュするなど、インメモリ結合が中心とな
るため、ORMのジョインの抽象化が全く活かせない
• そのため単純なクエリが多いため、素のSQLでもあまり苦はない
• デザイナなどORMのメンテナンスがコスト高
• 遅い
17
Micro-ORM
• DataRow => Objectへの変換だけを担うもの
• グラニではDapperを採用
• https://code.google.com/p/dapper-dot-net/
• 文字列で生SQLを書いて<T>にマッピング、それだけ
• 非常に高速
• Dapperだけだとプリミティブすぎるので簡単な上モノは用意しています
• Dapperのシンプルさを損ねないよう、やりすぎないようシンプルに
var dog = connection.Query<Dog>("select * from dogs where id = @id",
new { id = 100 });
18
性能比較
• HandCodedはADO.NETのDataReaderを回してデータを読み取る
• DapperはHandCodedとほぼ変わらない
• ※EFは古いバージョンのため最新版ではもう少し性能改善されています
55 56
120
900
HANDCODED DAPPER EF(COMPILED) ENTITYFRAMEWORK
19
コネクションへの型付け
• 物理的に台が異なるので、それぞれの台に対して型で分ける
• 単純ですがミス防止やドキュメント的な意味で効果アリ
• (MySQLなので)Master, Slaveを束ねるのも兼ねている
public interface ITypedConnection : IDisposable
{
DbConnection Slave { get; }
DbConnection Master { get; }
}
public BattleEntity SelectById(BattleConnection battle, int id)
{
return battle.Master.Query<BattleEntity>("select * from battle where id = @id", new { id });
}
20
キャッシュの単位
永久に保存する領域 – データベースなど
期間保存 – Memcached/RedisなどExpire付き
リクエスト単位 - HttpContext.Items
アプリケーション単位 – Static変数
21 21
Redis
22
Redisとは
• オンメモリで動作するデータストア
• 単純なKey-Valueのデータ型のほかに、リスト・ハッシュ・
ソート済みセット・セットといったデータ構造を扱える
• RDBの不得意な部分を補える
• 単体での高パフォーマンス・分散可能なのでキャッシュ用途に
• SortedSetによるリアルタイムランキングなど
• 詳しくはBuild Insiderの特集で記事を書いたのでそちらを
• 高パフォーマンスなKey-Valueストア「Redis」活用術 - C#の
Redisライブラリ「BookSleeve」の利用法
• http://www.buildinsider.net/small/rediscshap/01
23
シリアライズ
• Redisでキャッシュする際のオブジェクトのシリアライズ形
式はprotobuf-netを採用
• Protocol Buffersはサイズ・速度ともに優秀
• 速度はフォーマットと実装で決まる
• なのでC++やRubyでの性能比較は
.NETにもあてはまるとは限らない
• .NET実装のprotobuf-netは
実績もあり安定感ある
BinaryFormatter Protobuf-netDataContract JSON.NET MsgPack-CLI
24
セッションストア
• アプリケーションサーバーが複数台となるため、インメモリ
なデフォルトのセッションは使えない
• セッションストアとしてRedisを採用
• ただしASP.NETのセッションプロバイダとしては実装して
いない
• Protobuf-netによるジェネリックなデシリアライズが必要なため
• やろうと思えば出来ないこともないですけど……
• 実装にかなり手間がかかる
• よって、簡易的な俺々Redisセッションストアを作成
25
パイプライン
• Redisの特徴としてパイプラインのサポートがある
• 例えば三回データを取得するとき
• コマンド通信(GET)->結果受信(RES),
• コマンド通信(GET)->結果受信(RES),
• コマンド通信(GET)->結果受信(RES)
• パイプラインだと
• コマンド通信(GET,GET,GET)->結果受信(RES,RES,RES)
• 送受信の通信コストが一度だけで済む
26
BookSleeve
• C#製のRedisライブラリ
• https://code.google.com/p/booksleeve/
• 特徴は全てが非同期、全てがパイプライン
• 全リクエストがコネクションを共有する
• あらゆるリクエストのコマンドが自動的にパイプライン化されて非
同期通信するので、同時アクセスがあればあるほど効率的
• 扱いやすいよう上層のライブラリを作成・利用
• BookSleeveは全てがbyte[]なので、シリアライズしたりなど
• https://github.com/neuecc/CloudStructures
27 27
Asynchronous
28
同期的シチュエーション
• GetAでRedisやDBアクセスなどがあり10msかかるとする
• 三回アクセスするので、30msかかってる
var a = GetA(); // 10ms
var b = GetB(); // 10ms
var c = GetC(); // 10ms
// +30ms
29
非同期的シチュエーション
• GetAAsyncなどで非同期でアクセスがある
• 結果として10msかかるのはかわらない
• 三回アクセスするので、30msかかってる
var a = await GetAAsync(); // 10ms
var b = await GetBAsync(); // 10ms
var c = await GetCAsync(); // 10ms
// +30ms
30
非同期的シチュエーション2
• Task.WhenAllで待つことで、非同期が同時に走ってる
• 結果として1回分のアクセスである10msで済む
• BookSleeveはこのような待ち方が容易なのが強い
await Task.WhenAll(GetAAsync(), GetBAsync(), GetCAsync()); // +10ms
// +10ms
31
Lazy Revisited
• 昔ながらのLazyなスタイル
• プロパティに初回アクセスあった時に生成
• Pros
• 使うのが簡単
• Cons
• それが遅延なのか分からない
• 何気なく呼んだらDBアクセスが!とか
MyClass myProperty;
public MyClass MyProperty
{
get
{
if (myProperty == null)
{
myProperty = new MyClass();
}
return myProperty;
}
}
32
Lazy Revisited
• Lazy<T>なスタイル
• Pros
• Lazyなのが明示的
• Cons
• 使うのが面倒(毎回.Value…)
public Lazy<MyClass> MyProperty { get; private set; }
public Toaru()
{
MyProperty = new Lazy<MyClass>(() => new MyClass());
}
33
AsyncLazy
• AwaitableなLazy
• オリジナルはMSのPfxチームから
• http://blogs.msdn.com/b/pfxteam/archive/2011/01/15/101
16210.aspx
• ちょっとだけカスタマイズして使っています
var person = new Person();
var name = await person.Name; // awaitで初期化・取得できる
// 複数同時初期化が可能
await AsyncLazy.WhenAll(person1.Name, person2.Name, person3.Name);
34
AsyncLazy + Redis/DB
public AsyncLazy<string> Name { get; set; }
public AsyncLazy<int> Age { get; set; }
public Person()
{
Name = new AsyncLazy<string>(() => Redis.GetString("Name" + id));
Age = new AsyncLazy<int>(() =>
{
using(var dbConn = …) {
return dbConn.Query<int>(“select age from . where id = @id”);
}
}
}
// RedisがパイプラインでNameを同時初期化
await AsyncLazy.WhenAll(person1.Name, person2.Name, person3.Name);
// DBがマルチスレッドでAgeを同時初期化
await AsyncLazy.WhenAll(person1.Age, person2.Age, person3.Age);
35
AsyncLazy + Redis/DB
public AsyncLazy<string> Name { get; set; }
public Person()
{
Name = new AsyncLazy<string>(() =>
{
var name = Redis.GetString("Name" + id));
if(name == null)
{
using(var conn = new Connection())
{
name = conn.Query<string>();
}
}
return name;
});
}
// データがあればRedisがパイプラインで、なければDBがマルチスレッドでNameを同時初期化
await AsyncLazy.WhenAll(person1.Name, person2.Name, person3.Name);
36
AsyncLazy
• Pros
• BookSleeveの自動パイプラインと合わせて、作りこんだモデルク
ラスであっても、MGET的な効率的な取得ができる
• DBのマルチスレッドによる同時初期化が自然に記述できる
• Cons
• awaitまみれで面倒くさい
• ううむ……
37
非同期でのはまりどころ
• TransactionScope内でawaitできない
• 別スレッドになるので、実行時例外となる
• 手動でBeginTransactionして回避
• デッドロック
• .Result/Waitで取るとデッドロックする場合がある
• 全てasyncで通せばデッドロックしないけれど……
• TransactionScope使いたいなら、その中で同期的に待つしかない
• フィルターが非同期未対応なので、フィルター内で書く場合は待つしかない
• 気をつけてデッドロックしないように記述する
38
HttpContext went away
• HttpContext.Currentは基本取れる、と思っていた。
• 割と消える、消えるときは消える
• await hoge.ConfigureAwait(false); の下では消える
• .ConfigureAwait(false)しなければいい、とは言いますがデッド
ロック避けのために必要な場合もあったり
• HttpContext.Currentが存在することを前提にできない
• ライブラリの挙動には要注意(中で使ってるかもしれないので)
• これからのWeb開発では存在しない場合もあることが前提
• とはいえ当然避けられないので、色々回り道を模索しよう
39 39
Parallel
40
Parallel.ForEach
• WebアプリではTask+WhenAll中心なので出番なし
• バッチ処理でのDBへの大量インサート/アップデートに利用
• シングルスレッドで1時間→パラレルで5分
• 劇的!
• しかもforeachをParallel.ForEachに書き換えるだけ!
• (インサートはバルクインサートと併用)
41
スレッドセーフコネクション
• (My)SqlConnectionはスレッドセーフではない
• Parallelの中で開く or 外側でThreadLocalに包んでスレッ
ドセーフ扱いにする
• 詳しくはWebで
• 並列実行とSqlConnection
• http://neue.cc/2013/03/09_400.html
using (var connection = DisposableThreadLocal.Create(() => { var conn = new
{
Parallel.For(1, 1000, x => { var _ = connection.Value.Query<DateTime
}
42
注意点
• 数百万件の処理程度でもMaxで100並列は十分超えるので
(I/O待ちしている間に新しいTaskが自動的に立ち上がって
いく)、コネクションプールの上限設定には気をつけること
• デフォルトは100なので、大きめに見積もったほうがいいです
• 怖ければ、開きっ放しじゃなく素直にOpen/Closeしましょう
• 大雑把かつ富豪といえば富豪
• 現代のリソースはあまってる場合はあまってる
• どこが富豪にしてよくて、どこがケチらなきゃいけないかの見極め
43
Async?
• ExecuteReaderAsync
• 実はC#+MySQLでは意味がない
• MySQLライブラリがDelegate.BeginInvokeにExecuteReaderを
包んでるだけ……
• お使いのDriverが正しく対応しているかどうか、確認を。
• ただたんにTaskに包んだだけ、Delegate.BeginInvokeに包んだだ
け、そんな可能性は十分にあります
• そうでなくても楽さ(スレッドとかちょっと割とかなりいっ
ぱい立ち上がる程度)を鑑みて全然アリ
44
APIアクセス
• 今時だと使うのはHttpClient一択
• HttpClient詳解 http://www.slideshare.net/neuecc/httpclient
• バッチからなど、大量に叩く必要がある時は?
• Parallel.ForEachで叩きまくる
• 3時間かかってた処理がたった5分に!
• 非同期に統一してTask.WhenAllだと量を適度に絞るのがメンドウクサイ、
どうせスレッド余裕なわけだしリソース消費も許せるので制御はおまかせ
• 但しThreadPoolが増えるの遅い
• ThreadPoolが増えるタイミングは即時じゃない
• IO待ちだと分かりきってるのでThreadPool.SetMinThreadで最
初から増やしてしまうのが効果的
45 45
Monitoring
46
MiniProfiler
• .NET/Ruby用のシンプルな画面統合プロファイラ
• PM > Install-Package MiniProfiler
• レスポンスタイムとDBのプロファイリングが行える
47
ログ出し
• ロガーはNLogを利用
• 画面下部にもログ書き出し
• HttpContext単位で保持する
カスタムのロガーを作成
• (GitのRevisionなども見えるように)
• Redis発行はキーと
レスポンスタイムを全部ログ取り
48
数字は常に見えるところに
• 何がどの程度速いのか、遅いのか常に意識できるように
• 肌感覚を養う
• 開発環境も本番と同様のネットワーク構成にする
• ネットワークによってはRedisがDBより遅いとか出てしまう
• 例えばRedisが10msでDBが1msになるとか
• そうするとRedisにキャッシュしないほうが速いじゃん!とかなる
• 意味ない
• この辺の構築を行いやすいのがクラウドは良い
49
• PHP, Ruby, .NET, Java, Pythonに対応したパフォーマンス
監視サービス
• インストールも超簡単(インストーラ叩くだけ)
• 閾値(エラーレートやレスポンスタイムの低下)などを設定
してiPhoneアプリからのPush通知
50
• スローリクエスト時の完全なスタックトレースが見れる
• 未処理例外も非常に見やすく
• グラフ化、詳細画面
• 件数ソート・フィルタ
• SQLのスロークエリや割合なども
51
52 52
Conclusion
53
まとめ
• シンプルに、シンプルに、シンプルに
• DB-Redisのみの構成、Micro-ORM、単純なのはいいこと
• 外に任せられるものは積極的に出して活用する
• AWS, NewRelic, SumoLogic,etc.
• 自前で組むよりも遥かに簡単で、遥かに高性能
• なお、リポジトリ管理はGitHubのBusinessプランを利用している
• 環境は常に最新に
• 言語は、環境は進化を続けている、全力で受け入れよう
• C# 5.0はasyncを中心に非常に強力
54 54
We’re Hiring
http://grani.jp/recruit.html
.NET最先端技術によるハイパフォーマンスウェブアプリケーション

More Related Content

What's hot

Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVMYuki Tamura
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~torisoup
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCdisc99_
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方Yoshifumi Kawai
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方光晶 上原
 

What's hot (20)

Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
 

Similar to .NET最先端技術によるハイパフォーマンスウェブアプリケーション

PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
AndroidでActiveRecordライクにDBを使う
AndroidでActiveRecordライクにDBを使うAndroidでActiveRecordライクにDBを使う
AndroidでActiveRecordライクにDBを使うFujimura Munehiko
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016Yu Ito
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Yohei Sasaki
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜griddb
 
Spring Data in a Nutshell
Spring Data in a NutshellSpring Data in a Nutshell
Spring Data in a NutshellTsuyoshi Miyake
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugSAKURUG co.
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎Insight Technology, Inc.
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
RespClient - Minimal Redis Client for PowerShell
RespClient - Minimal Redis Client for PowerShellRespClient - Minimal Redis Client for PowerShell
RespClient - Minimal Redis Client for PowerShellYoshifumi Kawai
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid SystemKeiji Ariyama
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころJunya Hayashi
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京Yu Ito
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうyoshikawa_t
 

Similar to .NET最先端技術によるハイパフォーマンスウェブアプリケーション (20)

PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
AndroidでActiveRecordライクにDBを使う
AndroidでActiveRecordライクにDBを使うAndroidでActiveRecordライクにDBを使う
AndroidでActiveRecordライクにDBを使う
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016
 
Mongodb
MongodbMongodb
Mongodb
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
 
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話 Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
 
Spring Data in a Nutshell
Spring Data in a NutshellSpring Data in a Nutshell
Spring Data in a Nutshell
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurug
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
RespClient - Minimal Redis Client for PowerShell
RespClient - Minimal Redis Client for PowerShellRespClient - Minimal Redis Client for PowerShell
RespClient - Minimal Redis Client for PowerShell
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid System
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
 

More from Yoshifumi Kawai

A Brief History of UniRx/UniTask, IUniTaskSource in Depth
A Brief History of UniRx/UniTask, IUniTaskSource in DepthA Brief History of UniRx/UniTask, IUniTaskSource in Depth
A Brief History of UniRx/UniTask, IUniTaskSource in DepthYoshifumi Kawai
 
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Yoshifumi Kawai
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能Yoshifumi Kawai
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーYoshifumi Kawai
 
Implements OpenTelemetry Collector in DotNet
Implements OpenTelemetry Collector in DotNetImplements OpenTelemetry Collector in DotNet
Implements OpenTelemetry Collector in DotNetYoshifumi Kawai
 
Deep Dive async/await in Unity with UniTask(EN)
Deep Dive async/await in Unity with UniTask(EN)Deep Dive async/await in Unity with UniTask(EN)
Deep Dive async/await in Unity with UniTask(EN)Yoshifumi Kawai
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkTrue Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkYoshifumi Kawai
 
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsYoshifumi Kawai
 
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)Yoshifumi Kawai
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践Yoshifumi Kawai
 
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)Yoshifumi Kawai
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityYoshifumi Kawai
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#Yoshifumi Kawai
 
How to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatterHow to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatterYoshifumi Kawai
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法Yoshifumi Kawai
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCYoshifumi Kawai
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...Yoshifumi Kawai
 
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...Yoshifumi Kawai
 

More from Yoshifumi Kawai (20)

A Brief History of UniRx/UniTask, IUniTaskSource in Depth
A Brief History of UniRx/UniTask, IUniTaskSource in DepthA Brief History of UniRx/UniTask, IUniTaskSource in Depth
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
 
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
 
Implements OpenTelemetry Collector in DotNet
Implements OpenTelemetry Collector in DotNetImplements OpenTelemetry Collector in DotNet
Implements OpenTelemetry Collector in DotNet
 
Deep Dive async/await in Unity with UniTask(EN)
Deep Dive async/await in Unity with UniTask(EN)Deep Dive async/await in Unity with UniTask(EN)
Deep Dive async/await in Unity with UniTask(EN)
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkTrue Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
 
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
 
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)
 
Binary Reading in C#
Binary Reading in C#Binary Reading in C#
Binary Reading in C#
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
 
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
 
How to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatterHow to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatter
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
 
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

.NET最先端技術によるハイパフォーマンスウェブアプリケーション