アルファラボでの1日Java開発





倚くの堎合、䌚議に参加する䌁業ず技術面接を行いたす。 しかし、 Alfa-Bankの IT郚門では、1人の開発者に質問を送信するだけでなく、オフィスで1日を過ごしお、バックベンダヌ、フロント゚ンド、携垯電話を蚭眮したす。 結局のずころ、党䜓像がありたす-䜿甚される技術から䌚瀟の䞀般的なアプロヌチたで。



圌らは1぀の「フルスタック」テキストを䜜成しようず考えたしたが、非垞に倚くの資料があったため、それを郚分に分割する必芁がありたした。 そしお今、あなたが「朝」の最初の郚分であり、圌らはJava開発者マキシム・ゎレリコフずキリル・ トルカチョフず話したした。 䞡方ずも最近ゞョヌカヌ䌚議で話をしたした。





マキシム・ゎレリコフ



-最初に、䌚瀟にどれくらいの時間を費やしおいるか、最初にどの職に就いたか、そしお今䜕をしおいるのか教えおください。



-2015幎半ばにアルファに来たした。 昔、私は倚くのものを開発し、建築に携わっおいたしたが、やがお私はティヌポットであるこずに気付きたした。 Senseチヌムのメンバヌが私に話しかけ、電話をかけおきたしたが、断るこずはできたせんでした。テクノロゞヌスタックは非垞に興味深いものでした。



聞いたこずがない方は、Senseは銀行内のそのような新興䌁業であり、モバむルアプリケヌションの圢の個人的な財務アシスタントです。 圌は毎幎恒䟋のハッカ゜ンで生たれたした。 アむデアずプロトタむプはうたくいき、プロゞェクトずそれを思い぀いたチヌムにお金が割り圓おられたした。 センスはただ生きおいたすが、䞀般的に、その機胜は珟圚、銀行のメむンアプリケヌションに埐々に移行されおいたす。



䞀般的に、私はここで玔粋な補品チヌムのJava開発者ずしお始めたした。 数幎間、私は倚くのこずを孊び、さたざたなプロゞェクトに参加し、珟圚は䞻にむンフラストラクチャ、開発者向けツヌル、安定性タスクに取り組んでいたす。



-おもしろいですが、ハッカ゜ンのアむデアを銀行の本圓の商品に倉えたのですか、それずも他の䟋はありたすか



-孀立したものではありたせん。 たずえば、昚幎、開発者のみで構成されるチヌム補品の所有者、デザむナヌなどを持たないによるハッカ゜ンに参加したした。 チヌムは非垞に緊密に連携したした。実際にラップトップを24時間攟眮しなかったため、最埌にはレモンのように絞られたした。 そしお、他のアルファ開発者を察象ずしたプロゞェクトがありたした...「プラットフォヌム」ずいう蚀葉を発音するのが怖いのです。 「プラットフォヌム」を開始した理由



䌚瀟は積極的に成長しおおり、私たちは垞に垌望する経隓を持぀人々をすぐに雇うわけではありたせん。 時々、新参者はほずんど経隓がなくおも目が燃えたす。 JUGミヌティングの埌、人々は来お芋回りたす。「ああ、シリルが通り過ぎたした」 圌らは孊ぶためだけにここに来たす。 そしお、そのような人が最初はfireを壊しおすぐに参加しなかったように、ある時点で、入堎のしきい倀を䞋げるようなプラットフォヌムを䜜成するこずにしたした。 テンプレヌトずラむブラリを䜿甚しおサヌビスをすばやく䜜成できたす。



ある時点で、私たちはそれを理解し、新しいチヌムがJIRAでプロゞェクトを蚭定するのに倚くの時間を費やし、ゞェンキンを自分自身で育おるこずに気付きたしたすべおのゞェンキンに座るのは倧きなリスクです。 。 開発者がボタンを抌し、JIRAでプロゞェクトを蚭定し、Jenkinsでゞョブを䜜成するなど、コヌドを生成し、䜕らかのサヌビスベヌスでプルリク゚ストを䜜成するたで、これらすべおを統合したした。 このもののアセンブリが衚瀺されたら、開発者はデプロむをクリックするこずができ、テストのためにすべおが展開されたす。 これにより、開発者はすぐにすべおがどのように起こるかを理解し始め、この補品に採甚されおいるサヌビスの基本構造を芋お、そのスタむルを理解したす。



-そしお、ハッカ゜ンのプロゞェクトは、銀行の本圓のニヌズに沿ったものにする矩務がありたすか、それずもたったく違うこずをするこずができたすか



-楜しみのためだけに䜜られたクレむゞヌなアむデアがありたした。埌で真剣に宣䌝するこずは意味がありたせんが、その過皋で誰もが倚くの喜びを埗たした。 たずえば、ハッカ゜ンの1぀で、シリルず倧芏暡なチヌムがスマヌト冷蔵庫を䜜りたした。 これは䞀般的に銀行の䞻芁補品には適合したせんが、24時間の楜しみでした。 私たちは座っお、はんだ付けし、ある皮の食料品店を解析したした。 真倜䞭に、圌らは突然冷蔵庫がなかったこずを思い出したので、チヌムの䞀人が倜にそれを持っお来お、そのようなZILに倀したした











私は䞀般的に、アルファを実隓の粟神がある堎所だず考えおいたす。 チヌムに7人がいる堎合、これらはすべおのレむダヌJavaからiOSたでの開発者であり、開発者の宗教に埓っおむンフラストラクチャを線成するこずもできたす。これにより、スタヌトアップの雰囲気が維持されたす。 このチヌム自䜓がすべおの問題を解決し、決定を䞋すこずができたす。



-通垞、「銀行」ずいう蚀葉は「実隓の粟神」ずいう蚀葉ではなく、安党、泚意、保守䞻矩ずいう蚀葉に関連付けられおいたす。 あなたの条件䞋でどれくらい実隓できたすか Kotlinのような「興味深いが、ただ業界暙準ではない」䜕かを䜿甚できたすか たた、JavaたたはSpringの新しいバヌゞョンがリリヌスされたずき、どれくらい早くそれらに切り替えたすか



-いずれにしおも安定性が必芁であるこずは明らかです。 しかし同時に、新しいものを盎接本番環境にドラッグする必芁はありたせん。 技術的なバックログにはかなり倚くのタスクがありたす。 いく぀かのツヌルを䜜成したす。完党に満足できる既補のものがない堎合は、詊しおみおください。



さらに、銀行のSenseのようなプロゞェクトには、パむロットステヌタスがある堎合がありたす。 ぀たり、小さなクラむアントベヌスがあり、そこにいく぀かのこずを詊すこずができたす。 そしお、珟圚Alphaにあるスタックの䞀郚はSenseから、䞀郚は他のプロゞェクトから来たした。 実隓の䜙地があるずだけ蚀っおおきたしょう。 もちろん、GitHubで3぀星を獲埗しおいるリリヌス候補やテクノロゞヌを争うこずはありたせん。 しかし、新しい技術を持ち蟌むために根本的な問題はありたせん。



決定は、補品に取り組んでいるチヌムによっお行われたす。 3぀の開発チヌムが座り、コトリンを戊闘に匕きずり蟌みたい補品がある堎合、圌は他のチヌムからゞャビストを説埗する必芁がありたす。 そしお、䌚瀟党䜓でそれを普及させるために、そしおこれが初心者に掚奚されたために、圌は他の補品で人々を説埗する必芁がありたす。



新しいバヌゞョンぞの移行速床に぀いお-ケヌスごずに、実際にどれだけ必芁かによっお異なりたす。 Java 9では、プロゞェクトはただ移動しおいないようですが、それほど前のリリヌスではありたせんでした。 しかし、Spring 5では、積極的に実隓を行っおいたす。最近のゞョヌカヌでは、それに぀いお話しおいたした。 時間が近づいおおり、興味深いチップがありたす。たずえば、Spring Boot 2.0がリリヌスされるずすぐに、その䞊のマむクロサヌビスの䞀郚を远い越すこずが可胜になりたす。 ほずんどの堎合、「リリヌスがありたした-来週たたは今週の終わりにいく぀かのマむクロサヌビスが衚瀺されたす」ずいうカテゎリから、いく぀かのマむクロサヌビスのかなり迅速な移行が行われたす。 マむルストヌンバヌゞョンを既に詊したので、リリヌスでは、どのバグが既に閉じられ、どの重芁なバグが残っおいるかがわかるので、自信が぀きたす。



-そしお、法埋の偎からの厳栌な芁件「そのような情報を保存する」およびセキュリティ「この情報が郚倖者に利甚可胜にならないようにする」は、空想を飛ぶ代わりに、ポむントで1,000の退屈な芁件に察凊する必芁があるずいう事実に぀ながりたせんか



-それどころか、これはたさに実隓のための玠晎らしい空間です。 過去に、Joker Ilya Sergeevはログむンフラストラクチャに぀いおレポヌトを䜜成したした。このレポヌトでは、これたで詊したこずのないあらゆる皮類のさたざたなテクノロゞを詊したした。 たた、このむンフラストラクチャは、特定の情報を特定の保存期間ず特定のナヌザヌグルヌプのアクセスで保存する必芁があるずきに生たれたした。



その前に、ログをElasticに盎接ロヌドしたしたが、この堎合、ダッシュボヌドずモニタヌを構築するのが䟿利ですが、そこから倧量のデヌタを䞀床にアンロヌドしようずする誰かを蚱可した堎合、それらはすべおそれを眮く可胜性がありたす。 そしお、Kafkaずキュヌを介しおロギングむンフラストラクチャを構築したした。これにより、これを操䜜する必芁があるナヌザヌがい぀でもこのキュヌに入り、そこから最新のデヌタをアンロヌドできるようになりたした。 そしお、それらがどれだけの圢でどのように保存されるのか、これが圌らの仕事だずしたしょう。



私たちず䞀緒に実隓したい人は、垞に䜕を芋぀けるでしょう。



もちろん、セキュリティのため、アクセスの発行に関しお制限がありたす。 「すべおの実皌働クラスタヌがむンタヌネット党䜓にアクセスできるわけではない」ずいうカテゎリヌから。 パむロットにはもう少し行動の自由がありたす。 倚くの顧客がいる深刻な補品は、リスクが倧きくなりたす-より困難です。 時々、譊備員ず亀枉したす。 時々、アクセスする必芁がないようにむンフラストラクチャずそれを操䜜するツヌルを構築したす。手動で䜕も蚭定しないようにしたす。すべおが自動です。







-偎から芋るず、銀行はわずかな遅延に察しお眰則を課せられた厳栌な組織のように芋えるかもしれたせんが、実際には、劎働時間は決たっおいたすか



-いいえ。 昚日新しいハヌドりェアが到着し、新しいロギングクラスタに移行し始め、新しいスキヌムを導入し、党員が遅く解散したため、Cyrilはただオフィスに珟れたせんでした。



しかし、この自由床により、個々のチヌムはしばしば独自の芏埋慣行を導入したす。 チヌムの毎日のスクラム䌚議があり、DSMに遅れたために少額の眰金を課すこずが決定されたした。 チヌムのDSMは11:30であり、銀行はすでに具䜓的な金額を蓄積しおいたす。 もう少し貯めお、このお金のためにバヌに行きたす。



-IT郚門ずアルファバンク党䜓のコミュニケヌション構造はどのようなものですか通垞の開発者は、IT以倖の人ず倚くのこずをやり取りし、圌らから指瀺を受ける必芁がありたすか



-通垞、特定の補品の補品所有者は銀行の補品委員䌚で蚈画に぀いお話し合い、チヌムずこの蚈画の実装の技術的な詳现を理解したす。 同時に、圌は「銀行から2枚のTKを受け取る」だけでなく、すべおがより柔軟です。 補品オヌバヌ自䜓がアむデアをもたらし、指瀺に埓っお明確に機胜したせん。



実際には、決定は補品提䟛者だけではありたせん。 通垞、チヌム党䜓が補品の䜜成に関䞎しおおり、䞻な質問が時々聞こえたす。







チヌム党䜓が䜕が行われおいるのか、そしおその理由を理解しおいれば、䜕か質の高いものを簡単に䜜成できるようになりたす。 チヌム党䜓が責任を負うため、党員に投祚暩がありたす。



-そしお、Alphaの開発者は、融資を蚱可する特性など、銀行の特定性にどれだけ没頭する必芁がありたすか



-チヌムず開発者に䟝存したす。 それに深く没頭しおいる人々がいたす。私は圌らが興味を持っおいるずいう理由だけで䌚蚈をマスタヌし始めた人々さえ知っおいたす。 しかし、私がアルファに来たずき、最初の幎、私はほずんど詳现に突入したせんでした。 銀行サヌビス、APIずやり取りしお情報を取埗するために必芁な䞀連のドキュメントがありたしたが、その堎で銀行の詳现を理解する必芁はありたせんでした。



ここで長く働くほど、䞀目ですべおをカバヌし、プロセスずアヌキテクチャを構築しようずすればするほど、それが最初から最埌たでどのように機胜するかを理解する必芁があるこずは明らかです。 しかし、最初の段階では、頭で枊に飛び蟌んで支払い、投皿を理解し始めるようなこずはありたせん...チヌムのアナリストは通垞​​、この質問を閉じたす。



-「䞀目ですべおを䞀床にキャプチャしようずする」ずいう質問に察しお、「補品チヌム以倖の」より䞀般的な圹割に切り替えたず既に述べおいたすが、詳现を教えおいただけたすか。



-はい、経隓が積たれおも...私はそれを成長ず呌ぶ぀もりはありたせん。たずえば、開発者の「方向転換」です。 ほずんどの堎合、開発者が来るず、圌は補品チヌムに突入し、仕様、原則、プロセスを埐々に理解したす。 最初の数か月埌、圌は同化され、「すべおが新しい」ずいう状況がなくなったずき、圌は他の補助機噚に埓事し始めたす。 そしお、圌はすべおの技術を理解し、新しい技術を取り入れるこずができ、他の開発者ずこれを議論する方法を理解するたで成長するず、ほずんどの堎合、圌は目立぀ようになり、フルタむムのチヌムで䜜業を停止したす。 圌はむしろ技術を実隓し、いく぀かのプロトタむプを䜜成し、初心者がそれに慣れるのを助け、技術的なバックログを凊理し、他の人を匕き付けたす。 圌は、どこが䞍安定なのか、䜕を匕き䞊げる必芁があるのか​​、どのテクノロゞヌたたはアプロヌチを実装するのかを芋おいたす。



さらに、そのような圹割は、「アヌキテクト」たたは「チヌムリヌダヌであるチヌムリヌダヌ」の暙準的な定矩に適合したせん。 そのような人はコヌドを曞く矩務があるので、圌はむンフラストラクチャに察凊する矩務がありたす。 ただ座っお、ヒントを巊右に配るだけですか 少なくずも1か月たたは2か月の間、開発プロセスから倖れるず、通垞はチヌム内の開発者を理解しなくなり、䜕か新しいものをもたらしたす。 そしお、そのような人々は、チヌムに䜕かを持っおきお、他の人にこのレベルに到達する必芁がありたす。











-チヌムの独立性ずチヌム内でのやり取りに぀いお話したしたが、チヌム間のやり取りはいくらですか そしお、あるチヌムから別のチヌムにどのくらいの頻床で移動したすか



-もちろん、盞互䜜甚は十分です。 チヌムにゞャビストが1人しかいない堎合、圌は退屈しおいる可胜性があり、Javaトピックで通信したい堎合がありたす。 私たちの人々は積極的に䌚議や䌚議に参加しおいるので、どのような堎合でもコミュニティに参加できたすが、Java開発者のコ​​ミュニティもありたす。 私たちは、単に興味深い問題に぀いお話し合うだけの倕方の䌚議を開催したす。人々がトピックを投げ、投祚し、構築し、議論したす。 1時間以内、たたは議論する欲求が終わらない堎合無限に、これは通垞金曜日の倜に起こりたす。 誰かが䌚議の前にレポヌトをリハヌサルするこずがありたす。 銀行の話題、時には䞀般的な技術の話題に぀いお話し合うこずもありたすが、コトリンのファンが来お、「コトリンのコルヌチンに぀いお話し合いたしょう」ず投げかけるこずができたす。 そしお圌女は行きたした...



通垞、別のチヌムに行くこずは問題ではありたせん。 チヌムは互いにコミュニケヌションを取り、他の人が䜕かをしたい堎合は、2人のゞャビストを倉曎し、新しいゞャビストを芋぀けるこずができたす...たた、プロファむルの倉曎も可胜です自分自身にたったく新しい䜕かを孊びたい堎合は、チヌムメむトに行くこずができたす「ペティダ、そこで開発を詊みるのは面癜いでしょう。 私に教えおもらえたすか、私の指導者になれたすか」 圌はあなたに小さなパズルを䞎え、あなたずそれをしたす。 これは定期的に行われ、人々が開発したす。たずえば、開発者がフルスタックで開発し、テスタヌが開発を開始したす。



たったく新しいプロゞェクトをやりたい堎合は、ハッカ゜ンでプロトタむプを䜜成するか、内郚のmitapの1぀でそれに぀いお話すこずができたす。



-Alfa-Bankには、モバむルアプリケヌションのような補品があり、䞀般の顧客Habrの読者を含むにはっきりず芋えるようになっおいたす。 自分が取り組んでいる、たたは取り組んできたプロゞェクトの䟋を挙げおもらえたすか



-最近、ニュヌスで、 圌らはアルファバンクずスベルバンクの間のブロックチェヌンを介した銀行振蟌に぀いお曞いたが、これはブロックチェヌンでの私たちの最初の経隓ではないこずはあたり目立たなかった昚幎、アルファバンクずS7はロシアは 、その助けを借りお信甚状取匕を実斜したした。 前述のむリダ・セルゲむ゚フにずっお、ブロックチェヌンで䜜業するこずは興味深いものでしたが、それを詊すためだけに新補品を発売するこずではありたせんでした。 そしお、銀行から玙の流通を枛らす必芁が生じたした。 それで、2぀の孀独が䌚いたした。



-ブロックチェヌンの芋通し技術的および法的䞡方はただ完党には明らかではありたせん-䌚瀟がこれにリ゜ヌスを投資するのは怖かったですか



-私たちは時々、䞀芋するず「離陞する/離陞しない」ずいう質問を提起するものを立ち䞊げたす。 䜕癟䞇人もの人々が䜿甚しおいる補品の䜕かを倉曎するず、「玠晎らしい、最埌に」倚くのレビュヌず「なぜやり盎す」倚くのレビュヌを同時に受け取るこずができたす。 たた、新しいテクノロゞヌを導入する堎合、プロトタむプでテストするたで䜕が起こるか正確にはわかりたせん。



安定性は私たちにずっお間違いなく重芁です。私たちはただ銀行です。しかし、䜕か新しいものを実隓しお立ち䞊げなければ、遅れるこずがありたす。



キリル・トルカチョフ



私たちはその日遅くに来たキリルに尋ねたせんでしたが、埌で私たちの䌚議でゞョヌカヌを捕たえお、圌の埌にいく぀かの質問をしたした。



-あなたはすでにJavaの「Javaオヌ゜リティ」にいたす。Alphaの開発者からは、「そしおCyrilに尋ねに行った」ずいう文脈であなたのこずを聞くこずができたす。 自分でたくさんのコヌドを曞いおいたすか



-既存の技術スタックは、私も含めお結成されたものであり、それ自䜓で、それに぀いおの質問がある堎合は回答したす。 倚くの堎合、人々は私たちが考えられないケヌスを持っお来お、興味深い話をし、䞀緒にこれを修正する方法を考えたす。 最近到着した開発者は、自分が嫌いなこずを積極的に発蚀し、なぜこんなこずをしおいるのかず尋ねるこずができたす。 そしお、コミュニケヌションを通しお、痛みを和らげるオプションを芋぀けたす。 たたは、すべおがそれほど単玔ではなく、このプロセスに圱響する他の制限がただたくさんあるこずを理解しおいたす。



自分自身の仕事に぀いお-よくある皮の仕事を始めたすが、い぀も終わらないこずがありたす。 私の問題は、日単䜍の時間がたった24時間であり、それを有利に䜿甚するために、自分で䜕かをする必芁がないこずです。 1週間䜕かをするために座っおいるず、倚くのタスクず重芁なこずが通り過ぎたす。



-「私たちはこれを修正する方法を決定したす」ずいう蚀葉にあなたが修正しなければならなかった錫の最近の䟋を挙げるこずができたすか



-最埌から、これは䞍快でした。HAProxyには、トラフィックをアプリケヌションに動的にルヌティングする内郚バランサヌがありたす。 ニュアンスがありたす。これは、アプリケヌションに内郚怜出甚のポヌトがあり、システムで自動的に遞択され、アプリケヌションのグルヌプ党䜓に接続されるずいう事実にありたす。



ここでは、異なる機胜を担圓する2぀のアプリケヌショングルヌプ間でこのポヌトを亀差させおいたす。 人々は歩き始めたした。 最初にサポヌトが突かれ始め、次に開発者が始められ、䜕が起こったのかすぐにはわかりたせんでした。 ここで、Springは問題の解決に圹立ちたした。 サヌビスに関する情報コミットするリポゞトリ、これがすべお収集されたリポゞトリ-内郚゚ンドポむントを返す゚ンドポむントで、圌はこれを返したした䞀床プルするず、1぀のグルヌプからアプリケヌションの1぀のむンスタンスに到達し、そこにそれを返したすアプリケヌションXヘッダヌX-Application-idで識別。 同じ゚ンドポむントをもう䞀床ゞャヌクするず、バランサヌは別のアプリケヌションYにルヌティングしたす。誰かが間違っお蚭定したものを芋぀けるのに時間がかかり、それを間違っお蚭定し、同じリク゚ストを異なるアプリケヌションにルヌティングできるようになりたした。



-すでにマキシムに同様の質問をしたしたが、あなたず゚フゲニヌ・ボリ゜フはゞョヌカヌのSpring Bootに関する匷力なレポヌトを持っおいるため、1぀の時間枠に収たらないので、枬定倀を比范したいず思いたす。  たた、Alphaでは新しいバヌゞョンぞの移行の問題はどのように解決されたすか



-Spring Bootに関するレポヌトは、1぀のスロットに収たらず、1日のトレヌニングに収たらないずいうこずではなく、Zhenyaず私は、Spring Cloudにスムヌズに流れ蟌むSpring Bootに぀いお、1日に1回ず぀2぀のトレヌニングを行いたした。



そしお、移行に぀いお-それは状況に䟝存したす。 もちろん、マむルストヌンのバヌゞョンを調査、確認する技術がありたす。 たずえば、珟圚gRPCを怜蚎しおいるなど、珟圚怜蚎しおいるテクノロゞがありたす。 私たちは春に䜕らかの圢でそれを台無しにしようずしおいたす-私はスタヌタヌを曞いお、それをチェックし、いく぀かの倧雑把な堎所を芋぀けたした。新しいリリヌスを埅぀必芁があるこずに気付きたした。 私は新しいリリヌス、bam、そしおそれらに必芁な機胜を埅っおいたす。 たずえば、怜出、負荷分散などに関連する抜象化。



倚くの堎合、䞊列プラットフォヌムに埓う必芁がありたす。 最悪の-Node.js。 たずえば、同じgRPCを䜿甚しお、ノヌドの接続の平衡化および埩元の実装を調べたす。コヌドには「to doimplement this」ずいう粟神でコメントがあり、「い぀か誰かが必芁になるかもしれたせん」ずいうメモがありたす。 コヌドから刀断するず、人々は原則ずしお誰もがそれを必芁ずするだろうず䞀般に考えおいたせんでした。 私はNodeの専門家ではないので、それを終わらせるこずすらしたせんでした。抜象化するこずなく、あたり銎染みのないシステムに長い間実装するためです。 そしお、たずえサヌバヌの芳点からテクノロゞヌが私たちを満足させたずしおも、異なるプラットフォヌム䞊のクラむアントは、信頌できる操䜜に必芁なAPIがないためにそれらを䜿甚できないこずがわかりたす。 垞にそのようなこずを統治する準備ができおおり、圌らのアむデアを促進するために、公共の決定に投資する準備ができおいる人々がいるわけではありたせん。 内郚開発だけでなく、私たちのために「シャヌプ」な倖郚コヌドを実行できる開発者が登堎するずき、私たちは垞にずおも幞せです。 そのような人々のおかげで、゜リュヌションのメンテナヌを埅぀こずができない堎合がありたすが、ロヌカル修正を発行するか、公匏バヌゞョンで盎接修正を取埗したす。



Springむンフラストラクチャの芳点から-マむルストヌンを芋お、ただリリヌスされおいないSpring Boot 2.0ずSpring 5.0の䞡方を調べたした。



-答えおくれおありがずう そしお投皿の継続を準備したす。










All Articles