41
OpenWhisk Serverless への期待 IBM Cloud Community 勉強会 - サーバレス特集 OpenWhisk -

OpenWhisk Serverless への期待

Embed Size (px)

Citation preview

Page 1: OpenWhisk Serverless への期待

OpenWhiskServerlessへの期待

IBM Cloud Community 勉強会 -サーバレス特集 OpenWhisk -

Page 2: OpenWhisk Serverless への期待

資料は後⽇公開(Slideshare)いたします。本資料内でのスペック・サービス内容の表記については2016/10/3現在の資料を参考にしております。内容について誤りがないように努めておりますが実際のご利⽤の際にはご確認の上実施下さい。

Page 3: OpenWhisk Serverless への期待

自己紹介

� 常田秀明 (Tokida Hideaki) � Facebook: hideaki.tokida� Twitter: @tokida

� 主な仕事

� 所属)日本情報通信株式会社

� お客様、社内における新しい技術や考え方の啓蒙活動, Bluemix/WatsonAPIのAPL開発支援

� 最近の活動

� 日本SoftLayerユーザ会コアメンバ� 日本Bluemixユーザ会コアメンバ� 雑誌、Webサイトの寄稿

Page 4: OpenWhisk Serverless への期待

Community 活動

� SoftLayer , Bluemix関連の執筆やセミナーなどを実施しています

� 宣伝

� Software Design 2016-11月号(10/18発売)

� 新人のときに知っておきたかった「クラウドコンピューティングのしくみ」(AWS・Azure・SoftLayer・SalesForce・さくらインターネット)

Page 5: OpenWhisk Serverless への期待

最近はOpenWhisk!!

� OpenWhisk概要 -日本情報通信クラウドインフォメーションサイト� http://niccloud.niandc.ne.jp/?p=1933

� オープンソースのサーバレス実行環境「OpenWhisk」の概要とアプリケーションの作成 -CodeZine� http://codezine.jp/article/detail/9623

� About OpenWhisk / 2回ほど発表した資料� http://www.slideshare.net/hideakitokida/about-openwhisk� http://slides.com/hideakitokida/openwisk#

Page 6: OpenWhisk Serverless への期待

Agenda

� 今日勉強して欲しいこと

� 話すこと、離さないこと

� 世の中で行われているサーバレスの仕組み

� システムインテグレータとしての期待

� Serverless on Bluemix -今できるサーバレス環境の作り方

Page 7: OpenWhisk Serverless への期待

今日勉強してほしい事

� 今日の「IBM Cloud Commuity」に来て頂いている方々の技術的なバックグラウンドとしてAWSのLambdaベースのサーバレスを知らない人(≒サーバレスをあまり知らない)を想定して書いています。

� そんな人に、なぜ今「サーバレス」なのか、そしてIBMのOpenWhiskはどんな位置付けのサービス(ソフトウェア)であるのかを理解してもらう。

Page 8: OpenWhisk Serverless への期待

話すこと、話さないこと

� 話すこと

1. サーバレスの現状

2. サーバレスはどういうものなのか

� 話さないこと

1. Microserversの話

2. 今すぐサーバレスで儲ける方法

3. OpenWhiskの技術的な深い話・仕組み

Page 9: OpenWhisk Serverless への期待

世の中のサーバレス事情

Page 10: OpenWhisk Serverless への期待

世界的にイベントも開催中 ServerlessConf

Page 11: OpenWhisk Serverless への期待

Serverlessって?

� 必要なシステムを構成する上で、「いわゆる仮想サーバ」を利用しないアーキテクチャ

� 仮想サーバが担っていた機能は、SaaSを上手に使って目的を果たす。

� 仮想サーバで実施していいた「ユーザ処理」が有る場合には、Function as a Serviceを利用して「処理」だけを登録して実行するサービスを活用してシステムを作る。

Page 12: OpenWhisk Serverless への期待

AWS Lambda ≒ Serverlessと言っても言い過ぎではない

� 主に、AWSのLambdaベースのサーバレスの仕組みを「サーバレス」と呼ぶことが多い� 「サーバレス」という言葉自体は、ベンダーにとらわれるものではないが現在最も実装されて動いているのはAWS Lambdaが主流であることは疑いの余地はない

� Serverlessを実現するためのノウハウが溜まってきている

� クラウドプロバイダーの各社は、相次いで「サーバレス」の仕組みを発表している

� Azure Functions , Google Functions , OpenWhisk

Page 13: OpenWhisk Serverless への期待

従来のサーバ利用からサーバレス環境の比較

EC2の処理をAWS Lambdaで制御する

http://www.slideshare.net/mitocgroup/microservices-architecture-for-web-applications-using-aws-lambda-and-more

Page 14: OpenWhisk Serverless への期待

従来のサーバ利用からサーバレス環境の比較

EC2の処理を各種サービスで制御する

http://www.slideshare.net/mitocgroup/microservices-architecture-for-web-applications-using-aws-lambda-and-more

Page 15: OpenWhisk Serverless への期待

ServerlessのFrameworkも登場

Page 16: OpenWhisk Serverless への期待

システムからみる

Compute と Service の密接続具合

BearmetalServer Virtual

ServerDocker

PaaSServerless

ServiceServiceDocker

(MiddleWare)

VM(MiddleWare)

BM(Middle Ware)

専用プロトコル 専用プロトコル 専用プロトコル REST(API) ServiceのEvent連携

Page 17: OpenWhisk Serverless への期待

システムからみる

Compute と Service の密接続具合

� 各サービス群の状態の変化を継起にしてServerlessのFunctionを起動する等サービス群と深く密接に繋がる

� 見方によってはある種「Service」自体を拡張しているかのように作っていく

� またServerlessの仕組みとして、シンプルな単機能を実装する場合にはマイクロサービスとしてServerlessを構築していく事が望ましい。

Serverless

Service

ServiceのEvent連携

Page 18: OpenWhisk Serverless への期待

システムインテグレータとしての期待

Page 19: OpenWhisk Serverless への期待

コントール可能な範囲Cost費用

Operation運用

従来か

らの互換性

Bluemixサービス連携

Agility速度

Standard標準

Portability可搬性

Security安全

Performance性能

Reliability信頼HW OS Bin

Lib Code

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

OpenStackVM ✓ ✓ ✓ △ △ ◎ ☓ △ ◯ △ ◯ ◯ ◯

Docker ✓ ✓ ◯ ◯ ◯ ◯ ◯ △ ◎ △ ◎ △

CloudFoundry (✓) ✓ ◯ ◯ △ ◎ ◎ △ ◯ △ △ △

OpenWhisk ✓ ◎ ◎ ☓ △ ◎ ☓ ◯ △ △ △

IBM Cloud サービスに於ける serverlessの位置付け

Page 20: OpenWhisk Serverless への期待

サーバレスを実現する世界

� 管理不要

� 設定不要、管理不要、高い可用性

� 生産性

� コードに集中、素早い導入、市場投入の時間短縮

� 拡張性

� 自動化、スケールアップ・ダウン

Page 21: OpenWhisk Serverless への期待

Serverlessにおける責任分界点

データ

コード

ランタイム

ミドルウェア

OS

仮想化

サーバー

ストレージ

ネットワーキング

IaaS

Paa

S

SaaS

/Ser

verle

ss

データセンター/ネットワーク事業者

ハードウェア機器・インフラ構築SIer

アプリケーションディベロッパー

クラウド事業者

インフラ構築SIer

アプリケーションディベロッパー

クラウド事業者

アプリケーションディベロッパー

オンプレミスIaaSPaaS

クラウド事業者

アプリケーションディベロッパー

Serverless

Page 22: OpenWhisk Serverless への期待

SI/システム運用から見て

� 構築する範囲が圧倒的に少ない

� 場合によっては、None-Codeで設定のみで完結する

� マネージドサービスの範囲が飛躍的に上がり運用自体が不要

� サービスの異常検知等をモニタリングしておく程度となり、急なスパイクにも自動的に対応

� コストの軽減

� 適所で利用することにより既存クラウドアーキテクチャに比べて飛躍的に軽減する可能性がある

Page 23: OpenWhisk Serverless への期待

Serverlessによる変化

� 強制的に、ステートレスで拡張性の有る設計が必須

� これまで、”クラウドネイティブ”と言ってはいたもの結局従来どおりのアーキテクチャになっているケースなどが多かったと思いますが変えざるを得ない

� マイクロサービスアーキテクチャ化の促進

� AWS LambdaやOpenWhiskなどは全てFunction as a Serv iceをであり、小さい作業を実施することに向いている傾向がある。その為必然的に機能別に分解したマイクロサービスの形態を取る

� 変化に強いシステムを作ることが出来る

� 試験手法の変化が必要

� 結合試験などを事前にすることが難しい、その一方でマイクロサービス化することにより変更による影響範囲を小さくすることが出来る。

� 障害発生時のSPOFを考慮� 特定のサービス(Function)が停止することで全体への提供がない様に設計が必要。常にリカバリープランをアプリケーションのSLA等を基準に検討する。

Page 24: OpenWhisk Serverless への期待

適材適所

� Serverlessの仕組みは優れていますがすべてのことが出来るわけではありません。銀の弾丸は無いよ。

� 適材適所で有効な部分に使っていきましょう。

Page 25: OpenWhisk Serverless への期待

OpenWhisk

Page 26: OpenWhisk Serverless への期待

OpenWhiskとは

� OpenWhiskは、OSSで提供されるサーバサイドアプリケーションプラットフォームです。

� つまり、Bluemix上だけでなくオンプレミスや他のクラウドの上で動かすこともが可能です。

� インフラストラクチャを選ばないため非常に可搬性に優れています、このことは弾力性の高いシステムを作ることが出来ます。

� またCoreな技術は非常によく使われているOpenSourceが利用されています。

Page 27: OpenWhisk Serverless への期待

OpenWhiskの特徴

� OpenWhsikは、2つの側面を持っています。

� Backend as a Services

� Function as a Services

Page 28: OpenWhisk Serverless への期待

Backend as a Serviceとしての側面

� iOSのモバイルアプリケーションに向けてSDKが公開されています。

� モバイルの世界ではクライアント側で多くの処理を行いサービスと連携して動作する 2-way アーキテクチャが出てきています。(先日のserverless confでも出ていましたが、クライアント10万台x100台のサーバではクライアント側がパワーがありすぎる)

クライアント側で処理をする

Page 29: OpenWhisk Serverless への期待

Function as a Serviceとしての側面

� 単機能なサービスを複数作り、それらをAPIで接続して利用する事を想定します。

� 各機能はストレートレスな処理を行います。

� サービスに必要なリソースについて利用者は特に意識すること無くスケールアウトが行なえます。

� OpenWhiskでは、標準でREST APIのエンドポイントURLが付与されます。

Page 30: OpenWhisk Serverless への期待

Serverlessアーキテクチャで考える

� 従来からのシステム構築(とくにオンプレミス環境を含む)はまだまだ存在します。

� そういった中でも大切なことは「クラウドで産まれた技術」をオンプレミス環境でも活用していくこと、だと思います。

� OpenWhiskはオンプレミスでも強調するため既存のシステムの中にFunction as a Serv iceを組み込んでいくことが可能です。

� サーバレスを前提するということは、ステートレスなプログラムが必要です。またAPIで連携することも時には必要になります。OpenWhiskだけではAPIの制御は不十分になるため必要に応じてAPI Connect + OpenWhiskの構成を取る必要があります。

Page 31: OpenWhisk Serverless への期待

マルチプラットフォーム

� OpenWhiskはOSSで提供されているため様々なプラットフォームで実行が可能です。

� 完全にマネージドサービスで提供されるBluemix上でも、AWSやAzure上でも同じ仕組みを実行することが可能です(ポータビリティが必要なシステムでもサーバレスアーキテクチャでシステムを作ることが可能です)

オンプレミス 各種クラウドフルマネージドサービス(Bluemix)

Page 32: OpenWhisk Serverless への期待

1st Stepのアイディア

従来通りのサーバ上でのアプリケーション

処理1

処理2

処理3

処理4

小さい処理を取り出してOpenWhsik上に実装してゆく

REST

Page 33: OpenWhisk Serverless への期待

システムからみる

Compute と Service の密接続具合

SoftLayerOpenStack

VMDocker

CloudFoundry

OpenWhisk

ServiceServiceDocker

(MiddleWare)

VM(MiddleWare)

BM(Middle Ware)

専用プロトコル 専用プロトコル 専用プロトコル REST(API) ServiceのEvent連携

連携サービスが不十分

Page 34: OpenWhisk Serverless への期待

IBM Cloud でのserverlessの課題

� 現在の IBM Cloud ( SoftLayer , Bluemix )の課題� OpenWhiskと密接続を行う事ができるサービスが少なすぎる

� つまり「サービス」→「OpenWhisk」→「サービス」→「OpenWhisk」の流れが簡単に作れない。

service Service

Page 35: OpenWhisk Serverless への期待

Feed: GithubWebHook

Githubでどのような時にWebHookを起動するかはGithubでの設定で行う

WebHookを受信するようなFeedを作ることで自動処理を実現することが可能

https://github.com/openwhisk/openwhisk-catalog/blob/master/packages/github/webhook.js

汎用的なサービスとの連携方法

まずはWebHook-Feedから

Page 36: OpenWhisk Serverless への期待

Serverless on Bluemix

� Bluemixで利用できる(と思う)サービス群の紹介� Serverlessな仕組みを作るとすると主にはFunctionを記述する

� ストレージ部分は既存のサービスを利用する

� 可能な限り利用できる機能は既存のサービスを利用し最低限のFunctionのみを記述する

Page 37: OpenWhisk Serverless への期待

例えば、このようなRESTで制御出来るAPIと連携する

Page 38: OpenWhisk Serverless への期待

動きを見てみよう(1)IBM Demo Applicationの仕組み

Data upload Invoke <image flames>

Invoke

分析結果

(1)Movieをフレーム画像に分解

(2) フレーム画像を分析し結果をCloudantへ格納

https://github.com/IBM-Bluemix/openwhisk-darkvisionapp

http://www.slideshare.net/ServerlessConf/frederic-lavigne-and-stephen-fink-serverless-video-processing-with-ibm-bluemix-openwhisk?qid=ac9c2114-7ef7-48af-a907-50788a540b76&v=&b=&from_search=10

Page 39: OpenWhisk Serverless への期待

動きを見てみよう(2) Watson IoTのイベントを受信して動かす

wsk package get --summary /[email protected]_dev/mqttpackage/[email protected]_dev/mqtt

Feed:mqttMQTT

IoT Platformにてデータを受信しMQTTで配信する

WebHookを受信するようなFeedを作ることで自動処理を実現することが可能

Provider

MQTT用の受信・Feed配信を行うためのプロバイダーをDockerコンテナ上で構成

https://github.com/jthomas/openwhisk_mqtt_feed

Page 40: OpenWhisk Serverless への期待

まとめ

� クラウドサービスの世界では、Function as a Service (Serverless )は選択しの1つとして確実に存在しています。

� 適切に構築することで自身のアプリケーションをまるでフルマネージドのサービスのように運用することが出来ます。

� OpenWhiskを利用することで、オンプレミスでもクラウドでも同じアーキテクチャでサーバレスな環境を構築することが出来ます。

� まずは、身近な1つの機能から移行しては如何でしょうか

Page 41: OpenWhisk Serverless への期待

Photo by Umi-no-Kyoto Organization Committee is licensed under CC BY 4.0 International