データベースコンサルタントのノウハウちょい見せ

Oracle RDBMSなどのオラクル製品や各種インフラ技術(OS、ストレージ、ネットワーク)といった話題を取り上げます。著者は小田圭二、「門外不出のOracle現場ワザ」、「絵で見てわかるOracleの仕組み」、「絵で見てわかるOS/ストレージ/ネットワーク」などの著作もあります

ホーム > アーカイブ - 2009年11月

非機能要求はどこまで実装すべきか? 非機能要求グレード検討会

インフラ屋の悩みに、非機能要求をどこまで実現するのか?そのレベルで納得してもらえるのか?があると思います

「重要インフラ情報システム信頼性研究会報告書」という社会インフラとなっているシステムの信頼について詳しく説明した資料があります(まだの方はぜひ読んでみてください)。http://sec.ipa.go.jp/reports/20090409.html
この中で、「課題」として載っているのが、「ゼロ欠陥のソフトウェア開発は実務的に不可能であることについて、社会的共通認識が形成されていない」「ソフトウェア信頼性の目標値について、事業者とベンダで合意形成する体系化された方法がない」etc。。。です。正直、信頼性を始めとする非機能要件については、どこまでも水かけ論となっている現場が多いのではないでしょうか。電車が故障しても、「故障か。仕方がないか」ですが、システムが障害になると「またシステム障害」という新聞の扱いになってしまいますよね。

考えるのはみな同じらしく、日本を代表するようなSIベンダーが集まって、レベルの定義をした結果(第一段)が公開されています。非機能要求グレード検討会というそうです。
http://www.nttdata.co.jp/nfr-grade/

可用性、性能・拡張性、運用・保守性、移行性、セキュリティなどについて項目を定義し、さらにレベルを2から6段階定義しています。これだけで十分とは思えませんが、まったく何もないよりは絶対にあるべきと思います。この活動が進んで、エンドユーザーも含めて、コストと非機能要件のバランスがとられる(まずはエンドユーザーが納得してもらえる)ようになることを願います
スポンサーサイト
[ 2009/11/29 23:57 ] アーキテクチャ | TB(0) | CM(0)

VMのバリュー(価値)

前々回の続きです。

VMというと、リソース管理の柔軟性(仮想リソースや複数立ち上げられる)などのイメージが強いかと思いますが、VMが入ると、OS(ゲストOS)の手前に1つレイヤーが増え、独立性があがるのも大きな価値だと私は思います。時代の流れからすると、CPUパワーやマシンパワーがあがると、今までだと処理が遅くなりすぎて実現できなかった機能やレイヤーが1つ実現できるようになる傾向があると思います。

もともと、HAL(Hardware Abstruction Layer)というH/Wの違いをできるだけ吸収するようなレイヤーをOSによっては持っていましたが、方向性的には一緒と言えそうです(ずいぶん大きな進化ですが)。

このVMというレイヤーが入ることによって、リソースの調整だけでなく、なんちゃらMotionや停止などの機能を実現していると考えれば、この新しいレイヤーの価値は大きいと言えそうです。

この新しいレイヤーによりハードウエアの違いもあまり意識しなく済みますよね。レイヤーが増えることによる多少のオーバーヘッドがあってもマシンパワーによって相殺されて、世の中ではVM(もしくはVM相当の機能)は当たり前になるんだと思います。

H/Wが恐ろしいほどのマルチコア化(例:8コアx 8CPUで 64コアとか)するのは見えてきていますので、そのH/Wを使いこなすためにも、VMのレイヤーで区切るのは価値があることなのだと思います。

[ 2009/11/26 23:05 ] アーキテクチャ | TB(0) | CM(0)

拙著「44のアンチパターンに学ぶDBシステム」が発売になりました

正確には、そろそろ店頭に並ぶ頃です。
Amazonだとこちらです。「44のアンチパターンに学ぶDBシステム

DB周りで良く見られる失敗例を紹介しよう、それを他山の石として生かしてもらおう、でも、実際には避けられないことも多いので、苦労している仲間が多いことを再確認して精神衛生上の清涼剤にしてもらおう、というコンセプトの本です

DBマガジンで過去3回の特集+ちょっと書き足したのが本書です。過去3回の特集もそうですし、この書き足しも、本ブログへのコメントを生かしています。そういう意味では皆さんのおかげの本でもあります。過去コメントいただいた方も、そうでない方も読んでみていただければと思います。

データベースやアプリケーション、インフラなどの技術的観点も紹介していますが、売りは、失敗につながる大きな問題として、システムに関わる「人」やプロジェクトにおける人間関係などに焦点を当てている点だと思っています。やっぱり、モノを言うのは「人」ですからね。

いくつかお勧めのアンチパターンを紹介します。
バケツRDBMS(DBを1つの箱としてしか見ていない)、太っちょ(列が多い)、組み合わせ爆発(無意味な直積)、臭い物に蓋をするともっと臭くなる(Viewで隠ぺいを繰り返す)、過ぎたるはなお及ばざるがごとし(インデックスつけすぎ)、トランザクションスコープが不適切、なんでもかんでもリアルタイム集計、不法占拠(不要な表が残っている)、目標なきチューニング、見て見ぬふり(追加開発の際、お茶を濁す)、度を越した楽観、心配屋(安全率に安全率をかける)、自社にあったDBAのあるべき姿が分からない/DB担当の要員アサインが悪い、DBAが育たない、DBチームのリーダー/担当者の権限が弱い

なお、見聞きした事例をそのまま紹介しているアンチパターンはありませんので、誤解しないでください(職業上、それはやっちゃいけないと思うので)。

読んだ方は感想を、Amazonか本ブログのコメントに書いていただけると、次の執筆活動の糧になるので助かります(忙しくても書く気が起きます)。

[ 2009/11/23 23:03 ] 雑談 | TB(0) | CM(2)

VMのリソース調整

すみません。お待たせしました。お詫びします。m(_ _)m

VMのリソース調整とOS(パーティショニング)の持つリソース調整、OSのもつ優先度調整、DBMSが持つリソース調整機能・・・、最近めっきりリソース調整を持つ製品が増えました。

今回は、私が知っているメリットとデメリットを書いてみたいと思います。

リソース調整は、静的(固定)と動的に分かれます。それと物理か仮想かに分かれます。静的というのは、OSの物理パーティションのように、決まったリソースが続くものです。それに対して、動的というのは、何者かが自動的に増やしたり減らしたりするものです。物理とは、実態以上には割り振らない形式です。仮想とは、実態以上に割り振る形式です。
静的では、アンバランスでもったいないことも起きますが、安全です。
動的にすると、有効活用になりますが、瞬間的な不足(割り振り変更が間に合わない)や、調整がオーバーしすぎる、ぎっこんばったんが起きる(いったりきたりする)、動的な変更のタイミングでの性能劣化がありえるといったリスクもありえます。


物理のメリットは、実態通りの割り当てであるために、割り当てられたものはすべて使えることです。仮想のメリットは、物理(CPUやメモリ)以上に割り当てができることです。でも、よくよく考えると、物理以上には使えないわけで、この観点では両者に違いはありません(実際の利用率は同じという意味)。

違いを考えると、「調整のルール」の違い・・・ではないかと思います。物理で静的なケースには、絶対に動かない壁が存在しているようなものです。動的なケースは、壁が可変です。仮想なケースは、壁が遠くに見えて、近くに存在するようなものです。製品の違いによる、リソース調整の違いについては、私にはあまり感じられません(VMの持つリソース調整が優れているように思うかもしれませんが、似たルールをもつ製品も存在します)。

冒頭紹介した製品の違いによる影響は、運用の違いと障害時の振る舞いだと思います。VMで切っておけば、ゲストOSレベルの障害には耐えられます。DBMSのもつ調整だと、DBMSの障害で全滅することもありえます。また、VMで区切っておけば、運用面で独立性が上がります。逆に、OSレベルやVMレベルで区切ってしまうと、壁が増えることになる(小部屋状態になる)ため、リソースが有効活用されない恐れがでてきます。壁を柔軟にしたり、仮想にすることも考えられますが、それも上記のデメリットがあります。結局、どの方法も一長一短なんだなあと思います。

これらの製品を採用するときは、耐障害性、運用性、調整のルールといった観点で選んでみてはいかがでしょうか。

[ 2009/11/23 03:39 ] アーキテクチャ | TB(0) | CM(0)
プロフィール

odakeiji

Author:odakeiji
小田圭二 日本オラクルのテクノロジーソリューションコンサルティング統括本部においてデータベースのコンサルタントをしている。今までのキャリアでは、社内教育部隊で、データベースやOS、ネットワークを教える経験を5年ほど積んだり、コンサル部門で主にDB(インフラ含む)のコンサルを10年程度経験した。また、コンサルタントとして、主に大規模ミッションクリティカルシステムを担当。社内では”火消し”とも呼ばれ、システムトラブルの火消しをいくつも担当していたこともある。
ポリシーは、「OracleもOS上で動くアプリケーションにすぎない。だから、OS、ストレージ、ネットワークを学ぶべき。アーキテクチャから考えろ」。
スキル面の興味は、アーキテクチャ、DBA、インフラ技術、教育、コンサル手法など。
本ブログのポリシーは「週に1回、DBAやインフラ担当者の役に立つ記事を書きたい」です(守れるだけ、守りたい・・・・)
なお、本ブログにおいて示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。ご了承ください。

私の主な著書の紹介です。もしよかったら、お役立てください。他にもオライリーなどがあります

●「絵で見てわかるOS/ストレージ/ネットワーク データベースはこう使っている」小田圭二 著
私のポリシーである”DBMSもOSの動くアプリケーションに過ぎない”に基づいて、OSとDBMSの関係、ストレージとDBMSの関係、ネットワークとDBMSの関係、を解説した珍しい書籍です。DBを学んでひと段落したら、DB使いもインフラ全体を意識しなければなりませんが、そのような人にお勧めです。企業ユーザー向けのIT本としては、2008年度翔泳社No1だとか(最後は出版社談)。

●「絵で見てわかるOracleの仕組み」 小田圭二 著
教育に携わる者としての私の思い「丸暗記するな。アーキテクチャを知るべき。絵で説明すべき」を具体化した、Oracleの入門書です。Oracle初心者向きですが、Oracleの基礎となる部分の動きを解説しているため、バージョンに依存せずに何年先でも使えます。逆に、本書の内容を理解せずに、ひたすら丸暗記すると応用力が身につきません。この本を読むだけで何かできるようになるわけではありませんが、アーキテクチャを身につけて、本当の技術力を身につける第一歩として欲しいと思っています。

●「44のアンチパターンに学ぶDBシステム」 小田圭二 著
本書は、企業のDBシステムの設計/構築から運用管理、プロジェクト管理までの各フェーズにおけるトラブル(失敗)事例について、アンチパターン(べからず集)とその回避策/防止策として解説するものです。チェックリストとして使っていただいても構いません。分かっていてもアンチパターンは避けられないことも多いものです(政治とか)。そういう方には、同じ仲間は多いのだなと再認識していただくための一服の清涼剤としていただければと思います。

●「門外不出のOracle現場ワザ」 小田圭二 他 著
一番最初に出た本です。結構とがった内容を扱っています。
・パフォーマンス分析の考え方(私の担当)
・性能テストや障害テストの仕方、設計の注意点(主に私が執筆)
・コストベースオプティマイザ(10gベース)のアーキテクチャ
・コネクションプーリング
最新のOracleの内容は含んでいませんが、今でも性能の考え方やオプティマイザの考え方は使えるはずです。オプティマイザをここまで解説している本を私は知りません。

●「続・門外不出のOracle現場ワザ」 小田圭二 他 著
「続」の名前の通り、次に出た本です。ちょっと尖り過ぎたかもしれません^^; でも本当に使う内容を選んだつもりです。一流になりたい・他の人と差をつけたい人にお勧めでしょうか。
・性能の良いSQLの書き方
・文字化けの仕組み
・障害(特に性能やハング)の分析・対応方法(私が執筆)
・障害をリアルタイムに分析・対処する方法(私が執筆)
・オプティマイザの使い方ノウハウ
・アップグレードのノウハウ

●「データベース」小田圭二 他 著
私にしては堅い本です。なんせ、共同執筆者が大御所の國友義久先生です。階層型DBMS、ネットワーク型DBMS、リレーショナル型DBMS、XMLDBMS、OO(オブジェクト指向)DBMS、DBMSの持つ機能、DBMSのセキュリティ、データベースの著作権、監査、モデリング、正規化といった内容を網羅しており、深い記述は無いものの、DB技術全体を抑えるのに向いている一冊です。ある程度技術力がついたエンジニアの方が、DB全体を振り返りたい(勉強したい)というときの最初の1冊としてお勧めです。