カテゴリー別アーカイブ: IT全般

書籍紹介:『アポロ13』に学ぶITサービスマネジメント ~映画を観るだけでITILの実践方法がわかる! ~

書籍紹介:『アポロ13』に学ぶITサービスマネジメント ~映画を観るだけでITILの実践方法がわかる!

アポロ13号でなぜITILを学ぶのか?

アポロ13号の事故は1970年、一方ITIL:Information Technology Infrastructure Library1989年イギリスで初版が公開された。

従ってこれらには直接の関連性はなく、それは本書の中でも再三繰り返されている。
しかし、ITILがアメリカの成功体験を分析することで策定されたという逸話もあるので、「成功した失敗」と呼ばれるアポロ13号の教訓からITILの本質を学ぶという筆者の考えには共感できる。

目次

■第1部 ITサービスマネジメントとアポロ13
●第1章 ITサービスマネジメントとは
-ITサービスの価値を高めるために-
●第2章 『アポロ13』でITSMを学ぶ意義
-アポロ計画とビジネスストラテジの共通点-

■第2部 サービスストラテジ
●第3章 「ニール・アームストロングが月に降り立ちました」
-アポロ計画における戦略-
●第4章 「14号があればだが」
-アポロ計画における「顧客」とは-
●第5章 「月を歩くんだね」
-サービスという単位を考える-

■第3部 サービスオペレーション
●第6章 「ヒューストン、 センターエンジンが停止した」
-インシデント管理-
●第7章 「反応バルブを閉じろ、と伝えろ」
-サービスデスク-
●第8章 「自分の字が読めないんだ。思ったより疲れているみたいだな」
-問題管理-

■第4部 サービスデザイン
●第9章 「絶対に死なせません」
-サービスレベル管理-
●第10章 「チャーリー・デュークが風疹にかかっている」
-可用性管理-
●第11章 「問題は電力だ。電力がすべて」
-キャパシティ管理-
●第12章 「トラブルが発生した」
-ITサービス継続性管理-

■第5部 サービストランジション
●第13章 「なんとかして、この四角をこの筒にはめ込むんだ」
-構成管理-
●第14章 「この飛行計画は忘れよう」
-変更管理-
●第15章 「こちらヒューストン。打ち上げ準備完了です」
-リリース管理-

■第6部 継続的サービス改善
●第16章 アポロ計画は改善のかたまり
-継続的サービス改善-

読後感

「アポロ13号」というタイトルに惹き付けられて手にした本書だったが、予想以上に面白い本だった。

例えば、
●第4章-アポロ計画における「顧客」とは-では

  • 顧客:アメリカ大統領、政府役人
  • ITサービス・プロバイダ:NASAヒューストン管制センターと管制官
  • ユーザ:3名の宇宙飛行士、バックアップ宇宙飛行士
  • インシデント管理マネージャー:主席飛行管理官

のように、具体的な登場人物を映画「アポロ13」の場面から引用することで、ステークホルダーやその他ITILの重要なキーワードをわかりやすく説明している。

これは、各章で一貫しているスタイルなので、DVDを観ながら読み進めると非常に面白い。

実践には概念を現実に昇華させる方法が必要であり、この本の手法はとても参考になる。

なぜ日本ではITILが浸透しないのか?

IT業界に長く身を置いているのだが、ITILを始めて聞いた2004年ごろから現在までITILの考え方を取り入れて成功した例をあまり聞いた実感がない。単純に成功体験に接する機会に恵まれなかった結果なのかもしれないが、行った現場はことごとくITIL的でない状況だった。

ただし
「多くの会社でSLAとして作成された文書を実際に確認してみると、現状そのほとんどは単なる契約書であり、ITILで解説しているSLAとはまったく違っていて、愕然とします。しかし、すでにSLAがあることになっていますので、別途(本来の)SLAが策定されることはありません。SLAという名の契約書(実際には、法務部門のレビューまで受けて押印された、ただの契約書)が存在していますので、SLAを権威づけするような契約書が別途交わされることもありません(本当の意味でのSLAが存在しないのですから、当たり前と言えば当たり前なのですが…)。このような状況ですので、外部プロバイダとの間でUCを取り交わすようなことはあっても、プロバイダ内部でOLAを策定しようと考えるIT部門は、残念ながらもほぼ皆無です(筆者の知る限り、きちんとOLAを策定していたITサービス・プロバイダは1社だけでした)」(読書位置:1672)
とあるように、ITILを正しく実践できている会社がほとんどないというのが現実なのかもしれない。

構成管理データベース(CMDB)から始めよう。

データベースに深く関わっている立場から感じることは、ITILを実践できないのは中核となる構成管理データベース(CMDB)がないからだと思う。本の中から構成管理について述べられた部分を抜粋する。

「この構成管理、実はこれそのものは何の利益もユーザ満足ももたらしません。そのため、つい後回しに、ないがしろにされてしまいがちなプロセスです。しかし、構成管理は前述のとおり、構成管理データベースを常に最新の、正確な状態に保つことを目的としたプロセスです。構成管理データベースは、ほかの重要なプロセスがITサービスの提供に利益をもたらすことを確実にするために、とても重要な情報を提供します。したがって、構成管理は(地味なプロセスなんですが)非常に重要である、と言えるでしょう。」(読書位置:2693)

「構成管理の観点では、ストレージは単なるサーバーの属性の1つ(どのサーバーに何テラバイトの容量のストレージが割り当てられているか)に過ぎないかもしれません。また、物理的なサーバーの中に仮想サーバーが10台存在するなら、構成管理としては、その仮想サーバー10台もそれぞれ構成アイテムとして管理する必要があるでしょう。さらに、SLAや組織図などの文書は資産管理では扱いませんが、構成管理では非常に重要な構成アイテムとして管理対象に含めます。」(読書位置:2706)

「筆者がJAXAに勤めている人から話を伺ったところ、世界初のデータベース管理システムは、このアポロ計画で宇宙船に積み込む備品のリストを作るために作られたのだそうです。ヒューストンの管制センターで全体の管理をしていたコンピュータ・システムはIBM社のSystem/360でしたから、おそらくこの世界初のデータベース管理システムは、System/360上で稼働していたことでしょう。もっとも、IBM社初のリレーショナル・データベースである System R は1977年に初めて売れた、ということですので、この世界初のデータベース管理システムは、現代風のリレーショナル・データベースではなかったのかもしれません。」(読書位置:2731)

以前、某ITサービス・プロバイダに在籍していた時、構成管理データベースの重要性を実感していたにも関わらず日々の業務に追われ結局実現することができなかった。

構成管理データベースはオープンソースのツールが存在したりしているが、出来合いのツールに合せていくのではなく、現状どこにでもあるExcelベースで管理している構成情報をモデリングしCMDB構築のヒントを模索していこうと思う。

これが漠然とした今年のテーマである。

Amazon RDSをさわって考えた

やっと再開

新しい年になってもなかなかブログが捗らなかったが、今年から「ですます調」から「である調」に変えて再開することにした。

Amazon RDSを使ってみた

今までクラウドでデータベースを使うということに性能面でどうしても違和感を持っていたので、あまり積極的に関心を寄せなかったのだが、仕事の関係でPostgreSQL on RDSを使う機会があったので、個人的にも無料の範囲で試してみることにした。Amazon RDS

詳しい構築手順等は検索すればいろいろ見つかるので割愛するが、ゆっくり確認しながらでも30分程度でDBインスタンスが構築できてしまうのは驚異的である。

インスタンス作成中

RDSとOSS

当然のことながらRDSとOSSは相性がいい。ライセンス費用が発生しないからだ。一方商用製品であるOracleとMSSQLはライセンス費用を考慮する必要がある。

例えばOracle Enterprise EditionをRDSで使用する場合は、自前のライセンスを用意する必要がある。

バックアップ

RDSではバックアップウィンドウを指定するだけで勝手にバックアップを取得してくれる。万一バックアップからリカバリする場合は、今までのインスタンスとは別にインスタンスを作成しそちらにリカバリするなど多少運用を考える必要があるが、フルマネージドRDBサービスとしての重要な機能のうちの1つであるであることに間違いはない。

監視

AWSで提供されるCloudwatchによって、パフォーマンスデータの取得及び可視化(グラフ化)が可能である。

監視項目(メトリック)の数も充実している。

冗長構成

無料お試し版では使えないが、マルチAZ配置とすれば異なるアベイラビリティ・ゾーン間で「プライマリ」と「スタンバイ」レプリカの構成を自動的に構成・管理することができる。

「プライマリ」側に何らかの異常があった場合でも「スタンバイ」へ自動的に切り替えることで運用を継続することができる。

Oracleの世界で言うところのData Guardのような仕様で冗長性を担保する。

Oracle RACのサポートについて

将来サポートされるかどうかは不明だが、現在RDSではOracle RACはサポートされていない。

これは技術的なハードルというよりもむしろRDSの冗長性に対する考え方によるものなのかもしれない。

Oracle RACのようなActive-Active構成を実現するためには、複数ノードから同時アクセス可能なASMのような仕組みを実装必要があるが、「1つのインスタンスは1つのノードでしか動かさない」という割り切りをすれば、そのような仕組みは不要でありより一般的なファイルシステムを使用することができる。

また、Oracle RACにおいてはノード間通信であるキャッシュフュージョンが発生すると性能が劣化することはよく知られている。

だからノードを増やすスケールアウトで性能を担保するというのは実は難しく、マシンスペックを上げて対応するスケールアップで性能を担保する方が設計上は確実であるという考えにRDSは至ったのかもしれない。

どこまでユーザに変更を許すか

RDSはSSHによりOS領域にログインすることはできない仕様となっている。従ってユーザができることは限られており、逆にユーザの不適切なオペレーションによる環境破壊等を防止する仕組みであると考えても良いのかもしれない。

パラメータもマシンスペック(インスタンスクラス)に応じてチューニングされたものが自動的に設定されるため、ユーザは基本的にパラメータを変更する必要はない。

どうしてもデフォルトパラメータから変更したい場合は、パラメータグループを作成して反映させるようになっている。

考えてみれば、パラメータはデフォルトのまま運用するべきではないと言っていたのは昔の話で、例えばOracleではパラメータの自動チューニングが進化しているので、パラメータを変更してチューニングするという機会はどんどん減っている。

Amazon RDSは使えるか

クラウド環境に大切なデータを預けるのは如何なものか的な考え方は未だに根強いが、十分なコストメリットとセキュリティの妥当性を実感できればRDSのような環境を業務に活用するという流れは加速されるだろう。

私が漠然と持っていた性能面に関する懸念も杞憂に終わるのではないかとさえ思えるほど、RDSの内容と選択の多様性は充実している。

 

Oracle Linux 6.5 on Parallels Desktop for Mac OS

私の商売道具

私は仕事で2年前からMacBook Airを使っています。メモリとストレージを目一杯の8GB、512GBにそれぞれ増設し「Parallels Desktop for Mac OS(以下PD)」でWindows 7を共存させて使っています。スクリーンショット 2014-08-18 13.50.16

共有ネットワークモード

仕事で使うOracle環境はWindows側に構築しているのですが、Parallels Desktopのデフォルトのネットワーク環境は下図(PDマニュアルからの引用)のようになっており、Windows仮想マシンはMacOS側とネットワーク・アダプタを共有しているため(ネットワークについてはあまり詳しくないですが、ポートフォワーディングのような仕組みで実現していると思われます。)、MacOSから独立したサーバには見えていません。

共有ネットワークモード

 

すなわち、Windows側でリスナーを立ててもあくまでもWindows仮想マシンの中で閉じていますので、MacOS上のOracle Clientからの接続要求は受けられない仕組みです。

ブリッジイーサネット モード

仮想マシンを独自のIPを持ったスタンドアロン・コンピュータとして構成できないかということでいろいろ調べた結果、PDではブリッジイーサネット モードという構成が可能ということがわかりました。(PDマニュアルからの引用)

ブリッジイーサネット

これを使えば、仮想マシン上のリスナーで接続要求を受け付けられそうです。

Parallels Desktop上にOracle Linux 6.5をインストールする

この機能を見つけたので、前々からやりたかったOracle Linux 6.5 のインストールをやってみることにしました。(あくまでも検証環境ですので自己責任で行ってます。)

OL6.5上にOracle Databaseを構築して、MacOS上のOracle Client から接続するまでを目標とします。

インストーラのダウンロード

https://edelivery.oracle.com/ からOracle Linux 6.5のインストーラをダウンロードします。

ダウンロードページ

登録したアカウントでサインイン

メディアパック選択

Oracle Linux 6.5を選択

ダウンロード画面

V41362-01(.iso)をダウンロード!

仮想マシンの作成

新規作成の方法はいろいろありますが、仮想マシンリストの(+)ボタンをクリックしても追加できます。

新規仮想マシンの作成

新規仮想マシン

続行をクリック

空の仮想マシンを作成

PDではRedhat LinuxやCentOSのように正式にサポートされているディストリビューションであれば、DVDやイメージファイルを認識してインストールできますが、Oracle Linux は「その他のLinux」に分類されるため、まず空の仮想マシンを作成して後からOSをインストールする形になります。(実際はISOフィアルを認識させますが)

「ソースなしで続行する」にチェックを入れて続行をクリック

OSの選択

OSの選択ダイアログで、他のLinux>その他のLinuxカーネル2.6 を選択

名前と場所

名前は「Oracle Linux 6.5」に変更。「インストール前に構成をカスタマイズする」にチェックを入れて続行

ブリッジイーサネット

ここでブリッジイーサネット モードの構成にします。ハードウェアタブの「ネットワーク1」を選択。

種類を「共有ネットワーク」から「デフォルトのアダプタ」に変更、NICの種類は恐らくこの設定でよいはずです。

CDDVD

CD/DVD1を選択

接続先に先ほどダウンロードしたISOファイルの場所を指定します。

CPUメモリ

DBサーバなのでCUPを「2」、メモリを「2GB」に設定します。

クローズボタンをクリックして、続行をクリック

インストール開始

インストールスタート

一番上(Install or upgrade an existing system)が選択されていることを確認し(Enter)

diskfound2

Tabキーで「OK」から「Skip」にカーソルを移し(Enter)

start「Next」をクリック

言語

言語は「日本語」を選択

キーボード

キーボードは私の場合はUSキーボードを選択しました。

ストレージタイプ

ストレージタイプは「基本ストレージデバイス」を選択

デバイスの適用

ちょっと次に進むのをためらってしまうメッセージですが、あくまでも仮想マシンに割り当てられたディスク領域(PDは可変サイズのファイルが作成されます。)の適用ですので、「はい」を選択します。

ホスト名ネットワーク

ここでホスト名を指定します。(私の場合は「oraclelinux6.onefact.jp」としました。)

下の「ネットワークの設定」ボタンをクリックします。

ネットワーク定義

System eth0 を選択し、編集をクリック。

eth0

「自動接続する」にチェックを入れて適用をクリック

この後、タイムゾーンの設定とrootユーザのパスワード設定が続きます。

パーティションの作成

ストレージ構成

次にパーティション設定をディクスに書き込みます。私はデフォルト選択のままとしました。

パッケージ選択

次はサーバタイプによるパッケージの選択です。Database Serverという選択肢がありますが、これはMySQLサーバのことですので注意しましょう。

「今すぐカスタマイズ」ラジオボタンを選択して次に進みます。

デスクトップ

デスクトップ関連は「X Window System」「デスクトップ」「デスクトッププラットフォーム」「汎用デスクトップ」の4つを選択します。

アプリケーション

アプリケーションは「インターネットブラウザ」を選択します。

パッケージインストール中

インストールが始まります。上記の選択の場合パッケージ数は1047個になりました。

インストール完了

プログレスバーが進んでインストールが完了しました!右下の「再起動」ボタンをクリックしてリブートします。

インストール後作業

インストール後1

インストール後の設定を行います。進むをクリック。

ライセンス情報

ライセンス情報

ソフトウェア更新1

2

3

ユーザの作成

とりあえず全部「oracle」を入力します。

2

日付と時刻

Kdump

完了

oracleユーザでログインします。

端末

やっと完了です!図はターミナルを開いたところです。

次回はOracle Databaseのインストール・構築を行います。

書籍紹介:UMLモデリング入門

UMLモデリング入門UMLモデリングを本質から学ぼうと思って買ったのがこの本です。 UMLモデリング入門(児玉公信著、日経BP)

入門と言いながら全編大学の講義を聞いているような記述が並びますが、そもそも「情報システムとは?」「概念とは?」などの本質に直球勝負で切り込んでいくスタイルはじっくり読みこなしていくと必ず腑に落ちます。

下図は「1-2 情報システムライフサイクル」において、著者が考える情報システム構築プロセスを表したものですが、本書の目的はこの中の「要求設計」で業務のあり方を記述する「概念モデル」であると明確に言い切っています。

つまり施主(情報システムによって利益を受ける人)の漠然とした期待をまとめた原要求に対して、ITによって機能だけでなくビジネス・組織・仕事についても設計し「要求(つまり概念モデル)」を作り上げるという設計者およびアーキテクトの役割を解説する本だという認識を持って読めば自ずと理解が深まるのではないかと思います。(この図をみればアーキテクトとはどのような人なのかがわかるでしょう。)

また、筆者はこの図を使って、アジャイルな開発プロセスとは「設計者=施工者」であり要求設計と同時にソフトウェアの仕様ができることであり、結果として現場の生産性を上げるものであると説明しています。つまり設計することなしの「現場合わせ」の繰り返しはアジャイルではないという言葉は非常に説得力があります。

情報システムライフサイクル.001

単なるUMLモデリングの解説本ではなく、モデリングの本質に踏み込んだ良書です。

ITアーキテクト養成講座

ITアーキテクト養成講座
6月9,16,23,30日の計4日間、日経SYSTEMS主催の「ITアーキテクト養成講座」(場所:東京神田)に参加してきました。

本年(2014年)で5回目の人気講座だそうで、1月22日には システム設計の先導者 ITアーキテクトの教科書 というタイトルで書籍化もされています。講座の中で使用される図表等はほぼそのまま書籍にも使用されていますので、講座内容を事前に知るには書籍を一読すればよいと思います。(ちなみに講習参加者には2日目に書籍がプレゼントされました。)

講師の石田裕三氏は野村総合研究所でITアーキテクトとして活躍されていて、米カーネギーメロン大学で経営学、ソフトウェア工学を学ばれた経験もあるので、特に海外におけるIT事情の話は参考になりました。

参加者は約5名の6つのグループに分けられ、毎回シャッフルされます。(人数の関係で2回同じ人と同じグループになることもあります。)グループ単位でホワイトボードの前で課題を考え、その結果を全体で発表しあうスタイルで進めていきます。議論が進まなかったり発散しそうな状況になった場合は、講師やNRIのアシスタントの方々が適宜各グループを周り適切なアドバイスを与えてくれることもあります。

SIerのアプリケーション・エンジニア、インフラの運用担当者、ユーザ企業で業務要件を検討する人等、参加者のバックグラウンドは千差万別で、東京近辺だけでなく大阪や札幌等遠方からも多数参加しているのには驚きました。(もっともほとんどの人は講習費、交通費は会社持ちなので、私のように自腹で参加している人は接した限りでは見当たりませんでした。その点に関しては羨ましい限りです。)

グループ討議のよい点は、バックグラウンドが異なる人が集まると思いもかけないアイデアに出会えたり、違った視点から物事を観ることができることです。「自分はこのことについてあまり詳しくないんだけど、こういうことなんでしょうかね?」という意見に思わずなるほどと膝を打つようなことが多々有りました。

講座の内容は

  1. 要件定義
  2. 基本設計
  3. 詳細設計
  4. 実装
  5. テスト
  6. 保守

という一連のいわゆる開発(運用)のV字モデルにおいて、ITアーキテクトと呼ばれる人が何をすべきかということを体系的に学ぶことができるものです。

具体的にはPostgreSQLをベースにした高可用性システムの設計という感じで、特にインフラの経験が少ない人にはやや高度な内容に映ったようです。私もアプリケーション開発しか経験していなかった頃にこの講座を受けても消化不良になっていたかもしれません。

ただし、自分ができる領域をもっと広げて行きたいと考える”やる気”のある経験の浅いエンジニアにとってはよいきっかけになる講座だと感じました。

実際、私も昔少しかじったUMLをもう一度根本から勉強し直そうと思ったので、そういう意味でも投資した甲斐はあったと思います。