OpenFaaS on Rancher でJavaを動かしてみた話

34

Transcript of OpenFaaS on Rancher でJavaを動かしてみた話

Page 1: OpenFaaS on Rancher でJavaを動かしてみた話

OpenFaaS on Rancher でJavaを動かしてみた話

株式会社スタイルズ

高橋 裕樹

2017年11月15日

Page 2: OpenFaaS on Rancher でJavaを動かしてみた話

自己紹介

職種 : サーバサイドのアプリエンジニア 。主にJava。 → Devの人

著書 : SoftLayer本 寄稿、ownCloud本 共著。

その他 : Cloudや新技術ネタが好物。

前回(#10)でRancherTゲット。

高橋 裕樹

ukitiyan

株式会社スタイルズ

1

技術戦略グループソリューションアーキテクト

矢野さんがいる会社

Page 3: OpenFaaS on Rancher でJavaを動かしてみた話

2

About Us

会社名 株式会社スタイルズ

所在地 東京都千代田区神田小川町1丁目2番地

URL https://www.stylez.co.jp/

設 立 平成15年12月5日

(創業:平成5年11月17日)

代表者 梶原 稔尚

社員数 105名(平成29年4月1日現在)

Page 4: OpenFaaS on Rancher でJavaを動かしてみた話

3

本日のゴール

client

upload put register subscribe&

http request

resize image

RancherとOpenFaaSでマイクロサービスを組みます。OpenFaaSの使用言語はJavaです。(時間があればDemoします)

注目はここ

Page 5: OpenFaaS on Rancher でJavaを動かしてみた話

今回の動機

4

http://make.girls.moe/

先輩!私の作った画像アップロードシステムに、サムネイル機能追加したいので、アップした画像をリサイズするの手伝ってくれますか。

client

upload

upload app object storage

ここでリサイズ

put

Page 6: OpenFaaS on Rancher でJavaを動かしてみた話

気をつけるべきこと

5

あと、私は忙しいので余計な迷惑かけないでください。あと、マイクロサービスアーキテクチャが 好き.. です。あと、Javaが 好き.. です。

client

upload

upload app object storage

ここでリサイズ

put

Page 7: OpenFaaS on Rancher でJavaを動かしてみた話

モテ度 0%

6

resize function機能追加

既存アプリに実装を追加してあげる。

client

upload

upload app object storage

put

Page 8: OpenFaaS on Rancher でJavaを動かしてみた話

モテ度 10%

7

resize function

sync...

外部API化して、APIをコールしてもらう。但し、同期API。

client

upload

upload app object storage

put

Page 9: OpenFaaS on Rancher でJavaを動かしてみた話

モテ度 20%

8

Queueへのregisterはお願いする。

Queue(Amazon SQS)を挟んで、非同期にする。

client

upload

upload app object storage

put

resize function

register

subscribe&

resize

sqs

Async

Page 10: OpenFaaS on Rancher でJavaを動かしてみた話

モテ度 30%

9

Object StorageへのPUT TriggerをAWS Lambda処理して、Queue登録する。

client

upload

upload app object storage

put

resize function

resize

register

sqs

put trigger

upload appに修正不要

subscribe

Page 11: OpenFaaS on Rancher でJavaを動かしてみた話

モテ度 80%

10

resize functionをjavaで書く。

client

upload

upload app object storage

put

resize function

register

sqs

put trigger

Java!!

resize

subscribe

Page 12: OpenFaaS on Rancher でJavaを動かしてみた話

モテ度 80% → モテ度 0%

11

えっと、AWSっぽいアイコン使ってますけど、Rancher 上で動かす想定ですから。Rancherならマルチクラウド対応出来るの、勿論知ってますよね?

AWS Lambda

AmazonS3

AmazonSQS

Minio

Nats

FaaSをどうするか

Page 13: OpenFaaS on Rancher でJavaを動かしてみた話

ということで、OpenFaaS

12

https://github.com/openfaas/faas

Page 14: OpenFaaS on Rancher でJavaを動かしてみた話

(構築が面倒なんじゃ、、)

13

Page 15: OpenFaaS on Rancher でJavaを動かしてみた話

Catalogあるよ!!

14

スーパーソフトウエアの福山さん、スタイルズの矢野さん、ありがとうございます。

https://qiita.com/ynott/items/2f90fdbb6748431cc9a6Qiitaにも記事あります。

Page 16: OpenFaaS on Rancher でJavaを動かしてみた話

(Javaで実装できるの?)

15

Page 17: OpenFaaS on Rancher でJavaを動かしてみた話

Sample codeあるよ!!

16

Dockerfileあるので、サクッと動きます。

Page 18: OpenFaaS on Rancher でJavaを動かしてみた話

(迷惑かけずにどうやるの?)

17

Page 19: OpenFaaS on Rancher でJavaを動かしてみた話

Queue worker for OpenFaaSあるよ!!

18

Page 20: OpenFaaS on Rancher でJavaを動かしてみた話

19

本日のゴール(モテ度 100%)

client

upload put register subscribe&

http request

resize image

Page 21: OpenFaaS on Rancher でJavaを動かしてみた話

20

Demo

client

upload register subscribe&

http request

とりあえず、OpenFaaSまで伝搬されるところまで。

とりあえずLog出力

Page 22: OpenFaaS on Rancher でJavaを動かしてみた話

21

まとめ

• Rancher と OpenFaaS (java) でマイクロサービス・アーキテクチャを組めば、きっとモテる。

Page 23: OpenFaaS on Rancher でJavaを動かしてみた話

22

【 Spring Fest 2017 】に登壇します

開催日: 2017年11月24日(金) 9:30 〜

会場 : KFCHall & Rooms(東京都墨田区横網1-6-1)

スタイルズ講演時間:14:15〜15:00

詳細 : http://springfest2017.springframework.jp/

P R

チロルチョコ貰えるよ!!