SlideShare a Scribd company logo
1 of 36
Download to read offline
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Platform2019
2019/11
クリエーションライン株式会社
李 昌桓(LEE CHANGHWAN)
1
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
設立
• 2006年1月
BP含めて130人ぐらい
事業概要
• クラウドインテグレーション事業
• ioTビックデータPF構築事業
• DevOps関連サービス事業
• サブスクリプション販売&サポート
クリエーションラインのホームページ
• https://www.creationline.com
クリエーションライン株式会社
2
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
自己紹介
李 昌桓 (LEE CHANGHWAN,@awk256)
データベースが大好きなサーバサイドのエンジニア。NoSQLを中核とした「ビックデータ処理基盤のアーキテクト」として活
動している。
クリエーションライン www.creationline.com
Neo4jユーザーグループ jp-neo4j-usersgroup.connpass.com
[ブログ]
www.creationline.com/lab/neo4j
www.qiita.com/aw256
[著書]
グラフデータベースNeo4jの他
www.amazon.co.jp/李昌桓/e/B004LWEKOU
3
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realmとは
4
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realmとは
Realmって何?
MongoDBの有償サポートを行っている関係で、今年、MongoDBが買収した製品の1つとして調査する事になった。
Realmとは、クラウドタイプのMobileアプリケーション開発のプラットフォームサービスであり、より迅速にモバイルアプリケーションが開発でき
ることを使命としているようだ。
製品の構成は、次の3本柱。
• Realm Platform(PaaS)
✓ オブジェクトサーバー及びバックエンドサービス
• Realm Database(ドキュメントタイプのMobileDB])
✓ 開発者がAPIからコードで操作するコンパックなデータベース
✓ iOS及びAndriod, Windows, Realm Platform上で動く
• Realm Studio (GUIのSDK)
✓ アプリケーション開発のためのツール
✓ MacOS, Windows, Linux上で動く
5
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
今年、MongoDBが買収し、近い内にMongoDB Realmを出すと発表している。
【MongoDB Realm】
https://realm.io/products/realm-Platform
こちらは、Realmの記事。
【Realm Upgrades Database-Centric Mobile Dev Platform】
https://adtmag.com/articles/2017/10/18/realm-update.aspx
こちらは、MongoDBがRealmを買収した事のアナウンス。
【MongoDB to acquire open-source mobile database Realm for $39 million】
https://techcrunch.com/2019/04/24/mongodb-to-acquire-open-source-mobile-database-realm-startup-
that-raised-40m/
6
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
MongoDB Atlasを知っている人は、ご存知だろう。 Atlas Stitchは、Realm Platformと同様なサービスである。
【MongoDB社の製品紹介2019】
https://www.creationline.com/lab/29725
Realm DatabaseのようなMongoDB Mobileも出している。
もちろん、SDKも。
MongoDB Atlasは、様々なWebアプリケーション開発やIoTのバックエンドなど、適用範囲が広いサービスであるが、それに比べて
Realmは、Mobileアプリケーションにコミットしたサービスである。
Realmは、この分野で急成長しており、MongoDBは、Realmを買収することで、この分野での成長基盤を固めている。
7
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
実績
Mobileアプリケーションに特化したPlatform、クライアント側のデータベースとバックエンド側のデータベースが自動的に同期を取ってくれ
るMobileデータベースのような斬新な発想で急成長して来たようである。
• 2Bを超えるインストール
• 100Kの開発者
• Fortune 500の主力企業から選ばれている実力
8
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Platform Cloud
アカウントを登録し、インスタンスを立ち上げれ、Mobileアプリケーション開発のためのバックエンドの用意はほぼ完了である。大手クラウド
業者やMongoDBに比べても、クラスター(DB)を立ち上げるとか、最適化するとか、開発者にとって結構ハードルが高い要素がさらに減
りそうだ。
Mobileアプリケーションに特化しているので、シンプルなのが何よりの強み。
• クラウドサービス
✓ スタンダード→定型の計算資源やディスク、ネットワーク、コミュニティサポートなど
✓ デディケート→オーダー型の計算資源やディスク、ネットワーク、有償サポート
✓ Realm Database
• バックエンドのアプリをホスティング、ドキュメントタイプのデータベース(OSS)
• 諸々、マネジメントサービス
9
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Database
• ドキュメントデータベースであり、同タイプで堂々の8位、全データベースのランクでは44位
• 延べ20億を超えるインストール
10
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
• Description → A DBMS built for use on mobile devices that’s a fast, easy to use alternative
t o SQLiteand Core Data
• Primary database model → Document Store
• Website → https://realm.io/
• Developer → Realm, acquired by MongoDB in May 2019
• Initial → 2014
• License → OSS
• Cloud-base only → no
• Server operation system → Android,Backend: server-less,iOS,Windows
• SQL Support→ no,via API
• Transaction concepts → ACID
• More
11
https://db-engines.com/en/system/Realm
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
なぜ、Mobileデータベース
iOSやAndroidの端末で溜めたMobileデータベースのデータとバックエンド側のMobileデータベースが自動的に同期を取る。もはや、ア
プリケーションでバックエンドエンド側のデータベースに書き組むようなコーディングなど要らない。
言語は、Java, Swift, Objective-C,JavaScript,.NET
12
https://realm.io/
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Studio
Realm Studio利用すると、バックエンド側と接続する前提で開発を進める。
• デベロッパーツール
• OSは、Mac, Windwos, Linuxをサポート
• 言語は、Java, Swift, Objective-C,JavaScript,.NETのどれか
13
https://realm.io/products/realm-studio
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
2019年MongoDBがRealmを買収
• 2007年、MongoDB設立、ドキュメントタイプでは圧倒的な導入実績
• 2014年、Realm設立し、MobileDBでは、2億を超えるインストール実績
• 2019年、MongoDBがRealmを買収
✓ MongoDB社は、MongoDB Atlas上にRealmと同様なサービス(Stitch/Mongo Mobile)を展開しているが、
近い将来、MongoDB Realmを出すと、発表している
14
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
価格
ここの価格は、現状、次のとおり。
• スタンダードプラン
– $30monthプラン
– 定型のリソース(2.5GBストレージ/20GB Badnwidth/10K同時接続/3インスタンス)
– コミュニティサポート
• デディケートクラウドプラン
– オンデマンドリソース
– シングルテナント、専用インスタンス
– 有償サポート(見積)
15
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Platform Cloud
16
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
スタート(Free Cloud Trial, 3days)
感触を確かめるために、ちょっと触れてみた。
• 次のサイトからに接続
https://realm.io/
• メールアドレスとパスワード入力し、サインアップをを実行(Sign up)
• メールアドレスにRealm Cloudからのメールが来ない場合は、メールを再送( Send email again)
• メールボックスからRealm Cloudからのメールを開いて確認を行う(VERIFY YOUR EMAIL ADDRESS)
• プロファイルの登録を求められるので「名前、名字、会社」を入力して保存( Save )
17
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Welcome Screen
初期画面からインスタンス作成画面に遷移(Create New Instance)。
18
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
インスタンス作成
• 次のような項目を登録し、インスタンス作成を開始(Create New Instance)
– Instance name: Persistnet Stell Shirt
– Inscance id: persistnet-stell-shirt
– Region: US West
• URLをコピーする(Copy)
https://persistent-steel-shirt.us1a.cloud.realm.io
19
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Cloudでアプリケーション開発
• インスタンス作成が完了すると、次のような初期画面が表示される
• 早速、Android端末のデモアプリケーション開発を実行してみる(Start with Android)
20
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Start with Android
• デモプロジェクトを開始すると、ダイレクトにコーディングのマニュアルに飛んでいく
• ここからは、Realm Studioとの連携が必要そうであるが、 Realm StudioとRealm Platform(バックエンド)とは、同期が取
れるような仕組みなっているようだ(今回は、机上確認なので間違っていたら御免なさい!)。
21
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Cloudのダッシュボード
諸々、メトリックが見える。
22
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Cloudの設定
セキュリティ設定など。
23
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
感想
• Realm Platformの構成はとてもシンプル
• インスタンスを立ち上げて、コードを書いて、バックエンドと直ぐ連携
• Free Trial 3Daysは、ちょっと短か過ぎる気がするが、「$30/月間」を使える
• 今回は、コードを書かないつもりなのでここまでで終了だが、イメージはできるようになった
24
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Database
25
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
インストール
• 開発言語のパッケージとしてインストール。ここでは、JavaScriptべース
npm install --save realm
• プログラムのなかでは、呼び出してコーディングするだけ
var Realm = require('realm’);
26
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
モデルと属性の定義
ドキュメントタイプのオブジェクトを定義する。
const CarSchema = {
name: 'Car',
properties: {
make: 'string',
model: 'string',
miles: {type: 'int', default: 0},
}
};
27
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
データの書き込み
次のように書き込みを実行する。
Realm.open({schema: [CarSchema, PersonSchema]})
.then(realm => {
// Create Realm objects and write to local storage
realm.write(() => {
const myCar = realm.create('Car', {
make: 'Honda',
model: 'Civic',
miles: 1000,
});
myCar.miles += 20; // Update a property value
});
28
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
検索・フィルター
検索し、フィルターを実行する。
let dogs = realm.objects('Dog');
let tanDogs = dogs.filtered('color = "tan" AND name BEGINSWITH "B"');
29
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
その他
データベースとして、データ操作のための基本的な機能は一通り揃っている。
• ソート
• データ同期(クライアントとバックエンドのRelam Database)
• 更新/削除
• インデックシング
• プライマリキー
• 暗号化
• 認証(google,facebook,iCloud)
30
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
感想
データベースとしての機能性は一通り揃っている。サーバー側の記述が殆どなかったが、もう、データベースはRealm Platformの一メソッ
ドという位置づけなのかもしれない。
• クライアント側のデータベースは、 SDKの一部として扱われている
• Realm Platform側のデータベースの高可用性は、Enterprise版(有償)が必要であり、クラスターが組めるようである
• 拡張性は関しては明言されていなった。まあ、想定していないかも、あるいは、今後、拡張を必要とするような規模であれば、
MongoDBのシャーディングクラスターが担うのかも
• バックアップ機能もあり
31
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Studio
32
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Relam Studio Windows版インストール
• インストールパッケージをダウンロードしてインストール(Download for Windows)
https://realm.io/products/realm-studio
Realm Studio Setup 3.8.1.exe
• インストール中にメールアドレスの入力が必要(Let’s get started)
• 次のように初期画面が表示される
33
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
• Realm Cloudに接続(Connect to Server)
• Username/Passwordを入力
34
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Demo Realmファイル
• Realm StudioからDemo Realmファイルを入手 (Download a demo Ralm file)
• Realm Studioからデモファイルを開く(Demo Realm file)
• 次のような展開になる
35
Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
感想
• コードを書かないと、ここまでが限界のようだ
• でも、何となく、使い方のイメージは伝わって来た
• バックエンドとの同期とか、やってみたいところだか、まあ、いいか
36

More Related Content

What's hot

MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDBMongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
 
MongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もありMongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もあり
ippei_suzuki
 
NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会
Yuji Otani
 
qpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQLqpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQL
Akihiro Okuno
 
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!デベロッパーネットワーク
 
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みデータテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
Yahoo!デベロッパーネットワーク
 

What's hot (20)

RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
[db tech showcase Tokyo 2017] E21: InfluxDB+αで時系列データの異常検知を可視化してみた by 株式会社インサイ...
[db tech showcase Tokyo 2017] E21: InfluxDB+αで時系列データの異常検知を可視化してみた by 株式会社インサイ...[db tech showcase Tokyo 2017] E21: InfluxDB+αで時系列データの異常検知を可視化してみた by 株式会社インサイ...
[db tech showcase Tokyo 2017] E21: InfluxDB+αで時系列データの異常検知を可視化してみた by 株式会社インサイ...
 
Spring Cloud Data Flow の紹介 #streamctjp
Spring Cloud Data Flow の紹介  #streamctjpSpring Cloud Data Flow の紹介  #streamctjp
Spring Cloud Data Flow の紹介 #streamctjp
 
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDBMongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
 
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnightヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
 
MongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もありMongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もあり
 
NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会
 
qpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQLqpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQL
 
Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料
Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料
Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料
 
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
 
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
 
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みデータテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
 
広告における機械学習の適用例とシステムについて
広告における機械学習の適用例とシステムについて広告における機械学習の適用例とシステムについて
広告における機械学習の適用例とシステムについて
 
Bluemixとapache sparkでできる io tデータの収集と分析
Bluemixとapache sparkでできる io tデータの収集と分析Bluemixとapache sparkでできる io tデータの収集と分析
Bluemixとapache sparkでできる io tデータの収集と分析
 
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
 
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreadingDataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
 
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
 
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
 

Similar to Realm platform2019

Similar to Realm platform2019 (20)

Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力![DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
 
Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方
 
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
 
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
 
AWS Introduction for Startups
AWS Introduction for StartupsAWS Introduction for Startups
AWS Introduction for Startups
 
IBM and Open @201311
IBM and Open @201311IBM and Open @201311
IBM and Open @201311
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
プログラム・マネジメント @ Open棟梁プロジェクト
プログラム・マネジメント @ Open棟梁プロジェクトプログラム・マネジメント @ Open棟梁プロジェクト
プログラム・マネジメント @ Open棟梁プロジェクト
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
 
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
 

More from 昌桓 李

More from 昌桓 李 (7)

MongoDB Atlasの構成について 2019
MongoDB Atlasの構成について 2019MongoDB Atlasの構成について 2019
MongoDB Atlasの構成について 2019
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
グラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectivesグラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectives
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
 
MongoDB Atlasアカウント取得
MongoDB Atlasアカウント取得MongoDB Atlasアカウント取得
MongoDB Atlasアカウント取得
 
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&AtlasMongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
 
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
Neo4j高可用性クラスタ― vs 大規模分散クラスタ―の解説
 

Realm platform2019

  • 1. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Platform2019 2019/11 クリエーションライン株式会社 李 昌桓(LEE CHANGHWAN) 1
  • 2. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 設立 • 2006年1月 BP含めて130人ぐらい 事業概要 • クラウドインテグレーション事業 • ioTビックデータPF構築事業 • DevOps関連サービス事業 • サブスクリプション販売&サポート クリエーションラインのホームページ • https://www.creationline.com クリエーションライン株式会社 2
  • 3. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 自己紹介 李 昌桓 (LEE CHANGHWAN,@awk256) データベースが大好きなサーバサイドのエンジニア。NoSQLを中核とした「ビックデータ処理基盤のアーキテクト」として活 動している。 クリエーションライン www.creationline.com Neo4jユーザーグループ jp-neo4j-usersgroup.connpass.com [ブログ] www.creationline.com/lab/neo4j www.qiita.com/aw256 [著書] グラフデータベースNeo4jの他 www.amazon.co.jp/李昌桓/e/B004LWEKOU 3
  • 4. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realmとは 4
  • 5. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realmとは Realmって何? MongoDBの有償サポートを行っている関係で、今年、MongoDBが買収した製品の1つとして調査する事になった。 Realmとは、クラウドタイプのMobileアプリケーション開発のプラットフォームサービスであり、より迅速にモバイルアプリケーションが開発でき ることを使命としているようだ。 製品の構成は、次の3本柱。 • Realm Platform(PaaS) ✓ オブジェクトサーバー及びバックエンドサービス • Realm Database(ドキュメントタイプのMobileDB]) ✓ 開発者がAPIからコードで操作するコンパックなデータベース ✓ iOS及びAndriod, Windows, Realm Platform上で動く • Realm Studio (GUIのSDK) ✓ アプリケーション開発のためのツール ✓ MacOS, Windows, Linux上で動く 5
  • 6. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 続き 今年、MongoDBが買収し、近い内にMongoDB Realmを出すと発表している。 【MongoDB Realm】 https://realm.io/products/realm-Platform こちらは、Realmの記事。 【Realm Upgrades Database-Centric Mobile Dev Platform】 https://adtmag.com/articles/2017/10/18/realm-update.aspx こちらは、MongoDBがRealmを買収した事のアナウンス。 【MongoDB to acquire open-source mobile database Realm for $39 million】 https://techcrunch.com/2019/04/24/mongodb-to-acquire-open-source-mobile-database-realm-startup- that-raised-40m/ 6
  • 7. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 続き MongoDB Atlasを知っている人は、ご存知だろう。 Atlas Stitchは、Realm Platformと同様なサービスである。 【MongoDB社の製品紹介2019】 https://www.creationline.com/lab/29725 Realm DatabaseのようなMongoDB Mobileも出している。 もちろん、SDKも。 MongoDB Atlasは、様々なWebアプリケーション開発やIoTのバックエンドなど、適用範囲が広いサービスであるが、それに比べて Realmは、Mobileアプリケーションにコミットしたサービスである。 Realmは、この分野で急成長しており、MongoDBは、Realmを買収することで、この分野での成長基盤を固めている。 7
  • 8. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 実績 Mobileアプリケーションに特化したPlatform、クライアント側のデータベースとバックエンド側のデータベースが自動的に同期を取ってくれ るMobileデータベースのような斬新な発想で急成長して来たようである。 • 2Bを超えるインストール • 100Kの開発者 • Fortune 500の主力企業から選ばれている実力 8
  • 9. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Platform Cloud アカウントを登録し、インスタンスを立ち上げれ、Mobileアプリケーション開発のためのバックエンドの用意はほぼ完了である。大手クラウド 業者やMongoDBに比べても、クラスター(DB)を立ち上げるとか、最適化するとか、開発者にとって結構ハードルが高い要素がさらに減 りそうだ。 Mobileアプリケーションに特化しているので、シンプルなのが何よりの強み。 • クラウドサービス ✓ スタンダード→定型の計算資源やディスク、ネットワーク、コミュニティサポートなど ✓ デディケート→オーダー型の計算資源やディスク、ネットワーク、有償サポート ✓ Realm Database • バックエンドのアプリをホスティング、ドキュメントタイプのデータベース(OSS) • 諸々、マネジメントサービス 9
  • 10. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Database • ドキュメントデータベースであり、同タイプで堂々の8位、全データベースのランクでは44位 • 延べ20億を超えるインストール 10
  • 11. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 続き • Description → A DBMS built for use on mobile devices that’s a fast, easy to use alternative t o SQLiteand Core Data • Primary database model → Document Store • Website → https://realm.io/ • Developer → Realm, acquired by MongoDB in May 2019 • Initial → 2014 • License → OSS • Cloud-base only → no • Server operation system → Android,Backend: server-less,iOS,Windows • SQL Support→ no,via API • Transaction concepts → ACID • More 11 https://db-engines.com/en/system/Realm
  • 12. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved なぜ、Mobileデータベース iOSやAndroidの端末で溜めたMobileデータベースのデータとバックエンド側のMobileデータベースが自動的に同期を取る。もはや、ア プリケーションでバックエンドエンド側のデータベースに書き組むようなコーディングなど要らない。 言語は、Java, Swift, Objective-C,JavaScript,.NET 12 https://realm.io/
  • 13. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Studio Realm Studio利用すると、バックエンド側と接続する前提で開発を進める。 • デベロッパーツール • OSは、Mac, Windwos, Linuxをサポート • 言語は、Java, Swift, Objective-C,JavaScript,.NETのどれか 13 https://realm.io/products/realm-studio
  • 14. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 2019年MongoDBがRealmを買収 • 2007年、MongoDB設立、ドキュメントタイプでは圧倒的な導入実績 • 2014年、Realm設立し、MobileDBでは、2億を超えるインストール実績 • 2019年、MongoDBがRealmを買収 ✓ MongoDB社は、MongoDB Atlas上にRealmと同様なサービス(Stitch/Mongo Mobile)を展開しているが、 近い将来、MongoDB Realmを出すと、発表している 14
  • 15. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 価格 ここの価格は、現状、次のとおり。 • スタンダードプラン – $30monthプラン – 定型のリソース(2.5GBストレージ/20GB Badnwidth/10K同時接続/3インスタンス) – コミュニティサポート • デディケートクラウドプラン – オンデマンドリソース – シングルテナント、専用インスタンス – 有償サポート(見積) 15
  • 16. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Platform Cloud 16
  • 17. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved スタート(Free Cloud Trial, 3days) 感触を確かめるために、ちょっと触れてみた。 • 次のサイトからに接続 https://realm.io/ • メールアドレスとパスワード入力し、サインアップをを実行(Sign up) • メールアドレスにRealm Cloudからのメールが来ない場合は、メールを再送( Send email again) • メールボックスからRealm Cloudからのメールを開いて確認を行う(VERIFY YOUR EMAIL ADDRESS) • プロファイルの登録を求められるので「名前、名字、会社」を入力して保存( Save ) 17
  • 18. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Welcome Screen 初期画面からインスタンス作成画面に遷移(Create New Instance)。 18
  • 19. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved インスタンス作成 • 次のような項目を登録し、インスタンス作成を開始(Create New Instance) – Instance name: Persistnet Stell Shirt – Inscance id: persistnet-stell-shirt – Region: US West • URLをコピーする(Copy) https://persistent-steel-shirt.us1a.cloud.realm.io 19
  • 20. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Cloudでアプリケーション開発 • インスタンス作成が完了すると、次のような初期画面が表示される • 早速、Android端末のデモアプリケーション開発を実行してみる(Start with Android) 20
  • 21. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Start with Android • デモプロジェクトを開始すると、ダイレクトにコーディングのマニュアルに飛んでいく • ここからは、Realm Studioとの連携が必要そうであるが、 Realm StudioとRealm Platform(バックエンド)とは、同期が取 れるような仕組みなっているようだ(今回は、机上確認なので間違っていたら御免なさい!)。 21
  • 22. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Cloudのダッシュボード 諸々、メトリックが見える。 22
  • 23. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Cloudの設定 セキュリティ設定など。 23
  • 24. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 感想 • Realm Platformの構成はとてもシンプル • インスタンスを立ち上げて、コードを書いて、バックエンドと直ぐ連携 • Free Trial 3Daysは、ちょっと短か過ぎる気がするが、「$30/月間」を使える • 今回は、コードを書かないつもりなのでここまでで終了だが、イメージはできるようになった 24
  • 25. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Database 25
  • 26. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved インストール • 開発言語のパッケージとしてインストール。ここでは、JavaScriptべース npm install --save realm • プログラムのなかでは、呼び出してコーディングするだけ var Realm = require('realm’); 26
  • 27. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved モデルと属性の定義 ドキュメントタイプのオブジェクトを定義する。 const CarSchema = { name: 'Car', properties: { make: 'string', model: 'string', miles: {type: 'int', default: 0}, } }; 27
  • 28. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved データの書き込み 次のように書き込みを実行する。 Realm.open({schema: [CarSchema, PersonSchema]}) .then(realm => { // Create Realm objects and write to local storage realm.write(() => { const myCar = realm.create('Car', { make: 'Honda', model: 'Civic', miles: 1000, }); myCar.miles += 20; // Update a property value }); 28
  • 29. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 検索・フィルター 検索し、フィルターを実行する。 let dogs = realm.objects('Dog'); let tanDogs = dogs.filtered('color = "tan" AND name BEGINSWITH "B"'); 29
  • 30. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved その他 データベースとして、データ操作のための基本的な機能は一通り揃っている。 • ソート • データ同期(クライアントとバックエンドのRelam Database) • 更新/削除 • インデックシング • プライマリキー • 暗号化 • 認証(google,facebook,iCloud) 30
  • 31. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 感想 データベースとしての機能性は一通り揃っている。サーバー側の記述が殆どなかったが、もう、データベースはRealm Platformの一メソッ ドという位置づけなのかもしれない。 • クライアント側のデータベースは、 SDKの一部として扱われている • Realm Platform側のデータベースの高可用性は、Enterprise版(有償)が必要であり、クラスターが組めるようである • 拡張性は関しては明言されていなった。まあ、想定していないかも、あるいは、今後、拡張を必要とするような規模であれば、 MongoDBのシャーディングクラスターが担うのかも • バックアップ機能もあり 31
  • 32. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Realm Studio 32
  • 33. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Relam Studio Windows版インストール • インストールパッケージをダウンロードしてインストール(Download for Windows) https://realm.io/products/realm-studio Realm Studio Setup 3.8.1.exe • インストール中にメールアドレスの入力が必要(Let’s get started) • 次のように初期画面が表示される 33
  • 34. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 続き • Realm Cloudに接続(Connect to Server) • Username/Passwordを入力 34
  • 35. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved Demo Realmファイル • Realm StudioからDemo Realmファイルを入手 (Download a demo Ralm file) • Realm Studioからデモファイルを開く(Demo Realm file) • 次のような展開になる 35
  • 36. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved 感想 • コードを書かないと、ここまでが限界のようだ • でも、何となく、使い方のイメージは伝わって来た • バックエンドとの同期とか、やってみたいところだか、まあ、いいか 36