15
OpenStack APIを使った新しいアプリケーションモデル 金子 雄大

OpenStack APIを使った新しいアプリケーションモデル

Embed Size (px)

Citation preview

OpenStack APIを使った新しいアプリケーションモデル

金子 雄大

| http://www.ctc-g.co.jp/ 1

名前:金子 雄大(@tktk8924)

会社:伊藤忠テクノソリューションズ株式会社

仕事:今日紹介する “RACK” の開発

言語:Python

趣味:日本酒(だいぶ初心者)

自己紹介

| http://www.ctc-g.co.jp/

OpenStack API

2

Nova

Glance

Swift

Cinder

Neutron

Keystone

API

API

API

API

API

API

仮想ルータ、仮想L2仮想ロードバランサ

仮想FW

仮想サーバ作成・削除

仮想マシンのスナップショット取得

認証

仮想ボリュームの作成ボリュームのコピー作成

ReST入出力ファイルストアレプリケーション、遠隔地分散

Amazon EC2

AMI

Amazon EBS

Amazon S3

IAM

ネットワーク機能

API

API

API

API

API

API

仮想ルータ、仮想L2仮想ロードバランサ

仮想FW

仮想サーバ作成・削除

仮想マシンのスナップショット取得

認証

仮想ボリュームの作成ボリュームのコピー作成

ReST入出力ファイルストアレプリケーション、遠隔地分散

開発者 開発者

ハイパーバイザー制御

イメージSnapShot管理

ブロックストレージ制御

オブジェクトストレージ

統合認証

仮想ネットワーク制御

| http://www.ctc-g.co.jp/

今日の話

3

クラウドに特化した新しいアプリケーションのモデルを考えてみよう

| http://www.ctc-g.co.jp/

従来のアプリケーションモデル

4

アプリケーションはクラウドを意識しない

クラウドだろうがオンプレだろうが、何らかのOSの上で動いている。

スケーリングは他人任せ

アプリケーションは基本的に個々のVM内で完結。外部の監視ツールやオーケストレーションツールと、クラウドAPIを連携させることによってスケールイン・アウトを可能にしている。

システムの高度化・複雑化

| http://www.ctc-g.co.jp/

クラウドに特化した新しいアプリケーションモデル “Cloud Native Application”

5

動作環境はクラウドを前提とする

AWSなのかOpenStack JunoなのかOpenStack Icehouceなのか

要はどのAPIに対応しているか

完全自律型で動作する

アプリケーション自らクラウドAPIをコールし、自律的にスケール

ChefもAnsibleもSerfも必要なく、シンプル

アプリケーション内部で得られる、より精緻な情報に基づくスケーリング

| http://www.ctc-g.co.jp/

今日の話

6

具体的にどういうモデルにするか?

| http://www.ctc-g.co.jp/

Linux プロセスモデル

7

content indication

line display range

launch(exec)

output format

optionslibraries

source compile

httpd

executablebinary

Linux

processprocessprocess

forkforkshared memory/pipe

signal

filesystem

| http://www.ctc-g.co.jp/

Cloud Native Applicationのモデル

8

optionsライブラリ

プログラム compile

psコマンドOS

middleware

libraries

source

表示内容

表示範囲

出力形式

option1

option2

option3

launch(exec)

openstack

shared memory/pipe

signal

filesystem

process process

VMTemplate

executablebinary

process

forkfork

| http://www.ctc-g.co.jp/

RACK -Real Application Centric Kernel-

9

RACK (Kernel)

Cloud Native Application

compute network storage

process process process

リソースの抽象化

VM、ネットワーク、ストレージといった個別のリソースを抽象化し、Unixライクな “process” としてプログラムから操作可能にする

process 起動確認

process(VM) 内部のアプリケーションが正常に動作しているかを確認する。プログラム上では隠蔽される

process 間連携機能の提供

process 間でのデータ共有、シグナル通知といった機能をプログラムから操作可能にする

“Cloud Native Application” の実行環境の提供

シンプルで簡単なプログラミング環境の提供

| http://www.ctc-g.co.jp/

円周率近似値計算アプリケーション

10

モンテカルロ法というシミュレーション手法を利用する

実行過程で大量の乱数生成処理が発生する

大量のCPUリソースを必要とする

自律的にスケールアウト(fork)する

並列処理で高速に動作する

処理が終われば自らkillする

Parent

Child Child Child

CPUリソースをスケールアウトする

| http://www.ctc-g.co.jp/

RACKの開発について

11

OSSとしてGithubに公開中

OpenStackの外部プロジェクトとして開発中

https://github.com/stackforge/rack https://wiki.openstack.org/wiki/RACK

| http://www.ctc-g.co.jp/

OpenStack Summit 2014 Paris

12

OpenStack Summit で RACK を発表

海外の開発者たちからの注目、評価を得た

開催場所 :フランス パリ

開催期間 :2014年 11/3~11/7

https://www.openstack.org/summit/openstack-paris-summit-2014/session-videos/presentation/the-road-to-a-openstack-native-application-what-if-vms-are-treated-as-linux-processes

| http://www.ctc-g.co.jp/

OpenStack Days Tokyo 2015

13

で、もっと詳しく話します!

2/3(火)-4(水)

http://openstackdays.com/program/details/index.html#platinum2

Thank you!