LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

Organization

Stripeに学ぶ高信頼性インフラへのマイグレーション

はじめに

NTTコミュニケーションズアドベントカレンダー 21日目になります。

先週、シアトルで開催されたKubeConに参加してきました。
せっかくシアトルに行ったので空き時間に一人で美術館、図書館、水族館を回ったら
周りから「えっ!?」って顔をされましたがみんな行きますよね?1人水族館

今回は初日のkeynoteで話題になったJuia EvansのStripeの事例を
紹介させていただきます。

31365928407_565982dea7_z.jpg
Juia Evans

この記事を読んでわかること

  • システムをマイグレーションするときの基本的な考え方(Kubernetesのことを何も知らなくても大丈夫)

What is Stripe?

Stripeは決済のインフラを提供する会社になります。
ユーザが意識するというよりは、ユーザが使っているアプリ等の裏側で
決済をいい感じにしてくれるインフラのようなものになります。

日本ではあまり社名に馴染みはないかもしれませんが、
世界で120カ国以上、数百万に及ぶ企業が利用しており

Amazon、Google、Uberといった企業が利用しています。

Stripeの会社についてはこちら

Stripeのシステムに求められる要件

決済のシステムなので以下の2つがとても大事

  • Reliability
  • Security

求められる信頼性の要件は以下

  • 99.99%(1週間に停止時間は1分以下)

そのために、2つの方法を実施

  • kubernetesへの移行
  • Envoyを使ったサービス間のNetworkの構築

システムのマイグレーションの理想と現実

理想の姿

julia_evans_talk_pdf 2.png

課題が明確となっており、課題に対する解決策も明確となっている状態

現実の姿

julia_evans_talk_pdf 3.png

そもそも何が課題か誰も分からない

インフラに対する期待

julia_evans_talk_pdf 4.png

我々はよく分かっていないが、この上で大事なシステムを動かそうとしている

所感:システムの移行とかだと、移行先のアーキテクチャについて理解しないまま進むことってありません?自分は覚えがあります。

99.99%への道のり

julia_evans_talk_pdf 5.png

99%を達成するまでに色んなことが起こるし
99%から99%を達成するまでにはさらに色んなことが起こるよ

所感:その通り過ぎる。

99.99%のやり方

julia_evans_talk_pdf 6.png

  1. システムのデザインを理解する(分からないことだけググるのでは足りない)
  2. あらゆるテストを実施する(思いつくことは全部やる)
  3. 障害を検知する仕組みを作る(どんなにテストをしても障害は起こる)
  4. インシデントは1度しか起こらないようにする(必ず根本原因を見つけて対処する)
  5. 変更は段階的に加える(まずはtrafficの5%だけ新しい機能に流すなど)
  6. 必ずロールバック計画を立てること(100%成功するものなんてない)

所感:Kubernetesとか関係なく、いつでも使えそう。

99.99%を達成するためのCulture&Leadership

julia_evans_talk_pdf 8.png

・ 初めからエキスパートである必要はないが、エキスパートになる必要がある
・ エキスパートになるためには、手を動かして学ぶための十分あ時間が必要である

所感:ほんとその通りですね。勉強時間が業務時間内に確保されてるのは大事ですね。

Kubernetes移行に関するStripeの取り組み

Don' expose kubernetes to developers

Stripeでは、DeveloperがKubernetesを覚える学習コストが
課題と考えているので、Pythonのコードを書けば自動でYAMLを生成してくれるものを作って提供している。

Developerはコードを愛してるので、
YAMLを覚える気は無くても新しいコードなら覚えるよねという考え方。

図1.png

該当の資材はskycfgという言い、公開されています。

最後に

Youtubeで動画が公開されてますが、Youtubeの速度調整と字幕の機能は最高ですね。
自分は記事をまとめるにあたり、自信がなかったので「0.75倍速/字幕(英語自動生成)」で3回聴いて、気になるところがあったら何度も聴き直していますが、字幕の精度が高くて感激しました。

KubeConの動画はシアトルの分だけでも350件近く上がってるので、皆さんも興味のあるテーマがあればYoutubeの機能を駆使して聴いてみてください。

英語に自信がある方は、気にしないでください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2