全4730文字

DevOps基盤を整備し、開発チームが運用監視に積極的に携われるようにした。マネージドサービスでインフラ作業や運用監視作業の省力化を図った。分散トレーシングにより、オブザーバビリティーを向上させている。

 三越伊勢丹のDX(デジタルトランスフォーメーション)を推進する目的で、筆者らはDevOps基盤を整備しました。今回は運用監視に焦点を当て、実装した機能などを説明します。

開発チームが運用監視に携わる

 運用監視作業にはシステムの稼働状況の監視、アラートの対応、その他スケジューラーやバックアップの設定などがあります。旧来のオンプレミス環境では、データセンターに場所を借り、そこに自社で購入したラックやサーバーを配置するケースが多いといえます。そのため運用監視センターを準備し、システムの監視や運用作業も自社で行うことが一般的です。運用監視センターは24時間365日オペレーターが常駐し、サーバーの管理を行うだけではなく、システムからアラートが発報された場合にはすぐに対応し、必要があれば開発チームの担当者に連絡します。

 筆者らがお手本としたNetflixは、2012年時点でシステム管理者が24時間常駐している運用監視センターを廃止し、代わりにクラウド運用信頼性エンジニアリングチーム(CORE/Cloud Operation)を開発組織の中に作りました。さまざまな作業が自動化され、運用監視センターの役割が小さくなってしまったためです。

 三越伊勢丹では、データセンター環境もあるため運用監視センターの廃止はしていませんが、DevOps基盤においては運用監視センターの役割を限定し、開発チームが運用監視に積極的に携われるようにしています。ここで使われるツールがマネージドサービスとオブザーバビリティーサービスです。

マネージドサービス

 マネージドサービスはインフラ作業の自動化にも効果がありますが、運用監視作業においても大きな意味があります。クラウドサービスでは、クラウドベンダー側に、そのサービスを安定・安全に提供する責任があります。一方で、ユーザー側にはそのサービスを正しく利用する責任があります。これを責任共有モデルと呼びます。

図 責任共有モデル
図 責任共有モデル
クラウドとユーザーで責任を分担する
[画像のクリックで拡大表示]

 オンプレミス環境では物理的なデータセンターやネットワーク、サーバーなどを自社で管理する必要があります。クラウドサービスでは、こうした物理インフラはクラウドサービスが提供します。また、クラウドサービスの提供形態であるIaaS、PaaS、SaaSにおいても、その責任範囲が異なります。

 PaaSになると、物理インフラやOSに加え、ネットワーク設定やアプリケーションについてもクラウドベンダーが一部の責任を負います。三越伊勢丹で採用しているコンテナサーバーレス環境の場合、コンテナ化されたアプリケーションをデプロイします。OSの管理は分離されており、OSへのセキュリティーパッチの適用やバージョンアップなどはクラウドベンダーが自動で行います。

図 コンテナサーバレスの例
図 コンテナサーバレスの例
PaaS採用で自動化を進める
[画像のクリックで拡大表示]

 障害に対しても、稼働している物理インフラに障害が発生すると自動で正常な物理インフラにフェイルオーバーしたり、ネットワーク監視によってアプリケーションへのポーリングが自動的に行われ、反応がない場合には自動的に再起動したりといった仕組みが提供されます。PaaSを採用すれば、こういった運用監視作業そのものが不要になります。

 ただし注意点として、そのマネージドサービスが求める要件に従う必要があります。コンテナサーバーレス環境では当然、コンテナ化が必須となります。そのため従来のアプリケーション構成とは合わないケースがあります。しかし、IaaSに比べてかなり運用監視作業を減らせるため、DevOpsの推進に向けて、PaaSの採用は必須といえます。