osc2016.enterprise openstack & cloud native applications

33
クラウド ネイティブアプリケーションとOpenStack 2017/9/1 Tomoaki Nakajima @irix_jp Akira Yoshiyama @boot_vmlinuz 1 OSC2016.Etnerprise

Upload: irixjp

Post on 15-Apr-2017

141 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: OSC2016.Enterprise OpenStack & Cloud Native Applications

クラウド ネイティブアプリケーションとOpenStack

2017/9/1

Tomoaki Nakajima @irix_jp

Akira Yoshiyama @boot_vmlinuz1

OSC2016.Etnerprise

Page 2: OSC2016.Enterprise OpenStack & Cloud Native Applications

発表者

中島倫明(Tomoaki Nakajima) @irix_jp

o 日本OpenStackユーザ会 ボードメンバー(初代会長 2013-2015)

o 東京大学 非常勤講師(S1/S2 月曜 2限)

o 国立情報学研究所/TOPSE 講師

o 一般社団法人クラウド利用促進機構 技術アドバイザー

o 連載「@IT OpenStack超入門」

http://www.atmarkit.co.jp/ait/subtop/features/kwd/openstack.html

2

Page 3: OSC2016.Enterprise OpenStack & Cloud Native Applications

復習「OpenStackとは」

インフラ層の抽象化を実現するクラウド基盤ソフトウェアo 物理・仮想マシン、ストレージ、ネットワークが主な対象

o 実行層の隠蔽、標準化されたAPIの提供

o 一部のPaaS機能の提供

3

仮想サーバコントローラ

(Nova)

仮想NWコントローラ(Neutron)

仮想ストレージコントローラ(Cinder)

認証/ユーザ管理(Keystone)

ユーザ・アプリケーション

OpenStack APIOpenStackコントローラ

ドライバ(OSS/製品)

ドライバ(OSS/製品)

ドライバ(OSS/製品)

実行層

管理層

サーバ仮想化機能

汎用サーバ

仮想サーバ

仮想サーバ

ストレージ仮想化機能

汎用サーバ/ストレージ製品

ネットワーク仮想化機能

汎用サーバ/NW製品

仮想ルータ

仮想FW

API/独自インタフェース(検証された組み合わせを提供)

※簡略化のため主要機能の概略のみ記載

仮想ストレージ

WebUI(Horizon)

実行層のエコシステム

アプリ層のエコシステム

Page 4: OSC2016.Enterprise OpenStack & Cloud Native Applications

日本OpenStackユーザ会

国内のOpenStackの普及活動・人材育成を目的に

2010年に発足

o 運営団体数 26、会員数 約1,650名(2016/5/25時点)

o openstack.jp

4

Page 5: OSC2016.Enterprise OpenStack & Cloud Native Applications

運営団体

アセアン・ラボ株式会社

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

株式会社インターネットイニシアティブ(IIJ)

エヌ・ティ・ティ・コミュニケーションズ株式会社

NTTソフトウェア株式会社

株式会社NTTデータ

NTTデータ先端技術株式会社

沖縄科学技術大学院大学

仮想化インフラストラクチャ・オペレーターズグループ

Canonical

一般社団法人クラウド利用促進機構

クラウディアン株式会社

クリエーションライン株式会社

5

GMOインターネット株式会社

大学共同利用機関法人 情報・システム研究機構 国立情報学研究所

デル株式会社

日本電気株式会社(NEC)

日本電信電話株式会社(NTT)

株式会社日立製作所

日本ヒューレット・パッカード株式会社

ビットアイル・エクイニクス株式会社

富士通株式会社

ミドクラジャパン株式会社

ミランティス・ジャパン合同会社

レッドハット株式会社

KDDI株式会社

Page 6: OSC2016.Enterprise OpenStack & Cloud Native Applications

ユーザー会メンバー数の推移

毎月メンバーが増えています!

6

Page 7: OSC2016.Enterprise OpenStack & Cloud Native Applications

活動内容

主な活動

o メーリングリストでの情報交換

o イベント開催・出展、勉強会・セミナーの開催

o トレーニング、ハンズオンの実施

o 国際化(マニュアル翻訳、UI日本語化)

7

Page 8: OSC2016.Enterprise OpenStack & Cloud Native Applications

直近のイベント予定

2016年9月13日 第29回 QA

2016年9月7日 第30回 入門

2016年10月 第31回 基礎ハンズオン

2016年11-12月 第32回 基本機能の整理

2017年1-2月 第33回 周辺機能の紹介

2017年3月 第34回 ログ・監視運用

8

Page 9: OSC2016.Enterprise OpenStack & Cloud Native Applications

参加してみましょう!

9

Page 10: OSC2016.Enterprise OpenStack & Cloud Native Applications

最近の話題

10

Page 11: OSC2016.Enterprise OpenStack & Cloud Native Applications

利用 → 最適化 → 常態化

クラウドの浸透

11https://www.youtube.com/watch?v=d1n4qf1bN7g

Page 12: OSC2016.Enterprise OpenStack & Cloud Native Applications

次のステップへ

OpenStackが登場して6年。

o 様々な分野で活用が進んできた一方で、多くの失敗例も生まれた。

試行錯誤のから生まれた気づき

o "OpenStack のプライベート クラウドのメリットを得る為には、APシステム開発・運用の文化を変えなければならない"

o 単に稼働する場所をクラウドへ移行したら魔法のようにメリット(コスト削減や効率化)が成し遂げられるわけではない。

12

Page 13: OSC2016.Enterprise OpenStack & Cloud Native Applications

重要なのは「プロセス」の最適化

単純な技術の活用ではなく、プロセス(やり方・進め方」の最適化なくして、大きな効果は望めない。

アプリケーション導入プロセスの効率化の例

13https://www.youtube.com/watch?v=d1n4qf1bN7g

OpenStack導入前 導入後 プロセス改革後

Page 14: OSC2016.Enterprise OpenStack & Cloud Native Applications

ツールチェーンを効果させるための"環境作り"が重要

素晴らしいツールチェーンも、それを取り組まく環境が整っていなければ効果が出ない。

14

環境の作成要求

チケット発行

Notebook実行

Job実行

プレイブックノートブック

Playbook実行

環境の構築テスト

結果の保存

結果の確認

チケットクローズ

環境の利用

Page 15: OSC2016.Enterprise OpenStack & Cloud Native Applications

技術の活用ではなく、企業文化の変革という視点

文化を構成する「人」を如何に変えるか?

o 今までの「やり方」を変える。

o 今までの業務ルール・プロセスを変える。

o 新しいスキルを浸透させる。

15https://www.youtube.com/watch?v=d1n4qf1bN7g

Page 16: OSC2016.Enterprise OpenStack & Cloud Native Applications

クラウドネイティブ

16

Page 17: OSC2016.Enterprise OpenStack & Cloud Native Applications

クラウドネイティブとは?

定義は様々

o クラウド上で動作するのが「当たり前」という思想で開発され

たアプリケーション。

o クラウド特性(メリット・デメリット)を考慮したシステム。

o クラウド上に「インストール」して利用する。

o 概念としての「サーバレス」など

17

クラウド以前の時代に開発されたアプリケーション

openstack

様々な外部ツール

VM VM VM

openstack

VM VM VM

クラウドネイティブアプリケーション

APP APP APPAPP APP APP

クラウド以前のアプリケーションは、クラウドが持つ命令系統を知らないため、外部ツールを介した間接的な連携を行う。

クラウドが持つ命令系統を理解し、直接的に連携を行う。

Page 18: OSC2016.Enterprise OpenStack & Cloud Native Applications

クラウドネイティブのイメージ(想像図)

現在のアプリケーションとの対比

18

ハードウェア(CPU, MEM, NIC)

カーネル(Linux等)

ドライバ

システムコール

ハードウェア(サーバー、ネットワーク、ストレージ)

OpenStack

ドライバ

OpenStack API

クラウドエコシステムアプリケーションエコシステム

実資源層

資源管理層

ユーザ層 ライブラリライブラリ

Page 19: OSC2016.Enterprise OpenStack & Cloud Native Applications

実装例

Real Application Centric Kernel

o OpenStackのAPIを変換して、アプリケーションセントリックに利用できるようにしたソフトウェア。

o アプリケーション開発者がクラウドを意識することなくプログラミング可能となります。

o オープンソースとして公開中

https://github.com/openstack/rack

19

API

Expansion

&

Additional

Data Structure

VM

app

VM

app

VM

app

RACKApplication

APIs

for

Operating

Infrastructures

APIs

for

Developing

Applications

https://wiki.openstack.org/wiki/RACK/ja

Page 20: OSC2016.Enterprise OpenStack & Cloud Native Applications

RACKの動作例

Linux/UNIX上のマルチプロセス・マルチスレッドモデルを参考デザイン

クラウド(OpenStack)上で、この動作を模倣し、VMを「実行すると何かの仕事をするプロセス」のように振る舞わせることができる。

20

option1

option2

launch(exec)

option3

optionslibraries

source compile

httpd

executablebinary

Linux

processprocessprocess

forkfork

optionsライブラリ

プログラム compile

psコマンドOS

middleware

libraries

source

表示内容

表示範囲

出力形式

option1

option2

option3

launch(exec)

openstack

shared memory/pipe

signal

filesystem

process process

VMTemplate

executablebinary

process

forkfork

従来型アプリケーションのモデル クラウドネイティブアプリケーション

Page 21: OSC2016.Enterprise OpenStack & Cloud Native Applications

クラウドネイティブへの道

クラウドネイティブへ到達するには時間がかかります。

o 技術力が高い組織では成し遂げている例もあり。

o 一般に広がるにはエコシステムの充実が不可欠。

まずは「最適化」の実現から始めていきましょう。

o Infrastructure as a Code

ITの現場から「不確定」な要素を取り除き、品質向上と結果としてのコスト削減を実現する。

人為的ミス(見間違え、入力ミス、やったつもり、対象間違えなど)の防止

確実な再発防止

単純リソースの提供ではなく、「機能」を提供していくためにも有効。

開発チームが使いやすい、手間の少ない環境を提供

単純リソースの提供がしたいならパブリッククラウドでほとんどのケースは十分。

「機能」を提供することでプライベートクラウドの意味が出てくる。

o そして、これらを活かすプロセスの変革

そのために活用できるOpenStackの機能を紹介していきます。

21

Page 22: OSC2016.Enterprise OpenStack & Cloud Native Applications

最適化をサポートするOpenStackの機能

22

Page 23: OSC2016.Enterprise OpenStack & Cloud Native Applications

よく使われる機能 → でも、これだけじゃないよ

23

以下のコンポーネントだけで構成されていませんか?

ポータル

(Horizon)

IaaS

(Nova)

SDN管理

(Neutron)

VMテンプレート管理

(Glance)

ボリューム

ストレージ管理

(Cinder)

ユーザ・テナント

管理

(Keystone)

最低限のIaaS機能のみ。VMware基盤の更改案件に多い。⇒IaaSユーザ側の導入メリットがほぼ無く、失敗事例化しやすい。

Page 24: OSC2016.Enterprise OpenStack & Cloud Native Applications

アベイラビリティゾーン(Nova/Cinder)

24

アベイラビリティ・ゾーン2

アベイラビリティ・ゾーン1

物理サーバ

物理サーバ

VM VM

※アベイラビリティ=可用性

物理サーバ

物理サーバ

物理サーバ

物理サーバ

場合によっては、①1つの物理サーバ上に同じプログラムを実行するVMが集中し、

②その物理サーバや、関連するストレージ・NW機器がダウンする事もありうる

ストレージ

NW機器

IaaSユーザが意図的にVMの配置先ゾーンを変える事で問題を回避する

物理サーバ

VM VM

物理サーバ

物理サーバ

物理サーバ

物理サーバ

物理サーバ

ストレージ

NW機器

ストレージ

NW機器

Page 25: OSC2016.Enterprise OpenStack & Cloud Native Applications

LBaaS (Neutronの一機能)

25

HAクラスタ(Act-Stby)

LB VM#1 LB VM#2

IaaSユーザが自分でLBを用意するのは面倒①HA化をする必要がある②スケールアウト/イン時の設定変更が面倒③VM上のLBを使うしかない

リクエスト

LB

OpenStack の LBaaS 機能を用いれば①HA化はクラウド基盤が責任を持つ②スケールアウト/イン時の設定変更も簡単③商用LB(仮想・物理)が使える

リクエスト

REST API

LBaaS

Page 26: OSC2016.Enterprise OpenStack & Cloud Native Applications

DNSaaS(Designate)

26

LB

DNS の登録が手作業だとAPデプロイ~テスト~サービスインの過程をスピードアップ出来ない

リクエスト

DNS登録は手作業

LB

DNSaaS を利用して、以下を自動化できる①新規APデプロイ/AP更新/AP廃止時の

DNSエントリ操作②DNSラウンドロビン使用時、スケールアウト/イン時のDNSエントリ操作

リクエスト

DNSaaSDNS

REST API

Page 27: OSC2016.Enterprise OpenStack & Cloud Native Applications

オーケストレーション(Heat)

IaaS

LB

リクエスト DNSaaS名前解決

指示

指示

指示

IaaS

LB

リクエスト DNSaaS名前解決

オーケストレーション

指示

手作業で指示を出しながらの構築では、分散システムであるMSA APシステムのデプロイに非常に手間がかかる

オーケストレーション機能で、以下を自動化できる①各種クラウドリソースのデプロイ②VM上のAP等の設定

LBaaSLBaaS

27

Page 28: OSC2016.Enterprise OpenStack & Cloud Native Applications

MONaaS,オートスケール(Ceilometer/Monasca/Aodh/Senlin)

IaaS

LB

リクエスト

手作業によるスケールアウト/インでは、①負荷の急増に迅速に対応できず②運用コストもかかる

オーケストレーション

指示

監視

IaaS

LB

リクエスト

オーケストレーション

監視

オート スケーラを用いる事で、定義されたポリシーに従って、負荷に応じた仮想リソースの増減を自動的に行う

オートスケーラ

指示

28

Page 29: OSC2016.Enterprise OpenStack & Cloud Native Applications

DBaaS、MQaaS(Trove、Zaqar/Que)

IaaS

MSA で多用されるメッセージキューやDBのデプロイと運用もそれぞれ知識を必要とし、面倒

IaaS

メッセージキュー

DB

MQaaS

DBaaS

Web/REST API

遅延処理A

遅延処理B

定時処理A

定時処理B

MQaaSでメッセージキューを、DBaaSでDBを自動デプロイ・運用する事で、AP全体の自動デプロイ・運用を簡素化

29

Page 30: OSC2016.Enterprise OpenStack & Cloud Native Applications

様々な機能を利用して最適化を実現

運用系サービス、ミドルウェア系サービスを充実

周辺ソフトと組み合わせたツールチェーンへ

30

ポータル

(Horizon)

MONaaS

(Ceilometer/

Monasca/Aodh)

オートスケーラ

(Senlin)

オーケストレーション

(Heat)

DNSaaS

(Designate)

LBaaS

(Neutron)

IaaS

(Nova)

SDN管理

(Neutron)

VMテンプレート管理

(Glance)

ボリューム

ストレージ管理

(Cinder)

DBaaS

(Trove)

MQaaS

(Zaqar/Que)

メータリング

(Ceilometer)

ユーザ・テナント管理

(Keystone)

Page 31: OSC2016.Enterprise OpenStack & Cloud Native Applications

まとめ

31

Page 32: OSC2016.Enterprise OpenStack & Cloud Native Applications

まとめ

利用 → 最適化 → 常態化(Cloud Native)

クラウドネイティブな世界の実現はもう少し先

o 様々な定義、実現方法によるエコシステムが必要

まずはクラウドへの最適化から

o Infrastructure as a Code

OpenStackの基本機能以外の活用

ツールチェーンによる単純リソース以外の提供

o プロセスの改善

「人」「文化」の変革を。

32

Page 33: OSC2016.Enterprise OpenStack & Cloud Native Applications

33

ご静聴ありがとうございました