『Couchbase MeetUP Tokyo - #7 - 祝ver 2.5!ユーザ事例もあるよ -』に行ってきたのメモ
2014/02/25 19:00
品川フロントビル 株式会社ネクストで開催
http://couchbasejpcommunity.doorkeeper.jp/events/8914
=============================================
couch base@viber
ユーザー事例
DB Architecture
1st
in-memory DB
2nd
redis cluster
mongo cluster
mongo dosen't scale
redis with no sharding
redis sharder not manageable and robust
3rd
Couchebase clusters
Couchebase backup clusters
over 300 application servers
6 couchebase clusters
total 100-120 couchebase servers
=============================================
CouchebaseとDEVOPS
WZICORP
モバイルソーシャルゲーム
ネイティブアプリとハイブリッド
CLIインターフェイスが揃っているのでDEVOPSしやすいよ
=============================================
Ameba Couchebaseの利用事例
高塩さん
サイバーエージェントでは開発した人が運用している
アメーバブログを当初始めた
その後アメーバピグの開発を始めた
ガールフレンド(仮)
当初会員の情報、ブログの情報、認証情報すべて同じDBに入れていた
その後認証情報を切り分けた
アプリケーションごとにログイン画面があったが、
守るべき場所をひらすために認証画面を一本化した
ログインアプリとログインさせたい側のアプリケーション
ログインアプリ側とログインセッションにそれぞれCouchbaseを利用している
CouchbaseのドキュメントIDを受渡している
8core 32GB SAS HDD * 8台
リプレース前は4core 12GB SATA * 8台だった
Centos6.2
Couchebase Server 2.0.1 CE
Bucket * 1
Couchebase Server Release Note 2.5解説
土田さん
2014/2/14 EE2.5.0リリース
2014/2/14 CE2.2.0リリース
build番号は一緒
2.5の重要な機能
・ラック・アウェアネス(EE限定)
ラックやAZなど物理的に従属している環境を気にしながらレプリケーションしてくれる
Server Groupごとにサーバノードを定義できます
・XDCRデータセキュリティ(EE限定)
データ暗号化機能
今までは暗号化されていなかった
通信経路は信頼されているネットワーク上という前提だった
・接続制御の最適化
11210ポートからmemcachedプロトコルを通じて転送される
Client SDKは影響ないよ
Couchbase社に問い合わせたところ後方互換性はあると問い合わせ済
2.5へアップグレードする際の注意事項
・対象クラスタが2以上のレプリカを設定している場合、いくつかのvBucketはクラスタ全体に配布される
・XDCR暗号化のためにポート番号があらたに4つ予約されているので注意が必要
Releate Noteでは書かれていないこと
・RAM QuotaがWebコンソールから設定変更可能になっている
・auto failoverのデフォルト値が30秒から120秒に変更されている
・Metadata Purge Intervalが0.04(=1時間)まで設定できるようになっている
=============================================
N!QL
next generation query language
ニッケルと読みます
SQLライクに検索できる言語
標準でViewという検索のための仕組みがあり、非常に高速です
ただしViewは事前に検索する項目を特定しておく必要があり、任意の項目で自由に検索したりソートしておいたりといったことができない
SQLに慣れている人にとって、NoSQLデータベースでの検索は手を出しにくかったりした
結構なSQLが書ける
count,avg,like,group by,having by,limitなどが使える
CouchebaseはJSON形式でデータを保持しているので、必然的に検索した結果はJSON形式となります
また、結果だけでなく、項目の指定の仕方も多少異なります
構造化されていた場合は"."でつなげて指定
配列の構造を持ったデータの場合もhoge[0]やhoge[1]も指定できる
JSONのような構造化された文章むけに拡張された構文がある
・配列の長さを条件に指定
・項目の存在地チェック
・ドキュメントのIDを取得
など、まだまだいっぱいある
紹介しきれる量ではない
過度な期待はNG
・SQLライクであり、そのものではありません
・検索のみで、挿入、更新、削除はできません
・Developer Preview2なのであくまでも開発者向け
・お世辞にも速いとはいえません(T_T)
実際に試したい方はオンラインでものページが有ります
http://query.pub.couchbase.com/tutorial/
幾つか制限がある
スキーマレスなので テーブルのjoinといった概念がない
自分自身にジョインするような構文はある
5年後の「エンジニアの働き方」
アイデム エンジニアキャリアHacks共有プロジェクト
5年後の「エンジニアの働き方」は、どう変わっていてほしいですか?
SIerや各企業のエンジニアが一斉に会社をやめて工期や金額が妥当、インフラやフレームワークがまともなものだけを受注するような働きかたになって欲しい
サービス残業やデスマを根絶するためにそれくらいやって良いと思う
URL schemeのテスト用ツールQRコード対応しました
URL schemeのテスト用ツールを作りました - tomiyanの自由帳の続き
iPhone/AndroidアプリをURL schemeで起動出来るか確認するためのツールでQRコードを生成できるようになりました
QRコードをスマホで読みこめばテスト用のサイトへすぐに飛べます!
スマホ側でURL schemeを入力する必要がありません
http://tomiyan.net/python/urlscheme
使い方は簡単
URL schemeのテスト用ツールを作りました
iPhone/AndroidアプリをURL schemeで起動出来るか確認するためのツールを作りました
いちいちHTML作成してどこかにアップロードするのが面倒だったので作りました
AndroidだとブラウザでURL schemeのURL直打ちしても起動しないのでテストができなかった
ホントはPCでURL入力してQRコード生成してスマホでQRコード読みこめばリンク踏めるようにしたい
http://tomiyan.net/tools/urlscheme.html
アプリ側の実装時に参考にさせていただいた記事
iPhone URL schemeを使ってアプリを起動する - 強火で進め
Android http://techbooster.jpn.org/andriod/application/2748/
通話機能を呼び出す方法
using Microsoft.Phone.Tasks;
...
PhoneCallTask task = new PhoneCallTask();
task.PhoneNumber = "03-1234-5679";
task.DisplayName = "ほげふが";
task.Show();
Webブラウザを呼び出す方法
検索の仕方が悪いのかもしれないけどなかなか見つからないので
using System;
using Microsoft.Phone.Tasks;
...
WebBrowserTask task = new WebBrowserTask();
task.Uri = new Uri("http://www.tomiyan.net", UriKind.Absolute);
task.Show();