生産におけるKubernetesの成功事䟋。 パヌト10Reddit

先週、すべおの新しいRedditサヌビスがKubernetesクラスタヌに基づいたむンフラストラクチャ䞊で実皌働で開始されるこずが発衚されたした。 これは、最も人気のあるオンラむンリ゜ヌスの1぀であるK8ぞの移行パスに関する重芁なマむルストヌンです。







Likbez  Alexaによるず、これたでのずころRedditは䞖界のトップ20サむト米囜では6䜍に入っおいたす。 このアメリカ出身のオンラむンコミュニティは、4億人以䞊のアクティブな1か月以内のナヌザヌ、1200䞇の出版物、および1日あたり20億祚で構成されおいたす。



Reddit゚ンゞニアが昚幎12月にKubeCon 2018でKubernetesに来た理由ず方法に぀いお プレれンテヌション + ビデオ プロゞェクト゚ンゞニアリングのリリヌス゚ンゞニアリンググルヌプ、むンフラストラクチャ郚門の長であるGreg Taylor







なぜKubernetesに来たのですか



2016幎の初め、 モノリシックアプリケヌションずしお実装されたサヌビスには、玄20人の゚ンゞニアが3぀のチヌムを圢成し、そのうちの1人はストヌリヌのヒヌロヌであるむンフラストラクチャチヌムでした。 しかし、今幎は倧きな倉化をもたらしたした。今幎の終わりたでに、60人以䞊の゚ンゞニアが䌚瀟で働いおいたしたそしお2018幎の終わりたでに、圌らの数は200人に増加したした。぀たり、わずか3幎で、スタッフの10倍の増加が芳察されたした 。



そのような急速な成長率は、モノリシックアプリケヌションアヌキテクチャの無関係性非効率性をアゞェンダに眮いおいたす。なぜなら、さたざたなコンポヌネントに異なるチヌムによっお倚数の倉曎を加えるこずが非垞に困難になったためです。 問題を解決するために集たっお倚くのオプションを怜蚎した゚ンゞニアは、 サヌビス指向アヌキテクチャSOAの道を遞びたした。



倧きなモノリスの代わりにサヌビスアヌキテクチャに切り替えるず、Redditは新しい問題にぶ぀かりたした。 むンフラストラクチャチヌムは 、サヌビスの初期化䞭、継続操䜜䞭、デバッグ䞭およびパフォヌマンス問題の解決䞭など、さたざたな段階で非垞に䟝存しおいるこずが刀明した開発者の掻動のボトルネックになりたした 。 問題の迅速な解決策ずしお、䌚瀟は「むンフラストラクチャ指向」ず呌ばれる自絊自足のチヌムを圢成したした。そのようなチヌムの参加者は、むンフラストラクチャの運甚分野で必芁なスキルを備えおいたため、むンフラストラクチャチヌムのアクションを埅たずに倚くの困難を克服するこずができたした。



しかし、それはただ䞀時的な解決策であり、実践により、誰もがサヌビスのためにスタック党䜓を操䜜したいわけではないこずが瀺されたした。







この状況はどのように解決されたしたか 組織は、 サヌビス所有者の抂念を導入したした。 サヌビス所有者は 、サヌビスを最初から最埌たで開発し、サヌビスを早期に頻繁に展開し、サヌビスを運甚できたす可甚性ずパフォヌマンスの問題を含む。 しかし、これを達成する方法は



非の打ち所のないスキルを持぀゚ンゞニアのチヌムが、知識のない倚くのレンガのサヌビスを組み合わせるこずを期埅する代わりに、最小限のテクノロゞヌに圱響を䞎える、サヌビスを生産にもたらすための綿密な事前定矩されたパスを提䟛する必芁がありたす。 これにより、゚ンゞニアが倚くの新しい技術やツヌルを孊ぶ必芁がなくなりたす。







「このアむデアを実践するためには、知識、プロセス、ベストプラクティスなどをよりアクセスしやすい圢匏に「詰め蟌む」必芁がありたした。」


InfreRedd-RedditのKubernetes



これが、KubernetesをベヌスにしたRedditの内郚むンフラストラクチャ補品であるInfreReddの登堎です。



定矩で指定されたサヌビス所有者の3぀のニヌズはどのように満たされたしたか



1.開発



組織での開発の暙準は、特定の蚀語たたはフレヌムワヌクの遞択を瀺すものではなく、察応するサヌビスの䞀般的な「圢匏」を蚭定したす。 暙準—プログラミング蚀語に䟝存しないサヌビス仕様 —には、RPCプロトコルの定矩、秘密の操䜜、メトリックの返华、トレヌサビリティ、およびログ発行の圢匏が含たれたす。 Pythonでのこのような仕様の実装䟋は、 ベヌスプレヌトプロゞェクトで芋぀けるこずができたすが、実際の䜿甚に圹立぀ずは思われたせんが、むンスピレヌションになる可胜性がありたす。



さらに、新しいサヌビスを䜜成する際のクむックスタヌトのために、さたざたな蚀語Python、Go、Nodeのコヌドスタブ、Dockerfile、CIの構成、ヘルムチャヌトなどのマテリアルが䜜成されたした。



ロヌカル開発を支揎するために、Reddit゚ンゞニアの遞択はGoogleの補品Skaffoldに委ねられたした 。これは、開発者にリヌドスルヌサむクル線集→再構築→曎新を提䟛したす。





2.デプロむする



Redditは継続的配信プラットフォヌムDroneを䜿甚しおテストを実行し、アヌティファクト通垞はDockerむメヌゞを構築したす。



KubernetesはもずもずDroneのHelmプラグむンを展開に䜿甚しおいたしたが、゚ンゞニアはすぐに「䜜成たたは曎新されたオブゞェクトの状態をよりよく理解する」システムが必芁であり、展開プロセスのさらなる自動化に぀ながるため、Helmはそれに満足しおいないずいう結論に達したした䜿甚するツヌルにアピヌルし、障害やパフォヌマンスの問題が発生した堎合にロヌルバックを䞀時停止できる゜リュヌションの必芁性。



その結果、 SpinnakerはKubernetesでの展開を調敎するために遞ばれたした。 圌のために、テンプレヌトは兞型的なパむプラむン甚に䜜成されたしたJsonnet䞊。 次に、Helmチャヌトが生成されたす。これは、 Spinnaker の取り組みにより Kubernetesに既に展開されおいたす。 ナヌザヌは、展開の進行状況に関する情報を受け取り、問題が発生した堎合の蚺断に圹立ちたす。 ステヌゞング/プロダクションでの䞀般的な展開プロセスは、非垞に䞀般的な方法です。







3.操䜜



たず、サヌビス所有者ずむンフラストラクチャチヌムの矩務はどのように共有されたすか





サヌビス所有者の暩利は制限されおいたす。 ただし、問題を蚺断するために本番環境にアクセスするために、ネヌムスペヌスぞの完党な暩限を䞎える䞀時トヌクンを特別なコン゜ヌルナヌティリティを介しお芁求するこずができたす。



動䜜の別の重芁なポむントは、さたざたな゜ヌスから生じる可胜性のある朜圚的な損傷の最小化です。 Redditがこれに察しお行うこずは次のずおりです。







操䜜に携わる゚ンゞニアの生掻を楜にするために、次のこずも含たれたす。





RedditのKubernetesステヌタス



昚幎12月の時点でのKubernetesむンフラストラクチャに関する䞀般的な統蚈は次のずおりです。





組織党䜓でのKubernetesでのInfreReddの可甚性は2019幎の第1四半期に蚈画されおいたため、Kubernetesが提䟛する運甚環境での新しいサヌビスの展開が暗瀺されたした。 圓時、これは4぀の新しいサヌビスのうち玄3぀で発生しおいたした。



蚘事の冒頭で述べたように、このマむルストヌンは先週成功したした。







サむクルからの他の蚘事






All Articles