『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

トラブル

2.0.0から2.0.1
RPM updateでCompaction Daemonがcrashする
ディスクの容量が増え続けてしまった
clean installで解消した

Metadata Purge
MetadataがDiskに残る
2.2.0にUpgradeで解消予定

カウチベースを選んだ理由

expireが効くから
memcacheプロトコルが使えた

=============================================

Couchebase Server Release Note 2.5解説

土田さん

2014/2/14 EE2.5.0リリース
2014/2/14 CE2.2.0リリース
build番号は一緒

2.2のおさらい

XDCEのプロトコルmemcachedプロトコルに変更
metadata purge設定が追加(削除されたアイテムのメタデータを除去することが可能に)
閲覧アカウント接待可能

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にテストしたいURL Schemeを入力
  • Make Linkボタンをクリック
  • QRコードが生成されるのでスマホで読み込む
  • QRコードでアクセスしたサイトのリンクがURL Schemeなのでそれをクリックすればテストできます!

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/

Webブラウザを呼び出す方法

検索の仕方が悪いのかもしれないけどなかなか見つからないので

using System;
using Microsoft.Phone.Tasks;
...
WebBrowserTask task = new WebBrowserTask();
task.Uri = new Uri("http://www.tomiyan.net", UriKind.Absolute);
task.Show();

How to: Use the Web Browser Task for Windows Phone