通信事業者のT-Mobileが、PaaS+Kubernetesで進める社内システムの迅速なデリバリー:KubeCon + CloudNativeCon 2018詳報(6)
T-Mobileの社内IT担当部署は2016年以降、社内システムでPivotal Application Service(PAS)を用い、クラウドネイティブなアプリケーションの構築を進めてきた。だが、2018年にはPASを補完するためKubernetesを導入。利用規模は今後急速に拡大していくだろうという。
2018年12月に開催されたKubeCon + CloudNativeCon 2018では、通信事業者のT-Mobileが社内システムにおけるKubernetes利用について説明した。
T-Mobileの社内IT担当部署は2016年以降、社内システムでクラウドネイティブなアプリケーションの構築を進めてきた。
同社プラットフォームエンジニアリング テクニカルスタッフのジェームズ・ウェブ(James Webb)氏によると、毎年、携帯電話端末メーカーが新機種を発売する10月、およびブラックフライデーの時期には受注管理システムやこれに関連する社内システムに通常期の3倍の負荷が掛かるといい、従来の環境に比べ、さらに柔軟にアプリケーションがスケールできるようにする目的で、2018年にKubernetesを導入したという。
従来の環境とは「Pivotal Application Service(PAS)」(旧称「Pivotal Cloud Foundry」)。ウェブ氏は2016年に3人のチームを立ち上げ、PASの社内普及と社内ITシステムクラウドネイティブ化の促進活動を始めた。現在、同チームのメンバーは25人に成長。IaaS、PASを用いたPaaS、KubernetesによるCaaSの運用および社内ユーザーのサポートを行っている。
PASの導入は、大きな効果をもたらしたとウェブ氏は話す。
「以前は、例え1行のコードであっても、本番にもっていくまでに7カ月、72ステップを要していた。これでは市場や競合の動きや、当社の若干エキセントリックなCEO(斬新な言動で知られるジョン・レジェール氏のこと)の気まぐれへの対応を考えると、これでは時間がかかり過ぎだ。社内が十分なスピードで動けなかったために、システム構築を外注せざるを得ず、発注先にシステムを人質に取られるなどの悪いことも、一度ならず起こった。そこでアプリケーション開発者にとって扱いやすい環境を提供するために、PaaSを採用することにした。以前7カ月かかっていたことが、今では同じ日のうちに完了する。昼のうちに本番へのデプロイが終わり、ダウンタイムもゼロで、顧客への影響は全くない。これは私たちにとって、非常に大きなメリットだった。従来よりもはるかに素早く、ビジネスの変化に対応できるからだ。また、マイクロサービスへの移行も莫大(ばくだい)なメリットを与えてくれた」
PaaSの導入により、開発から本番投入までの時間短縮、アプリケーションパフォーマンスと信頼性の向上、デプロイ頻度の増加、開発者にとっての効率向上、ハードウェア利用効率向上などのメリットが得られたという
T-Mobileにおける現在でのPASの利用規模は、アプリケーションインスタンスにして3万4000、このうちおよそ40%が本番システムだという。また、本番システムに関わるトランザクション数は、約3億/日だとしている。
PaaSは素晴らしいが、全てには適用できない。だからKubernetes
このようにT-Mobile社内での利用が広がってきたPASだが、「PaaSは適切なワークロードを動かすならば素晴らしいが、そうでない場合、かなり嫌な体験をすることになる」と、同社プラットフォームエンジニアリング テクニカルスタッフのブレンダン・アイ(Brendan Aye)氏は話した。
アイ氏によると、最近ではベンダーがアプリケーションコンポーネントをDockerコンテナとして提供することが増えてきた。こうしたコンテナ(PASのBuildpackで構築されたものでないコンテナ)をPASで動かそうとすると、障害が発生することが多いという。また、従来型のアプリケーションでは、TCPでルーティングを行うものがある。PASではHTTP/HTTPS以外のトラフィック管理機能が限られているため、こうしたアプリケーションをスケールする形で運用できない。永続ストレージへの対応の問題もあった。こうしたことから、結果的に、開発の現場ではあちらこちらに「シャドーDocker」(社内ユーザーが自ら立ち上げたDockerコンテナ環境)が散在していた。
そこで、一般的なアプリケーションを制限なく、スケールするように動かせる社内システム用プラットフォームとして、Kubernetesを提供したのだという。
Kubernetesについては、展開が始まったばかりという状況だ。2018年12月の講演時点でシングルテナント/マルチテナントのクラスタが24、アプリケーション数は5、本番トランザクション数は約100万/日にとどまっている。だがウェブ氏は、間もなくトランザクション数が数倍に膨らみ、今後1年あるいは1年半の間には、PAS利用を上回る規模になるだろうと話している。
PaaSのメリット、特にアプリケーション開発者にとっての効率を認識しているウェブ氏たちは、PASの利用をやめてKubernetesへ移行すると言っているわけではない。頻繁に少しずつ更新する必要のあるWebアプリケーションの開発および運用は、引き続きPAS上で行っていくという。すなわち、永続ストレージや、外部提供のDockerイメージを使うようなアプリケーションの構築・運用は、Kubernetes上で行っていく。
一方で、Kubernetesについても普及のため、開発者のために積極的な支援を提供していく。このために、プラットフォームエンジニアリングのチーム、DevOpsのチームが提供すべき機能を上図のように整理し、これらを早期に全て満たすことを目指しているという。
「基本的には、CaaSの開発者にとっての使い勝手を、できるだけPaaSに近づけていきたい」(ウェブ氏)
このため、T-Mobileは「Pivotal Container Service(PKS)」をメインで使っている。ライフサイクル管理はBOSHで自動化する一方、PKSのクラスタ自動デプロイ機能を活用し、Kubernetesのような環境についてのノウハウを持たないアプリケーション開発者に対し、すぐに使える環境を提供していく。
例えば、クラスタの構築はプラットフォームエンジニアリング側が用意し、社内ユーザーに提供する。社内ユーザー部署のDevOps担当者は、これを受けて負荷分散や証明書の提供、OSのパッチなど、アプリケーション開発者が開発作業に専念できるようにしていく。慣れてきたユーザー部署に対しては、徐々に自らクラスタから作ってもらうようにしていくという。
Copyright © ITmedia, Inc. All Rights Reserved.