通称「魔境」の更改を巡り開発部門と運用部門が対立――NTT Comの仮想サーバ基盤Kubernetes移行の裏側:「腹を割って話す」ことが大切
NTTコミュニケーションズはオンプレミスの仮想サーバ基盤をマネージドKubernetes環境に移行したという。プロジェクト半ばで課題となった部門間のすれ違い、体制面をどう解決に導いたのか、NTTコミュニケーションズでSREを務める船柳孝明氏が語った。
システムの構築、運用に関して何も悩みを抱いていないという人は少数派だろう。NTTコミュニケーションズ(以後、NTT Com)でサイトリライアビリティエンジニアとして、DevOps基盤開発プロジェクトを担当している船柳孝明氏も、システムのマイグレーションに当たってさまざまな悩みに直面した一人だ。
船柳氏は2021年7〜8月に開催された「Cloud Operator Days Tokyo 2021」の講演「ハイブリッドクラウド移行までの泥臭い道のり」において、2020年7月から2021年3月にかけて実施した、オンプレミス環境からハイブリッドクラウド環境へのシステムマイグレーションで、技術面のみならず技術以外の側面でどのような悩みに直面し、どう解決したかを紹介した。
システム更改を機に、「魔境」の根本的な課題解決に着手
船柳氏がマイグレーションに取り組んだのは、典型的なオンプレミスのシステムだ。NTT Comの社内環境で動作する仮想マシン基盤で、ネットワークは社内網、対向するシステムも基本的に社内網につながっている。そして、他のシステムやデータベースなど重要なサーバとはDMZ(DeMilitarized Zone)を介して接続することで保護される「境界型セキュリティ」で分離し、セキュリティを保ってきた。
だが、サポート終了(EOL)に伴う更改の時期がやってきた。「よくある話ですが、先送りにしていたことが災いとなりました。ソフトウェアは開発とともにアップデートしていたのですが、OSやミドルウェアは触れられておらず『魔境』と化していました」(船柳氏)
システム更改に当たって船柳氏は「そもそも今の構成のままアップデートし、延命していくのが最適解なのだろうか」と根本的な部分を考えることにした。というのも、既存システムには、幾つか課題があったからだ。
「1つ目の課題は、基盤開発が属人化していたことです。システムの構成管理には『Ansible』を利用していましたが、Ansibleに触れられる人が限られていました。また2つ目の課題として、Ansibleでアップデートを積み重ねてきた結果、環境ごとに挙動が異なってしまっていました」(船柳氏)
さらに、開発担当、運用担当、環境を用意するシステム担当がそれぞれ縦割りの構造となっており、DevとOpsが分離しているという体制面の課題や、オンプレミス環境に甘えたセキュリティ対策も課題であり、この機に改善したいと考えたという。
開発者と運用者によるDevOpsを目指し、Kubernetesベースの新環境を構想
船柳氏は「できるところから始めてみよう」というコンセプトで、既存システムのマイグレーションに取り組んだ。
重視したのは「部署の壁を越えて、基盤の開発者と運用者がワンチームになれること」。その手段として、Infrastructure as Code(IaC)の実現を目指し、Ansibleではなく「Terraform」を採用することにした。「宣言的記述で基盤構成を見える化し、GitHubを用いてそのコードを基盤の開発者、運用者、相互に回していくことで、基盤の開発者と運用者が一体となってDevOpsができる仕組みを選択しました」(船柳氏)
また基盤の課題を踏まえてシステムを再設計した。基盤をイミュータブルな設計にするために、仮想サーバからKubernetes環境に変更することにし、マネージドサービスの「Google Kubernetes Engine」(GKE)を選択することで、エンジニアが開発に集中できる環境にした。
ただ、このシステムが通信する対向システムはオンプレミス環境にある。そのため、Google Cloud Platform(GCP)とオンプレミスとをつないだハイブリッドクラウド構成が必要という結論に達した。
「ここまで来ると、アプリケーションのビルドやデプロイも、従来のように手作業ではなく自動化させたいところです。そこで、内製開発しているCI/CD(継続的インテグレーション/継続的デリバリー)パイプライン『Qmonus Value Stream』を採用することにしました」(船柳氏)
つれない返答に対立するのではなく、腹を割って話し根本的な理由を探る
「これで俺の考える、最強の基盤構想が出来上がった」――そう考えた船柳氏は意気揚々と社内ITシステム担当のところに赴き、「Kubernetesを使いたいのでGCPを一つ、トッピングでオンプレミス接続をお願いします」とオーダーした。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- アジャイルとDevOpsはどう違う?
アジャイルとDevOpsはいずれも、「最終プロダクトをできるだけ効率的かつ迅速に提供する」ことを目的としている。では2つの方法論は、どこが異なるのか。WhiteSourceは「チームと分担」「戦略とプロセス」に違いがあると主張する。 - 「超レガシーな企業でもクラウド移行は実現できる」――情シス担当の熱意から始まったコープさっぽろの挑戦
OSやネットワーク構成は古くシステムや基盤も組織ごとに縦割り――。北海道の生活協同組合、コープさっぽろはレガシー環境を改善していくために「全部AWSに持っていったらいいやんけ」の精神でクラウド移行を選んだ。どのように進めていったのか。 - 開発1カ月で「セゾンのお月玉」をリリース――クレディセゾンが語るDX推進のコツ
クレジットカードで知られるクレディセゾンはDXの取り組みを進展させ、新規サービスを1カ月で開発するなど価値創出につなげている。どのような体制を築き、何に取り組んできたのか。