近年システムのクラウド化が進んでいます。そこで注目を集めているのが、「運用設計」です。システムは開発して終わりではありません。如何に安定稼働を担保し継続的に利用できることが重要です。
運用設計とは安定稼働のための変更・更新管理、定期メンテナンス、障害対応、ヘルプデスク対応など様々なルールやプロセスを定義しフレームワーク化を目的とした設計です。本記事では運用設計についての基本的な知識、クラウドにおける運用設計とそれを支援するAzureのサービスについて解説します。
運用設計の重要性
運用設計で設計されるフレームワークは従来のオンプレミス環境でも求められていました。しかし近年ではシステムのクラウド化を背景にミッションクリティカルなシステムが増加しており品質、効率に加え運用に対してもビジネス同様スピードが求められるようになりました。
なぜなら近年のシステム障害はビジネスに甚大な被害をもたらすためです。特にクラウド環境のようなパブリックなサービスを利用している場合、システム障害の把握を自社で行えない範囲もあり予め事業継続のための代替プランを用意しておくことなどがポイントです。
このように障害発生といった不測の事態や、日常の運用業務をスムーズに進めるためのルール、プロセス、体制を予め定義し、ビジネスに影響が出るリスクを最小限に止めるために運用設計の重要性が高まっています。
開発設計と運用設計の違い
設計というキーワードではシステム開発の上流工程である「開発設計」という言葉の方が馴染みあるのではないでしょうか。開発設計と運用設計の違いについて解説します。
開発設計
開発設計でフォーカスされるのはシステムの機能要件です。これはユーザーがシステムに対して求めている機能を指します。この機能要件を実現するためのシステムを設計することになるのが開発設計です。ユーザーのニーズが盛り込まれ業務と直結するため具体的に語ることができる項目です。
開発設計の例
- サーバーのスペック
- データベースのスペック
- 業務システムのプロセス
- ユーザーインターフェース
- 管理機能など
運用設計
運用設計でフォーカスされるのはシステムの非機能要件です。システムが具体化しないと語りにくい部分です。業務に直結しない項目も含まれ、技術要素に対し開発者と運用者との共通認識を持つのが難しい項目と言えます。
運用設計の例
- 可用性(レスポンスは3秒以内にしてほしいなど)
- 拡張性(将来的に2倍の性能に拡張できるようにしたいなど)
- 保守・運用性(安定した稼働を実現したいなど)
- セキュリティ(堅牢なシステムにしてほしいなど)
このように開発設計、運用設計は同じ設計でも工程や携わる人が異なるため、根本的な違いが存在します。近年では、機能要件、非機能要件など開発者と運用者がコミュニケーションを密にとりながら開発を進めるDevOpsという考え方が浸透してきています。
運用設計のメリット
システム運用は非機能要件にフォーカスしていることから曖昧に行われてしまいがちです。しかし運用設計をしっかり行うことで以下のメリットを享受することができます。
運用設計のメリット
- 運用スケジュールを予め定義できる
- 障害などの不測の事態を回避(迅速な復旧)ができる
- 業務量を見積もり運用の効率できる
- 体制、マニュアルの適切な整備ができる
- システム移行がしやすい
- より高いセキュリティ対策がしやすい
参考にしたいITILという国際基準のフレームワーク
ITILとは「Information Technology Infrastructure Library」の略です。ITシステムが提供するサービス全般に関連する運用の成功事例をまとめたベストプラクティス集です。
ITILの対象は、サービスの企画・構築・運用というシステムライフサイクルに沿ってストラテジ、デザイン、トランジッション、オペレーション、サービス改善と5つのカテゴリーに分類されています。
ITILはイギリスで1986年にガイドラインが完成し改訂を重ねてシステムの運用管理業務の品質向上を目指す企業のバイブルとなっています。より高度な運用設計を実現するためには開発から運用まで一貫性のある情報連携が必要です。運用設計においてはITILのフレームワークも参考にされることを推奨します。
クラウド運用設計の流れとポイント
運用設計においてオンプレミス環境とクラウド環境で大きな差異はなくほぼ同様に検討を行う必要があります。しかしクラウド環境は共同責任モデルと呼ばれるクラウド環境特有の責任モデルです。オンプレミス環境ではデータ、アプリケーション、設備などの全てがユーザー側の責任で運用する必要がありますが、クラウド環境では責任の一部がクラウド事業者側に移譲されます。
IaaS、PaaS、SaaSという提供サービス形態によってクラウド事業者の責任範囲が広がります。
どの部分までが自社の責任となるのか、またクラウド事業者側との共同責任の場合、どこまで自社でコントロールできるのかなど、クラウドネイティブ時代における運用設計は共同責任モデルを考慮する必要があります。またクラウド環境で提供される管理・運用サービスを活用し、非機能要件に対するアプローチを行うことがポイントです。
Azureが提供する運用機能
Azureとはマイクロソフトが提供するクラウドサービスです。200種類以上のサービスを提供しておりクラウドネイティブな運用設計を実現するために、AzureのメリットやAzureが提供している運用機能の中から代表的なサービスを可用性、拡張性、保守(運用)性、セキュリティの観点から紹介します。
可用性
Azure グローバル インフラストラクチャ
Azureは世界中に200ヶ所を超える物理データセンターが存在し世界最大規模の相互接続ネットワークによって接続されています。グローバルな Azure ネットワークの接続により高可用性、低遅延、スケーラビリティ、最新の機能強化を実現しています。
拡張性
Azure IaaS (サービスとしてのインフラストラクチャ)
Azure. IaaSサービスは、仮想マシンをインターネット経由で利用するサービスです。サーバーやストレージ、ネットワーク、データベースといったインフラストラクチャを、Windows Server、Linuxなどといった好みのOSを選択し構築することができます。料金は従量制の課金です。スケールイン、スケールアウト、スケールアップ、スケールダウンも簡単に行うことができる。システムの利用状況や将来的な拡張計画などに合わせた柔軟な設計が可能です。
保守(運用)性
Azure Monitor
Azure Monitor は、Azure上にある仮想マシンやネットワークなどの状態を監視し、異常時のアラート通知などを行う監視機能です。監視情報をもとにシステムやアプリケーションの実行状態を把握し影響を及ぼす重大な問題を事前に検出することができます。Azure Monitorでは他にもWebアプリケーションのパフォーマンス監視、ログの収集・管理・分析する機能など豊富な監視サービスを提供しています。
セキュリティ
Azure Security Center
Azure Security Centerは統合セキュリティ管理システムとしてセキュリティの運用状況を可視化し1つのコンソールからAzure上の仮想マシンやデータベース、ストレージ、コンテナ、アプリなどのAzureリソースだけでなく、オンプレミスサーバー、他社クラウドの仮想マシンまでも網羅的に監視することができます。
まとめ
今回は運用設計についてとクラウドサービスで運用設計する上でポイントとなるAzureサービスについて解説しました。クラウドサービス時代は如何にスピーディーに運用することが重要な課題です。Azureでは効率的な運用設計が実現可能であり今後ますますクラウドサービスの利用が進むと考えられます。これからの時代鑑みてAzure環境への移行をご検討いただくとともに導入にあたっては、サポート経験が豊富なベンダーからアドバイスを受けることや、導入サポートを推奨します。