KubeConでStripeのエンジニアが語ったインフラ移行の現実

2019年1月24日(木)
松下 康之 - Yasuyuki Matsushita
KubeCon初日の午後は、さまざまなセッションが実施された。その中から、Stripeによるインフラの移行に関するトピックをメインに紹介する。

2018年12月11日はKubeCon+CloudNativeConの初日であり、午前中のキーノートでは最新のプロジェクトアップデートが行われた。

KubeCon Seattle初日のキーノートはHelm、Envoy、Istio、etcdの最新情報をアップデート

そして午後のキーノートではRed HatのClayton Coleman氏、GoogleのBrian Grant氏、Tim Hockin氏によるKubernetesの振り返り、CNCFのChris Aniszczyk氏によるコントリビューターアワードの発表があり、他にStripeのエンジニアJulia EvansによるKubernetesとEnvoyによるインフラストラクチャーのマイグレーション事例の発表などが行われた。

Tales from the Kube

Kubernetesの初期を知るエンジニア。左からColeman氏、Grant氏、Hockin氏

Kubernetesの初期を知るエンジニア。左からColeman氏、Grant氏、Hockin氏

「Tales from the Kube」と題されたプレゼンテーションでは、初期の頃からKubernertesに関わっていたClayton Coleman氏、Brian Grant氏、Tim Hockin氏が、プロジェクトの沿革などについて語った。特にユーザビリティを向上させるために、コマンドラインツールにおける改善点などを振り返った。

kubectlはkubecfgと呼ばれていたのがわかる

kubectlはkubecfgと呼ばれていたのがわかる

「コミュニティの貢献なくしては現在のKubernetesは存在し得ない」として、会場にいるKubernetesのコントリビューターやKubeConに関わっている参加者を讃えるパートもあり、ベンダーがエコシステムの拡大に大きく影響を与えていることは認めながらも、個々のエンジニアの貢献が重要ということを強調したセッションとなった。

それを引き継ぐように、CNCFのChris Aniszczyk氏がKubernetesへの貢献を表彰するアワードを発表した。これはCHOP WOOD CARRY WATERアワードと呼ばれるもので、Microsoft、Red Hat、Heptioなどのエンジニア、コミュニティに関わるスタッフが表彰された。

CHOP WOOD CARRY WATERアワードを発表するAniszczyk氏

CHOP WOOD CARRY WATERアワードを発表するAniszczyk氏

ここでも複数の女性が選ばれているのが印象的だ。午前中のキーノートでも、多くのプレゼンテーションで女性が登壇し、CNCFが意図して女性を起用しているのが見てとれる。

CHOP WOOD CARRY WATERアワードの受賞者たち

CHOP WOOD CARRY WATERアワードの受賞者たち

次に登壇したのはCiscoのLew Tucker氏だ。Tucker氏は、CiscoのVP/CTO Cloud Computingという肩書で、OpenStack Summitなどでも何度も登壇している。いわばCiscoのオープンソースソフトウェア関連の第一人者として、Ciscoの戦略などを語る役割のエグゼクティブだ。

CiscoのLew Tucker氏

CiscoのLew Tucker氏

ただ語った内容はほぼ想定内のもので、サプライズ要素はそれほどなかった、Ciscoとしてのインフラストラクチャーがコード化されること、サービスメッシュへの移行、Istioへの肩入れ、機械学習の隆盛、エッジコンピューティングが重要になるなどのトピックを語った。

エッジに向かうコンピューティング

エッジに向かうコンピューティング

Tucker氏のスピーチで業界的にインパクトが大きかったものは、Ciscoの戦略そのものよりも、Tucker氏が2019年1月末でCiscoを退職するという事実(このカンファレンス中に明らかになった)のほうだろう。OpenStack FoundationやCNCFでもボードメンバーとして発言力のあるTucker氏が、次のキャリアとしてどこで何をするのか? は注目されることだろう。

StripeによるKubernetes+Envoyのユースケース

次のプレゼンテーションは、KubernetesとEnvoyを利用したシステムのユースケースとして、StripeからJulia Evans氏が登壇した。Stripeは、オンラインペイメントのプラットフォームを提供する企業として注目されており、そのビジネスを支えるシステムの中身について解説するセッションとして、非常に興味深いものとなった。

StripeのJulia Evans氏

StripeのJulia Evans氏

Stripeのシステムのゴールは、速度でも処理するクエリーの量でもなく、信頼性とセキュリティであるというのが最初のポイントだ。そのポイントに沿って、既存のシステムをKubernetesとEnvoyを使ったシステムにマイグレーションしたというのが、このプレゼンテーションの主旨である。

何もKubernetesについて知らなかったというエンジニアがKubernetesを理解し、それを本番環境に移す時のポイントとして掲げたが以下のスライドにまとまっている。

Kubernetes+Envoyに移行する際のポイント

Kubernetes+Envoyに移行する際のポイント

最初の「Understand the Design」というのはKubernetesのデザインフィロソフィーを理解して使いこなすということだ。Evans氏によれば、当初は「etcdとAPI Serverが真ん中にあって、他はAPI Serverに繋がっている」と言う程度の認識だったようだ。しかしそれ以降のポイントは、昨今のカオスエンジニアリングとも共通するテーマである。Stripeでは「Gamedays」と呼ばれているが、KubernetesとEnvoyで構成されたシステムを意図的に壊して、そこから発見された問題点を一つずつ解消していくという発想だ。

当初、Kubernetesのデザインはこう理解されていた

当初、Kubernetesのデザインはこう理解されていた

Gamedaysは毎週行われる恒例の行事となっていたようで、「意図的に問題を起こす」ことでシステムにどんな現象が発生するのか? を確認し、ちゃんと復旧させることを行うもののようだ。

意図的に問題を起こすのがStripeのGamedays

意図的に問題を起こすのがStripeのGamedays

Gamedaysの例として「etcdのインスタンスを強制終了させる」「間違った構成情報をプッシュする」「apiserverのインスタンスを全て終了させる」「コンテナーレジストリーを使えないようにする」「Envoyのコントロールプレーンを利用不可能にする」などが挙げられている。

Gamedaysで起こされる問題の例

Gamedaysで起こされる問題の例

これをQAステージのサーバーに対して実行し、発生した現象を確認し、復旧出来ないバグがあればそれを解消するというのが、Stripeのクラウドネイティブなシステムへの移行方法ということだ。実際に、あるプロセスを終了させた結果、クラスターの全てのPodをKubernetesが終了させてしまうというバグが発見され、修正した実績があるとEvans氏は紹介した。

そして問題を起こす際に、複数の問題を同時に起こすのではなく、一つずつ実行することで問題の発見、原因の特定、修正案の実行、そして再現しないことを確認というプロセスを実行できると説明した。

問題発生から修正までの4つのステップ

問題発生から修正までの4つのステップ

Stripeのシステムでは、複雑にしないためにKubernetesとEnvoyだけを実装して、他を入れなかったという。この辺りにも、問題特定~修正のサイクルを素早く回せるコツがあるように思える内容だ。修正も一度に多くのものを直さずに少しずつ修正する、常に元の状態に戻せるようにロールバックのプランをちゃんと作るという。この辺りはクラウドネイティブ、アジャイル開発、DevOpsといったバズワードに惑わされずに、冷静な視点でシステム移行に取り組む姿勢が見えたプレゼンテーションとなった。

Stripeの新システム導入のルール

Stripeの新システム導入のルール

また後半の内容として、組織のカルチャーとリーダーシップにも言及した。これは、今後新しいシステムを導入しようとする日本企業にも当てはまる内容であろう。「専門家にならなくても新しいことを始めても良い」「学ぶための動機付けが必要」「専門家の養成には時間がかかる」などの言葉が刺さるエンジニアも多いのではないだろうか。

カルチャーとリーダーシップへの提言

カルチャーとリーダーシップへの提言

特に管理職にとって、問題が発生した際にすぐに解決を求めてしまうのではなく、十分に時間的な余裕を与えることが必要と語り、エンジニアを抱える開発・運用グループのマネージャーにシステムを導入する際の重要なポイントを提起したと言える。

マネージャーはチームに余裕を与えるべき

マネージャーはチームに余裕を与えるべき

Evans氏のプレゼンテーションは動画としても視聴することができるので、ぜひその内容を動画で体験して欲しい。

参考:Keynote: High Reliability Infrastructure Migrations - Julia Evans, Software Engineer, Stripe

また利用した手書き風スライドもインターネットから参照できるので、こちらも参考にして欲しい。

スライド:https://schd.ws/hosted_files/kccna18/46/julia%20evans%20talk.pdf

その後に登壇したのは、Stripeが全面的に利用しているAWSのArun Gupta氏だ。Gupta氏はAWSによるKubernetesやその他のオープンソースソフトウェアに対する貢献を説明した上で、軽量の仮想マシンランタイムであるFirecrackerを紹介した。

AWSのArun Gupta氏

AWSのArun Gupta氏

Firecrackerは、AWSの中では珍しく最初からオープンソースソフトウェアとしてリリースされることを目的として開発されたソフトウェアであり、これまでオープンソースソフトウェアへのフリーライダーとして批判されていたAWSの面目躍如と言ったところだろう。KVMをベースに改造されたFirecrackerは素早く起動でき、セキュリティも確保されたRustで書かれた軽量のランタイムとして注目が集まっている。

Firecrackerの紹介

Firecrackerの紹介

Gupta氏はまとめとして、AWS上でのKubernetes-as-a-Service(KaaS)の提供、EnvoyベースのSaaSメッシュ、サーバーレスを意識した軽量の仮想マシンランタイムなどを挙げ、AWSとしてクラウドネイティブなコミュニティに全面的に協力する姿勢を示して、プレゼンテーションを終えた。

Kubernetes、Envoy、Firecrackerなどをプッシュ

Kubernetes、Envoy、Firecrackerなどをプッシュ

初日午後のキーノートはCisco、AWSといった大手のきちんと型にはまったプレゼンテーションの中で、リアルな現場からの声と言えるプレゼンテーションを行ったStripeが、非常に目立った内容となった。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドイベント
第9回

マクニカネットワークス、シアトルでKubeCon参加者向けのミニセミナーを開催

2019/2/19
KubeCon最終日に、マクニカネットワークスがNGINXとTwistlockを招いたミニセミナーを開催。
クラウドインタビュー
第8回

注目集めるK8sのセキュリティ:Twistlockの包括的セキュリティソリューションとは

2019/2/7
KubeCon+CloudNativeConでは多くのベンダーが製品・サービスで覇を競った。その中から包括的なセキュリティソリューションを標榜するTwistlockを紹介する。
クラウドイベント
第7回

大手からベンチャー、ユーザー企業までが参加したKubeConのショーケースは大人気

2019/1/31
KubeConのショーケースは、クラウドネイティブ分野の大手企業からベンチャー、そしてユーザー企業までも参加して大にぎわいとなっていた。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています