23
APACHE OpenWhisk™ Meetup vol #2

OpenWhisk meetup vol2

Embed Size (px)

Citation preview

Page 1: OpenWhisk meetup vol2

APACHE OpenWhisk™Meetup vol #2

Page 2: OpenWhisk meetup vol2

Tokida Hideaki (常⽥ 秀明)• Facebook: hideaki.tokida• Twitter: @tokida

ü 主な仕事• ⽇本情報通信株式会社/ お客様、⾃社における新しい技術や考え⽅の啓

蒙活動, Bluemix/WatsonAPIの開発⽀援, コミュニティ活動⽀援

ü 最近の活動

• OpenWhisk布教活動• Bluemix User Group コアメンバ(代表)• 雑誌、Webサイトの寄稿

OpenWhisk Meetup (1/23)OpenWhiskのハンズオンを開催します。これから始める⼈向けに⾊々何か作っていきたいです。

Page 3: OpenWhisk meetup vol2

私の⽴場

• ”仕事でBluemixエバンジェリストしていますので好きなOpenWhisk広まってくれると仕事で使えて嬉しい“• OSSになったので何か貢献出来ないかな?

Page 4: OpenWhisk meetup vol2

Meetupの指針

OpenWhiskの概要と最新動向

ハンズオンの実施

Page 5: OpenWhisk meetup vol2

Meetupの指針

• APACHE OpenWhisk™が⾯⽩そうだったので皆で勉強していきたい。⾊々情報交換したい。

• 進め⽅としてまだまだユーザ数が少ないので順次やっていきたいと考えています。

1. OpenWhisk機能の勉強(セミナー⾵)2. ハンズオンの実施(資料の公開→Qittaなど)3. 利⽤ユースケース(”作ってみた”的な)4. 実案件ユースケース

Page 6: OpenWhisk meetup vol2

Meetupの指針参加者への希望• Facebook/Twitterでの情報の拡散• #openwhisk のHashtagでつぶやく

• Blogなどのレポートを書く• フィードバックが得づらいのでどんな内容でもBlogなどで出してもら

ええるとコミュニティとしても⾊々良くなっていくと思います。• 中の⼈は https://medium.com/openwhisk で書いている

• 次回のMeetupで作ったものや考察などを発表する• 今回の参加者の⽅、次回是⾮簡単なものでも発表してください

Page 7: OpenWhisk meetup vol2
Page 8: OpenWhisk meetup vol2

5分で分るOpenWhisk背景

• APACHE Incubatorとして公開されているFunction as a Serviceに分類されるOpenSource

• サーバ部分だけでなくFaaS全体(ロードバランサーやDockerコンテナの仕組み諸々)が提供されているのが特徴

• マネージドサービスとして、IBM Bluemix 上で利⽤可能• Price:実⾏メモリサイズ*実⾏時間*処理回数• 実⾏環境:Dallas Region

http://incubator.apache.org/projects/openwhisk.html

http://openwhisk.org/

Page 9: OpenWhisk meetup vol2

5分で分るOpenWhiskプログラミングモデル

イベント駆動

トリガー(実⾏条件)・REST・CLI・SDK

・イベントから実⾏

ルール(トリガーとアクションの紐付け)

アクション(実際の処理をになう、

Funcionsの実態)・JavaSceript

・Swift・Python・Java

・Dockerコンテナ

リザルト(結果は⾮同期で参照)

Page 10: OpenWhisk meetup vol2

5分で分るOpenWhiskプログラミングモデル

Action

Action

ResultTrigger

Rule

Event

REST ful

Web Action

API

Page 11: OpenWhisk meetup vol2

Trigger

Rule

Event

REST ful

Web Action

API

5分で分るOpenWhiskプログラミングモデル

Action

Action

Result

Actionは、JavaScript(NodeJS)、Swift、Python等の⾔語で記述することが出来る。Actionを連結して新しいActionを作る事が出来る⼊出⼒はJSONで⾏う

JSON

JSON

Page 12: OpenWhisk meetup vol2

REST ful

Web Action

API

5分で分るOpenWhiskプログラミングモデル

Action

Action

ResultTrigger

Rule

Event

何らかの状況変化などが発⽣(例:CloudantNoSQにデータが挿⼊された)

Page 13: OpenWhisk meetup vol2

Rule

TriggerEvent

REST ful

Web Action

API

5分で分るOpenWhiskプログラミングモデル

Action

Action

Result

様々な形式で呼び出す事が可能

JSON

JSON Http

JSON

IDPASS

Page 14: OpenWhisk meetup vol2

Action

Action

Trigger

Rule

Event

REST ful

Web Action

API

5分で分るOpenWhiskプログラミングモデル

Result

全ての処理結果は、蓄積される⾮同期の処理として結果を参照可能。プログラム側から応答を待ちたい場合にはBlockingのオプションを追加する

JSON

JSON

JSON

JSON

Bluemix上では、結果を確認することが出来る「Monitor」WebUIが提供されている。

Page 15: OpenWhisk meetup vol2

5分で分るOpenWhisk

• 実⾏環境として、HostingサービスのBluemixを利⽤するか個別にローカルのサーバへ導⼊するか• Bluemix上で利⽤できる機能はOpenSource版すべてではない• Bluemix上では各種GUIが⽤意されている• Bluemix上ではマニュアル等が⽇本語化されている

• 個別にローカルのサーバに導⼊する場合には試験的にはVagrantを利⽤して導⼊するかNative導⼊するかが選べる(いずれにしても実態はDockerで動作する)

Page 16: OpenWhisk meetup vol2

5分で分るOpenWhiskSystem Architecture

Nginx(外部からのCall)

LB(CallをInvokerに伝える、内部ス

テータスはConsulで保持)

Activator(トリガのイベント

を処理)

Invoker(Actionを実⾏したりDockerコンテナプール

を管理したり)

管理API Call

Kafka+Zookeepr(全体のメッセージ

ングバス)

https://developer.ibm.com/openwhisk/2016/04/01/ibm-bluemix-openwhisk-whats-under-the-hood/

サーバ機能もすべてDockerで構成

Page 17: OpenWhisk meetup vol2

Githubレポジトリの道標

• 各機能別に細分化してきている• openwhisk ・・・ 本体• openwhisk-catalog ・・・標準のカタログ部分(Package)• openwhisk-package-xxxx ・・追加のPackage(Kafkaなど)• apigqateway ・・・ API Gateway機能• openwhisk.github.io ・・・公式サイトのソースコード• openwhisk-external-resources ・・・外部のBlogやHowtoなどのリ

ンク集(探しものはこちらをまず⾒る)• openwhisk-xxxx ・・・その他のツール群

Page 18: OpenWhisk meetup vol2

最近注⽬したプロジェクト(2017.3)• Serverless• Deployment framework である「Serverless Framework」にて

OpenWhiskのサポート• https://serverless.com/framework/docs/providers/openwhisk/

• WebAction• 新しく提案されているアクセス形式

• HTTPのHeaderを応答することが可能• 例えば、画像ファイルとして等としたり、エラーレスポンスを応答したり• API managementと競合している雰囲気もあるので今後どう統合されているか

が注⽬(Bluemix上でもすでに利⽤可能)

Page 19: OpenWhisk meetup vol2

ワンポイント機能紹介Web Actions• これまでJSONのみ応答が出来る• これから• headers: a JSON object where the keys are header-names and

the values are string values for those headers (default is no headers).• code: a valid HTTP status code (default is 200 OK).• body: a string which is either plain text or a base64 encoded

string (for binary data).• 認証不要のURLが⽣成される

https://github.com/openwhisk/openwhisk/blob/master/docs/webactions.md

Page 20: OpenWhisk meetup vol2
Page 21: OpenWhisk meetup vol2

お知らせ• OpenWhisk Webサイトの多国籍語化

• 現在の英語版のみなので多国籍語化する• https://github.com/openwhisk/openwhisk.github.io/issues/18

2• 某⽒がするぞというのでIssueを⽴てた

1. 多国籍化したサイトを構築しPullRequestをする1. どうやってするのか⽅式を決める

• OpenWhisk go-cli の多国籍語化• すでにCodeレベルでは対応が出来ているが⽇本語等の各国語ランゲー

ジファイルが⽤意されていない• 某⽒がしたいと⾔っていた

1. 英語のファイルを翻訳2. コード中で⾔語ファイルがEn固定になっているので修正して

PullRequest

Page 22: OpenWhisk meetup vol2

お知らせ

• 5/中旬 OpenWhisk Meetup vol#3 (19:00-21:00)• セミナー形式で開催予定• [1] OpenWhisk概要 (45min –)• [2] なにか題⽬(30min -) ※予定• [3] LT枠 5min x 5

Page 23: OpenWhisk meetup vol2