SlideShare a Scribd company logo
1 of 19
Download to read offline
Hybrid Serverless Architecture
using OpenWhisk
(IBM Cloud Functions) and Istio
with Accenture
2017年 9月 6日
IBM コンサルティング・アーキテクト
平山 毅
© 2017 IBM Corporation
自己紹介 平山 毅 (ひらやま つよし)
IBM Consulting Architect
WatsonとAnalyticsを融合した新生IBMクラウド事業本部で技術面をリー
ドしています。最近は次世代コンピューティングのプロジェクトにも従事しています。
また、IBMerながら、実はAWS Lambdaにも詳しい。
日経コンピューター様記事
http://itpro.nikkeibp.co.jp/atcl/column/14/34
6926/011000761/
日経SYSTEMS様記事
http://itpro.nikkeibp.co.jp/atcl/column/14/346
926/022400852/
【共著】
© 2017 IBM Corporation
Which is OpenWhisk or IBM Cloud Functions ?
何が変わったの︖ (現時点)
As a Software (OpenSource)
コマンドラインがcloud functions に︕
> bx plugin install cloud-functions -r Bluemix
> bx plugin list cloud-functions
Plugin Name Version
Cloud-Functions 1.0.0
実はAPIはOpenWhiskそのまま︕
https://openwhisk.ng.bluemix.net/api/v1
IBM Cloud Functions
As a Service (IBM Cloud)
Dockerコンテナで提供
Kubernetesベースの
マイクロサービス環境に最適のデプロイ
© 2017 IBM Corporation
What is Istio ?
マイクロサービス
アプリケーション層
マイクロサービス
フロント層
マイクロサービス
DB/Integration層
冗⻑性設定の
コントロール
プレーンへの追加
Istio の アーキテクチャー
非機能要件をコードに実装
IBM、Google、Lyftで共同開発したOSSマイクロサービスプラットフォーム
+ + Kubernetes
© 2017 IBM Corporation
Istio = Traffic + Policy
OpenWhiskの実⾏環境として最適になる(予定)
https://istio.io/ より抜粋
© 2017 IBM Corporation
Lambda Function (API -> Lambda -> DynamoDB のNode.js)
'use strict';
console.log('Loading function');
const doc = require('dynamodb-doc');
const dynamo = new doc.DynamoDB();
exports.handler = (event, context, callback) => {
//console.log('Received event:', JSON.stringify(event, null, 2));
const done = (err, res) => callback(null, {
statusCode: err ? '400' : '200',
body: err ? err.message : JSON.stringify(res),
headers: {
'Content-Type': 'application/json',
},
});
switch (event.httpMethod) {
case 'DELETE':
dynamo.deleteItem(JSON.parse(event.body), done);
break;
case 'GET':
dynamo.scan({ TableName: event.queryStringParameters.TableName }, done);
break;
case 'POST':
dynamo.putItem(JSON.parse(event.body), done);
break;
case 'PUT':
dynamo.updateItem(JSON.parse(event.body), done);
break;
default:
done(new Error(`Unsupported method "${event.httpMethod}"`));
}
};
Event
Context
Callback
AWS Lambdaと各AWSサービスとの連携設定
Callback で取得部分
パッケージ的位置付けの宣言
(この例ではDynamoDB)
Event 定義の部分
HTTPメソッドをベースに
DynamoDBのAPIを
Switch分岐で定義
以下よりソースコードを抜粋
© 2017 IBM Corporation
OpenWhisk Action (API -> OpenWhisk -> MySQL のNode.js GET)
以下よりソースコードを抜粋
https://github.com/IBM/openwhisk-serverless-apis
function myAction(params) {
return new Promise(function(resolve, reject) {
console.log('Connecting to MySQL database');
var mysql = require('promise-mysql');
var connection;
mysql.createConnection({
host: params.MYSQL_HOSTNAME,
user: params.MYSQL_USERNAME,
password: params.MYSQL_PASSWORD,
database: params.MYSQL_DATABASE
}).then(function(conn) {
connection = conn;
console.log('Querying');
var queryText = 'SELECT * FROM cats WHERE id=?';
var result = connection.query(queryText, [params.id]);
connection.end();
return result;
}).then(function(result) {
console.log(result);
if (result[0]) {
resolve({
statusCode: 200,
headers: {
'Content-Type': 'application/json'
},
body: result[0]
});
} else {
reject({
headers: {
'Content-Type': 'application/json'
},
statusCode: 404,
body: {
error: "Not found."
}
});
}
;
}).catch(function(error) {
if (connection && connection.end) connection.end();
console.log(error);
reject({
headers: {
'Content-Type': 'application/json'
},
statusCode: 500,
body: {
error: "Error."
}
});
});
});
}
exports.main = myAction
Params
パラメーター
変数の定義
Function定義
MySQLの
認証情報
MySQLのSQL分
Where句にパラ
メーターを適用
(GETに対応する
SELECT)
分岐︓正常終了時(HTTP 200) 分岐︓データが無い論理エラー(HTTP 404)
分岐︓対向のエラー(HTTP 500)
© 2017 IBM Corporation
OpenWhisk Good Point (Trigger、Rule、Sequence)
【参考】発表者平山のQiita「シーケンスのソースコード」
http://qiita.com/t3hirayama/items/21fbf39c42be5756b870
発表者平山のQiita「パッケージのソースコード」
http://qiita.com/t3hirayama/items/ad6927eb5310247407ac
こちらはAccenture様から発表
シーケンスはアクション経由
Action
Cron Trigger Action
2時間ごとに
アクションを実⾏のルール
Trigger
Rule
Action
Invoke
Trigger
© 2017 IBM Corporation
API Gateway + OpenWhisk
Fintech APIの多くを構成するIBM API Connect ベースのAPI Gateway で自動的にOpenWhiskをAPI化可能。
API Connectの機能によって、SDKも自動生成され、マイクロサービス通信が即時に可能になる︕
【参考】発表者平山のQiita「APIからSDK化するサンプルコード」
http://qiita.com/t3hirayama/items/d09766d6882a66165c22
サーバレス向けの
APIリファレンス
が自動生成され、
SDKコードも自動
生成される。
DevOps Open Toolchain と OpenWhisk との融合
DevOps のプロセスを回すOpenToolchianに対応し、DevOpsサイクルで
Kubernetes(Docker)、CloudFoundry、と合わせて統合管理とデプロイ、
更にマイクロサービス統合管理まで可能に。
IBM Cloud Private
https://www.ibm.com/developerworks/community/wikis/home?lang=ja#!/wiki/W1559b1be14
9d_43b0_881e_9783f38faaff/page/Overview%20of%20IBM%20Cloud%20private
Private Cloud ではなくCloud Private。マイクロサービスマネージドサービス。
© 2017 IBM Corporation
Serverless Framework for OpenWhisk
https://serverless.com/これは、マルチクラウドとIBMサービスを将来利⽤するには、抑えておいた⽅がいい。
© 2017 IBM Corporation
OpenWhisk Functions Properties Example
# serverless.yml
service: myService
provider:
name: openwhisk
runtime: nodejs:6 # optional, default is nodejs:default
memorySize: 512 # optional, default is 256
timeout: 30 # optional, default is 60
functions:
hello:
handler: handler.hello # required, handler set in Apache OpenWhisk
name: some_custom_name # optional, default is ${service}_${function}
runtime: nodejs # optional overwrite, default is provider runtime
memory: 512 # optional overwrite, default is 256
timeout: 10 # optional overwrite, default is 60
https://serverless.com/framework/docs/providers/openwhisk/guide/functions/
© 2017 IBM Corporation
What is Hybrid Cloud ?
オンプレミスの
プライベートクラウド
IBM Cloud
パブリッククラウド
VMware SDDC (NSXで1つのL2ネットワークに)
Istio / Kubernetes Cluster / Teraform
Serverless
Function
Serverless
Function
Serverless
Function
Serverless
Function
レガシー資産
クラウド
サービス
①インフラの
ハイブリッド
②アプリの
ハイブリッド
IBMのハイブリッドエンタープライズアプリケーション
API Connect
データベースの公開
ロジック部品の公開
IaaS
PaaS
Cloud Enable
アプリケーション
今までのアプリケーション
Monolithic app
Firewall
REST
SaaS連携
“Cloud First”
外部APIの活用
“API Economy”
開発者が
セルフ・サービスで利⽤
API
として
公開
革新的な
アイデアをアプリ化
新たなサービス、
より良いサービス
を生み出す
Software-
as-a-
Service
オンプレミス
セキュリティ
ゲートウエイ
IBM開発、提供
公開API(150種以上)
クラウド
コグニティブ
連携
Serverless Microservice on Istio
Enterprise Hybrid Serverless Architecture
© 2017 IBM Corporation
IBM Cloud Function の 導入事例
© 2017 IBM Corporation
Thank you
ご清聴ありがとうございました。
© 2017 IBM Corporation
この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資料に記載
された内容に関して日本アイ・ビー・エムは何ら保証するものではありません。
ワー クショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情
報提供の目的 のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結
果を生むものでもありません。 本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供さ
れ、明示または暗示にかかわらずいかなる保証 も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の
関連によって、いかなる損害が生じた場合も、IBMは責任を負わ ないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライ
ヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBM ソフトウェアの使用を規定する適用ライセンス契
約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。
本 講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であること
を暗示するも のではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独
自の決定権をもっていつでも変 更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したも
のではありません。本講演資料に含まれている 内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生
じると述べる、または暗示することを意図したものでも、またその ような結果を生むものでもありません。 パフォーマンスは、管理された環境にお
いて標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパ フォーマンスは、ユー
ザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮 事項を含
む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではあ
りませ ん。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として
示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM, IBM ロゴ、ibm.com, は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。
現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。

More Related Content

What's hot

クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングクラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
Terui Masashi
 
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
Terui Masashi
 

What's hot (20)

Azure Hybrid/Infra Updates! Azureからオンプレ仮想基盤の管理もできるようになってます!
Azure Hybrid/Infra Updates! Azureからオンプレ仮想基盤の管理もできるようになってます!Azure Hybrid/Infra Updates! Azureからオンプレ仮想基盤の管理もできるようになってます!
Azure Hybrid/Infra Updates! Azureからオンプレ仮想基盤の管理もできるようになってます!
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hub
 
Virtual WAN × Citrix SD-WAN の衝撃! ~演習用資料~
Virtual WAN × Citrix SD-WAN の衝撃! ~演習用資料~Virtual WAN × Citrix SD-WAN の衝撃! ~演習用資料~
Virtual WAN × Citrix SD-WAN の衝撃! ~演習用資料~
 
ホスティッドプライベートクラウド勉強会 ~Azure Pack on SoftLayer ~
ホスティッドプライベートクラウド勉強会 ~Azure Pack on SoftLayer ~ホスティッドプライベートクラウド勉強会 ~Azure Pack on SoftLayer ~
ホスティッドプライベートクラウド勉強会 ~Azure Pack on SoftLayer ~
 
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
 
AWS IoTを使った双方向通信システムの実装と注意点
AWS IoTを使った双方向通信システムの実装と注意点AWS IoTを使った双方向通信システムの実装と注意点
AWS IoTを使った双方向通信システムの実装と注意点
 
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
 
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
 
Bluemix(Node-RED)を使った空間の付加価値提案
Bluemix(Node-RED)を使った空間の付加価値提案Bluemix(Node-RED)を使った空間の付加価値提案
Bluemix(Node-RED)を使った空間の付加価値提案
 
New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASM
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
 
20181127 hccjp ms_hybrid_cloud_30m
20181127 hccjp ms_hybrid_cloud_30m20181127 hccjp ms_hybrid_cloud_30m
20181127 hccjp ms_hybrid_cloud_30m
 
[Japan Tech summit 2017] MAI 003
[Japan Tech summit 2017] MAI 003[Japan Tech summit 2017] MAI 003
[Japan Tech summit 2017] MAI 003
 
Azure Arcで「どこでも」Azureサービスを利用可能に!
Azure Arcで「どこでも」Azureサービスを利用可能に!Azure Arcで「どこでも」Azureサービスを利用可能に!
Azure Arcで「どこでも」Azureサービスを利用可能に!
 
しみじみサーバーレス
しみじみサーバーレスしみじみサーバーレス
しみじみサーバーレス
 
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューションクラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
クラウド環境でのロギングと、AlibabaCloudでのロギングソリューション
 
2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要
 
Asp.netとbluemixで遊んでみたお話
Asp.netとbluemixで遊んでみたお話Asp.netとbluemixで遊んでみたお話
Asp.netとbluemixで遊んでみたお話
 
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングクラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
 
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
 

Similar to Hybrid serverless architecture using open whisk ibm cloud functions and istio 20170906

ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
 

Similar to Hybrid serverless architecture using open whisk ibm cloud functions and istio 20170906 (20)

ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
 
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
 
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
[Japan Tech summit 2017] DAL 005
[Japan Tech summit 2017] DAL 005[Japan Tech summit 2017] DAL 005
[Japan Tech summit 2017] DAL 005
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
Vue入門
Vue入門Vue入門
Vue入門
 
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 

More from Tsuyoshi Hirayama

More from Tsuyoshi Hirayama (20)

第86回 Machine Learning 15minutes! IBMの大規模言語モデルGraniteと生成AI Governance 機能のご紹介
第86回 Machine Learning 15minutes!  IBMの大規模言語モデルGraniteと生成AI Governance 機能のご紹介第86回 Machine Learning 15minutes!  IBMの大規模言語モデルGraniteと生成AI Governance 機能のご紹介
第86回 Machine Learning 15minutes! IBMの大規模言語モデルGraniteと生成AI Governance 機能のご紹介
 
東京証券取引所、オラクル・コンサルタントの支援を受けて情報系セカンダリ・サイトに追加。「Oracle Data Guard」でTCOを半減し、平時の積極な...
東京証券取引所、オラクル・コンサルタントの支援を受けて情報系セカンダリ・サイトに追加。「Oracle Data Guard」でTCOを半減し、平時の積極な...東京証券取引所、オラクル・コンサルタントの支援を受けて情報系セカンダリ・サイトに追加。「Oracle Data Guard」でTCOを半減し、平時の積極な...
東京証券取引所、オラクル・コンサルタントの支援を受けて情報系セカンダリ・サイトに追加。「Oracle Data Guard」でTCOを半減し、平時の積極な...
 
Oracletechjp IT賢人の一言 第8回 株式会社東京証券取引所 平山毅氏
Oracletechjp IT賢人の一言 第8回 株式会社東京証券取引所 平山毅氏Oracletechjp IT賢人の一言 第8回 株式会社東京証券取引所 平山毅氏
Oracletechjp IT賢人の一言 第8回 株式会社東京証券取引所 平山毅氏
 
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
 
Token Operability WebX Hyperledger Workshop IBM Tsuyoshi Hirayama 20230726.pdf
Token Operability WebX Hyperledger Workshop IBM Tsuyoshi Hirayama 20230726.pdfToken Operability WebX Hyperledger Workshop IBM Tsuyoshi Hirayama 20230726.pdf
Token Operability WebX Hyperledger Workshop IBM Tsuyoshi Hirayama 20230726.pdf
 
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
 
ナレッジモール論文2022_デジタルツインにおける共創アプローチ
ナレッジモール論文2022_デジタルツインにおける共創アプローチ ナレッジモール論文2022_デジタルツインにおける共創アプローチ
ナレッジモール論文2022_デジタルツインにおける共創アプローチ
 
WIRED Innovation Insight クラウドで「ヒト・モノ・カネ」をデジタル化するWatson・IoT・ブロックチェーンの真の価値
WIRED Innovation Insight クラウドで「ヒト・モノ・カネ」をデジタル化するWatson・IoT・ブロックチェーンの真の価値 WIRED Innovation Insight クラウドで「ヒト・モノ・カネ」をデジタル化するWatson・IoT・ブロックチェーンの真の価値
WIRED Innovation Insight クラウドで「ヒト・モノ・カネ」をデジタル化するWatson・IoT・ブロックチェーンの真の価値
 
Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...
Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...
Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...
 
業界ごとのデータ分析を支援するIBM Data and AI Acceleratorsのご紹介
業界ごとのデータ分析を支援するIBM Data and AI Acceleratorsのご紹介業界ごとのデータ分析を支援するIBM Data and AI Acceleratorsのご紹介
業界ごとのデータ分析を支援するIBM Data and AI Acceleratorsのご紹介
 
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」 Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
 
Hyperledge meetup 20210908 パネルディスカッション : エンタープライズブロックチェーンの活用例 IBM 平山毅
Hyperledge meetup 20210908 パネルディスカッション : エンタープライズブロックチェーンの活用例 IBM 平山毅 Hyperledge meetup 20210908 パネルディスカッション : エンタープライズブロックチェーンの活用例 IBM 平山毅
Hyperledge meetup 20210908 パネルディスカッション : エンタープライズブロックチェーンの活用例 IBM 平山毅
 
BlockchainEXE_IBM特集 Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform An...
BlockchainEXE_IBM特集 Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform An...BlockchainEXE_IBM特集 Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform An...
BlockchainEXE_IBM特集 Cloud Satelliteで実現する分散クラウド時代のIBM Blockchain Platform An...
 
[Blockchain in kyoto 2021]security token pricing trend related to each sto pl...
[Blockchain in kyoto 2021]security token pricing trend related to each sto pl...[Blockchain in kyoto 2021]security token pricing trend related to each sto pl...
[Blockchain in kyoto 2021]security token pricing trend related to each sto pl...
 
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介20172017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
 
【Salesforce Webセミナー】IBM_人工知能(AI)により変革する、顧客との関係 IBMとSalesforceの提携で生まれる、お客様との新た...
【Salesforce Webセミナー】IBM_人工知能(AI)により変革する、顧客との関係 IBMとSalesforceの提携で生まれる、お客様との新た...【Salesforce Webセミナー】IBM_人工知能(AI)により変革する、顧客との関係 IBMとSalesforceの提携で生まれる、お客様との新た...
【Salesforce Webセミナー】IBM_人工知能(AI)により変革する、顧客との関係 IBMとSalesforceの提携で生まれる、お客様との新た...
 
IBM cloud 冬の勉強会 google の視点も織り交ぜ理解するkubernetes , istio , grafeas とibm cloud pr...
IBM cloud 冬の勉強会 google の視点も織り交ぜ理解するkubernetes , istio , grafeas とibm cloud pr...IBM cloud 冬の勉強会 google の視点も織り交ぜ理解するkubernetes , istio , grafeas とibm cloud pr...
IBM cloud 冬の勉強会 google の視点も織り交ぜ理解するkubernetes , istio , grafeas とibm cloud pr...
 
IBM Data Science Experience and Watson Machine Learning 20170429
IBM Data Science Experience and Watson Machine Learning 20170429IBM Data Science Experience and Watson Machine Learning 20170429
IBM Data Science Experience and Watson Machine Learning 20170429
 
IBM bluemix api connect によるAPIエコノミーの実現 20170426
IBM bluemix api connect によるAPIエコノミーの実現 20170426 IBM bluemix api connect によるAPIエコノミーの実現 20170426
IBM bluemix api connect によるAPIエコノミーの実現 20170426
 
IBM blockchain Introdution for marketer 20161216
IBM blockchain Introdution for marketer 20161216 IBM blockchain Introdution for marketer 20161216
IBM blockchain Introdution for marketer 20161216
 

Recently uploaded

Recently uploaded (11)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Hybrid serverless architecture using open whisk ibm cloud functions and istio 20170906

  • 1. Hybrid Serverless Architecture using OpenWhisk (IBM Cloud Functions) and Istio with Accenture 2017年 9月 6日 IBM コンサルティング・アーキテクト 平山 毅
  • 2. © 2017 IBM Corporation 自己紹介 平山 毅 (ひらやま つよし) IBM Consulting Architect WatsonとAnalyticsを融合した新生IBMクラウド事業本部で技術面をリー ドしています。最近は次世代コンピューティングのプロジェクトにも従事しています。 また、IBMerながら、実はAWS Lambdaにも詳しい。 日経コンピューター様記事 http://itpro.nikkeibp.co.jp/atcl/column/14/34 6926/011000761/ 日経SYSTEMS様記事 http://itpro.nikkeibp.co.jp/atcl/column/14/346 926/022400852/ 【共著】
  • 3. © 2017 IBM Corporation Which is OpenWhisk or IBM Cloud Functions ? 何が変わったの︖ (現時点) As a Software (OpenSource) コマンドラインがcloud functions に︕ > bx plugin install cloud-functions -r Bluemix > bx plugin list cloud-functions Plugin Name Version Cloud-Functions 1.0.0 実はAPIはOpenWhiskそのまま︕ https://openwhisk.ng.bluemix.net/api/v1 IBM Cloud Functions As a Service (IBM Cloud) Dockerコンテナで提供 Kubernetesベースの マイクロサービス環境に最適のデプロイ
  • 4. © 2017 IBM Corporation What is Istio ? マイクロサービス アプリケーション層 マイクロサービス フロント層 マイクロサービス DB/Integration層 冗⻑性設定の コントロール プレーンへの追加 Istio の アーキテクチャー 非機能要件をコードに実装 IBM、Google、Lyftで共同開発したOSSマイクロサービスプラットフォーム + + Kubernetes
  • 5. © 2017 IBM Corporation Istio = Traffic + Policy OpenWhiskの実⾏環境として最適になる(予定) https://istio.io/ より抜粋
  • 6. © 2017 IBM Corporation Lambda Function (API -> Lambda -> DynamoDB のNode.js) 'use strict'; console.log('Loading function'); const doc = require('dynamodb-doc'); const dynamo = new doc.DynamoDB(); exports.handler = (event, context, callback) => { //console.log('Received event:', JSON.stringify(event, null, 2)); const done = (err, res) => callback(null, { statusCode: err ? '400' : '200', body: err ? err.message : JSON.stringify(res), headers: { 'Content-Type': 'application/json', }, }); switch (event.httpMethod) { case 'DELETE': dynamo.deleteItem(JSON.parse(event.body), done); break; case 'GET': dynamo.scan({ TableName: event.queryStringParameters.TableName }, done); break; case 'POST': dynamo.putItem(JSON.parse(event.body), done); break; case 'PUT': dynamo.updateItem(JSON.parse(event.body), done); break; default: done(new Error(`Unsupported method "${event.httpMethod}"`)); } }; Event Context Callback AWS Lambdaと各AWSサービスとの連携設定 Callback で取得部分 パッケージ的位置付けの宣言 (この例ではDynamoDB) Event 定義の部分 HTTPメソッドをベースに DynamoDBのAPIを Switch分岐で定義 以下よりソースコードを抜粋
  • 7. © 2017 IBM Corporation OpenWhisk Action (API -> OpenWhisk -> MySQL のNode.js GET) 以下よりソースコードを抜粋 https://github.com/IBM/openwhisk-serverless-apis function myAction(params) { return new Promise(function(resolve, reject) { console.log('Connecting to MySQL database'); var mysql = require('promise-mysql'); var connection; mysql.createConnection({ host: params.MYSQL_HOSTNAME, user: params.MYSQL_USERNAME, password: params.MYSQL_PASSWORD, database: params.MYSQL_DATABASE }).then(function(conn) { connection = conn; console.log('Querying'); var queryText = 'SELECT * FROM cats WHERE id=?'; var result = connection.query(queryText, [params.id]); connection.end(); return result; }).then(function(result) { console.log(result); if (result[0]) { resolve({ statusCode: 200, headers: { 'Content-Type': 'application/json' }, body: result[0] }); } else { reject({ headers: { 'Content-Type': 'application/json' }, statusCode: 404, body: { error: "Not found." } }); } ; }).catch(function(error) { if (connection && connection.end) connection.end(); console.log(error); reject({ headers: { 'Content-Type': 'application/json' }, statusCode: 500, body: { error: "Error." } }); }); }); } exports.main = myAction Params パラメーター 変数の定義 Function定義 MySQLの 認証情報 MySQLのSQL分 Where句にパラ メーターを適用 (GETに対応する SELECT) 分岐︓正常終了時(HTTP 200) 分岐︓データが無い論理エラー(HTTP 404) 分岐︓対向のエラー(HTTP 500)
  • 8. © 2017 IBM Corporation OpenWhisk Good Point (Trigger、Rule、Sequence) 【参考】発表者平山のQiita「シーケンスのソースコード」 http://qiita.com/t3hirayama/items/21fbf39c42be5756b870 発表者平山のQiita「パッケージのソースコード」 http://qiita.com/t3hirayama/items/ad6927eb5310247407ac こちらはAccenture様から発表 シーケンスはアクション経由
  • 10. © 2017 IBM Corporation API Gateway + OpenWhisk Fintech APIの多くを構成するIBM API Connect ベースのAPI Gateway で自動的にOpenWhiskをAPI化可能。 API Connectの機能によって、SDKも自動生成され、マイクロサービス通信が即時に可能になる︕ 【参考】発表者平山のQiita「APIからSDK化するサンプルコード」 http://qiita.com/t3hirayama/items/d09766d6882a66165c22 サーバレス向けの APIリファレンス が自動生成され、 SDKコードも自動 生成される。
  • 11. DevOps Open Toolchain と OpenWhisk との融合 DevOps のプロセスを回すOpenToolchianに対応し、DevOpsサイクルで Kubernetes(Docker)、CloudFoundry、と合わせて統合管理とデプロイ、 更にマイクロサービス統合管理まで可能に。
  • 13. © 2017 IBM Corporation Serverless Framework for OpenWhisk https://serverless.com/これは、マルチクラウドとIBMサービスを将来利⽤するには、抑えておいた⽅がいい。
  • 14. © 2017 IBM Corporation OpenWhisk Functions Properties Example # serverless.yml service: myService provider: name: openwhisk runtime: nodejs:6 # optional, default is nodejs:default memorySize: 512 # optional, default is 256 timeout: 30 # optional, default is 60 functions: hello: handler: handler.hello # required, handler set in Apache OpenWhisk name: some_custom_name # optional, default is ${service}_${function} runtime: nodejs # optional overwrite, default is provider runtime memory: 512 # optional overwrite, default is 256 timeout: 10 # optional overwrite, default is 60 https://serverless.com/framework/docs/providers/openwhisk/guide/functions/
  • 15. © 2017 IBM Corporation What is Hybrid Cloud ? オンプレミスの プライベートクラウド IBM Cloud パブリッククラウド VMware SDDC (NSXで1つのL2ネットワークに) Istio / Kubernetes Cluster / Teraform Serverless Function Serverless Function Serverless Function Serverless Function レガシー資産 クラウド サービス ①インフラの ハイブリッド ②アプリの ハイブリッド
  • 16. IBMのハイブリッドエンタープライズアプリケーション API Connect データベースの公開 ロジック部品の公開 IaaS PaaS Cloud Enable アプリケーション 今までのアプリケーション Monolithic app Firewall REST SaaS連携 “Cloud First” 外部APIの活用 “API Economy” 開発者が セルフ・サービスで利⽤ API として 公開 革新的な アイデアをアプリ化 新たなサービス、 より良いサービス を生み出す Software- as-a- Service オンプレミス セキュリティ ゲートウエイ IBM開発、提供 公開API(150種以上) クラウド コグニティブ 連携 Serverless Microservice on Istio Enterprise Hybrid Serverless Architecture
  • 17. © 2017 IBM Corporation IBM Cloud Function の 導入事例
  • 18. © 2017 IBM Corporation Thank you ご清聴ありがとうございました。
  • 19. © 2017 IBM Corporation この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資料に記載 された内容に関して日本アイ・ビー・エムは何ら保証するものではありません。 ワー クショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情 報提供の目的 のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結 果を生むものでもありません。 本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供さ れ、明示または暗示にかかわらずいかなる保証 も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の 関連によって、いかなる損害が生じた場合も、IBMは責任を負わ ないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライ ヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBM ソフトウェアの使用を規定する適用ライセンス契 約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。 本 講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であること を暗示するも のではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独 自の決定権をもっていつでも変 更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したも のではありません。本講演資料に含まれている 内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生 じると述べる、または暗示することを意図したものでも、またその ような結果を生むものでもありません。 パフォーマンスは、管理された環境にお いて標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパ フォーマンスは、ユー ザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮 事項を含 む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではあ りませ ん。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として 示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM, IBM ロゴ、ibm.com, は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。