SlideShare una empresa de Scribd logo
1 de 39
IBM CLOUD FUNCTIONS
(OPENWHISK)
DOCKER ACTION で MECABを動かす
2017.10.19 BMXUGつきじ#1
自己紹介
 國藤 篤規(KUNITO Atsunori)
 Atsunori_kunito@niandc.co.jp
 エヌアイシー・ソフト株式会社所属
 日本情報通信グループ
 Javaプログラマーが本業ですが、暇を見つけて
Bluemixで遊んでます
OPENWHISK おさらい
OPENWHISK 概要
 Apache Software Foundation の OSS(が Bluemix
にディプロイされている)
 サーバレス
 Function As A Service
 マイクロサービス
サーバの設定などが不要で
APIを手軽に作れて
呼び出したときだけ課金される
API登場の背景
 クラウドサービスを含む、複数の環境で複数のWebアプ
リケーションが稼働している
 システム間のリアルタイムな連携が不可欠
 APIでつなぐ
 環境・言語を問わないREST&JSON
 認証
 軽量
FAASのアドバンテージ
 お決まりの設定、コーディングが圧倒的に少ない
@ApplicationPath("api-root")
public class HelloApplication extends Application {
}
@Path(“hello")
public class HelloService {
@POST
@Consumes("application/json")
@Produces("application/json")
public HelloResult service( HelloParam param ) {
return new HelloResult(param);
}
}
Public class HelloParam {
}
Public class HelloResult {
}
入出力パラメータのPOJO
APIのルート
API本体
JAX-RSの例(認証は省いてます)
FAASのアドバンテージ
 お決まりの設定、コーディングが圧倒的に少ない
function main(params) {
return { message: 'Hello ' + params.name };
}
OpenWhisk(Node.js)の例
名前を決めれば、すぐに本質的なところに取り掛かれる
OPENWHISK おさらい
2017.09 の変更点について
FOUR REASONS SERVERLESS FAAS ON
THE IBM CLOUD IS BETTER THAN EVER
 2017.09 に Bluemix 環境のOpenWhisk に Update
 (https://www.ibm.com/blogs/bluemix/2017/08/four
-reasons-serverless-faas-ibm-cloud-better-ever/)
1. 名前が変わった(IBM Cloud Functions)
2. PHP&Swiftのサポートが向上
3. Wsk コマンドが bx コマンド内で使えるようになった
4. London でも使えるようになった
1.名称変更
 検索したときに、両方引っかかってややこしいから
 同じコードベース
 OpenWhisk への commit も続けていく
入口がさらにわかりずらく
 まさかの
Functions = 機能
と訳しちゃったパターン
 メニューも「機能」になった
2.ランタイムサポートの向上
 PHPが追加
 Swift がバージョンアップ
<?php
function main(array $args) : array
{
$name = $args["message"] ?? "stranger";
$greeting = "Hello $name!";
echo $greeting;
return ["greeting" => $greeting];
}
3.BX コマンドとの統合
 Bluemix(bx)コマンドのプラグインとして提供
>bx plugin repo-plugins
>bx plugin install cloud-functions
リポジトリー 'Bluemix' から 'cloud-functions' を検索しています...
プラグイン 'cloud-functions 1.0.2' がリポジトリー 'Bluemix' 内で見つかりました
バイナリー・ファイルをダウンロードしようとしています...
10.53 MiB / 10.53 MiB [========================================] 100.00% 1m27s
11039232 バイトがダウンロードされました
バイナリーをインストールしています...
OK
プラグイン 'Cloud-Functions 1.0.2' は C:¥Users¥Administrator¥.bluemix¥plugins¥Cl
oud-Functions に正常にインストールされました。 'bx plugin show Cloud-Functions'
を使用して詳細を表示してください。
>bx wsk action invoke HelloAction --blocking --result
4.LONDONでも提供開始
 うれしいことだとは思うんですけど…
DOCKER ACTION で
MECABを動かす
OPENWHISKの特徴
 トリガー
 DBの更新時などに自動的にアクションを呼び出す
 シーケンス
 アクションのチェーンを定義できる
 既存パッケージ
 Slack , git などに接続するためのAction
 多彩なランタイム(言語)
 Node.js , Python , Swift , PHP , Java
 Docker Action の存在
MECAB + DOCKER ACTIONまでの経緯
 そもそも、Google検索ランキングのモニターを作っていた
 ランキング上位のページから、頻出キーワードを抽出したかった
pureOpenWhisk とは
• OpenWhisk
– APIを作って呼べる
– トリガー
– シーケンス
OpenWhiskだけでアプリ作れるんじゃないか、
という試み(自分で言ってるだけ)
ただのAPIホストなら、いらない機能?
やりたいこと
• ある検索ワードでgoogle検索したとき、自サイ
トの順位をモニターしたい(日次)
• 検索上位のページに共通して含まれるキー
ワードがあるか分析したい
DashDB(for Analytics)
OpenWhisk
OpenWhisk(WebAction)
お金がない
定刻起動
GoogleCustomSearch CSVアップロード
(DashDBのREST)
Rスクリプト起動
(DashDBのREST)
グラフ描画
プログラム構成
DashDB(for Analytics)
OpenWhisk
OpenWhisk(WebAction)
お金がない
定刻起動
GoogleCustomSearch CSVアップロード
(DashDBのREST)
Rスクリプト起動
(DashDBのREST)
グラフ描画
プログラム構成
Webページ(本文)から
キーワードを抽出したい
DashDB(for Analytics)
OpenWhisk
OpenWhisk(WebAction)
お金がない
定刻起動
GoogleCustomSearch CSVアップロード
(DashDBのREST)
Rスクリプト起動
(DashDBのREST)
グラフ描画
プログラム構成
よし、Watsonだな
Webページ(本文)から
キーワードを抽出したい
MECAB + DOCKER ACTIONまでの経緯
 そもそも、Google検索ランキングのモニターを作っていた
 ランキング上位のページから、頻出キーワードを抽出したかった
 よし、Watson だなってなった
 が、NLU(Natural Language Understanding)は日本語非
対応
 ついでに言うなら、NLUを使っているDiscoveryも日本語非対応
 全く関係ないけど、Tone Analyzer も・・・
MECAB + DOCKER ACTIONまでの経緯
 そもそも、Google検索ランキングのモニターを作っていた
 ランキング上位のページから、頻出キーワードを抽出したかった
 よし、Watson だなってなった
 が、NLU(Natural Language Understanding)は日本語非
対応
 ついでに言うなら、NLUを使っているDiscoveryも日本語非対応
 全く関係ないけど、Tone Analyzer も・・・
 ついカッとなって、MeCabを動かしてみることに
MECABとは
 http://taku910.github.io/mecab/
 工藤拓氏が開発しているオープンソースの形態素解析エンジン
 言語はC++で書かれている
 「もも」が2回出てきてるってわかる!!!
% mecab
すもももももももものうち
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
DOCKER ACTION
wsk action update
wsk action invoke
/init 初期化処理
Docker Action が
呼び出された時の処理
/run
DOCKER ACTION – 3つの戦略
 実行するプログラムを Docker Action に導入する方法
 MeCabなど、プログラム本体
 インタフェース部分(パラメータの整形、結果のJSON化など)
 使用するライブラリ
i. Docker Image のみ
ii. openwhisk/dockerskeleton を使用する
iii. 実行時に導入する
Local - docker
Bluemix
I.DOCKER IMAGE のみ
/init 初期化処理
Docker Action が
呼び出された時の処理
/run
実行するバイナリ
使用するライブラリ
/init 初期化処理
Docker Action が
呼び出された時の処理
/run
/init 初期化処理
Docker Action が
呼び出された時の処理
/run
実行するバイナリ
使用するライブラリ
実行するバイナリ
使用するライブラリ
wsk action invoke
wsk action create wskMeCabDH --docker <イメージ名>
docker push <イメージ名>
イメージ”名”だけが
アップロード
I.DOCKER IMAGE のみ – 考慮点
 ディプロイも、呼び出しも、最も高速
 Actionのパラメータ・結果のJSONに制約がない
 イメージをDockerHub上で公開する必要がある
 実行したいプログラムがフリーのものでは無い場合
 インタフェース部分も公開される
 外部のAPIなどに接続する場合、APIキーなども含まれている
 厳しい場合も多々ある気が・・・
 ii へつづく
II.DOCKERSKELETONを使用する
wsk action update <アクション名> exec.zip
wsk action invoke
/init Zipファイルの展開
exec 呼び出し/run
実行するバイナリ
使用するライブラリ
openwhisk/dockerskeleton
実行するバイナリ
使用するライブラリ
exec
exec.zip
exec
wsk action create wskIMeCab --docker openwhisk/dockerskeleton
II.DOCKERSKELETONを使用する – 考慮点
 Dockerの知識がいらない
 /init,/run の受付部分を書く必要がない
 Zip の中身は公開されない
 ディプロイが遅い
 ライブラリなどもzipに含める必要がある(LD_LIBRARY_PATHも設
定)
 JSONのやり取りが不便
 コマンドラインを経由するため、1行、Tab使用不可、長さ制限
 Htmlボディ → url
 パッケージマネージャなどで入れたものを持って行きずらい
 iii へつづく
III.実行時に導入する
 実行時(exec の中など)で無理やりインストールしてしまう
 If で囲ってるのは、コンテナがキャッシュされている場合がある
から
 確かに実用上は問題なかったですけど…
 ハイブリッドへ
PIP_RESULT=`pip list | grep requests | wc -l`
if [ ${PIP_RESULT} = "0" ]
Then
pip install requests
fi
ハイブリッド方式
FROM openwhisk/dockerskeleton
RUN apk add --no-cache gcc libc-dev g++
RUN apk add --no-cache --virtual .build-deps git make ¥
&& apk add --no-cache libxml2-dev libxslt-dev
# install mecab
RUN cd /tmp && ¥
git clone https://github.com/taku910/mecab.git
RUN cd /tmp/mecab/mecab && ¥
./configure --enable-utf8-only && ¥
make && ¥
make install
RUN echo 'export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc && ¥
. ~/.bashrc && ¥
cd /tmp/mecab/mecab-ipadic && ¥
./configure --with-charset=utf8 && ¥
make && ¥
make install
RUN pip install --no-cache-dir lxml
RUN pip install --no-cache-dir requests
RUN pip install --no-cache-dir beautifulsoup4
RUN apk del .build-deps
CMD ["/bin/bash", "-c", "cd actionProxy && python -u actionproxy.py"]
ベースイメージにdockerskeletonを指定
必要なツール・パッケージ類は
インストールしておく
MeCab
Request
BeautifulSoap
lxml
/init , /run を受け付ける
ハイブリッド方式
docker build -t openwhiskdatest/mecabda .
docker login
docker push openwhiskdatest/mecabda
イメージビルド&
DockerHubへアップロード
DockerHubで公開したくないものだけを
Zipにまとめる
実行するバイナリ
exec
exec.zip
bx wsk action create wskMeCabDH --docker openwhiskdatest/mecabda
bx wsk action update wskMeCabDH exec.zip --docker openwhiskdatest/mecabda
最小限のものをアップロード
bx wsk action invoke wskMeCabDH --blocking --result
ハイブリッド方式
bx wsk action invoke wskMeCabDH --blocking --result -p "url" https://bmxug.connpass.com/event/66961/
{
"count": 1,
"genkei": "ゆるい",
"hatsuon": "ユルイ",
"hinshi": "形容詞",
"hinshi_sub1": "自立",
"hinshi_sub2": "*",
"hinshi_sub3": "*",
"katsuyo_kata": "形容詞・アウオ段",
"katsuyo_kei": "基本形",
"word": "ゆるい",
"yomi": "ユルイ"
},
完成
OpenWhisk
やっぱり、Lambdaと
比較されてる
完成
QRadar
Security Information and
Event Management
DOCKER ACTION の ユースケース
 バイナリ、UNIXコマンドを動かす
 C , C++ で書かれたオープンなツール
 シェルスクリプト
 サポートされない言語を使う
 実行環境、ライブラリ、プログラムをDocker Imageに注入する
 Perl , Ruby あたりはどうでしょう
 サポートされないライブラリを使う
 Node.jsなどでも、どうしても使いたいライブラリがない場合がある
 ランタイムのDockerイメージを from に指定できるはず
 https://hub.docker.com/r/openwhisk/nodejs6action/~/dockerfile/
実は ”出来合いのDockerAction” = “ランタイム”
すべては DockerAction で動いている
参考サイト
 <strategy1>
 Docker Action で、GNU のツールをコンパイルして動かす
 https://hub.docker.com/r/openwhisk/spellcheck/
 (blog post は削除された?)
 <strategy2>
 https://www.ibm.com/blogs/bluemix/2017/01/docker-
bluemix-openwhisk/
 http://jamesthom.as/blog/2017/01/16/openwhisk-docker-
actions/
 DockerHub
 スケルトン
 https://hub.docker.com/r/openwhisk/dockerskeleton/
 DockerFileご参考(手前味噌ではございますが…)
 https://www.niandc.co.jp/sol/tech/date20170626_698.php

Más contenido relacionado

La actualidad más candente

AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Masashi Shinbara
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境Masashi Shinbara
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacTakeshi Komiya
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Sho A
 
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしようAlfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしようTomomi Kawabe
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築靖 小田島
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDockerMasashi Shinbara
 
Vagrant入門以前
Vagrant入門以前Vagrant入門以前
Vagrant入門以前katanyan
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレperyaudo
 
Ansible handson ood2016
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016Hideki Saito
 
Alpine linuxを触ってみよう
Alpine linuxを触ってみようAlpine linuxを触ってみよう
Alpine linuxを触ってみようRyo Adachi
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 

La actualidad más candente (19)

AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしようAlfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
 
Vagrant入門以前
Vagrant入門以前Vagrant入門以前
Vagrant入門以前
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 
Ansible handson ood2016
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016
 
Alpine linuxを触ってみよう
Alpine linuxを触ってみようAlpine linuxを触ってみよう
Alpine linuxを触ってみよう
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 

Similar a OpenWhisk - Docker action で MeCab を動かす

キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐Kei Nakazawa
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューションHiromasa Oka
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから真吾 吉田
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた日本マイクロソフト株式会社
 
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceCloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceShunsuke Kurumatani
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコムTomoyaTakegoshi
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi昌桓 李
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetupru pic
 
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムMasayuki Abe
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-recotech
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2Takao Tetsuro
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Kenta Suzuki
 

Similar a OpenWhisk - Docker action で MeCab を動かす (20)

キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceCloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a Service
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
Open Source x AI
Open Source x AIOpen Source x AI
Open Source x AI
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetup
 
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 

OpenWhisk - Docker action で MeCab を動かす