7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-23

はじめに

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の機能を駆使して聴いてみてください。

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

7
2
0

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
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?