31

About OpenWhisk

Embed Size (px)

Citation preview

Page 1: About OpenWhisk
Page 2: About OpenWhisk

OpenWhisk概要http://niccloud.niandc.ne.jp/?p=1933

Page 3: About OpenWhisk
Page 4: About OpenWhisk

http://www.niandc.co.jp/sol/bluemix/2016031501.php

第2回「IBMWatson日本語版ハッカソン」 プレゼン賞受賞

Page 5: About OpenWhisk
Page 6: About OpenWhisk

4つ⽬の実⾏環境 ”OpenWhisk”

• 新しい4番目として登場しました。まだベータなので無料で利用することが出来ます。

• 利用申し込みボタンがあるので申請をすると1日程度で使えます。

Page 7: About OpenWhisk

OpenWhisk

• IBMから登場した、イベント駆動型アプリケーション開発基盤• 従来のIaaS、Runtimeより、より⼩さい単位で提供される開発基盤です。

ある処理 • VMやRuntimeもリソースを「考える」必要があるがOpenWhiskは基盤のリソースを考える必要が無い。今後「処理」単位で課金がされるはず。

Page 8: About OpenWhisk

すごく簡単にいえば、

• Bluemixユーザには馴染みのあるNode-RED。処理自体は簡単に作れても「実行するため」にはリソースの管理が必要。単純な処理でも1VM分の費用がかかる

Page 9: About OpenWhisk

すごく簡単にいえば、

• OpenWhiskではこのNode-REDでいう「フロー」の部分が登録される。この「単位」でアーキテクチャを考えていくことができる。そしてリソースは自動で捌いてくれる

Page 10: About OpenWhisk

まるでNode-RED (まだ出ていない)

http://venturebeat.com/2016/02/22/ibm-cloud-launches-swift-runtime-open-source-aws-lambda-competitor-github-enterprise-vmware-support/

• OpenWhiskもGUIエディタが登場してくる(予定)Node-REDなみに使い安い環境が出来ることが期待

Page 11: About OpenWhisk

OpenWhiskの特徴

• ⼩さい機能を処理する(語弊を恐れずに書けば、マイクロサービス的な)• Bluemixの基盤上でサービスとして提供されユーザは利⽤できる処

理性能を考慮しなくても良い(コンピュートノード的な指向からの脱却)• クラウドネイティブ時代のアプリケーション開発の⼿段• フロントエンドエンジニアが取り組みやすい⾔語の採⽤

(JavaScript/Swift)• OpenSource!(実際に動くコードがOSSで提供)

• 個人的に気になる「ポイント」

Page 12: About OpenWhisk

ニーズに合わせて選択コントール可能な範囲

従来からの互換性

Bluemixサービス連携

Agility速度

Standard標準

Portability可搬性

Security安全

Performance性能

Reliability信頼

HW OS BinLib

Code

SoftLayer ✓ ✓ ✓ ✓ ◎ N/A ☓ ◎ ☓ ◎ ◎ ◎

OpenStack VM ✓ ✓ ✓ ◎ ☓ △ ◯ △ ◯ ◯ ◯

Docker ✓ ✓ ◯ ◯ ◯ △ ◎ △ ◎ △

Cloud Foundry ✓ △ ◎ ◎ △ ◯ △ △ △

OpenWhisk ✓ ☓ △ ◎ ☓ ☓ △ △ △

• 従来の表では「OpenWhisk」の良さも悪さも表現できていない所が新しいサービスを感じます。

Page 13: About OpenWhisk
Page 14: About OpenWhisk

サービスアーキテクチャ• 主な使い方は2つ• ・イベント駆動型• ・バックエンドサービス型

Page 15: About OpenWhisk

サービスアーキテクチャ(イベント駆動)

Action

様々な処理を記述

処理は複数をつなぎあわせて動かすことが出

来る

Feed

イベント駆動を実現する機能

Trigger

Feedに条件を設定したもの

Rule TriggerとActionを結びつけたもの

Page 16: About OpenWhisk

サービスアーキテクチャ(イベント駆動)

Action

様々な処理を記述

処理は複数をつなぎあわせて動かすことが出

来る

Feed

イベント駆動を実現する機能

Trigger

Feedに条件を設定したもの

Rule TriggerとActionを結びつけたもの

時間起動が出来るFeed 時間を設定 業務開始の連絡のメッ

セージの通知

社員へメッセージが通知

Page 17: About OpenWhisk

サービスアーキテクチャ(BaaS)

Action

様々な処理を記述

処理は複数をつなぎあわせて動かすことが出

来る

iOSSDKRESTful

クライアント側のコードからActionを実行可能

結果の受信

Page 18: About OpenWhisk

Action

Cloudantからデータを取得しAlchemyAPIへ分析し結果をJasonで返す

iOSSDKRESTful

写真をアップし処理を実行

Cloudant写真をアップ

処理の実行Invoke

AlchemyAPI

分析結果を描画フロントエンド

(iPhone)バックエンド(OpenWhisk)

APIs(Bluemix)

• 公開されているサンプルアプリケーションの動作

Page 19: About OpenWhisk

サービスアーキテクチャ

Page 20: About OpenWhisk
Page 21: About OpenWhisk

利⽤可能な⾔語環境

• フロントエンジニアで利⽤されている「JavaScript」「Swift」を採⽤• フロントエンジニアが、アプリケーション開発をしていくうえでクライアントサイドがバックエンドの側の処理をしたいと考えた時にインフラの知識や新たな⾔語の習得が不要なため勉強コストが低くバックエンド側の処理を構築することが可能。

• 言語については今度も増えていくる予定。Github上のPullRequestには “Java”が登場している。

Page 22: About OpenWhisk

3つの実⾏⾔語

• JavaScript (nodejs base)• みんな⼤好きなNodeJSですね

• Swift (kitura base?)• 同時に発表されたKituraベースなのかなと思いますが、Swift。コンパイル

不要でコードをアップすれば動作します。

• Docker• Dockerコンテナを実⾏することが可能、ちょっと⾯⽩い。

• バックエンドで処理が出来る環境。利用者は「Code」のみを登録するためどのライブラリが利用可能有るかは重要。

• 多くの情報はGithubに出ています。

Page 23: About OpenWhisk

3つの呼び出し(Mobile Back end)

• RESTful API• ⼀般的なREST同様に呼び出せます

• CLI • CFツールと合わせてwskが提供されます。管理的な事は全てCLIで実⾏する

ことになります。

• iOS SDK• iOSネイティブにライブラリが提供されますので従来のApplicationに簡単

に組み込むことが出来ます。

• イベント駆動ではなく、MBaaSとして利用することが出来ることもOpenWhiskの特徴です。RESTfulに対応しており応用の幅は広いです。

Page 24: About OpenWhisk

(参考)JavaScript

• Nodejs 0.12.9 base• ライブラリとして登録されている項⽬(OSS版)

Page 25: About OpenWhisk
Page 26: About OpenWhisk

OpenSource

• クラウドサービスベンダーが発表した新規サービスにおいてバックエンド側の仕組みがOpenSourceで登場• コア部分だけでなく開発環境として実⾏可能なVagrantパッケージやネイティブ実⾏部分など実際に動かせるコードとして提供されている。

• 実際の構築⼿順https://github.com/openwhisk

http://niccloud.niandc.ne.jp/?p=1933

Page 27: About OpenWhisk

OSS版でみる中の仕組み

registrator

kafka

zookeper

consul

Nginx

dispatcher

loadbalancer

controller

nodejsaction

swiftaction

Docker Container

• 4Core/4GMemoryほどの環境であれば実行することが出来ます。Github上で開発が進められており今後が期待されます。

• 全体は、Scalaで記述されており基盤はDockerが採用されていることなどがわかります。サービスの裏側がみれて面白いです。

Page 28: About OpenWhisk
Page 29: About OpenWhisk

まずは使ってみましょう!

• これからクラウドネイティブなアプリケーション開発が必要になる時にOpenWhiskが標準的なツールになるかもしれません。• 是⾮⾊々触って楽しんでいきましょう!!• 帰ったら「俺(私)のOpenWhiskサーバ」を作って下さい。

• Bluemixを利用するとOpenWhiskを簡単に試せます。今はまだBeta版なので今のうちにどんどん利用しましょう

Page 30: About OpenWhisk

参考資料

• OpenWhisk概要• http://niccloud.niandc.ne.jp/?p=1933

• Check! Bluemix OpenWhisk の開発環境を Vagrant で作ってみる• http://qiita.com/dz_/items/cc872fe6786b7988b6b8

• IBM Bluemix OpenWhisk REST API• https://amanoblog.wordpress.com/2016/03/03/ibm-bluemix-openwhisk-rest-api/

• Getting started with OpenWhisk• https://github.com/openwhisk/openwhisk/tree/master/docs

• OpenWhisk: 本来のオープンなサーバレス時代を拓く世界初のサービス?• http://apiguy.tokyo/2016/03/02/openwhisk-open-servless-architecture-japanese/

• IBMもAWS Lambda対抗のサーバレスアーキテクチャ提供へ。イベントドリブンでNode.jsとSwiftに対応した「OpenWhisk」をBluemixで提供。コードはオープンソースに• http://www.publickey1.jp/blog/16/openwhisk_bluemix.html

Page 31: About OpenWhisk

NI+Cは今までにないモノでも、お客様のおもひ、私たちのおもひをITでカタチにします

[email protected]/Bluemix の導⼊のご相談から構築、運⽤のお⾒積りは