SlideShare a Scribd company logo
1 of 48
Download to read offline
.NETエンタープライズWebアプリの
OSS活用
Sansan株 式 会 社
熊家 賢治
今日話すこと

• 弊社サービスSansanについて
• SansanにおけるOSSの活用事例
• Webフレームワーク
• PostgreSQL、Redisとクライアントライブラリ
• インフラ
自己紹介

名前
熊家 賢治(@kumake1004)

仕事
前職はパッケージ開発SE(えすいー
2011/04 Sansan株式会社入社
Sansan事業部 開発部 フレームワーク・アーキテクチャグループ
フレームワークやミドルウェアなど基盤部分の開発を担当
寄稿

Build Insider
.NETライブラリ「Npgsql」によるPostgreSQLの活用
http://www.buildinsider.net/small/npgsql/01

Insider.NET(@IT)
ASP.NET WebフォームからASP.NET MVCへの移行/共存
http://www.atmarkit.co.jp/ait/articles/1308/05/news090.html
まとめ
Sansanについて
.NETでも選択肢の数は変わらない

たとえば
RDB : Oracle / PostgreSQL / MySQL
NoSQL : Memcached / Redis / MongoDB / RavenDB
Web Framework : Nancy / ServiceStack
DI : Unity / Ninject
テスト: NUnit / NSpec / SpecFlow
ロギング : log4net / NLog / Fluentd
CI : Jenkins

さらに選択肢を増やす
Build Insider - 社内の開発環境の改善&効率化のためにNuGetを活用しよう
それぞれが作った、ちょっとしたツールやコードを
社内用NuGetリポジトリに、公開しましょう
ご利用は計画的に

実績には注意
GitHubならWatchやStar、Issuesなどを確認する。
NuGetならDownloadsなども参考になる。
それらを踏まえて、リスクもきちんと評価した上での採用を。

バグは、ある
テストは十分に。
できればソースコードも読む。利用する箇所だけだったり、
軽く流し読みするだけでも安心感は違う。
弊社事例が、皆様の会社での
OSS導入の一助になれば幸いです
Sansanについて
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
Sansan株式会社について

名刺管理Webサービスを開発、運営
創業7年目で名刺管理に絞ったシステムを作っています。
名刺管理システム業界トップ。ちょっとだけCM流してます。

プロダクト
法人向け名刺管理Sansan
C# + ASP.NET + PostgreSQL
個人向け名刺管理Eight
Ruby on Rails + MySQL + AWS
法人向けサービスSansanの特徴

ASP.NET上で動くWebアプリ
個人向けサービスに比較するとユーザ数はずっと少ない。
ソーシャルゲームなどでは100万人以上、Eightで30万人以上
Sansanは数万人、前職では数百人。

負荷
200万リクエスト/日を2台のWeb/Appサーバで。
突然跳ね上がることは滅多になく、平日の9-20時にアクセスが
集中。休日のアクセスはほぼ無い。
法人向けサービスSansanの特徴

データ
ユーザ数と比較すると、おそらくデータは多い。
1億超レコードのテーブルや、数千万、数百万レコードの
テーブルが数十。たとえば、名刺テーブルは2千万超レコード。
個人向けサービスのEightは1千万超レコード。

システムに求められる要件
可用性、一貫性、アクセスコントロールなどの要求は高い。
一方で、パフォーマンスは個人向けサービスに比べると緩い。
如何に速くするか、よりも如何に確実に処理するかが重要。
また、営業やサポート部署への影響にも配慮する必要がある。
Sansanの構成

言語
C# 5.0 (.NET Framework 4.5)

Web/App
Windows Server 2008 R2 / IIS 7.5

キャッシュ/セッション
Redis

DB
PostgreSQL 9.1

インフラ
後述
なぜC#か

生産性
創業当初の限られた人員でWeb/クライアント(※)/社内システム
全てを作る必要があった。
クライアントOSは最も一般的なWindowsをターゲットに、
Windows+高生産性=Windows Formsを採用するに至る。
スキルを応用できるし、という理由でWebも。

※スキャナと連携する名刺登録アプリケーション
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
Web/App

フレームワーク
プロダクトはWeb Forms/MVC/Web API併用。
社内ツールにNancy
Web Forms/MVC/Web API

特別な使い方はしていないので

割 愛
Nancy

軽量Web Framework
処理を一つのメソッドで記述。
HTTPメソッドごとルーティングを指定して処理を記述。
RubyのWeb Framework、Sinatraにインスパイア。

require ‘sinatra’
get ‘/’ do
# do something
end
post ‘/’ do
# do something
end
Nancy
public class MyModule : NancyModule {
public MyModule() {
Get[“/page/{id}”] = param => {
// データ取得
var data = new DbClient().GetData(param.id);
// データ加工
var responceData = data.Select(_ => _.Value);
// データ表示
return View["page", new { Data = responceData }];
};
Post[“/regist”] = param => { // 省略 };
}
}
Nancy

用途
ログの収集解析アプリで利用。
ASP.NET & Nancy & MongoDB

やりたかったこと
やりたい処理は単純なデータ取得 > LINQ+αで加工 > 表示。
将来も含めて、MVCを利用するほどに大げさなものではなく、
容易に保守できるような作りにしたかった。
Nancy

結果
一つのメソッドに処理が集まるので、自然とシンプルに実装する
ようになり、ルーティングも一目で分かるのでデバッグや保守が
非常に容易に。
とにかく気軽にAPIを作成できるので、ちょっとLinuxサーバとの
連携を取りたい時にも利用している。
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
PostgreSQLについて

PostgreSQLおさらい
•
•
•
•

OSSのRDBMS
可用性向上のためのMVCCアーキテクチャ
組み込み全文検索エンジン
豊富な周辺プロダクト
pgpool-II => コネクションプーリング、レプリケーション、
負荷分散
Slony-I => レプリケーション
PL/Proxy => 水平分散
FDW => 外部データラッパー
Posgres-XC => 書き込み特化のDBクラスタ
なぜPostgreSQLか

最初はOracle
創業メンバーにOracle出身者がいたり、たまたま、
創業当時のエンジニアがOracleに習熟していた。

OracleからPostgreSQLへ
規模が大きくなるに従い、コストとインフラの技術的限界が
重荷になっていったため、OSSのDBを検討。
pl/pgsqlの互換性、チューニングの勘所など、
Oracleからの移行コストが低いことがPostgreSQLの
最大の決定要因になった。
パフォーマンス維持の工夫

クエリ、設計の最適化
極端な高パフォーマンスは必要とされていないので、
基本に忠実に作ることを心がける。
seq scanさせない、頻繁に使うデータは必ずメモリに格納し、
ディスクI/Oを削減する。主要テーブルのCache Hit Rateは
Cactiで常に監視して99%以上を保つ。

これらの実現のために、コードレビューとは別に
SQL/テーブル設計レビューを実施している。
C#からのPostgreSQL活用

データプロバイダはNpgsql
SQL Serverとほぼ同じ記述で利用可能で、OSSとしてはほぼ
唯一の選択肢になる。ADO.NETデータプロバイダとして大抵の
ことはできるが、Entity Frameworkへの対応はない。
品質が特別高い訳ではないことが残念なところ。
• Timeoutが既定値
• 文字列日付の日付型への変換失敗
• 大量のスレッドからの実行時、例外
• 164個のOpen Issue (資料作成時)
ただし、Github上での活動はそれなりに活発で、次期バージョン
ではEntity Frameworkもサポートされるらしい。
Npgsqlサンプルコード

using (var conn = new NpgsqlConnection(connStr))
{
conn.Open();
var dataAdapter = new NpgsqlDataAdapter(
@"select * from table_name", conn);
var dataSet = new DataSet();
dataAdapter.Fill(dataSet);
}
C#からのPostgreSQL活用

他の選択肢は?
有償製品になるが、dotConnectがある。
実はNpgsqlより歴史が長く、Entity Frameworkのサポートや
LINQプロバイダ、Session State Store、Membership
プロバイダなどもサポートしており、Npgsqlと比較して高機能。

• どちらを選ぶか
費用と必要とする機能を天秤に掛けて選択。
弊社では既に分厚くラップしているので今はどちらでも大した
違いはないが、今から作るならdotConnectを選びたい
C#からのPostgreSQL活用

困ることはまずない
今はEntity Frameworkが使えないので初期コストが高くなる
ケースもある。が、運用していく為の周辺環境(ツールや情報)
は充実しているので埋め合わせは十分に可能。
C#だからSQL Server、ではなく、純粋に要件やエンジニアの
保有スキルにあわせてDBを選択すべき。
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
Redis

Redisおさらい
•
•
•
•

Memcachedより少し豪華なインメモリKVS
データ構造(文字列、リスト、セット、ハッシュ)
永続化、レプリケーション
Redis Cluster
• 将来的にはクラスタリングも可能(度々延期してますが…)

• http://redis.shibu.jp/admin/cluster/
• P2P型で、リバランスも自動
Redisの活用 – キャッシュ

どこからでも使えるキャッシュ層として
クライアントライブラリにはServiceStack.Redisを利用。
コネクションプーリングやジェネリックインタフェースなどを
組み込みで持ち、気軽に利用可能で便利。

あれ?BookSleeveは?
C#+RedisはBookSleeveでは?
BuildInsider - C#のRedisライブラリ「BookSleeve」の利用法

なんでServiceStack.Redisなの?
ServiceStack.Redisの特徴

複数抽象度から選べるインタフェース
• RedisNativeClient
• RedisClient
• RedisTypedClient<T>

便利な機能が実装済
コネクションプールやハッシング、Pub/SubやLUAスクリプト
の実行も当然サポート。

安定
更新が頻繁で利用者数も多く、安心して利用できる。
ServiceStack.Redisの特徴

• Sample
var client = new RedisNativeClient("127.0.0.1", 6379);
var value = client.LPop("list-key");

var client = new RedisClient("127.0.0.1", 6379);
var value = client.As<Model>().GetItemFromList("list-key");
var manager = new PooledRedisClientManager("127.0.0.1:6379");
var client = manager.GetClient();
var value = client.Get<Model>("key");
ServiceStack.Redisの特徴

いまひとつなインタフェース
RedisClient型が持つpublicメソッドの数 => 437
全てのRedisデータ型を一クラスにまとめているためこんな事に
• client.GetItemFromList()
• client.GetValueFromHash()
Redisデータ型ごとに分けるとか出来そうだが…

メソッド名も初見では少し焦る。
• client.Replace() => keyがあれば更新
• client.Add() => keyがなければ挿入
これらはそれぞれコマンドあるからしょうがないとも言えるが
Push、Pop、Enqueue、Dequeueは絶許。
BookSleeveの特徴

シンプルなインタフェースと非同期
基本的にはGet/Set。戻り値が特殊でTask<T>で返ってくる。
プリミティブなインタフェースで、byte[]かstringくらいしか
返せないので、そのままアプリケーションに組み込むよりは
ラップしてあげたほうが使いやすい。

詳細は以下を参照
Build Insider - C#のRedisライブラリ「BookSleeve」の利用法
ServiceStack.Redis or BookSleeve

どちらを使うべきか?
パフォーマンス重視ならBookSleeve、手軽なコストで使いたい
ならServiceStack.Redis、というのも今は昔。
ラップが面倒なBookSleeveも、今はCloudStructures(※)が
あるのであまり悩むこともなくなった。
※ https://github.com/neuecc/CloudStructures

なぜServiceStack.Redisか?
一番の理由は開発コスト。導入当時はラッパーがなかった。
また、当時はC#4を利用しており、非同期の扱いが手間で、
慣れない非同期を組み込むリスクも踏まえた上での判断。
Npgsqlでの反省も踏まえ更新頻度や実績(利用者数)も参考に。
Redisの活用 - キャッシュ

シリアライズ/デシリアライズ
Google謹製protocol buffersの.NET実装、protobuf-net。
軽量かつ高速、Googleでの利用実績もあって即決。
同類にMessagePack for CLIがあったが、当時は
protobuf-netと比較するとパフォーマンス、実績の点で欠けた
(ただし利便性はMessagePackの方が良かった)
Redisの活用 - セッション

セッションストアとして利用
カスタムセッションストアプロバイダはAL-Redis(※)を利用。
プロバイダはMSDNを見れば誰でも実装できるが全然速度が
出ないので注意(倍違う)。
※ https://github.com/angieslist/AL-Redis

他の選択肢
探せばいくつか出てくるが、排他制御にバグがあって高負荷時
に安定して動いてくれないので、Redisを使うならAL-Redisが
おすすめ。
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
アジェンダ

1. Sansanについて
2. Sansanの構成
1.
2.
3.
4.

Webフレームワーク
DB(PostgreSQL)
キャッシュ/セッション(Redis)
インフラ

3. まとめ
.NETでも選択肢の数は変わらない

たとえば
RDB : Oracle / PostgreSQL / MySQL
NoSQL : Memcached / Redis / MongoDB / RavenDB
Web Framework : Nancy / ServiceStack
DI : Unity / Ninject
テスト: NUnit / NSpec / SpecFlow
ロギング : log4net / NLog

さらに選択肢を増やす
Build Insider - 社内の開発環境の改善&効率化のためにNuGetを活用しよう
それぞれが作った、ちょっとしたツールやコードを
社内用NuGetリポジトリに、公開しましょう
ご利用は計画的に

実績には注意
GitHubならWatchやStar、Issuesなどを確認する。
NuGetならDownloadsなども参考になる。
それらを踏まえて、リスクもきちんと評価した上での採用を。

バグは、ある
テストは十分に。
できればソースコードも読む。利用する箇所だけだったり、
軽く流し読みするだけでも安心感は違う。
弊社事例が、皆様の会社での
OSS導入の一助になれば幸いです
Sansanについて
最後に

• 仲間を募集しています
• http://www.sansan.com/recruit/engineer/
ご清聴ありがとうございました。

More Related Content

What's hot

ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門Takuya Kitamura
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile増田 亨
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)増田 亨
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
 
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Takuya Kawabe
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し増田 亨
 
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Yoshimura Soichiro
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう増田 亨
 
ドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだ増田 亨
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門増田 亨
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント増田 亨
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる増田 亨
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス増田 亨
 
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?これって、ドメイン駆動設計?
これって、ドメイン駆動設計?Michitaka Yumoto
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう増田 亨
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門Yukei Wachi
 

What's hot (20)

ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
 
ドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだ
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 

Viewers also liked

いままで使ってきた携帯電話
いままで使ってきた携帯電話いままで使ってきた携帯電話
いままで使ってきた携帯電話Ippei Ogiwara
 
サービスを成長させる為の開発について
サービスを成長させる為の開発についてサービスを成長させる為の開発について
サービスを成長させる為の開発についてtatsuya mazaki
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介bigt23
 
New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0Goichi Hirakawa
 
2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdf2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdfYuichiro Maki
 
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作Nobutaka Takushima
 
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合Ryuichi Kubuki
 
【登壇資料】人類総インターネット時代に20代を無駄にしないために
【登壇資料】人類総インターネット時代に20代を無駄にしないために【登壇資料】人類総インターネット時代に20代を無駄にしないために
【登壇資料】人類総インターネット時代に20代を無駄にしないためにJunichi Akagawa
 
Plannahプロジェクトの開発環境とdeploy gateの紹介
Plannahプロジェクトの開発環境とdeploy gateの紹介Plannahプロジェクトの開発環境とdeploy gateの紹介
Plannahプロジェクトの開発環境とdeploy gateの紹介Kenji Kinukawa
 
Objective-Cひとめぐり
Objective-CひとめぐりObjective-Cひとめぐり
Objective-CひとめぐりKenji Kinukawa
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術Toru Yamaguchi
 
土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれた土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれたTakafumi Naito
 
クックパッドでのVPC移行について
クックパッドでのVPC移行についてクックパッドでのVPC移行について
クックパッドでのVPC移行についてSugawara Genki
 
Aerospike deep dive migration
Aerospike deep dive migration Aerospike deep dive migration
Aerospike deep dive migration Makoto Uehara
 
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジーHub DotnetDeveloper
 

Viewers also liked (20)

Javaone報告会
Javaone報告会Javaone報告会
Javaone報告会
 
いままで使ってきた携帯電話
いままで使ってきた携帯電話いままで使ってきた携帯電話
いままで使ってきた携帯電話
 
サービスを成長させる為の開発について
サービスを成長させる為の開発についてサービスを成長させる為の開発について
サービスを成長させる為の開発について
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介
 
New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0
 
2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdf2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdf
 
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
 
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
 
【登壇資料】人類総インターネット時代に20代を無駄にしないために
【登壇資料】人類総インターネット時代に20代を無駄にしないために【登壇資料】人類総インターネット時代に20代を無駄にしないために
【登壇資料】人類総インターネット時代に20代を無駄にしないために
 
Cross2013_DeNA
Cross2013_DeNACross2013_DeNA
Cross2013_DeNA
 
PHP at Yahoo! JAPAN
PHP at Yahoo! JAPANPHP at Yahoo! JAPAN
PHP at Yahoo! JAPAN
 
Plannahプロジェクトの開発環境とdeploy gateの紹介
Plannahプロジェクトの開発環境とdeploy gateの紹介Plannahプロジェクトの開発環境とdeploy gateの紹介
Plannahプロジェクトの開発環境とdeploy gateの紹介
 
Objective-Cひとめぐり
Objective-CひとめぐりObjective-Cひとめぐり
Objective-Cひとめぐり
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
Swift入門おさらい
Swift入門おさらいSwift入門おさらい
Swift入門おさらい
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれた土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれた
 
クックパッドでのVPC移行について
クックパッドでのVPC移行についてクックパッドでのVPC移行について
クックパッドでのVPC移行について
 
Aerospike deep dive migration
Aerospike deep dive migration Aerospike deep dive migration
Aerospike deep dive migration
 
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
 

Similar to 20131209_buildinsidermeetup

利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤Sotaro Kimura
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota WatabeInsight Technology, Inc.
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)NTT DATA OSS Professional Services
 
Oracle Cloud Platform - クラクドにおける 新たなデータベース開発
Oracle Cloud Platform - クラクドにおける新たなデータベース開発Oracle Cloud Platform - クラクドにおける新たなデータベース開発
Oracle Cloud Platform - クラクドにおける 新たなデータベース開発オラクルエンジニア通信
 
サーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalkサーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalkHirokazu Ouchi
 
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築貴志 上坂
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...NTT DATA Technology & Innovation
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
20170629 技術者向けazure stack_paas
20170629 技術者向けazure stack_paas20170629 技術者向けazure stack_paas
20170629 技術者向けazure stack_paasShotaro Suzuki
 
Splunkと各種ツールによるAWSの管理
Splunkと各種ツールによるAWSの管理Splunkと各種ツールによるAWSの管理
Splunkと各種ツールによるAWSの管理kinunori
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Hirano Kazunori
 
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...Insight Technology, Inc.
 
Add PLEASE clause to Oracle Database
Add PLEASE clause to Oracle DatabaseAdd PLEASE clause to Oracle Database
Add PLEASE clause to Oracle DatabaseNoriyoshi Shinoda
 
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウドオラクルエンジニア通信
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Taro L. Saito
 
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会Satoshi Nagayasu
 
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャできる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャazuma satoshi
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Yoichi Kawasaki
 

Similar to 20131209_buildinsidermeetup (20)

BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
 
Oracle Cloud Platform - クラクドにおける 新たなデータベース開発
Oracle Cloud Platform - クラクドにおける新たなデータベース開発Oracle Cloud Platform - クラクドにおける新たなデータベース開発
Oracle Cloud Platform - クラクドにおける 新たなデータベース開発
 
サーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalkサーバ構築・デプロイが簡単に!Elastic beanstalk
サーバ構築・デプロイが簡単に!Elastic beanstalk
 
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
 
AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
20170629 技術者向けazure stack_paas
20170629 技術者向けazure stack_paas20170629 技術者向けazure stack_paas
20170629 技術者向けazure stack_paas
 
Splunkと各種ツールによるAWSの管理
Splunkと各種ツールによるAWSの管理Splunkと各種ツールによるAWSの管理
Splunkと各種ツールによるAWSの管理
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary
 
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
 
Add PLEASE clause to Oracle Database
Add PLEASE clause to Oracle DatabaseAdd PLEASE clause to Oracle Database
Add PLEASE clause to Oracle Database
 
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
 
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャできる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
 

Recently uploaded

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
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
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
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
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

20131209_buildinsidermeetup