Kubernetesへの移行を成功させるには(続き)


Kubernetesへの移行を成功させるにはの続きです。Kubernetesを導入したいけど、Kubernetesは単なるコンテナ処理ツールではなく、開発プロセスの変革をもたらすので、気軽には手が出せない、手を出す余裕がないと感じている開発チームも多いのではないでしょうか。

そこで、Kubernetesマイグレーションの第一歩を踏み出すための指針となればと思い、Kubernetes migration: 4 secrets to a smooth move(Kubernetesマイグレーション: 円滑な移行のための4つの秘訣)という英語記事を紹介し、識者による生の声を引用して、日本語で解説しています。今回はその後半です。

マイグレーション成功の秘訣その3:CI/CDパイプラインを整える

アプリケーションをコンテナ化する最大の利点は、開発/テスト/実用環境といった複数の環境でSDLC(ソフトウェア開発ライフサイクル)を通して一貫したデプロイメント プロセスを適用できる点です。すでにコンテナ化されているアプリケーションをKubernetes環境に移行するのは比較的容易だと前回書きましたが、そこにCI/CD(継続的インテグレーション/継続的デリバリー)パイプラインが確立されていればなおのこと、Kubernetesマイグレーションは劇的にスピードアップします。ここで言う「CI/CDパイプライン」には、いろいろな側面がありますが、あえて端的に言ってしまえば、開発・テスト・デプロイメント プロセスの自動化を指しています。

“It will be extremely useful if continuous deployment is planned upfront and executed for migrating to Kubernetes.” ― Altran社テクノロジー研究イノベーション ディレクターRaghu Kishore Vempati(継続的なデプロイメントが前もって計画され、Kubernetesマイグレーションでも活用できるなら、その意義は絶大です)

つまり、CI/CDがまだ実践されていない場合、Kubernetesへの移行を機にCI/CDツールも導入し、開発プロセスの効率化をセットで行うのが理想的です。

“Make sure that the support technology stack is in place, particularly easy-to-use CI/CD pipelines, which will be critical to a successful transition.” ― Kasten社CEO、Niraj Tolia(Kubernetesの導入をサポートする各種ツール、特にCI/CDパイプラインを準備しておくことが成功の鍵です)

Kubernetesを導入すれば、コード変更やデプロイメントが高速化され、より頻繁に行えるようになります。逆に言えば、それがそもそもの導入目的なので、開発プロセス全体にその準備ができていなければ、開発作業の高速化で、テストや運用にひずみが生じてしまい、せっかくのマイグレーションが無意味になりかねません。CI/CDパイプラインがあれば効果は絶大、という声(Vempati氏)と同時に、むしろそれが不可欠という指摘(Tolia氏)があるのはそのためです。

これは前回、冒頭に引用したKubernetes migration is not just about technology, but people and culture also(Kubernetesマイグレーションは技術面の問題にとどまらず、人と文化の問題)に通じる考え方です。ツールだけでなく、組織全体で意思統一が成されていなければ、マイグレーション後の開発プロセスの高速化がSDLCの他の局面にしわ寄せとなり、Kubernetes導入の利点を生かせなくなります。

マイグレーション成功の秘訣その4:マネージド プラットフォームとサポート ツールを活用する

ここまでを簡単にまとめると、組織全体でしっかり準備して、マイグレーションに適したアプリケーションを見極め、達成しやすい部分から段階的に慎重に進め、CI/CDパイプラインとの整合性を目指すことの意義が理解できました。それを全部クリアできる体制が整ったとして、実際にKubernetesを実装するスキルがなければ結局、前には進めません。よって、最後のポイントはより現実的です。

“Maybe Kubernetes is right for you, but you don’t really have the skills to manage it all yourself. Consider a Kubernetes managed service, ideally one that gives you portability among cloud providers.” ― Red Hat社テクノロジー エバンジェリスト Gordon Haff(Kubernetes導入の適正が確認できたとして、管理するスキルがなければ意味がありません。そこで、マネージド サービスの活用も一考に値します。クラウドプロバイダ間の可搬性があるのが理想的です)

“The best approach to move faster to Kubernetes is to first pick a managed Kubernetes service on one of the public/private cloud platforms.”(Kubernetesへの移行の近道は、まずパブリック/プライベート クラウド プラットフォームで活用できるマネージド サービスを選ぶこと)

と、前述のVempati氏もRed HatのHaff氏と同意見です。最初からすべてを独自にやろうとせずに、利用できるサービスは有効に利用し、少しずつ成功体験を積み重ねて行くべき、というのが、ここで引用されているすべての専門家に共通の考え方です。

たとえば、AKS(Azure Kubernetes Service)やEKS(Amazon Elastic Kubernetes Service)にKastenのK10を組み合わせれば、パブリック、プライベート、ハイブリッド クラウド間のモビリティが確立され、アプリケーション単位で可視化された使いやすいUIでKubernetes環境のモニタリングとデータ保護が可能になります。

Kubernetesの導入においては、各種サポート ツールをあらかじめ検証しておくことが大事です。その際には、マイグレーション後のメンテナンス、セキュリティ、モニタリング(いわゆるDay 2オペレーション)も十分に考慮してください。

関連トピックス