35
RED HAT OPENSTACK TECHNOLOGY | 2013 インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~ レッドハット株式会社 中井悦司 / Etsuji Nakai Senior Solution Architect and Cloud Evangelist v1.0 2013/10/07 第2部 クラウドに関わるエンジニアのスキル

インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

Embed Size (px)

DESCRIPTION

2013/10/16開催セミナーの発表予定資料です。 http://biz.pasonatech.co.jp/seminar/upcoming/osaka_cloud.html

Citation preview

Page 1: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

RED HAT OPENSTACK TECHNOLOGY | 2013

インフラエンジニアのこれから~Red Hatの描くLinuxの今後とクラウド~

レッドハット株式会社中井悦司 / Etsuji NakaiSenior Solution Architectand Cloud Evangelistv1.0 2013/10/07

第2部 クラウドに関わるエンジニアのスキル

Page 2: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

2

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

目次

Red HatとOpenStackの関わり OpenStackのアーキテクチャ クラウドにおけるシステム構築 インフラエンジニアに必要なスキルと勉強方法

(*) 本資料に含まれる技術情報は、2013年7月時点のRDO(Grizzly)とRed Hat OpenStack v3.0の仕様に基づきます。

Page 3: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

3

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

Red HatとOpenStackの関わり

Page 4: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

4

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

OpenStackとは

Amazon EC2/S3相当のクラウドインフラを自分で構築するためのソフトウェア– 類似品としては、CloudStack, Eucalyptus などが有名。

2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクトを立ちあげて、開発をスタート

– RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作りかけていた「Nova」(EC2相当の機能を提供)をオープンソース化して提供。それらをベースにコミュニティモデルでの開発を開始。

– 目標は「オープンスタンダードなHWとSWで誰でもクラウドサービスが提供できるようにすること」

Page 5: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

5

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

これまでの開発状況

EC2/S3相当機能がほぼ完成

現在の最新リリース

OpenStack Foundation設立!

Page 6: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

6

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

Red HatはOpenStack Foundationのプラチナスポンサーに

http://sourceforge.jp/magazine/12/04/13/0359223

Page 7: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

7

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

OpenStack開発への主要な貢献企業(Essex, Folsom)

OpenStack Summit 2012 San DiegoでのRackSpace社による発表

Page 8: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

8

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

OpenStack開発への主要な貢献企業(Grizzly)

http://blog.bitergia.com/2013/04/04/companies-contributing-to-openstack-grizzly-analysis/

Page 9: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

9

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

RDO :RHELでOpenStackを利用するユーザ向けのコミュニティ活動 RDOが提供するRHEL用OpenStackは、誰でも無償で利用ができます。

http://special.nikkeibp.co.jp/ts/article/ac0e/143743/

Page 10: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

10

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

RDO :RHELでOpenStackを利用するユーザ向けのコミュニティ活動

OpenStack Foundation

RDOは、RHEL/FedoraでOpenStackを利用するユーザのコミュニティです。

主な活動内容– RHEL/Fedora用のRPMパッケージを提供

• http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/– Puppetベースのインストーラ「Packstack」を提供– QAフォーラムを運営(Red Hatの開発者が回答してくれることもあります。)

OpenStackを創る人々のコミュニティ (RHEL/Fedoraで)OpenStackを

使う人々のコミュニティ

http://openstack.redhat.com

Page 11: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

11

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

Red Hat Enterprise Linux OpenStack Platform

RDOをベースとした安定版を有償サポート付きの製品版として提供していきます。

開発版 製品版

Page 12: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

12

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

OpenStackのアーキテクチャ

Page 13: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

13

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

OpenStackの主要コンポーネント

機能別にソフトウェアをモジュール化して開発が進められています。– Swift : オブジェクトストレージ

• Amazon S3相当– Nova : 仮想マシンの配置決定と起動・停止処理– Glance : 仮想マシンイメージの管理

• バックエンドにSwiftを使用、その他のストレージにも対応– Cinder : ブロックボリュームの提供

• 標準(サンプル)実装では、Linux LVM + iSCSIソフトウェアターゲットを使用• 外部のiSCSIストレージ装置をバックエンドにすることも可能

– Keystone : 統合認証機能– Netutron : 仮想ネットワーク管理機能(Quantumから改名)

• 仮想ネットワークの作成を外部のPluginモジュールに移譲• 標準(サンプル)実装では、Linux brdige、もしくは、Open vSwitchを使用

– Horizon : GUIコンソールのサンプル実装

上記のコアコンポーネント以外のサブプロジェクトもあります。– Heat : 仮想マシンインスタンスのオーケストレーション

• Amazon CloudFormation互換– Ceilometer : 課金情報収集

Page 14: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

14

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

OpenStackのアーキテクチャ 各モジュールは、REST APIによりクライアントからの指示を受け付け

– プログラムコードからの呼び出しによる環境操作の自動化への対応が前提 外部のSDN製品やストレージ装置とドライバ/プライグインで連携する仕組みを用意

– 外部製品とのインテグレーションによりさまざまな要件に対応

仮想マシンイメージ

NovaCompute

NovaCompute

Glance Horizon Neutron

管理ネットワーク

LUN

仮想ネットワーク作成

仮想マシン起動

ブロックボリューム提供

認証サーバ

テンプレートイメージ保存

MySQL

NetworkNode

NovaCompute

Cinder

Keystone

Swift

メッセージキュー

パブリックネットワーク

クライアントPC

Webコンソールアクセステンプレートイメージ検索

テンプレートダウンロード

QPID

データベース

LUNLUN

Nova

外部のSDN製品が構成する仮想ネットワークと連携

外部のストレージ装置と連携

Page 15: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

15

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

アーキテクチャから見たOpenStackの特徴

APIで操作する「Programmable Infrastructure」の提供

– 既存のGUI・ワークフローに縛られたくないユーザ層の獲得– IaaSの標準プラットフォームとして、各種ツールとの連携

スケーラビリティを意識した疎結合アーキテクチャ

– コンピューティングノードの追加が容易/コントローラーの負荷分散が可能 – システム設計、運用・管理にはこれまでとは違うノウハウが必要

Driver/Pluginによる外部コンポーネントとの連携

– 既存インフラと連携・統合するための作りこみが可能– サードパーティ製品連携のエコシステム

Page 16: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

16

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

プライベートクラウド事例 〜 アメリカ国家安全保障局

アメリカ国家安全保障局(NSA)では、官僚的プロセスによる新規ハードウェア調達の遅れにより、研究者向けの計算機資源の提供がタイムリーに行えないという問題を抱えていた。

そこで、OpenStackによるプライベートクラウドを独自に構築して、利用者自身がオンデマンドに計算機資源を入手できる環境を提供。

– 2ラック程度の規模で実験的に開始したところ、利用者数が急激に増えて、 本格的な拡張を計画中。

–独自開発機能により、既存のセキュリティインフラとの統合を実現

http://www.openstack.org/summit/portland-2013/session-videos/presentation/keynote-openstack-at-the-national-security-agency-nsa

Page 17: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

17

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

クラウドにおけるシステム構築

Page 18: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

18

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

自動化における管理対象

環境設定(Config)

アプリケーションプログラム

インフラ環境

データ

OS・アプリケーションの構成管理

アプリケーションの導入管理

物理サーバ/仮想マシン構成OSイメージなどの管理

クラウド(仮想化)環境ではどの範囲をイメージ化するかが

1つのポイント

Page 19: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

19

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

システム構築自動化の現状

クラウド/仮想化環境での自動化3大パターン

1. 仮想アプライアンス(ゴールデンイメージ)方式• アプリケーション導入済みの環境をマシンイメージ化して利用。• 巨大なテンプレートファイルの保守管理、インフラ間の可搬性が課題。

2. JEOS(Just Enough OS)方式• 最小限のOS環境をマシンイメージ化して利用。アプリケーション

の導入・設定は、別途、ツールで自動化。

3. 自動インストール方式• OSのインストールからアプリケーションの導入・設定まで、すべ

ての作業を自動化して適用。

クラウドで主流になりつつある手法

仮想化環境でよく利用される方法

Page 20: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

20

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

アプリケーション導入、システム設定の自動化ツール

Puppet/Chefとは?– パッケージ、サービス、ファイル、

ユーザ/グループなど、規定の「リソース」について、指定の状態に自動構成するツール

– 「希望する状態」を指定すると、現状からその状態に変更するコマンドをツールが自動判別して実行

– リソース間の依存関係を指定することで、設定の順序を制御可能

package { 'httpd': ensure => latest, # 最新バージョンを導入}

service { 'httpd': ensure => running, # サービスを起動 enable => true, # サーバー起動時の自動起動を設定 hasrestart => true, # 「service xxxx restart」が利用可能 hasstatus => true, # 「service xxxx status」が利用可能} file { '/var/www/html/index.html': owner => 'apache', # ファイルオーナー group => 'apache', # ファイルグループ mode => '0600', # アクセス権 content => '<h1>Hello, World!</h1>', # ファイルの内容}

exec { 'fw-http': path => '/usr/sbin', # コマンドのパス command => 'lokkit -s http', # 実行するコマンド}

Package['httpd'] -> File['/var/www/html/index.html'] -> Service['httpd'] -> Exec['fw-http']リソースの依存関係

httpdを導入するPuppetマニフェストの例

Page 21: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

21

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

Puppet/Chefの本質は「ビルトインの現状確認機能」

作業手順(コマンド)を並べたスクリプトは、前提環境が変わると利用不能 「現在の状態」に応じて必要なコマンドを判断して「希望の状態」を実現するの

が構成管理ツールの本質(「冪等性」はあくまで結果的に得られる性質) リソースの種類ごとに「現状確認コマンド、設定変更コマンド」など

の”Intelligence”がビルトインされている事がPuppet/Chefの価値

希望の状態にシステムを更新

No

希望の状態 現在の状態

package { 'httpd': ensure => latest,}

# yum list httpd

「現在の状態=希望の状態」?

Page 22: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

22

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

GitHubによるPuppetマニフェストの管理

リポジトリの公開URL

特定の時点のコードをタグ名で指定

過去の変更履歴を全て保存

Page 23: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

23

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

GitHubによるPuppetマニフェストの管理

Gitとは?– プログラムソースコードの分散バージョン管理システム。元々はLinux Kernelの開発用に

作成された。インターネット上にコードリポジトリを作成して無料で利用できるサービス「GitHub」の登場により、利用者が増加した。

– Puppetの設定ファイル(マニフェスト)をGitHubに保存しておき、OpenStackのカスタマイズ・スクリプトからダウンロード・適用するという使い方が可能。

Githubからマニフェストを取得して適用するスクリプトの例

#!/bin/sh -xyum -y install puppet git

GitRepository=https://github.com/enakai00/apache_puppetConfigTag=f18RepoName=${GitRepository##*/}RepoName=${RepoName%.git}

mkdir -p /tmp/gittmpcd /tmp/gittmpgit clone $GitRepositorycd $RepoNamegit checkout $ConfigTagexport FACTER_manifest_dir="/tmp/gittmp/$RepoName"puppet apply main.pp

Page 24: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

24

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

カスタマイズ・スクリプト(User Data)による自動化

仮想マシンインスタンス起動時に「カスタマイズ・スクリプト(User Data)」を与えると任意のテキストをメタデータとしてゲストOSに受け渡すことができます。

Cloud-Initは、カスタマイズ・スクリプトを解釈して、さまざまな自動化を実現します。–下図はシェルスクリプトを渡して、「/etc/motd」を設定しています。– この他にもCloud-Init独自の構文で、処理内容を指示することができます。

$ curl http://169.254.169.254/2009-04-04/user-data#!/bin/shecho 'Hello, World' > /etc/motdexit 0

Page 25: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

25

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

デモンストレーション

カスタマイズ・スクリプトからGitHub/Puppetを連携させて、PostgreSQLサーバを自動構築します。

GitHubVM

YUMリポジトリ

アプリ設定情報(Puppetマニフェスト)

カスタマイズ・スクリプト

ソフトウェアパッケージ

pgsql

https://github.com/enakai00/pgsql_puppet

Page 26: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

26

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

企業システムのクラウド利用におけるこれからの課題

クラウドコンピューティングの実現により、さまざまな「インフラの自動化」が可能になりました。

今後、一般企業の業務アプリケーションをクラウドで利用する場合、どのような観点で、どのような処理を自動化することが必要なのでしょうか?– 既存の手作業をそのまま自動化するのでは、「自動化のための自動

化」に陥る危険性はないでしょうか?–「アプリケーション開発、システム運用プロセスの変革/改善と一体

化した自動化の適用」を研究するべき時期がきているのではないでしょうか?

いけてる自動化? いけてない自動化?

Page 27: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

27

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

インフラエンジニアに必要なスキルと勉強方法

Page 28: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

28

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

クラウド設計・構築・運用の本質とは?

① 既存の要素技術を大規模環境に適用する アーキテクチャ設計のベストプラクティス

② 日々の安定運用を継続する オペレーショナル・エクセレンス

③ 不特定ユーザにサービスを提供し続ける インフラの継続的成長

Page 29: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

29

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

OpenStackを構成する技術要素

仮想マシンイメージ

NovaCompute

NovaCompute

Glance Horizon Neutron

LUN

認証サーバ

MySQL

NetworkNode

NovaCompute

Cinder

Keystone

Swift

メッセージキュー

クライアントPC

QPID

データベース

LUNLUN

Nova

APIプログラミングネットワーク技術自動化技術

Puppet / Chef iptables(NAT/パケットフィルタリング)

VLAN / 仮想ブリッジ

Open vSwitch / OpenFlow

SSH鍵認証

セキュリティ技術

サーバ仮想化(Linux KVM)

LVM

iSCSIストレージ技術

仮想化技術

RDB

メッセージキュー

RESTトークン認証

ディスクイメージクラウドはさまざまなインフラ技術の集大成

Page 30: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

30

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

クラウド設計・構築・運用の本質とは?

① 既存の要素技術を大規模環境に適用する アーキテクチャ設計のベストプラクティス

② 日々の安定運用を継続する オペレーショナル・エクセレンス

③ 不特定ユーザにサービスを提供し続ける ビジネスモデル

クラウドを設計/構築/運用するエンジニアは、サーバ/ネットワークインフラの要素技術を

徹底的に学ぶべき。

Page 31: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

31

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

インフラ技術を学ぶ際のポイント

個人の範囲で入手できる情報量は膨大にあります。– 同じ事柄でも複数の書籍・文献にあたる事で、本質的な部分がより明確になり

ます。あらゆる情報源を活用して学習する事を心がけましょう。

個人の範囲で試せることも沢山あります。– インフラ技術は、実際の動作を見ないで理解することは困難です。まずは、実

機で試してみることが大切です。うまく行かない場合には、ログファイルやソースコードから動作の詳細を追っていく論理的思考力が最大の武器になります。

すべての技術には、それが生まれた理由・目的があります。– その技術を利用する目的、ユースケースを考えていくことで、その技術の何が重要なのか、おさえるべきポイントは何かが分かるようになります。「その技術を使うと何が便利になるのか?」「自分だったらどのように使うか?」という事を考える習慣をつけるとよいでしょう。

Page 32: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

32

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

まとめ

クラウドエンジニアの「共通言語」としてのLinux/OSSを身につけませんか?–あらゆる情報源を活用して、効率的/効果的な学習ができることも

Linux/OSSのメリットです。

「T字型スキル育成」の枠を超えて、「広く深いスキル育成」の理想を目指しませんか?–クラウドに関わるエンジニアは、幅広い要素技術を基礎から徹底的に学習するべきです。

クラウド技術が「個人としてのITエンジニア」にもたらす可能性を考えませんか?–クラウド技術は「コンピューティング環境」を企業から個人へと開放

し、これまでには無かった「スキル獲得」の場を提供しています。

Page 33: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

33

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

学習用参考文献 − クラウドを支えるLinux基礎技術

「独習Linux専科・サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則」(中井悦司)– Linuxの利用経験が少ない方向けの入門書です。

「プロのための Linuxシステム構築・運用技術」(中井悦司)– 実務に向けたLinux構築・運用技術を解説しています。

「プロのための Linuxシステム・ネットワーク管理技術」(中井悦司)– iptablesとKVMの仮想ネットワークについて詳しく解説しています。

「プロのための Linuxシステム・10年効く技術」(中井悦司)– Linuxの内部構造などより高度な内容を学びたい方向けの参考書です。

「クラウド基盤構築」講義テキスト(中井悦司)– 東京大学大学院情報理工学系研究科で平成25年度夏学期に実施したコースのテキストです。「第一部

クラウド基盤を支えるインフラ技術」でクラウドを構成する要素技術を解説しています。• https://sites.google.com/site/cloudlecture/text

クラウドを支えるサーバー・インフラ技術(Web連載)(中井悦司)– Eucalyptusを題材としてIaaSクラウドを構成する基礎技術を解説しています。

• http://cloud.watch.impress.co.jp/docs/column/euca_iaas/20110815_466718.html

Page 34: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

34

Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門

学習用参考文献 − サーバ仮想化技術

「KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド」(平初, 森若和雄, 鶴野龍一郎, まえだこうへい)– Linux KVMの実践的な解説書です。

日経Linux連載・基礎講座「クラウド時代のサーバー構築・運用の基礎」(中井 悦司)– サーバを利用してハンズオン形式で仮想化環境を構築します。(記事単位のPDF版が購入可能)– 第1回 KVMで「実践環境」を構築しよう

• http://mikke.g-search.jp/QNBP_LIN/2012/20120801/QNBP354028.html– 第2回 Linuxとアプリのインストール作業を効率化

• http://mikke.g-search.jp/QNBP_LIN/2012/20120901/QNBP355700.html– 第3回 複数ネットワークの相互接続

• http://mikke.g-search.jp/QNBP_LIN/2012/20121001/QNBP357308.html– 第4回 iptablesによるNATの実践

• http://mikke.g-search.jp/QNBP_LIN/2012/20121101/QNBP359382.html– 第5回 仮想化環境でのiSCSIの活用

• http://mikke.g-search.jp/QNBP_LIN/2012/20121201/QNBP361105.html– 最終回 遠隔バックアップシステムの構築

• http://mikke.g-search.jp/QNBP_LIN/2013/20130101/QNBP362978.html

Page 35: インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

RED HAT OPENSTACK TECHNOLOGY | 2013

WE CAN DO MOREWHEN WE WORK TOGETHERTHE OPEN SOURCE WAY