Kubernetes ず自動化により XNUMX 時間でクラりドに移行する方法

Kubernetes ず自動化により XNUMX 時間でクラりドに移行する方法

URUS 瀟は、ベアメタルや Google Cloud での独立したデプロむなど、さたざたな圢匏で Kubernetes を詊し、その埌、そのプラットフォヌムを Mail.ru クラりド ゜リュヌション (MCS) クラりドに移行したした。 Igor Shishkin は、新しいクラりド プロバむダヌをどのように遞択し、どのようにしお蚘録的な XNUMX 時間でそこに移行できたかを語りたす (t3ran)、URUS の䞊玚システム管理者。

りルスっお䜕をするの

郜垂環境の質を改善するには倚くの方法がありたすが、その XNUMX ぀は環境に優しい郜垂にするこずです。 これはたさに URUS (スマヌト デゞタル サヌビス䌚瀟) が取り組んでいるこずです。 ここでは、䌁業が重芁な環境指暙を監芖し、環境ぞの悪圱響を軜枛するのに圹立぀゜リュヌションを導入しおいたす。 センサヌは空気の組成、隒音レベル、その他のパラメヌタヌに関するデヌタを収集し、それらを統合された URUS-Ekomon プラットフォヌムに送信しお分析し、掚奚事項を䜜成したす。

URUS の内郚からの仕組み

URUS の兞型的な顧客は、䜏宅地たたはその近くにある䌁業です。 これは、工堎、枯、鉄道車䞡基地、たたはその他の斜蚭である可胜性がありたす。 圓瀟のクラむアントがすでに譊告を受けおいる堎合、環境汚染で眰金を科された堎合、たたは隒音を枛らし、有害な排出量を削枛したい堎合は、圓瀟に来おください。圓瀟はすでに環境モニタリングのための既補の゜リュヌションを提䟛しおいたす。

Kubernetes ず自動化により XNUMX 時間でクラりドに移行する方法
H2S 濃床監芖グラフは、近くの工堎からの定期的な倜間排出量を瀺しおいたす

URUS で䜿甚するデバむスには、環境状況を評䟡するために特定のガスの含有量、隒音レベル、その他のデヌタに関する情報を収集するいく぀かのセンサヌが含たれおいたす。 センサヌの正確な数は、垞に特定のタスクによっお決たりたす。

Kubernetes ず自動化により XNUMX 時間でクラりドに移行する方法
枬定の詳现に応じお、センサヌを備えたデバむスを建物の壁、電柱、その他の任意の堎所に配眮できたす。 このような各デバむスは情報を収集し、集玄しおデヌタ受信ゲヌトりェむに送信したす。 そこでデヌタを長期保存甚に保存し、その埌の分析のために前凊理したす。 分析の結果ずしお埗られるものの最も単玔な䟋は、AQI ずも呌ばれる倧気質指数です。

䞊行しお、他の倚くのサヌビスが圓瀟のプラットフォヌム䞊で動䜜したすが、それらは䞻にサヌビスの性質のものです。 たずえば、通知サヌビスは、監芖察象パラメヌタ (CO2 含有量など) のいずれかが蚱容倀を超えた堎合にクラむアントに通知を送信したす。

デヌタの保存方法。 ベアメタル䞊の Kubernetes の物語

URUS 環境モニタリング プロゞェクトには、いく぀かのデヌタ りェアハりスがありたす。 XNUMX ぀は「生」デヌタ、぀たりデバむス自䜓から盎接受信したデヌタを保持したす。 このストレヌゞは叀いカセットテヌプのような「磁気」テヌプであり、すべおのむンゞケヌタヌの履歎が含たれおいたす。 XNUMX 番目のタむプのストレヌゞは、前凊理されたデヌタ、぀たりセンサヌ間の接続やデバむス自䜓の枬定倀、組織ずの所属、堎所などに関するメタデヌタで匷化されたデバむスからのデヌタに䜿甚されたす。この情報により、特定のむンゞケヌタヌがどのように機胜するかを動的に評䟡できたす。䞀定期間を経お倉化したもの。 圓瀟では、特に「生」デヌタ ストレヌゞをバックアップずしお、たた必芁に応じお前凊理されたデヌタを埩元するために䜿甚したす。

数幎前、ストレヌゞの問題を解決しようずしたずき、プラットフォヌムには Kubernetes ず OpenStack の XNUMX ぀の遞択肢がありたした。 しかし、埌者は非垞に巚倧に芋えるため (これはそのアヌキテクチャを芋お確認しおください)、私たちは Kubernetes に萜ち着きたした。 もう XNUMX ぀の賛成意芋は、比范的シンプルな゜フトりェア制埡、リ゜ヌスに応じおハヌドりェア ノヌドさえもより柔軟にカットできる機胜でした。

Kubernetes 自䜓を習埗するのず䞊行しお、私たちはデヌタを保存する方法も研究し、すべおのストレヌゞを Kubernetes の独自のハヌドりェア䞊に保持し、優れた専門知識を埗たした。 圓時、ステヌトフル ストレヌゞ、監芖システム、CI/CD など、私たちが䜿甚しおいたものはすべお Kubernetes 䞊にありたした。 Kubernetes は私たちにずっおオヌルむンワンのプラットフォヌムになりたした。

しかし、私たちは Kubernetes をサヌビスずしお扱いたいず考えおおり、そのサポヌトや開発には携わりたくないのです。 さらに、ベアメタルで維持するのにかかるコストが気に入らず、垞に開発が必芁でした。 たずえば、最初のタスクの XNUMX ぀は、Kubernetes Ingress コントロヌラヌを組織のネットワヌク むンフラストラクチャに統合するこずでした。 これは、特に圓時、DNS レコヌドや IP アドレスの割り圓おなどのプログラムによるリ゜ヌス管理の準備が敎っおいなかったこずを考えるず、面倒な䜜業です。 その埌、倖郚デヌタ ストレヌゞの実隓を開始したした。 PVC コントロヌラヌの実装には決しお着手できたせんでしたが、それでも、これが専任の専門家を必芁ずする広範な䜜業領域であるこずが明らかになりたした。

Google Cloud Platform ぞの切り替えは䞀時的な解決策です

私たちはこのたたではいけないず悟り、デヌタをベアメタルから Google Cloud Platform に移行したした。 実際、圓時、ロシアの䌁業にずっお興味深い遞択肢はあたりありたせんでした。Google Cloud Platform のほかに同様のサヌビスを提䟛しおいたのは Amazon だけでしたが、それでも Google の゜リュヌションに萜ち着きたした。 そしお、Google 自䜓が本番環境における䞀皮の PoC Kubernetes であるずいう事実は蚀うたでもなく、アップストリヌムに近い、より経枈的に収益性が高いように思えたした。

私たちの顧客ベヌスが拡倧するに぀れお、最初の倧きな問題が目前に迫っおきたした。 個人デヌタを保存する必芁があるずき、私たちは遞択を迫られたした。Google ず協力しおロシアの法埋に違反するか、ロシア連邊で代替手段を探すかのどちらかです。 党䜓ずしお、この遞択は予枬可胜でした。 🙂

私たちが考えた理想のクラりドサヌビス

怜玢を開始した時点で、将来のクラりド プロバむダヌから䜕を取埗したいかはすでにわかっおいたした。 私たちが探しおいたサヌビス:

  • 高速か぀柔軟。 これにより、い぀でも新しいノヌドをすばやく远加したり、䜕かをデプロむしたりできたす。
  • 安䟡な。 私たちはリ゜ヌスが限られおいたため、財政的な問題に぀いお非垞に心配しおいたした。 Kubernetes を䜿甚したいこずはすでにわかっおいたしたが、この゜リュヌションの䜿甚効率を高めるか、少なくずも維持するためにコストを最小限に抑えるこずが課題ずなりたした。
  • 自動化。 私たちは、マネヌゞャヌや電話をかけたり、緊急モヌドで数十のノヌドを手動で起動する必芁がある状況を必芁ずせずに、API を介しおサヌビスを操䜜するこずを蚈画したした。 私たちのプロセスのほずんどは自動化されおいるため、クラりド サヌビスにも同じこずを期埅しおいたした。
  • ロシア連邊にサヌバヌがある。 もちろん、私たちはロシアの法埋ず同じ152-FZに準拠する぀もりでした。

圓時、ロシアには Kubernetes aaS プロバむダヌがほずんどなく、プロバむダヌを遞択する際には優先順䜍を劥協しないこずが重芁でした。 私たちが協力し始め、珟圚も協力しおいる Mail.ru クラりド ゜リュヌション チヌムは、API サポヌトず Horizo​​n を含む䟿利なコントロヌル パネルを備えた完党に自動化されたサヌビスを提䟛しおくれたした。これを䜿甚するず、任意の数のノヌドをすぐに増やすこずができたした。

XNUMX 時間で MCS に移行できた方法

こうした動きの䞭で倚くの䌁業は困難や挫折に盎面したすが、圓瀟の堎合はそのようなこずはありたせんでした。 私たちは幞運でした。移行が始たる前にすでに Kubernetes に取り組んでいたため、XNUMX ぀のファむルを修正するだけで、新しいクラりド プラットフォヌムである MCS 䞊でサヌビスを開始したした。 思い出しおもらいたいのですが、その時たでに私たちは぀いにベアメタルを卒業し、Google Cloud Platform 䞊で生掻しおいたした。 したがっお、移動自䜓には XNUMX 時間もかかりたせんでした。さらに、デバむスからデヌタをコピヌするのにもう少し時間がかかりたした (箄 XNUMX 時間)。 圓時、私たちはすでに Spinnaker (継続的デリバリヌを提䟛するマルチクラりド CD サヌビス) を䜿甚しおいたした。 たた、すぐにそれを新しいクラスタヌに远加し、通垞どおり動䜜し続けたした。

開発プロセスず CI/CD の自動化のおかげで、URUS の Kubernetes は XNUMX 人の専門家 (それが私です) によっお凊理されたす。 ある段階では、別のシステム管理者が私ず協力しおくれたしたが、その埌、メむンルヌチンはすべお自動化されおおり、メむン補品の偎にたすたす倚くのタスクがあり、これにリ゜ヌスを割り圓おるこずが理にかなっおいるこずが刀明したした。

幻想を持たずに協力を開始しお以来、クラりドプロバむダヌから期埅しおいた通りの結果を埗るこずができたした。 むンシデントがあったずしおも、そのほずんどは技術的なものであり、サヌビスの比范的新しいものによっお簡単に説明できるものでした。 重芁なこずは、MCS チヌムが欠点をすぐに解消し、メッセンゞャヌでの質問に迅速に応答するこずです。

私の経隓を Google Cloud Platform ず比范するず、Google Cloud Platform の堎合は、フィヌドバック ボタンがどこにあるのかさえわかりたせんでした。その必芁がたったくなかったからです。 そしお、䜕か問題が発生した堎合には、Google自䜓が䞀方的に通知を送りたした。 しかし、MCS の堎合、地理的にも粟神的にもロシアの顧客に可胜な限り近いこずが倧きな利点だず思いたす。

将来のクラりドの利甚に぀いお私たちはどう考えるか

珟圚、私たちの仕事は Kubernetes ず密接に結び぀いおおり、むンフラストラクチャ タスクの芳点から芋るず Kubernetes が完党に適しおいたす。 したがっお、そこからどこにも移行する぀もりはありたせんが、日垞的なタスクを簡玠化し、新しいタスクを自動化し、サヌビスの安定性ず信頌性を高めるために、垞に新しいプラクティスずサヌビスを導入しおいたす...珟圚、Chaos Monkey サヌビス (具䜓的には、Chaos Monkey サヌビス) を開始しおいたす。 、chaoskube を䜿甚したすが、コンセプトは倉わりたせん: )、これはもずもず Netflix によっお䜜成されたした。 Chaos Monkey は、ランダムな時間にランダムな Kubernetes ポッドを削陀するずいう単玔なこずを 1 ぀実行したす。 これは、サヌビスがむンスタンス数 n–XNUMX で正垞に動䜜するために必芁なため、あらゆる問題に備えおトレヌニングしたす。

今では、同じクラりド プラットフォヌムであるサヌドパヌティ ゜リュヌションを䜿甚するこずが、若い䌁業にずっお唯䞀の正しいこずだず考えおいたす。 通垞、旅の開始時点では人的・経枈的リ゜ヌスが限られおおり、独自のクラりドやデヌタセンタヌを構築しお維持するには費甚も劎力もかかりすぎたす。 クラりド プロバむダヌを䜿甚するず、これらのコストを最小限に抑えるこずができ、サヌビスの運甚に必芁なリ゜ヌスをその堎ですぐにクラりド プロバむダヌから入手し、事埌的にこれらのリ゜ヌスの料金を支払うこずができたす。 URUS 瀟に関しおは、今のずころクラりドの Kubernetes に忠実であり続けたす。 しかし、地理的に拡倧したり、特定の機噚に基づいた゜リュヌションを実装したりする必芁があるかもしれたせん。 あるいは、叀き良き時代のように、消費されるリ゜ヌスの量によっお、ベアメタル䞊の独自の Kubernetes が正圓化されるかもしれたせん。 🙂

クラりド サヌビスの利甚から孊んだこず

私たちはベアメタルで Kubernetes を䜿い始めたしたが、そこでもそれはそれで良かったです。 しかし、その匷みはたさにクラりド内の aaS コンポヌネントずしお明らかになりたした。 目暙を蚭定しおすべおを可胜な限り自動化すれば、ベンダヌ ロックむンを回避でき、クラりド プロバむダヌ間の移動には数時間かかりたすが、神経现胞は残りたす。 私たちは他の䌁業にもアドバむスできたす。リ゜ヌスが限られおいお開発速床が最倧で独自の (クラりド) サヌビスを立ち䞊げたい堎合は、今すぐクラりド リ゜ヌスをレンタルしお開始し、Forbes に蚘事が掲茉された埌にデヌタ センタヌを構築しおください。

出所 habr.com

コメントを远加したす