「圌らは䞻流になる前にマむクロサヌビスをしたした」開発に関するSberbank-Technologies





Sberbank Technologiesは、巚倧な銀行のむンタヌフェヌスの統合からブロックチェヌンのプロトタむピングたで、倚くの興味深いタスクに取り組んでいたす。 ほずんどの堎合、開発はJavaで行われたす。同瀟は、倧芏暡な゚ンタヌプラむズシステムに最適な遞択肢であるず考えおおり、サヌドパヌティ補品ず内郚開発から゜リュヌションを構築する胜力を高く評䟡しおいたす。



䌚議では、Sbertekhの講挔者は圌らの経隓ずそこから導き出される䞀般的な結論の䞡方に぀いお盎接話したす。 しかし、すべおがレポヌトの圢匏に収たるわけではなく、 Jokerの前倜、Java䌚議で講挔しおいる䌚瀟の3人の埓業員に個別に質問をしたした。 圌らは私たちに答えた







セルゲむりラゞミロフ事業開発を支揎するプラットフォヌムの䞭倮委員䌚の開発責任者



-Sbertechで䜕に取り組んでいたすか



-箄1幎間、小売店のカヌド受付端末の新しい䌚蚈システムを開発しおいたした。 このプロゞェクトは、Cで曞かれた叀いシステムを眮き換え、デヌタベヌスぞの盎接接続を操䜜し、他のシステムずの手動および半手動のやり取りを倚数行いたす。 このアプリケヌションは、Sberbank 2018+の新しいプラットフォヌム2018幎以降のタヌゲットプラットフォヌムの䞀郚になりたす。 クラむアント指向のデヌタストレヌゞアヌキテクチャApache Ignite / GridGainテクノロゞに基づくず単䞀の䌁業デヌタモデルを䜿甚しお、「正盎な」サヌバヌ偎Javaアプリケヌションクラむアントずしおブラりザを䜿甚ずしお蚘述されおいたす。 ここには倚くの流行語がありたすが、それぞれの背埌には根本的な倉化があり、考え方やビゞネスアプリケヌションの開発方法に倉化はありたせん。



このプロゞェクトの第1フェヌズは完了し、同僚は匕き続き䜜業を進め、ナヌザヌむンタヌフェむスを敎理するための新しいプロゞェクトに携わり始めおいたす。 繰り返しになりたすが、これはHTMLからJavaScriptぞのコヌドの単なる曞き換えではなく、フロント゚ンドずバック゚ンドの盞互䜜甚ぞの新しいアプロヌチの導入です。



-あなたは情報セキュリティず暗号化を教えおいたすかこれはスベルテクでの仕事に関連しおいたすか、それずも別に興味がありたすか Sberbankはブロックチェヌンのプロトタむプを䜜成し始めたした-これに関連しおいたすか



-私は孊校およびプログラミングから情報セキュリティに関䞎し始めたしたが、垞に䞊行しお行われ、盎接接続されおいたせんでした。 しかし、圌らはお互いに絶えず圱響を及がしたす。 少なくずも、「開発者ずしおどうするか」ず「それを壊したい堎合にこのシステムに匱点がある」ずいう2぀の偎面から同じ問題に目を向けるようになりたす。 これは、特に耇雑な゚ンタヌプラむズレベルのシステムに圓おはたりたす。 システムの蚭蚈における「セキュリティの考慮事項」が、既成の゜リュヌションがセキュリティ担圓者の圧力の䞋で倉曎を䜙儀なくされるこずであり、その逆ではない堎合は非垞に悪いです-システムの構築の原則で安党芏則に埓う堎合、システムを開発する人が理解し、これらは原則です。 非垞に䟿利なもの。



蚀うたでもなく、私はプログラマヌずしお、「蚌明曞」、「デゞタル眲名」、たたは「ハッシュサム」ずいう恐ろしい蚀葉に怖がるこずはできたせん。



ブロックチェヌンに関しおは、残念ながらごめんなさい、Sberbankには非垞に倚くの興味深いプロゞェクトがあるため、それらすべおの興味深いプロゞェクトに参加するこずは䞍可胜ではありたせんが、ニュヌスやメディアからそれらに぀いお孊ぶこずさえありたす。 同じブロックチェヌンに぀いお、私は埓業員向けにSberbankが䞻催した講矩に参加できたこずを嬉しく思いたした。ビゞネスの芳点からブロックチェヌンずは䜕かを孊びたしたが、明らかに、来幎にはこのプロゞェクトに個人的に参加する時間はありたせん。 残念ながら、「デヌタファクトリ」プロゞェクトビッグデヌタ分析プロゞェクトに参加する時間はありたせん。



-あなたはオヌプン゜ヌスが奜きですか-Sbertekhで䜜業するずき、どのくらい積極的にそれを䜿甚したすか



-オヌプン゜ヌスは奜きではないかもしれたせんが、䜿甚しないのは非垞に困難です:-) Javaプログラマヌであり、ビゞネス向けの゜リュヌションを開発しおいる堎合は、ロガヌからXMLラむブラリたで、クラスパスに12個以䞊のオヌプン゜ヌスラむブラリがあるこずを意味したす。 JSON Sberbank Technologiesでは、オヌプン゜ヌスを䜿甚するだけでなく、コミュニティの積極的な参加を目指しおいたす。 最も顕著な䟋は、もちろん、Apache Igniteの䜜業に参加しおいるこずです。



オヌプン゜ヌスはただ安いだけではありたせん。 「垂堎投入たでの時間」の点でより速いこずが刀明したした。 クロヌズド゜ヌスコヌド付きの有料補品を䜿甚するず、開発者から必芁な機胜の修正たたは改善を2〜3幎埅぀こずができたす。 たたは、オヌプン゜ヌス゜リュヌションを䜿甚しお、その䞭のいく぀かの欠陥を修正しそれらが存圚し、誰も気付いおいない堎合、䜕かを远加たたは倉曎する必芁がある堎合は、それを取埗しお倉曎したす。 埓業員にずっお少し珍しい堎合でも、資栌が必芁になりたすが、倧たかに蚀えば、クロヌズド補品の新しいバヌゞョンがリリヌスされたずき、2〜3幎埌ではなく、生産で1週間埌に機胜したす。 Sberbank Technologiesでは、これは理論ではありたせんが、既存の技術を修正するには費甚がかかりすぎたり、通垞はより重芁であるために技術や゜リュヌションの倉曎を䜙儀なくされる実際のケヌスです。



-あなたは、さたざたな圢匏で公衆ず話したすモスクワ物理孊技術研究所の教垫ずしお、たた科孊講矩ず䌚議の䞡方で。 䌚議圢匏はどのように違いたすか



-䌚議での講矩ずスピヌチを比范する堎合、埌者は垞により困難で興味深いです。 講挔者は、人々を圌の話に導く方法がありたせん-圌は詊隓にデュヌスを入れたせん。 聎衆に出お資料を䌝えるこずはできたせん-人々はメモを取るために来たのではなく、新しい有益なこずを孊ぶだけでなく、人々は圌らがその分野の専門家になるのに圹立぀知識を埗るようになりたした。 そしお、あるレポヌトが、将来であっおも実行できる有甚な䜕かを提䟛しない堎合、その人は立ち䞊がっお去りたす。



぀たり、孊生の目暙は詊隓に合栌するこずです。 人気のある科孊講矩の孊生の目暙は、自由な時間に䜕か面癜いこずを孊ぶこずです。 遠足ずしお講矩に行く。 しかし、プロの䌚議出垭者の目暙は、プロのそしおキャリア成長です。 たた、レポヌトがこの目暙に貢献しない堎合、圌らはそれを聞きたせん。



-今埌のゞョヌカヌで䜕に぀いおお話したすか



-ゞョヌカヌのプレれンテヌションは、䞻催者ずの長い間掗緎され、いく぀かの予備オヌディションがあり、最終的に私たちは少し匷調を倉えるこずにしたした。 以前は、アルゎリズムレベルでの最適化の䟋がいく぀かあるず想定されおいたしたが、単玔なアクションそしお間違いなく新しいラむブラリずツヌルなしを䜿甚するず、パフォヌマンスが倧幅に向䞊したす。 しかし、最終的に、ハむラむトの1぀を取り䞊げ、いく぀かの角床から怜蚎するこずにしたした。



そのため、孊生版では、トラむ、たたはロヌドされたプレフィックスツリヌなどのデヌタ構造に関するストヌリヌが芋぀かりたす。 そしお、この構造の助けを借りお、単䞀の狭いタスクの生産性が千倍に増加した実務経隓からの実際の䟋が瀺されたす。



アレクサンダヌ・マトリンリスクシステム開発䞭倮委員䌚の最高開発責任者



-あなたは詐欺を怜出するためのシステムに埓事しおおり、すぐに興味がありたす詐欺垫に圹立぀秘密を明かすこずなく詳现を教えおください。



私は、金融垂堎でリスク管理システムを開発する郚門で働いおいたす。 Sberbankに代わっおトレヌダヌによっお行われたトランザクションを収集するシステムがありたす。 他のシステムは、特定のリスク指暙を蚈算するために新しい取匕むベントを受信するためにサブスクラむブするか、取匕の䞍正をチェックしたす。



䞍正远跡の最も簡単な䟋は、「ペア取匕」の怜玢です。 ぀たり、トレヌダヌは特定の金融商品を賌入し、しばらくしお、おそらく同じ取匕先に䜎䟡栌で販売したす。 たずえば、トレヌダヌは70ルヌブルでドルを賌入し、1日埌に60ルヌブルで売华し、差額の䞀郚が別のチャネルで返されるこずを期埅しおいたした。



他の䞍正テストでは、ブラックショヌルズ法を䜿甚したFXオプションのむンプラむドボラティリティなど、より高床なメトリックが考慮されたす。 ぀たり、興味深いサブゞェクト゚リアず倚くの金融数孊がありたす。



-どのツヌル/テクノロゞヌを䜿甚しおいたすか



郚門では玄15の異なるシステムが開発されおおり、異なるプロトコルを䜿甚しお盞互にやり取りしおいたす。 箄4幎前に䜿甚を開始したマむクロサヌビスアヌキテクチャは、メむンストリヌムになる前からここに非垞に適しおいたす。 各リスクメトリックたたはトランザクションアグリゲヌタヌの蚈算は、個別のサヌビスです。 珟圚、圓瀟のシステムは、耇数のデヌタセンタヌで実行される玄100のマむクロサヌビスに分割されおいたす。 Java 8で蚘述し、Springはどこでも䜿甚されおいたす。 さたざたなサヌビスがさたざたなテクノロゞヌずベヌスを䜿甚しおいたす。 䜿甚するものの䞀郚Cassandra、MongoDB、Coherence、GridGain、RabbitMQ、Oracle DB、TomCat。



-あなたは䌚瀟の内郚䌚議にも参加しおいたす-それらに぀いお教えおください。



-2幎連続で、Sberbank Technologiesは内郚の開発およびQAデむ䌚議を開催したした。 モスクワでの最埌のDev Dayには玄150人が蚪れ、玄300人がオンラむン攟送を芋たした。 3぀のストリヌムに玄20のレポヌトがありたした。 私は講挔者ずしお、たたプログラム委員䌚のメンバヌずしお参加したした。 ここでは、ゞョヌカヌのように、誰でもレポヌトを申請できたす。 プログラム委員䌚が申請を怜蚎した埌。 申請が受理された堎合、報告者は1぀たたは耇数のリハヌサルを行いたす。 これらの䌚議がさらに発展するこずを願っおいたす。



-あなたはモスクワ物理孊技術研究所のスベルテク郚門で教えおいたすかしかし、これはコア掻動に圱響を䞎えないあなたにずっおの远加の掻動ですか、たたは他人に教えるずき、最終的にあなた自身がスベルテクで仕事をするずきにより良い仕事を始めたすか



-私はMIPTのMBT magistracyで2幎以䞊教えおきたした。 たた、数か月前にJavaスクヌルがSBTに開蚭され、そこで講矩も行いたした。



私が自分で蚭定したJavaコヌスの䞻な目的は、孊生が私が蚀ったこずを思い出すだけでなく、Javaに察する情熱を䌝え、圌ら自身が興味を持っお専門知識を深めるこずです。 毎幎、孊郚は最高の孊生にゞョヌカヌずJPointカンファレンスに参加する機䌚を提䟛したす。



埌期には、分散システムに関するコヌスを読みたした。 CAP、FLP定理、分散トランザクションアルゎリズム、コンセンサスプロトコル、分散システムの時間の抂念、䜕が壊れるか、フォヌルトトレランスを提䟛する方法、NoSQLデヌタベヌスアヌキテクチャに぀いお説明したす。



2番目のコヌスは、自分自身で倚くの新しいこずを孊び、知識を構築し、その䞀郚をプロゞェクトに適甚するのに圹立ちたした。



コヌスの孊生を察象にしたアルゎリズム取匕コンテストがすでに2幎間開催されおいたす。 孊生は、Javaむンタヌフェむスでアルゎリズム取匕戊略を実装する必芁がありたす。 次に、この゜ヌスコヌドをゲヌムのりェブサむトにアップロヌドしたす。 戊略はコンパむルされ、別のJVMで起動され、リアルタむムで他の参加者からの゜リュヌションずの取匕を開始したす。 戊略の新しいバヌゞョンを無制限にアップロヌドできたす。 昚幎、参加者の1人がゲヌム終了たでに玄160のバヌゞョンをダりンロヌドしたした。 しかし、別の勝ち:)



マキシム・れリンスキヌ前頭システム開発䞭倮委員䌚の郚長





-正確に䜕をしおいたすか



-私は、Unified Front-End SystemEFSの䜜成に参加しおいたす。぀たり、EFS内にビゞネス機胜を盎接実装する開発者向けのプラットフォヌムの䜜成ず開発を担圓しおいたす。



将来的には、ナニファむドフロントシステムは、利甚可胜なすべおのチャネルむンタヌネットバンク、モバむルアプリケヌション、ATM、コヌルセンタヌ、支店などを通じお銀行のすべおの顧客に絶察にサヌビスを提䟛したす。 そのタスクは、゜リュヌションを統合しお再利甚するこずです。 もちろん、異なるチャネルには独自の特性がありたすが、䞀般的にプログラムの本質は䜕かの実装に䞀床投資し、この実装を異なるチャネルで同様にするこずです。



ESFの巚倧な芏暡を考えるず、高品質で信頌性の高い゜リュヌションを䜜成するには、新しい゜リュヌションの垂堎投入たでの時間を短瞮し、信頌性ずパフォヌマンスの面で均䞀なレベルのサヌビスを保蚌するための単䞀セットのテクノロゞヌずサヌビスが必芁です。 これらの問題単䞀のスタック、サヌビス、アヌキテクチャは、ESFプラットフォヌムのフレヌムワヌク内で私のチヌムによっお察凊されおいたす。



-分散システムなどに特化しおいたす-バック゚ンドではなく、フロント゚ンドシステムを扱うのはなぜですか



-私たちの堎合、パフォヌマンス、フォヌルトトレランス、および信頌性の面でのフロント゚ンドは、バッキングよりもさらに興味深いものです。「皌働時間99.99」などの芁件がありたす。 たた、バック゚ンドが䜕らかの時点で機胜しない堎合、クラむアントはそれに気付かないでしょう。 圌の支払いはすぐには実行されたせんが、システムに入力するこずは可胜です。キャッシュから抜出物を取埗するこずは可胜です。



しかし、バック゚ンドによるず、Sberbank Technologiesには別の倧きなプログラムがありたす。それは、ビゞネス開発サポヌトプログラムです。 これは、In-Memory Data Gridを䜿甚しお技術的゜リュヌションを倉換する詊みです。 最初は、OracleたたはPostgreSQLに基づいおデヌタの自動シャヌディングを行う詊みがありたした。 パむロットがいたした、圌は肯定的な結果ず吊定的な結果の䞡方を䞎えたした。 パむロットの結果によるず、「珟圚の技術は銀行の芏暡に完党に関連しおいるわけではありたせん。将来を芋据えたしょう」ず刀断されたした。 圌らはIMDGを遞択し、同僚はバック゚ンドのデヌタ配列をメモリに移動しおいたす。



-あなたのような巚倧な芏暡で、1぀の技術的解決策がリ゜ヌスの非垞に倧きな増加に぀ながる状況はありたすか



-顕著な䟋は、JS SPAおよびReactのWebプレれンテヌションレベルのテクノロゞヌの遞択です。 アプリケヌションサヌバヌからクラむアントにプレれンテヌションロゞックを転送するだけで、埓来のサヌバヌ偎のWebプレれンテヌションレベルで䜿甚する予定だったアプリケヌションサヌバヌを200個たで保存できたした。 同じこずがクラむアントずサヌバヌ間のトラフィックの削枛にも圓おはたりたす。これは、亀換がデヌタではなくHTMLであるずいう事実により明らかに削枛されたす。



-リバヌス゚ンゞニアリングの経隓がありたすが、Sbertekhで䜜業する際に実際に圹立ちたすか



-ずおもそうです。 特に、IBM WebSphere Application Serverを䜿甚する堎合、ESFの前に䜜業しおいたチヌムが、負荷のあるアノテヌションを䜿甚しおJVM内でデッドロックを匕き起こし、Javaで終わる重倧な欠陥を発芋したIBM WebSphere Application Serverで䜜業する堎合、特にリバヌス゚ンゞニアリングに察凊する必芁がありたすIBM WebSphere MQのドラむバヌ、長い間問題を研究しなければならなかったずき、なぜIBM WAS + IBM MQ + Spring JMSテンプレヌトの組み合わせが負荷のかかった非氞続キュヌで機胜しないのか。



-ありがずう。 JokerでのSergey Vladimirovの報告を埅ちたすが、今のずころJava䌚議でのSbertekhからの以前の報告を思い出しおください。














All Articles