2020/09/09
新型コロナウイルスに罹患された皆様と、感染拡大により生活に影響を受けられている地域の皆様に、心よりお見舞い申し上げます。
KDDIクラウドプラットフォームサービス(以下、KCPS)の開発担当の中村です。
私の所属するグループでは、法人ユーザ様向けクラウドサービスであるKCPSの開発に加え、KDDIの社内用・事業用システムをホストするプライベートクラウドの開発も行っています。今回はこのプライベートクラウドにおいて、我々が行った機能エンハンスメント、CaaS(Container as a Service)運用を支える構成管理システムについての取り組みを通じて、KDDIのエンジニアがどのような考えを持ってシステム開発を行っているのか、その一端を共有させていただきます。
我々の企業理念である「豊かなコミュニケーション社会の発展に貢献する」を実現するため、社会インフラを担う通信事業者として、24時間365日、安定したサービスを提供し続ける使命を持っています。その使命を全うするため、我々通信事業者のエンジニアは、社会インフラの一部として極めて重要な通信サービス網の構築・運用にも耐えうる、高い信頼性・性能・堅牢性(=キャリアグレード品質)を持ったシステムを実現することを日々意識し、開発業務に取り組んでいます。
KDDI社内において、各システムはその社会的な重要性、利用者数などからいくつかのカテゴリに分類され、重要度が高いシステムの場合、障害発生時には1時間未満の復旧や、3重、4重障害を意識した設計など、高信頼なシステムを実現することを求められます。
今回ご紹介するKDDIの社内用・事業用プライベートクラウドにおいても、メール関連のシステム、災害時にご利用いただくサービス、決裁系の機能など社会インフラとして重要なサービスが稼働していることもあり、私が担当するKCPS同様に、我々がキャリアグレードと呼ぶ非常に高い品質を意識した開発を行っています。
今年度より、KDDI社内用・事業用のプライベートクラウドにて、CaaSを実現する機能の利用を開始いたしました。KubernetesをKubernetesで管理する思想を取り入れ、少ない人数でも対応できるよう、自律的に動作する自動化を前提としたCaaS機能となっています。
一般的に、CaaS上で構築されるようなクラウドネイティブなシステムは障害で落ちることを前提にして設計されるため、システムを構成する各インスタンス(コンテナ)は1台ではなく複数構築して冗長性を担保し、また調子が悪ければ破棄して再構築する、といった運用が行われます。構築されるインスタンスは大量に構築されることになるため、1つ1つを管理するような面倒なことはされず、また高頻度で作成/更新/破棄されるため、管理対象とされることはありません。
一方、キャリアグレードな品質での運用性を担保するにはそうはいきません。システムを構成する各インスタンスがどんなに大量に構築されていても、高頻度で作成/更新/破棄されることがあっても、適切に管理し、障害発生時の影響範囲の特定、利用ユーザへの通知、社内関連部署との連携、また障害を受けての原因究明・改善、といったことを全て迅速に行える状況を常に維持する必要があります。正直、数千、数万に及ぶデータを適切に管理し、それを維持し続けることは非常に大変なのですが、そういった仕組みを実現しないことにはキャリアグレードな品質を維持し続けることは困難なものとなります。
今回のCaaS機能開発においてもこの視点を意識し、物理レイヤ、仮想レイヤ、コンテナレイヤを紐づけて、大量にあるインスタンスを適切に管理することのできる構成管理システムを構築いたしました。このシステムを活用することで、物理サーバ障害時に、仮想レイヤでの影響範囲に加えどのコンテナに影響があったのか、コンテナレイヤでの影響範囲も含めて5分以内にサービス影響範囲の特定ができるようになっています。
数年前までは、システム開発の多くを開発パートナー様に依存した体制で行ってきましたが、近年は激しく変化するビジネスニーズに応えるためのアジリティ向上や、開発パートナー様と対等な関係でキャリアグレードを意識した新たな価値を共創していくための技術力向上を狙い、自社エンジニアを中心とした内製開発や、OSS(Open Source Software)の活用、アジャイル開発を推進しています。今回のCaaS機能開発、CaaSを管理する構成管理システム開発においても、自社エンジニアを中心としたアジャイル開発で機能開発を行ってきました。
CaaSを管理する構成管理システム開発に着手した当時は、世の中に我々の要望を満たすサービスや製品がなかったこともあり、以前ならば開発パートナー様に要求仕様書を出し、見積をいただき、機能開発を行う、とするところでしたが、予算や時間も限られている状況下であったこともあり、自然と「世にないのであれば自分たちで開発してしまおう」という考えが生まれ、3カ月という短期間で実現にこぎつけることができました。短期間で実現できたこと自体も非常に喜ばしいことなのですが、それ以上に「ないものは作ってしまおう」という考えが自然と出てくるマインドセットへ変革できたことは、これまで推進してきた組織的な取り組みが実を結んだ大きな成果であると感じています。
今回ご紹介差し上げた開発を含め、開発を通じて培ったスキルやノウハウは、提供中のクラウドサービスへのラインアップ追加や、5G時代におけるEdge Computing Service開発などで存分に活用し、開発パートナー様と共に顧客提供価値を最大化できるよう役立てていく所存です。今後も引き続き信頼性の高い、且つ革新的なクラウドサービスの機能や新サービスをリリースして参りたいと思いますのでご期待ください。
※本取り組み内容は、9月4日公開のITmedia様の記事、ならびに9月9日公開のKDDIのオウンドメディア「be CONNECTED」にも掲載されております。