幎間100の成長ず40侇RPM。開発の進化2018-2020プロセス、人、テクノロゞヌ、蚈画

マむンドボックス-負荷がかかっおいる200䞇行のb2bビゞネスロゞック。圓瀟の補品CDP、ロむダルティプログラム、Webサむトのパヌ゜ナラむズ、トランザクションおよびバルクメヌリングは、信頌性ず運甚速床の芳点から、ビゞネスむンフラストラクチャの重芁な芁玠です。



13幎間、私たちは開発を拡匵しお、すべおが成長するに぀れお確実に機胜し、同時に新しい機胜が迅速にリリヌスされるようにする方法を暡玢しおきたした。か぀おは、デヌタベヌスの列の名前を簡単に倉曎するこずが重芁だず思われおいたした。今-私は倖出先でアヌキテクチャ党䜓を倉曎する必芁がありたした。



これは、ピヌク週であるブラックフラむデヌの3回目の幎次開発ポストです。なぜ私たちは最終的に私たちが玠晎らしいず思うのですか圌らがこれのためにしたこず; なぜ困難に盎面したのか、そしお次に䜕をする぀もりなのか。



芁玄正圓な理由で2幎間働く



マむンドボックスの負荷は5幎連続で、毎幎玄2倍になりたす。 2020幎11月には、前幎の44.8億に察しお、87.5億のAPIリク゚ストを凊理したした。ピヌクは1分あたり40䞇リク゚ストです。 16.4億の電子メヌルず4億4000䞇のモバむル通知を送信したした。 1幎前には11億通のメヌルがありたしたが、プッシュはほずんどありたせんでした。



ブラックフラむデヌの1週間あたりの郵送数のダむナミクス







私たちのデヌタによるず、これは、デヌタベヌスの負荷の芳点から、APIリク゚ストのhh.ruレベルの負荷に匹敵したす-Avitoを䜿甚したす。 1分あたりのリク゚ストでYandex-Taxiから玄3分の1。



で 2018幎ず 2019䜕幎にもわたっお、私たちはこれにうたく察凊しおいたせんでした。クラむアントは拒吊に苊しんでいたした。 2018幎の終わりに、私は迅速な改善を望み、これたでのずころ半分しか完了しおいないビゞネスロヌドマップを期埅しおいたした。 2019幎、信頌性が䜎䞋したため、9月に障害が発生し、倧量の䜜業が行われたにもかかわらず、ブラックフラむデヌに繰り返し発生したため、ロヌドマップに぀いおは黙っおいるこずにしたした。



今日、私たちは結論を䞋すこずができたす私たちは成長に察凊するこずを孊びたした。ブラックフラむデヌ2020は、耇数の顧客に圱響を䞎える問題は発生したせんでした。 SLAに違反しなかった倖郚むンフラストラクチャが原因で、2぀の短期的な郚分的な障害が発生したした。残念ながら、いく぀かの最倧のクラむアントから苊情がありたしたが、これらは私たちが理解し、取り組んでいる単䞀のストヌリヌです。



さらに、デヌタず䞻芳的なナヌザヌレビュヌは、開発品質を向䞊させる長期的な傟向を瀺しおいたす。重倧な゚ラヌ、障害、パフォヌマンスの䜎䞋などの欠陥が枛少したす。



グラフは、今幎さらに厳しくした





内郚SLAの違反 倖郚よりも厳しいを瀺しおい たす。平均的なクラむアントによる内郚SLA違反の数



2幎間で開発を完党に「再発明」し、平均収益の40の割合で成長を続けたした。幎間2019幎-4億3100䞇、2020幎-6億1800䞇および新機胜のリリヌス。気持ち-車の゚ンゞンを党速力で倉える方法に぀いお。



2幎間で䜕が行われたか



  • (LESS) , , .
  • 50% , ( ) .
  • SRE. SRE .
  • , , .
  • SLA .
  • «-», .


これはすべおの蚈画からは皋遠いです。品質のために割り圓おられるリ゜ヌスの量を増やし続けおいたす。2021幎以降、さらなる品質の向䞊ず新機胜のより迅速なリリヌスが期埅されたす。



ちなみに、私たちは定期的に補品のアップデヌトに぀いお曞き 、むンシデントの履歎を含むステヌタスペヌゞを維持しおい たす。



困難の起源2008-2018



マむンドボックスは耇雑なビゞネスロゞックを備えた補品であり、2008幎から倧䌁業向けのサヌビスずしお開発を続けおおり、開発コストのシェアは30を超えおいたす。アヌキテクチャの芳点からは、これは埓来のモノリシックアプリケヌションでしたが、非垞に高品質でした。毎日、いく぀かのモノリスアップデヌトをリリヌスしおおり、珟圚もリリヌスしおいたす。



2014幎、垂堎は私たちをeコマヌスや小売りを含むよりマスセグメントに向けさせたした。これには、カスタマヌサヌビス、販売、マヌケティングぞの投資が必芁でした。



同瀟は倖郚からの投資を匕き付けたこずはなく、垞に自己利益で発展しおきたした。たた、CEOに就任しおから半幎埌の2017幎、資金䞍足に盎面し、怖くなり、利益率を倧幅に䞊げおしたいたした。これらすべおが、2018-2019幎の開発コストを収益の24に削枛するこずに぀ながりたした。



同時に、新しい顧客が必芁ずする倚くの機胜をリリヌスする必芁がありたした-ワヌクロヌドず顧客の数が急速に増加したした。元の補品ずアヌキテクチャのバックログ、および分散化自埋的な補品チヌムの圢成に察凊したした。



残念ながら、そのようなチヌムの技術的専門知識は䌚瀟の成長に远い぀いおおらず、モノリシックアヌキテクチャで可胜な限界によっおさらに悪化したした。技術的な負債が蓄積され、䜿甚された技術は時代遅れであり、絊䞎は垂堎を䞋回っおいたした。困難な課題ず䌚瀟の独特の文化にもかかわらず、゚ンゞニアの雇甚はたすたす困難になっおいたす。2018幎たでに、顧客数は10倍に増加し、補品の成功が明らかになり、信頌性ず開発党般の問題も明らかになりたした。



どのような察策を講じたしたか



プロセスずリ゜ヌス



最初の仮説は集䞭化でした。2019幎にLESSが導入されたした。これは、耇数のチヌムが1぀のプロゞェクトに同時に取り組んでいる堎合です。私たちは共同で叙事詩を蚭蚈し、信頌性を持っお䜜業し始め、予枬可胜性を高め、有甚な蚭蚈手法を芋぀けるこずができたした。しかし、1幎埌、プロセスの非効率性が明らかになりたした。「チヌム」の機胜の感芚の欠劂、高い管理コストによるチヌムの意欲䜎䞋ず責任の軜枛であり、誰もやりたがりたせんでした。



1幎間の共同蚭蚈により、各チヌムが単䞀の補品を顧客に提䟛し続けながら、分離されたマむクロサヌビスを担圓できるようにする分散型アヌキテクチャのビゞョンが浮かび䞊がりたした。ビゞョンずずもに、タスクのバックログが発生し、ビゞネスロヌドマップで䞭断するこずなく、専任のスペシャリストず䞀緒にむンフラストラクチャで䜜業する必芁があるこずが明らかになりたした。



リ゜ヌスの30を継続的に技術債務に割り圓おるこずに合意したした。最初のむンフラストラクチャチヌムが結成され、自埋チヌムが再び割り圓おられ始めたした。同時に、䞻に品質の維持を目的ずしお、倚数の集䞭型コラボレヌションプロセスが維持されおいたす。



  • 蚭蚈、
  • 欠陥分析、
  • 鉄ぞの負荷のモデリング、
  • デモず同期のステヌタス。


信頌性の指暙ずサヌバヌのコスト予枬に぀いおは、アヌキテクトずチヌムの責任を負いたした。さらに、ビゞネスの継続を埅぀間、各チヌムに30を技術的な負債ずバグに割り圓おたした。



2020幎に、プロセスは萜ち着きたした。2番目のむンフラストラクチャチヌムを線成し、配信を調敎したした。ビゞネスタスクのリ゜ヌスのシェアは、玄50の䜎いポむントからゆっくりず増加し始め、バグのシェアは枛少し始めたした





。タスクによる開発リ゜ヌスの分散。信頌できる指暙が比范的最近確立されたため、グラフはあたり有益ではありたせんが、



珟堎からの印象によっお補匷されおいたす。この間に、 SREを採甚しおオンボヌディングする方法を孊び、 SREをDevOpsやオフィスITから分離し、職務プロセスを圢成し、圹割を説明したした。



゚ンゞニアの䞍足は2぀の方法で削枛されたした。



  • 私たちは、幎間8〜12人のゞュニア開発者を卒業する開発孊校を蚭立したした。これらは、私たちのスタックの経隓があり、その胜力に自信を持っおいる開発者です。今日、孊校には4人の研修生からなる2぀のチヌムがありたす。
  • 業瞟が蚱す限り、開発のための絊䞎を䜓系的に増やしたした。開発䞭の平均絊䞎は、2015幎の12䞇ルヌブルから2020幎末には17䞇ルヌブル以䞊に増加し、増加を続けおいたす。これにより、私たちはいく぀かの新しい匷力な先茩ず技術リヌダヌを雇うこずができたした。開発費のシェアは28に䞊昇し、人数は27人から64人に増加したした。


メトリック、メトリック、および自動メトリック



私たちの文化では、個人的な意芋ではなく、デヌタによっお管理するのが通䟋です。効果的な指暙は、おそらく、珟代の開発管理手法では盎接的な答えが埗られない難しい質問の1぀です。 Accelerate



ブックの4぀のメトリックを自動化し、配信パむプラむンを高速化するこずから始めたした 。これはすぐに明らかな圱響はありたせんでした。しかし、hh.ruずYandex-cloudずの経隓の亀換により、SLA違反メトリックの自動化ず欠陥の自動確立に぀ながりたした。ここで私たちは、行われおいる努力の恩恵ず぀ながりをはっきりず感じたした。傟向のあるこのメトリックのグラフは、投皿の冒頭にありたす。



控えめですが、私たちは、プラットフォヌムコンポヌネントの可甚性のメトリックをリアルタむムで取埗できるクラむアント甚のAPIを持っおいる䞖界でも数少ない䌁業の1぀だず思いたす。



チヌム内のバグず技術的負債のシェアに関する䞊蚘のメトリックも圹立぀ようです。さらに、チヌムがスプリントに䞎えられた玄束をどのように果たすかを怜蚎し、開発者は毎日および毎週のタスクの期限を守りたす。



最埌に、 匿名の四半期ごずの投祚テキストはそれ以来改善されおいたすが、投祚の本質は倉わっおいたせんず Habr-Karerの高い評䟡は、開発の䞍幞の枛少を瀺しおいたす。これは、垂堎、凊理、およびeNPSに関連する圌らの収入の評䟡に関係したすこれたでのずころ2四半期のみのデヌタ。



開発者所埗







調査







開発者オヌバヌホヌル調査 eNPS開発者





1〜10のスケヌルで、Mindboxを職堎ずしお掚奚する可胜性はどのくらいありたすか



最埌になりたしたが、テクノロゞヌ



これらすべおにより、モノリシック補品IIS + ASP.NET + NLB / Windows Service / MS SQLで200䞇行を超えるコヌドの曞き盎しをすべおの方向で同時に敎理するこずが可胜になりたした。



  • マむクロサヌビスAPIずバック゚ンド。APIゲヌトりェむぞの1぀のクラむアント芁求が、同期芁求サガパタヌンを含む耇数のマむクロサヌビスによっお透過的に凊理される堎合。
  • マむクロフロント゚ンド。むンタヌフェむスセクションは、独自のレむアりトパむプラむンを䜿甚しお、独自のリポゞトリでホストできるバック゚ンドSPAアプリケヌションから分離されおいたす。
  • マルチテナントマむクロサヌビスのMSSQLから分散スケヌラブルストレヌゞぞの転送Cassandra、lickhouse。RabbitMQの代わりにKafka。
  • アプリケヌションを.NETCore、linuxに転送し、ManagedKubernetes「Yandex-clouds」に郚分的に転送したす。すぐに、最新のSREおよびDevOpsテクノロゞヌの導入OctopusDeploy + Helm、Prometheus、Grafana、Graylog + Sentry、Amixr.IO。


おそらく私たちはYandexCloudの最も負荷の高いクラむアントの1぀であるため、Nikita Prudnikovは、Yandex Scale2020でのYandexによるCTOの実装ず克服の難しさ に぀いお話したした。



ブラックフラむデヌに関する蚘事では、昚幎は壊れず、今幎も壊れなかったメヌリングリストコンポヌネントの䟋を䜿甚しお、スケヌリングに採甚する䞻なアプロヌチに぀いお読むこずができたす。



さらなる開発蚈画



達成された結果にもかかわらず、私は蚈画されたものの半分未満が行われたず蚀わなければなりたせん。先



  • 開発者の収入を増やし続け、最高のシニアおよびテックリヌドを採甚する
  • 開発孊校の3番目のチヌム。幎間最倧12人の開発者を雇甚できたす。
  • アプリケヌションの.NET、k8s、Yandexクラりドぞの継続的な倉換、自動スケヌリング、むンスタントロヌルバックを備えた青緑色のレむアりト
  • ステヌタスペヌゞでのむンシデントの自動確立に向けお、SLAの誀怜知を排陀したす
  • .NET 5、EF.Core、PostgreSQLぞの移行および開発者から新しいMacBookぞの移行
  • モノリスからさらにいく぀かの倧芏暡な䜜品を遞択する


hh.ruぞの私たちの仕事に察応するために.NET開発者tehlidovずSREスペシャリストを成長させたいずいう意欲的な衝動 。それは興味深いでしょう、あなたは垂堎でナニヌクな経隓を埗お、物事をするこずができたす。



2021幎のロヌドマッププラットフォヌム



私たちは足元にしっかりずした基盀を感じ、ビゞネスロヌドマップの玄束を再び果たすこずができるずいう垌望を䞎えおくれたした。私たちは初めお分散型蚈画のプロセスを1幎間詊みおいたすが、私は無謀に囜民の期埅を圢成するこずを蚱可したす。



今幎はプラットフォヌムに远加したす



  • シナリオコンストラクタヌ。
  • 匿名泚文の保存ず報告
  • むンタヌフェむスでのより迅速なレポヌト私たちのコヌスのように
  • BIずの統合
  • 新しいSDKを含む新しいモバむルプッシュ通知モゞュヌル
  • 盞互の䟝存関係を考慮しお、゚ンティティをすばやく削陀する機胜
  • より倚くのMLアルゎリズムず既存のものに察する倚くの品質改善
  • むンタヌフェむスの応答性が向䞊した新しいデザむンのペヌゞが増える
  • 暙準の統合ずメカニズムの簡玠化されたカスタマむズ


2022幎の蚈画はもっず野心的ですが、楜芳的な芋方が正圓化されれば、1幎以内にそれらに぀いお曞きたいず思いたす。



ありがずうございたした



クラむアントのサクセスストヌリヌのように、これは私が感謝の意を衚す特定の人々のメリットです



。ビゞョン、䞀貫性、䜓系的な絞り蟌みに察する CTOのNikitaPrudnikovです。



忍耐、チヌム構築、幅広い責任、非公匏のリヌダヌシップ、眠れない倜のためのリヌドアヌキテクト、RomanIvonin。



CIOのIgorKudrinは、SREの専門知識、ビゞョン、そしお誰も方法がわからないずきのすべおの救枈の基盀を築いおくれたした。



Rostislav、Leonid、Dmitry、Mitya、Ilya、2人のArtyom、Alexey、Sergei、Nikolai、Ivan、Slava、Zhenya、その他の思いやりのある開発者、補品、技術リヌダヌ、SREがすべおを実珟したした。誰にも蚀及しなかったらごめんなさい。



私たちが倱敗したにもかかわらず、耐え、改善する機䌚を䞎えおくれたクラむアントに特に感謝したす。私たちは、より良くなるためにあらゆる努力をしたす。



All Articles