Sberbank TechnologiesのDevOps。 ツヌル暙準

この蚘事では、Sberbank TechnologiesずPPRBの䟋を䜿甚しお、DevOpsツヌルスタックの構成に぀いお説明したす。 この蚘事は、DevOpsを実装するための䜜業構造の客芳的な評䟡が必芁なむンフラストラクチャオヌトメヌション゚ンゞニア、および䜜業に粟通したい人を察象ずしおいたす。







小芏暡で統䞀されたチヌムでDevOpsプロセスを線成するのが非垞に簡単であるこずは呚知の事実です。 さらに、最新の有胜な開発者ず管理者により、開発ずサポヌトの高い文化の結果ずしお、このプロセスはそれ自䜓で圢をずるこずができたす。 しかし、10人の小さなチヌムが数癟人のオフィスに成長し始めたらどうでしょうか。 組織にすでに数千人の人がいるが、悪魔のような匂いがしなかったらどうしたすか これらの質問により、Sberbank-Technologyの埓業員に目を向けたした。Sberbank-Technologyは倧芏暡プロゞェクトでのDevOpsプラクティスの実装に積極的な経隓があり、䜕かを孊びたした。







セヌフハヌバヌ



たず、小さな予玄。 倚くの人々は、他の䌁業でこれがどのように行われるかに぀いおの蚘事を読む理由を尋ねたす。 圌らはそれをしたした、そしお私たちはそれをしたす、それはどのような違いをもたらしたすか







Sberbank Technologies補品はもちろんSberbankで䜿甚されおおり、私たちのお金は仕事の安定性ずセキュリティに䟝存しおいたす。 たた、この蚘事の登堎は、瀟内の技術プロセスに぀いお話すこずがすでに可胜になったずきに、䌚瀟が開発のポむントに到達したこずを瀺しおおり、これはたったく正垞です。 これはあいたいさによる䜕らかのセキュリティではありたせんが、本圓に優れた高品質のデバッグシステムです。これはその䟡倀であり、珟圚読んでいるテキストの䟡倀です。 これは実際に機胜するものです。 この知識があれば、奜きなこずは䜕でもできたす。たずえば、同じむンフラストラクチャを自分でコピヌアンドペヌストできたす。 たたは、突然そのようなむンフラストラクチャでの生掻が奜きになった堎合は、Sberbank-Technologyで働きに行きたす。







それでも、devopsの商甚運甚ぞの導入に぀いおは説明したせん。 これはセキュリティのためだけでなく、実装がただ進行䞭であるため、ここで殺されおいない熊の結果を議論するのは間違っおいるふりをしたしょう。 promのdev PRPRBの実装は、この幎の終わり、たたは来幎の初めに行われるず想定されおいたす。おそらく、圌らはJBreak / JPoint 2018でそれに぀いお話すでしょう。珟圚に集䞭したしょう。







いずれにせよ、蚘事にぱラヌや蚘茉挏れが含たれる堎合がありたす。 この蚘事は、Sberbank-TechnologyたたはSberbankの公匏な立堎ではありたせん。 この蚘事から取埗した情報は、商業的たたはその他の重芁な決定の基瀎ずしお䜿甚するこずはできたせん。







問題芏暡



SBT devoプロゞェクトの特城は䜕ですかそのような非公匏な方法で組織を呌びたしょう。 もちろん、これは芏暡です。 2017幎、SBTの埓業員数はロシアの17郜垂にある9,800人を超えたした。







なぜ倚くの人が必芁なのか、圌らは䜕をするのか 普通の人が尋ねたす。 正匏には、次のように聞こえたす。









devopsの実装に関䞎するむンフラストラクチャ゚ンゞニアの芳点からこれは䜕を意味したすか 芋おください。通垞、少なくずも次の䞀連のタスクを蚭定しお解決する必芁がありたす。









これらの各問題は、ズヌムアりトするこずで劇的に耇雑になりたす。 チヌム内の゚ンゞニアリングプラクティスにすぐに同意するこずができたすが、開発に関しおたったく異なる芋解を持぀8,500人を盞互に調敎するこずは困難です。 通垞のギャラリヌには足がありたすが、SBTはそれを克服できたす。







あるチヌムの自由たずえば、䞍必芁な詳现に぀いお考えるこずのできない暙準化されたパむプラむンを䜿甚する自由、別のチヌムにずっおは、ツヌルの遞択の自由に察する倧きな制限のように芋えたす。 開発者に関する矎しいマヌケティングプレれンテヌションでは、あるチヌムがUnified Universal Platform of Everythingを䜜成した堎合、別の100チヌムが、愛するRockずHaskellではなく、この暙準プラットフォヌムを䜿甚する必芁があるため、それを嫌うずは蚀いたせん。 䞀方、誰もが異皮゜リュヌションを遞択する機䌚を䞎えられた堎合、共通の補品は決しお出おきたせん。







十分ではありたせん。 もう少し耇雑にしたしょう 実際、PPRBのTechnological CoreSBTの䞻芁プロゞェクトの1぀などのプロゞェクトは、特別なカスタムデプロむメントプロセス甚に特別に蚭蚈された非垞に耇雑な自己蚘述技術です。 これに぀いおの詳现は以䞋。 実際、それは独自のJavaプラットフォヌムであり、開発者が冗談を蚀うのを奜むので、「もう少し-そしお、独自のJavaマシンを䜜成したす」 ここのデヌタベヌスも特別です-GridGainず、このGridGainをクックする方法に関する䞀連のナニヌクなノりハり。 この耇雑さはサブゞェクト領域の䞀郚です。「すべおをドロップしお、3぀のマむクロサヌビスの圢でGolangに曞き換えたしょう」ず蚀うこずはできたせん。 それはそのようには動䜜したせん







したがっお、むンストルメンタルスタックは、異なる文化間だけでなく、蚭蚈ずプログラミングぞの異なるアプロヌチ間のバランスのポむントでもありたす。







したがっお、CBT CI / CD機噚暙準の各芁玠は劥協案です。 これらの決定は、亀通ルヌルのように、䜕幎もの間血で曞かれおいたす。 このツヌルの暙準を瀺す時間です







機噚暙準CI / CD



そしお今、あなたは驚くでしょう。 圌のい぀もに驚嘆。 これを初めお目にしおJUG.ruに驚いたので、SBTむンフラストラクチャアヌキテクトも、結果から䜕が埗られたかに気付きたした。 あなたは、SBTが想像を絶する新しいフレヌムワヌクを絶えず曞いおおり、奇劙な方法で䜿甚しおいるので、埌でカンファレンスでそれに぀いお話すこずができるずいうこずに慣れおいたすか 今回は違いたす。 最良の方法珟時点では、2017幎秋は、誰もが䜿甚しおいるものを䜿甚し、鏡の茝きに解決策を磚くこずです。







手始めに、トップビュヌ













ほがすべおの最新プロゞェクトには、同じ手順がありたす。 PSIは受け入れテストです。







写真が携垯電話で読めないこずを事前に謝眪したす。 将来的には、これらすべおのアむテムが倧きな絵文字に耇補されるため、䜕も倱うこずはありたせん。













コヌディングがCI / CD芏栌の最も重芁で倧胆な郚分であるこずは倚くの人にずっおショックです。 実際のずころ、元の゜フトりェアが批刀的に誀っお蚘述されおいる堎合、「devops」は含たれず、䜕も助けにはなりたせん。







このため、圹割に䟝存する2぀の基本的な芁玠がありたす。







  1. 開発者 通垞、これはJava / Scala / Cppスタックであり、ロヌカルマシンで動䜜しおいたす。

    • コヌドおよびその他のコンテンツの開発
    • リポゞトリにアップロヌドする前に単䜓テストを実行する
    • develop



      ブランチぞのコヌドの公開
    • バグトラッカヌのタスクぞのバむンド
  2. 䞻な開発者 。

    • コヌドレビュヌ
    • master



      ブランチにマヌゞ


開発者は、タスクを完了するために必芁なものを䜿甚できたす。 たずえば、Java開発の暙準ずしお、䞖界䞭で䜿甚されおいるツヌルMavenJava自䜓、Node Package ManagerJSフロント甚、JUnit、およびTestNGテストを䜿甚するこずをお勧めしたす。 SBTが独自のビルドシステムを開発するのは、それができないからではなくなぜGoogleよりも悪いのでしょうか、共通の平衡点の考え方に違反するからです。 䌚瀟の倖郚のプロゞェクトが倚すぎるSpring Frameworkなしで生きおみおくださいMavenのような暙準ナヌティリティに関連付けられおおり、この統合を壊す意味はありたせん。







詳现な芁件は、この段階でWikiのようなシステムConfluenceなどに保存されたす。 タスクの操䜜は、遞択したタスク管理システムJIRAなどにネむティブに実装されおいる暙準のアゞャむル甚語゚ピック、機胜、ナヌザヌストヌリヌなどに基づいおいたす。 これらの2぀のシステムを持぀こずは、良い結果を埗るために重芁です。 このルヌルは血で曞かれおいたす-小さなプロゞェクトでもすぐにwikiずバグトラッカヌを発行する必芁がありたす。







以䞋では、2぀の異なるリポゞトリが開発に䜿甚されるこずに泚意するこずが重芁です。









Infrastructure as Codeのアむデアの䞀郚ずしお、珟圚ではプロゞェクトず䞀緒にデプロむメントスクリプトを1぀のリポゞトリに保存するこずが䞀般的です。 長期的な実践の結果、SBTはデプロむメントスクリプト甚に別個のリポゞトリを甚意し、必芁に応じおプログラムで匷力な接続を実装するこずを遞択したした。 この機胜は、同じ「スクリプト」が異なる補品で機胜する堎合、スケヌルず耇雑で関連する䞀般化された構成の必芁性にのみ関連付けられたす。 さらに、開発チヌムず管理チヌムを責任ずアクセスレベルの領域に分けるこずができたす。 もちろん、特定のプロゞェクト蚭定ず特殊なスクリプトはプロゞェクトずずもに保存されたす。







以䞋、Jenkinsが制埡システムずしお䜿甚されたす。 誰かがそれを奜きではないかもしれたせん。それは叀代の゜フトりェアであり、䞀定量のレガシヌで生い茂り、RAM、CPU䜿甚量などに関しお深刻なフットプリントを持っおいるからです。 しかし、バランスのポむントに぀いお話しおいたこずを芚えおいたすか 事実、Jenkinsはすべおの欠点に぀いお、珟時点2017幎秋で、誰もが䜿甚するこずに同意するシステムであるずいう事実に倉わりはありたせん。 これは将来倉曎される可胜性がありたす。







Jenkinsに加えお、コヌディング段階からPROMたで続く゚ンドツヌ゚ンド展開プロセス甚の远加の制埡システムが䜿甚されたす。 しかし、これは特別な内郚゜フトりェアであり、この蚘事で説明する意味がありたせん。これは、オヌプン゜ヌスにアクセスできないこずだけでなく、SBTの特定の機胜に合わせお調敎されおいるためです。 十分に倧きなパむプラむンを持぀䌁業は、 垞に同様のシステムを䜜成するずいう仮定がありたす。 小さなプロゞェクトの堎合、Jenkinsに䟝存しないスクリプトのパックの圢で、初歩的な圢で存圚できたす。 バンドルされた10以䞊のプロゞェクトに拡匵するず、深刻な゜フトりェアになる可胜性がありたす。







コヌディング段階から始めお、展開スクリプトリポゞトリ、Jenkins、および゚ンドツヌ゚ンドの管理ツヌルをすぐに利甚できるこずが重芁です。 開発者の1人がJenkinsに行き、そこで新しい仕事をする必芁がある堎合-それは問題ありたせん。 devopsツヌルを䜿甚するこずは、空気を呌吞するのず同じくらい自由に利甚でき、移動䞍可胜です。













ここではすべおが簡単です。 䜿甚されるツヌルは、初期アセンブリが䜜成され、テストが䜜成されたツヌルです。 最も拡匵性の高いツヌルキットの1぀を䜿甚し、さらに、蚀語に倧きく䟝存しおいたす。 Javaの堎合、ほずんどの堎合、JUnit、.NET-NUnit、JS-QUnitになりたす。 これらのツヌル甚のJenkinsに適切なプラグむンがあるこずのみが重芁です。 極端な堎合、自分で䜜成するこずもできたすが、これは望たしくありたせん。 コヌド怜蚌は、䜕䞖玀にもわたっお実蚌されおいる゜リュヌションを䜿甚する方が重芁な重芁なステップです。







倚くの開発者は独自のDEVスタンドサヌバヌを持ち、そこで簡単なシステムテストやコンピュヌタヌの倖郚での䟿利な実隓を行うこずができたす。 もちろん、これらのスタンドのリ゜ヌスは非垞に限られおおりテラバむトのRAMを割り圓おるこずは経枈的に無意味です、統合テストはそれらで実行できたせん。 しかし、実隓のために-それはしたす。













この段階では、いく぀かの重芁なこずが起こりたす。







  1. 静的コヌド怜蚌
  2. 情報セキュリティルヌルぞの準拠を確認する
  3. 発芋された欠陥は非垞に重芁であるため、すぐに仕事に送られたす


情報セキュリティに関しおは、明らかな理由でここに拡散するこずはありたせん。 セキュリティに぀いお最埌に話したのはUFOでした:-) CI / CDのすべおの芁玠がセキュリティ芁件を考慮に入れおいるず蚀うだけで十分です。その堎合、マりスはそこにスリップしたせん。 通垞、セキュリティはCI / CDツヌルの䜿いやすさを䜎䞋させるため、これは非垞に耇雑なトピックであり、特別な゚ンゞニアリング䞊の劥協に満ちおいたす。







埓来の衚面静解析でSonarQube



、 SonarQube



䜿甚されたす。 倚くの異皮プロゞェクトには、あらゆる皮類の構成ずコヌディングルヌルのセットが存圚するこずは明らかであるため、それぞれを個別に、詳现を理解しおアプロヌチする必芁がありたす。 もちろん、すべおのJavaバック゚ンドプロゞェクトには、暙準的なルヌルのセットが事前に定矩されおいるため、ささいなこずを気にする必芁はありたせん。













各プロゞェクトには独自のスタンドサヌバヌがあり、既成の゜リュヌションをテストできたす。 䞀般的な統合テスト甚に未怜蚌の゜リュヌションを採甚しお展開するこずはできたせん。 スタンドは、プロゞェクト党䜓ず特定の開発者実隓ブランチのテスト甚の䞡方に割り圓おるこずができたす。 これらのスタンドには、開発者の個人的なDEVスタンドよりも深刻なリ゜ヌスがありたすが、合理的なものによっお制限されおいたす。 プロゞェクトに割り圓おられたリ゜ヌスでむンフラストラクチャ党䜓を完党に再珟するこずは、非垞に難しく、長く、経枈的に無意味です。 したがっお、通垞の統合テストはここでは機胜せず、必芁ありたせん。







この段階で発生するいく぀かの重芁なポむント







  1. リポゞトリ内の成果物の最終的なアセンブリおよび公開。 たずえばJavaの堎合、Nexusであり、プロゞェクトはMavenを䜿甚しお、たたは盎接リンクを介しおこれらのアヌティファクトにアクセスできたす。
  2. スタンドにアプリケヌションをむンストヌルしたす。
  3. 䞀連の自動テストを実行したす。


これらのDEVスタンドの興味深い機胜は、内郚゜フトりェアのむンストヌル、テストナヌザヌの䜜成など、すべおのルヌルに埓っお準備する必芁があるこずです。 通垞、スタンドは1台のコンピュヌタヌだけでなく、仮想マシンのクラスタヌです。したがっお、珟時点では、クラスタヌの正しい初期化もテストされたす。 実際、スタンドが展開された瞬間から、スタック党䜓のミニむンストヌルテストも行われたす。







通垞、 Ansible



はこの時点で衚瀺されたす。 アンサンブルは、䞻にタヌゲットシステムを構成する手段ずしお䜿甚され、Jenkinsから起動されたす。 さらに、Ensibleは、すでに展開されおいるシステムをより包括的に管理するために䜿甚できたす。これは、これを目的ずするものではありたせんが、DEV回路の目的には優れおいたす。 アンサンブルは、特別な゚ヌゞェントすでにすべおのGNU / LinuxホストシステムにあるSSHサヌバヌを陀くを必芁ずしないため、SUDDENチヌムの誰かが10台のサヌバヌで䜕かを再起動する必芁がある堎合にも遞択されたした。 DEVクラスタヌ内-これには特別な「秘密管理者の知識」は必芁ありたせん。 Ensibleは非垞にシンプルであるため、開発者ず有胜な管理者の䞡方が、最短時間でEnsibleの調査に察凊したす。







もちろん、Ensembleの䜿甚には問題がありたす。 たずえば、暙準の圹割システムは、耇雑なモゞュヌルプロゞェクトでは䞍必芁に単玔な堎合がありたす。 最新バヌゞョンでは、ネストされたロヌルの実隓的なサポヌトがありたすが、十分ではない堎合がありたす特に非垞に未加工であり、Ensiblの他の機胜ずの互換性に぀いおテストされおいないため。 Ensembleを蚭定だけでなく、タヌゲットシステムの管理甚のシステムずしお完党に䜿甚しようずするず、Ensible自䜓が単なる高レベルコマンド甚の「SSHアセンブラ」である、远加のバむンディング゜フトりェアを倚数䜜成する必芁がありたす。







さらに、Ensembleず緊密に連携する開発者はPythonを知っおいる必芁があるこずがすぐに明らかになりたす。 たずえば、クラスタヌ、Linux、アプリケヌション゜フトりェアなどの埮調敎に関連する非垞に耇雑な構成手順を持぀、独自の゜フトりェアがありたす。 これらの操䜜の倚くは、あたり知られおいないネむティブ機胜を䜿甚する必芁がありたすが、コミュニティは既成の゜リュヌションを䜜成しおおらず、今埌も䜿甚したせん。 「クリヌンピット」のプレむブックで説明するず、数十ペヌゞのテキストが必芁になりたす。 そしお、これらの操䜜のログは読みにくいおridgeになりたす-特に、これは適切なブランチ制埡の欠劂ずそれに察応するログの発行によるものですコミュニティで質問が時々出されたすが、それはただありたす。 この問題を解決するより正しい方法は、アクションプラグむンずモゞュヌルを䜜成するこずです。耇雑なコヌドはすべお、゚レガントに䜜成されたPythonスクリプトにカプセル化されおいたす。 実際、高レベルのビゞネスパラメヌタを含むプラグむンコヌルのみが、プレむブック自䜓に残りたす-GNU / Linuxコマンドラむンナヌティリティずの類掚によっお。 このこずから、むンフラストラクチャ゚ンゞニア開発者、管理者、開発者-このタスクを実行するすべおの人が適切なレベルでPythonを知っおいる必芁がありたす。 特別なPythonプログラマヌず同じようにそれを知る必芁はありたせんが、完成したコヌドの読み取りずバグ修正、およびEnsemble甚のシンプルなモゞュヌルの䜜成ができるこずは成功の秘recipeです。







実際、埗られる結果は、実際には、ある皮の「スクリプト」ではなく、特別なサポヌトを必芁ずするかなり耇雑な゜フトりェアです。 ここから、2぀のリポゞトリぞの最初の分離が行われたした。1぀は補品コヌド甚で、もう1぀は展開スクリプトコヌド甚です。 展開スクリプトリポゞトリの堎合、通垞、他の特別なリポゞトリ管理システムたずえば、Atlassian Stashではなく、特定の蚭定を持぀GitLabを䜿甚しお、構成管理の柔軟性を高めるこずができたす。







䞊蚘のツヌルに加えお、さらに倚くの小さなツヌルがありたす。 たずえば、䞀郚のプロゞェクトではただGridGainを䜿甚しおいたせんが、SQLデヌタベヌス-Liquibaseを接続しお移行をロヌルバックできたす。 などなど。 そのようなこずはすでにプロゞェクトの詳现に倧きく䟝存しおおり、可胜であれば暙準化する必芁がありたす。 たずえば、UIテストのフレヌムワヌクずしおSeleniumを遞択した堎合は、これに固執する必芁がありたす。 このような決定をサポヌトするには、倚くの専門知識が必芁です。













次の段階は、専甚スタンドでのクリヌンで正しいシステムテストです。







ここで2぀の重芁なこずが起こりたす。







  1. テスト環境をむンストヌルしお構成する
  2. 䞀連の自動テストを実行する


環境のむンストヌルずセットアップ自䜓は、倚くの堎合、すぐに修正のために送信される倚くの驚くべきものを明らかにしたす。 基本的に、それらは管理の単玔さず容易さに関連しおいたす。 システムは時間の経過ずずもに成長する傟向があり、チュヌニングの耇雑さが増したす。そしお、あなたはこれらの問題を芜から取り陀く必芁がありたす-この立堎から。







「玔粋な」STテストの䞀連の自動テストは、ストリンゞェンシヌを高める方向で「汚れた」DEVテストずは異なる堎合がありたす。 最小の実隓プロゞェクトでさえ、少なくずも基本的な煙テストが必芁です。 テストがない堎合、このプロゞェクトは統合テストに䜿甚できたせん。













統合テストは、最倧か぀最も耇雑で最も重芁なテストです。 少なくずも、この段階では耇雑なバグの数が最も倚いため、開発者にはそのように思われたす:-)゚ラヌは特定のプロゞェクトだけでなく、数千人ではないにしおも数癟人の結果に圱響するため、できるだけ正確にそれを行う必芁がありたす。







この段階で、スタンドは実際のむンフラストラクチャをシミュレヌトし、完党な非垞に倧きなリ゜ヌスを持ち、システム管理者から完党なサポヌトを受けたす。







いく぀かの重芁なこずが起こりたす。







  1. テストマネヌゞャヌは、補品の公開準備ができおいるずいう通知を受け取り、それを行うかどうかを決定する必芁がありたす。 テストマネヌゞャヌは目に芋えない前線の戊闘機ですが、圌の貢献を過倧評䟡するこずは困難です。
  2. テスト環境をむンストヌルしお構成したす。 この環境は統合テストを目的ずしおいるため、傘の傘内に統合されたすべおのプロゞェクトに共通しおおり、補品をむンストヌルするためのアプリケヌションの受け入れに䌎いたす。
  3. 自動および手動テスト。 最も厳密で、耇雑で、最倧のテストスむヌト。

    「マニュアル」ずいう蚀葉でベルが鳎りたしたか はい、実際のシステムでは 、自動化をあたり受け入れられない瞬間があり、平均しお、あなたはそれに぀いお䜕もするこずができたせん。 これは特にUI応答性テストに圓おはたりたすおそらくAIはすぐにそれらを実行したすが、ただ実行しおいたせん。 開発チヌム党䜓の䞻なタスクの1぀は、この段階を可胜な限り迅速か぀無痛に進めるこずです。
  4. テストマネヌゞャヌは、すべおの皮類のテストに合栌したこずの確認を受け取り、詳现なレポヌトを䜜成したす。
  5. IBに぀いおは曞かないこずに同意したした:-)
  6. 特に興味深いのは負荷テストです。その結果は長期的な結果をもたらす可胜性がありたす。実際、これはパむプラむンの最初の瞬間であり、パフォヌマンスは正匏な蚈算ではなく実際に衚瀺されたす。








完党にテストされた完成品は、ディストリビュヌションの特別な集䞭リポゞトリに配眮されたす。 それに加えお、利甚可胜なすべおのドキュメントおよびその他の資料が添付されおいたす。 受信したファむルは氞久に凍結されたす。 それらを倉曎するために特別な手段が䜿甚されたしたが、それは決しお䞍可胜でした。

このようなリポゞトリを突然自分で䜜成しおJavaで蚘述したい堎合は、単にNexusを䜿甚できたす。













受け入れテストを実行するこずは、秘密の知識に危険に迫るもう1぀のトピックです。 しかし、トップレベルでは、すべおが簡単です、それは起こりたす







  1. 特別な自動テストず受け入れテストの倧芏暡な耇合䜓の実行
  2. これたでにない耇雑な手動テストを含む


この段階を通過した埌、補品の動䜜準備が敎ったず想定できたす。













そしお最埌に、明癜な理由のために曞くこずができない実際の産業運転での展開。 はい、それは意味がありたせん、なぜなら 䞊蚘のパむプラむンは、幎末にのみプロムに到達したす。 珟圚、プロムにデプロむする堎合、手動のむンストヌル手順が䜿甚され、ディストリビュヌションに添付されおいるむンストヌル手順を䜿甚したす。これは、特別なデプロむメント゚キスパヌトによっお実行されたす。







自動展開の堎合、この段階では2぀のこずが行われたす。







  1. 生きおいる人条件付きで「devops-engineer」は、展開の準備ができおいるこずを手動で確認する必芁がありたす
  2. 自動展開


すべお。 この最小限のツヌルセットはすでに、倚くの人々が1぀の屋根の䞋で仲良くするのに十分です。 このツヌル暙準は開発者の胜力を制限するものではなく、さらなる開発のための安定したプラットフォヌムを提䟛するこずを理解するこずが重芁です。







技術コアPPRB



JUG.ruカンファレンスでの Sberbank Technologiesのレポヌトに粟通しおいる読者ずころで、 次のカンファレンスは近日䞭に開催されたす は、デボの話が䞊蚘のスキヌムで終わっおいないこずに気付くかもしれたせん。 むしろ、圌女はただ始たったばかりです。







これらの゜リュヌションはSberbank Technologies自䜓に非垞に固有であり、誰もがそれらに぀いお知る必芁はないため、この蚘事は共通のツヌルスタックから始たりたした。 ただ私たちず䞀緒にいる人のために、私たちは続けたす。







Sbertechで䜿甚される革新的な゜リュヌションには、特別な開発アプロヌチが必芁です。 その理由には、倚様な技術スタック、倚くのサブシステムからのデヌタの集玄の必芁性、そのような量のデヌタを凊理するために必芁な信じられない数のサヌバヌ、サヌビスを実行できる「䌑日」および「倜間」の欠劂などが含たれたす。 高いパフォヌマンス、フォヌルトトレランス、24時間365日の保守性を線成する必芁があるにもかかわらず、埗られる゜リュヌションは暙準のハヌドりェアで動䜜し、特別なスヌパヌコンピュヌタヌを必芁ずしたせん。 結果ずしお埗られる゜リュヌションは、同時に、集䞭型システムず分散型システムの属性を持぀必芁がありたす。 難しい状況。







その結果、いわゆる統合情報スペヌスが䜜成されたした。 これは、すべおのノヌドが盞互接続されたクラスタヌアヌキテクチャであり、党員が党員ず通信できたす。 重耇や統合はありたせん。すべおのデヌタは1぀のむンスタンスに存圚し、い぀でもどのノヌドからでもすべおのモゞュヌルにアクセスできたす。 このシステムのバック゚ンドは、GridGainず呌ばれるメモリ内デヌタグリッドです。 今日、それは倧量のビゞネスデヌタを保存および凊理するための䞖界最高のシステムの1぀です。







管理者ず開発者が統合テストを凊理する必芁があるのは、このアヌキテクチャです。 .







, CI/CD . Jenkins Ansible , . .







Java- ,



.













, “” ( -), , . , : , , , . - , Java.







, , OpenSource.













GridGain Apache Ignite ( ? , JUG.ru, ). Apache Kafka , ZeroMQ , Hyperic — Open Source. , — (, , ), , , . , Apache Kafka OpenStack — , .







, — , . , . — Kafka, , . — Ignite/GridGain, , - , IMDG, . ( ), Java- ( ). — , , , .







, , , , , , . , -. , HypericHQ — “ ”. , ( , ) , . - “ Windows”, , - . , Java-: properties-. — /etc , . , , ( ) — .properties /etc . .







, CI/CD , .







おわりに



CI/CD - ( ), - ( , ).







, : , - ; , ; , - — . , , : , .







, DevOops 2017 , - 20 2017. , - — .







謝蟞



-: ( ), ( ), ( .BPM), ( ) . , , . よろしくお願いしたす








All Articles