2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
真壁徹氏:(スライドを示して)戦略のサンプルを簡単にまとめてきました。
1個目がAKSの規定や推奨ベースにするということで、これは冒頭で話したKubernetesの推奨、AKSの推奨に従うやり方ですね。AKSだけではなくてKubernetesコミュニティ、あとはまわりのエコシステムが成熟してきて、リスクは下がってきています。
なのですが、このサンプルではマイナーバージョンアップは手動で行います。パッチとか、パッチバージョン、Nodeのイメージのアップグレードは自動でやりましょう。それでスケジュールを工夫します。
夜中にやるとか昼にやるとか、いろいろ工夫できます。こういう戦略です。私は今後はこれがスタンダードになるんだろうなと思っています。
まだ過去のアップグレードの悪い体験、トラブルの体験が残っているお客さまは「Blue/Greenしたいな」と言うかもしれませんが、今後はこれがスタンダードになるんじゃないかなと思います。
実は2023年の秋ぐらいにKubernetesのプロダクトマネージャーが日本に来て、散々議論をして、そのあと私も様子を見ていろいろなお客さまともディスカッションして、実績も見て言っています。これがスタンダードになるんじゃないかなと思います。
ただインプレースアップグレードなので、リカバリー手段はやはり準備しておいたほうがいいだろうと思います。大きく2つのリカバリー手段があります。原因を取り除いてアップグレードを完遂するやり方と、バックアップから戻すやり方です。
私はアップグレードが途中でこけたとしても、その原因を取り除いて、目的のバージョンに上げる、完遂することをおすすめします。そのほうががんばって戻すよりたぶんシンプルです。なぜこけたかはけっこうわかりやすくなっています。先ほど話しましたが、問題の診断と解決機能を見ると、「ここでこけたよ」というものが出ていたりします。
あと最近のAKSのアップグレードツールは、「あ、このエラーが原因だったんじゃないの?」ということを概要画面の一番上に出してくれます。「アップグレードがfaileしたよ。これが原因かもしれませんね」とリンクが出てきて、そのリンクを押すとトラブルシューティングガイドに飛びます。ということもあり、私のおすすめはアップグレードをやりきるというやり方です。このほうがシンプルかなと思います。
(スライドを示して)問題の診断と解決機能を知らない方が多いので、ぜひ使ってみてください。かなり細かく診断してくれます。まだプレビュー(の状態)ですが、最近流行りのCopilot形式というか、チャットで自然言語で問い合わせられるようになるそうです。私もまだ触れていないのですが、今後にご期待ください。
もう1つのインプレースアップグレードのリカバリーは、バックアップから戻すやり方です。ただ、正直これは複雑です。複雑なのであまりおすすめしないのですが、バックアップから戻すほうがいいという方もいると思うので、もしやりたい場合には資料を参考にしてもらえければと思います。
それとBlue/Greenですね。冒頭に話しましたが、これもまだ有力な戦略です。今後これがメインにはならないと思うのですが、いざという時にできるようにしておくのはけっこう大事な戦略です。
なので、Blue/Greenじゃなくて自動アップグレードやインプレースを中心にしていく場合でも、クラスタの前に何らかのゲートウェイなり、リバースプロキシを置いておきたいです。
あとは隣にクラスタを置けるだけのIPアドレスのレンジを持っておくことは、けっこう大事です。あとからインプレースアップグレードができない機能が出てきた時や、Kubernetesのクラスタのネットワークの設計を大きく変えたい時にやはりBlue/Greenをしたくなるので、そういう余裕を持っておくと、後々安心です。
サンプル2ですね。これはサンプル1と相反するものではないのですが、「事前に他のクラスタで十分な検証をしましょう」というやり方です。Azure KubernetesサービスにFleet Managerという機能があり、クラスタのコントロール、オーケストレーションをしてくれる仕組みがあります。
これはアップグレードの順序制御もしてくれるので、検証環境のステージングに先にアップグレードをあてて、それがOKだったらプロダクション、本番にあてるという順序制御ができるようになります。
なので、検証環境を早めに上げて、1週間とか、十分な検証をできる時間をとっておきます。waitで7日間待つなどの設定ができるので、それがOKだったら本番をアップグレードするなんてことができます。
今のFleet Managerでもできるのですが、将来的には大規模なクラスタ環境を作られても、クラスタ5つとか、3つとか、4つとか、そのぐらいの数で、複数クラスタで1つのシステムを作りたい時には、例えば複数クラスタの順序順序でアップグレードしていくなどのコントロールもできるようになるので、クラスタのカナリアアップグレードも夢としてはあります。
今は単純にはできないですが、仕組みとしてはできます。APIを叩くだけです。
自動テストはけっこう重要です。これは深い話なので今日はしませんが、やはり気づくためにはアプリケーションを動かさないといけないので、アプリケーションの自動テストをどこまで仕組みとして作っておくのかは、けっこう大事な検討ポイントです。
ただ、網羅的なE2Eテストはいらないと思います。GUIを全部気にする必要はなくて、代表的なアプリケーションフローを通した時、Kubernetesのアップグレードがこけていると派手にこけるのでわかります。なので、網羅的なE2Eテストはしなくていいかなと思っています。
まとめです。「今日の話は根拠があるのか」みたいな感想があると思うので、大きな実績を話していきます。マイクロソフト自身の実績ですね。「Office 365」や「Teams」、「Bing AI Copilot」や「GitHub Copilot」で使っている方もいます。「Xbox」やOpenAIの「ChatGPT」。これは全部AKSを使っています。24時間365日動いています。
これらのサービスが「アップデートだから」と言って止めるとか、ぽこすかセッションを切るなんてことはみなさんあまり感じていないですよね。うまくできるということです。24時間365日動かしながらアップグレードができるという証明をマイクロソフト自身がしています。
(スライドを示して)最後のまとめです。繰り返しになりますが、今は転換期だと思っています。「アップデートが大変だよ」というイメージをみなさんは持ってしまったというのがこれまでだったと思いますが、できるだけ自動化して楽をすることを考える転換期かなと思っています。コミュニティも、KubernetesとAKSも、成熟してきてツールも整ってきました。
あとは、トラブルシューティングガイド、ナレッジも、インターネット上で公式ドキュメントとして手に入るようになっているので、かなり整ってきているんじゃないかなと思います。
最後に大事なことを伝えます。自動化は勇気がいると思います。「怖いからできない」という方が多いと思いますが、全部自動化する必要はないと思います。部分的に、段階的に自動化していけばいいと思います。
例えばNodeOSのイメージのバージョンアップだけ先に自動化するなど、徐々に自動化する対象を広げていけばいいと思います。それで経験なり能力を積んで、自信を積んで全体のアップグレードを自動化していくとか、そういうところにいつかたどり着けばいいという進め方でいいんじゃないかなと思います。
私は正直、ここ2年ぐらいアップグレードは失敗していないです。
実は以前に仕事の場で、「私、失敗しないので」と、(その場にいたASTの)齋藤さんに強く言い切りました。言い切れるぐらい自信があります。慣れてしまえばどうってことないです。シャア・(シャア・アズナブル)みたいなことを言いますが、どうということはないので、みなさんも慣れてください。
ということで、私の発表は終わります。ご清聴ありがとうございました。
関連タグ:
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05