マイクロソフト主催のContainer X mas Partyで知るKubernetes導入のリアルな現実
MSのエバンジェリストが語るKubernetes
その後に登壇したマイクロソフトの真壁徹氏は「ダイハードin the Kubernetes World」と題して、セッションを行った。かつてはHPEでOpenStackのエバンジェリストであった真壁氏らしく、OpenStackとKubernetesの比較、Kubernetesで苦労した部分としてKubernetesが壊れる際のポイントなどを解説した。
このスライドで真壁氏が紹介したのは、以下の公式ドキュメントだ。
A general overview of cluster failure modes
多くのトラブルの内容とその対応方法を紹介した真壁氏だが、Kubernetesによってこれまで出来なかった運用が可能になったことを紹介した。ここでは特に、パブリッククラウドサービスを始めとして多くの選択肢があることを説明し、チャンレンジすることを恐れないで欲しいと語った。
Fringe81が実践した「頑張らないKubernetes」
最後に登壇したのはインターネット広告を運用するFringe81の森本氏だ。「頑張らないKubernetes/Real World Kubernetes」と題したセッションは、Kubernetesに詳しいエンジニアがいないという状況で、いかにKubernetesを導入したのか?という内容だ。
Kubernetesの導入に際しては、現行のDockerベースのシステムの運用があまりにマニュアル主体であったため、デプロイ、リソース管理、障害時の対応が非常に困難であったという反省から始まったという。
Kubernetesの導入によりデプロイ、リソース管理、障害時の対応が容易になることを目指したという。
ただし前提として、Kubernetesに対する知識、経験がない、運用するシステムの性能に関する要求がシビアであるという中での導入ということで、リスクの少ないシステムから導入を行ったと説明した。
ここでタイトルである「頑張らないKubernetes」という意味が明らかになった。つまり頑張って経験を積んだ上でKubernetesを導入するのではなく、経験が少ない状況でも導入できたことを共有したかったということだろう。
導入されたシステムはAzure上のマネージドサービスであるAKSで、2018年6月にGAとなったサービスだが、Fringe81のサービス開発が5月から7月だったという時期的な状況とも重ね合わせると、ギリギリのタイミングでGA直後から利用しているということになる。
ローカルの開発環境、ステージング環境、本番環境というシンプルな構成をそのままネームスペースに割り当てて、それぞれの構成情報をYAMLで管理しているというところはマニュアル通りだ。
マニフェストの管理は、非常に多くのYAMLファイルを管理しなければいけないということで、上海のKubeConでも注目されたKustomizeを利用しているという。Kustomizeに関しては、以下の記事の後半を参照いただきたい。
参考:KubeConChinaで見たKubernetesエコシステムを支えるツールたち
他にも監視にはSaaSのDatadogを採用し、GCPやAWSにも適用することで横断的に利用しているクラウドサービスを監視できるという。ここでのポイントは、ベンダーにロックインされないように心掛けているという部分だろう。
Kubernetesの構成に関して「常にシンプルにすることを目指している」という部分は、とかく複雑と言われるKubernetesの利用についてのヒントになるだろう。これもあまりレガシーなシステムが存在しないベンチャーならではかもしれないが、既存のシステムを切り離してマイクロサービス化、Kubernetes化する際の要点になると思われる。
もう一つの知見は、無理してステートフルなシステムをKubernetesに載せようとせずに、一番向いていると思われる部分をシステム化したという部分かもしれない。既存のシステムとの連携は一旦置いておいて、ツールに向いた業務に適用するという「頑張らない姿勢」がよく分かるセッションとなった。
最後に語られた「まだリリース直後のAKSであったが、思っていたよりも問題なかった」という辺りは、マイクロソフトにとってはありがたいエンドースメントだったように思える。パブリッククラウドで先行するAWSを追いかけるマイクロソフトにとって、オイシックスやFringe81が発表したユーザー事例の講演は、心強い応援となったと言える。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- プログラミング言語「Rust 1.55」リリース
- プログラミング言語「Rust 1.31」リリース、「Rust 2018」最初のバージョンに
- プログラミング言語「Rust 1.31」リリース、「Rust 2018」最初のバージョンに
- プログラミング言語「Rust 1.56」および「Rust 2021 Edition」リリース
- プログラミング言語「Rust 1.40」リリース
- プログラミング言語「Rust 1.32」リリース
- プログラミング言語「Rust 1.32」リリース
- プログラミング言語「Rust 1.52」リリース
- プログラミング言語「Rust 1.22」リリース
- プログラミング言語「Rust 1.13」リリース