第10回 システム開発は最初に運用まで見通すべし:キーワードでわかるシステム開発の流れ(2/2 ページ)
せっかく作り上げたシステムも、動かなければ意味がありません。今回は、実運用してからのトラブルについて解説していたいと思います。
「最近、ネットワークが遅くないか」――保守サービスの利用――
赤井君 「最近、インターネットショップの画面が表示されるまでの時間が長く感じませんか?」
青木室長 「いわれてみると確かにそんな気がするなぁ。利用するお客さまが多くなり過ぎて、いまのサーバでは性能が追いつかなくなっているということかね?」
赤井君 「私もそれを疑って調べてみたんですけど、当初想定した利用者数にはまだまだ遠く及びませんし、社内に置いてある開発用の予備サーバには、実際の何倍もの会員数のテストデータが登録されているのですが、あっという間に処理が終わってしまうんです」
青木室長 「データセンターの回線速度とか関係あるのかい?」
赤井君 「関係しているかもしれませんね。契約している回線は共用型で、ほかの企業と共用で利用していますから、その影響を受けているのかもしれません。早速、データセンターの担当者に確認してみます」
インターネットでサイトを運営する場合、すべてを自社設備で賄うのは不可能です。自前でハードウェアを調達して自社内に設置し、さらに運用人員も社内に確保して、極力自社内での完結する体制を目指したとしても、インターネット回線は、通信サービス事業者から借り受けることになります。
そうしたサービスの提供を受ける際に、「どのようなサービスを、どのようなレベルで提供を受けられるのか(保証されるのか)」について明確にし、それに対応する費用を負担することを取り決めた契約として、「サービスレベルアグリーメント」(SLA)と呼ばれるものがあります。
例えば、ネットワーク回線について定める項目としては、次のような項目が考えられます。
- 回線速度(最低通信速度、最大通信速度など)
- 回線の利用形態(帯域専用型、帯域共用型など)
- 回線二重化の有無
- 利用可能期間(24時間×365日、月1回3時間以内の保守停止など)
- 障害発生時の復旧までの所要時間
また、システム運用(保守)サービスであれば、次のような項目が考えられます。
- サーバに対する実施操作(電源ON/OFFのみ、ソフトウェアの起動までなど)
- サポート時間(24時間×365日、8:00〜20:00×365日など)
- サーバの監視サービスのレベル
- ハードウェア障害発生時の対応
サービス利用に当たっての保証範囲を明確にし、それに見合うコストを支払う。その代わり、保証範囲を満たさないケースが発生すればその分の利用料金を返還・減額するといった内容が契約に盛り込まれていることが多いようです。
前述の青木室長と赤井君のやり取りからすると、ネットワーク回線は共用型ですから、他企業などの影響を受ける可能性があることは確かです。
ですから、ネットワーク回線(速度)について、「最低でもどれだけの回線性能を保証するか」という点が明確に取り決められているかどうかが、データセンター担当者への確認要点となりそうです。
また、今回は赤井君自らネットワークの異常に気づいたようですが、こうした面の監視サービスを保守サービスとして提供しているデータセンターもあります。「障害と思われる現象が発生したら企業担当者に連絡をする」までの簡易なサービスから、「連絡のみならず、初期対応までをデータセンターのエンジニアが実施してくれる」までをデータセンター側で請け負う高機能なサービスまで、さまざまな種類のサービスが用意されています。各企業の運用体制やコスト感覚にふさわしいサービスを見つけて利用するという形です。
さらに、データセンターだけでなく、開発ベンダとも障害発生時の対応を綿密に打ち合わせておくことが重要です。
仮に、瑕疵担保期間中の不具合によるシステム障害であっても、深夜や休日にかかわらず24時間365日、いつでも修理を要請できるわけではありません。
そのような事態の発生に備えて、「障害発生時はどのように対応するか?」「通常の保守作業としてどのようなことを実施するか?」「将来的なデータ増加などへの対応はどうするか?」など、保守契約の中で明確に定めておくと安心ですし、機械的な作業だけではなく、そうした面まで含めてサポートしていくのがシステム管理者の役割といえます。
青木室長 「その後、ネットワークの方はどうだったんだい?」
赤井君 「案の定、回線を共用しているほかの企業が毎日膨大なデータをサーバとやりとりしていたようで、そのため、速度が遅くなっていたようです」
青木室長 「こればっかりは自社で工夫して防げることではないからなぁ。どうしたものか」
赤井君 「データセンターからは、利用約款の範囲でその企業に注意は与えてもらいましたが、こんなことが繰り返し起こるようであれば、専用型回線への切り替えを検討しなければいけないかもしれませんね」
青木室長 「費用はかかるが、お客さまに迷惑がかかりってばかりでは、インターネットショップの当初のコンセプトにも反するわけだし、仕方ないかもしれないな」
ここまでのキーワード
【サービスレベルアグリーメント(SLA:Service Level Agreement)】 ネットワーク回線サービスや保守サービスを提供する際に「どこまでの品質を保証するか」を明確に定めたもの。
筆者が、かつて小規模ながら「ホスティングサービス」を展開する会社に在籍していたころ、データセンターのネットワークを共用する他企業が、モラルもマナーもないようなネットワーク利用を行い、その影響を受けて自社のホスティングサービスがほぼ接続不能になったことがあった。どんなに顧客企業からクレームを受けても自分たちでは対処しようがないもどかしさは相当つらかった。
その後、データセンターの営業担当者が謝罪に訪れ、担当者の説明で原因も分かったのだが、原因が分かったからといって後から何かできるわけでもなく、顧客企業には、ただただわびるばかりだった記憶がある。
「保証がない」とはそういうアクシデントの発生リスクもある程度許容するということ。「保証を受ける」ということは、相応の費用を払い、そのようなアクシデントの発生リスクを低減または回避すること。そのリスクを許容するか、低減または回避するか、リスクマネジメントの一環として考えておきたいところである。
本番稼働から3カ月が過ぎて
青木室長 「いやぁ、システムも随分安定してきたし、業務の中にもすっかり溶け込んだようだな」
赤井君 「そうですね。売り上げアップというビジネス的なゴール達成までにはまだ時間がかかりそうですが、営業部も今回のインターネットショップの存在を前提とした販売戦略を練っていると聞きますし、いまのところ成功といえますね」
青木室長 「ああ、本当だよ。本当によかった」
赤井君 「室長も随分、システム開発に関するスキルが身に付いたんじゃないですか」
青木室長 「そりゃあ、担当する前よりは詳しくなったのは確かだな。最近は、プロジェクトマネジメント云々といった書籍も読んだりしてるよ(本当は、社長から読むように指示されたのだが……)」
赤井君 「本当ですか。ちょうど昨日、社長と食堂で一緒になったので、食事しながら話をしていたのですが……」
青木室長 「!?」
赤井君 「今度は取引業者とのやりとりをすべてペーパーレスにするためのサイトを構築したいといっていました。私が、『青木室長とペアでやらせてください』といったら、即決でOKしてくれましたよ。また一緒に頑張りましょうね」
青木室長 「……(トホホ)」
これまでの連載の中では、システム開発で耳にすることの多いキーワードを取り上げて説明を行ってきました。用語をご存じない方に向けて、まずは感覚的にイメージしてもらえることを優先した説明としたため、厳密さや正確さがいま1つの説明内容が多かったように思います。
最近は、書籍やインターネット上のサイトで多くの情報を収集することができますから、そうした情報なども参考に、それぞれのキーワードについてより理解を深めてみてください。まずは、興味を持てた分野や内容からでも「システム開発」という世界に、より深く足を踏み入れてみてはいかがでしょうか。
運用に関してより知識を深めるためのリンク集
連載:止められないUNIXサーバのセキュリティ対策(7)― UNIXサーバの運用管理で欠かせないログ管理 (@IT)
そのログ、活用できていますか―内部統制時代の統合ログ管理を考える (@IT)
連載:障害対応マニュアルを作成しよう(1)―システム障害に対応する、とは? (@IT)
特集:SLAとサービスレベル管理 SLA、サービスレベル管理でベストプラクティスに導く (@IT)
筆者プロフィール
高田 淳志
株式会社オープントーン
Copyright © ITmedia, Inc. All Rights Reserved.