レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

CTO の胜力が詊されるのは、この圹割を XNUMX 回目に実行するずきだけであるこずが知られおいたす。 なぜなら、䌚瀟で数幎間働き、䌚瀟ずずもに進化し、同じ文化的背景の䞭で埐々により倚くの責任を負うこずは別のこずだからです。 そしお、レガシヌな荷物や倚くの問題をきちんず隠蔜されたたた、そのたた䌚瀟のテクニカルディレクタヌの職に就くのは党く別のこずだ。

この意味で、圌が共有したレオン・ファむアの経隓は、 DevOpsConf、必ずしもナニヌクではありたせんが、圌の経隓ず、20幎間にわたっおなんずか挑戊しおきたさたざたな圹の数を掛け合わせたものは、非垞に圹に立ちたす。 カットの䞋には、90 日間にわたる出来事の幎衚ず、他人の身に起こったずきは笑うには楜しいが、盎接盎面するずそれほど面癜くない話がたくさんありたす。

レオンは非垞にカラフルなロシア語で話したすので、35  40 分の時間があれば、ビデオを芋るこずをお勧めしたす。 以䞋は時間を節玄するためのテキスト版です。


レポヌトの最初のバヌゞョンは、人々ずプロセスの連携に぀いおよく構造化された説明であり、有甚な掚奚事項が含たれおいたした。 しかし、途䞭で遭遇した驚きのすべおを圌女は䌝えたわけではありたせん。 そこでフォヌマットを倉えお、新しい䌚瀟でびっくり箱のように目の前に珟れた問題ずその解決方法を時系列で提瀺したした。

XNUMXヶ月前

倚くの良い物語ず同様、この物語もアルコヌルから始たりたした。 私たちは友人ずバヌに座っおいたしたが、IT 専門家の間では予想通り、誰もが自分たちの問題に぀いお泣いおいたした。 そのうちの 15 人は転職したばかりで、テクノロゞヌ、人々、チヌムに関する問題に぀いお話しおいたした。 話を聞けば聞くほど、圌は私を雇うべきだずたすたす感じたした。なぜなら、これらは私が過去 XNUMX 幎間解決しおきた皮類の問題だからです。 私は圌にそのこずを䌝え、翌日職堎で䌚いたした。 その䌚瀟はティヌチング・ストラテゞヌズず呌ばれおいたした。

Teaching Strategies は、誕生から 40 歳たでの幌児向けカリキュラムの垂堎リヌダヌです。 埓来の「玙」䌁業はすでに創業 10 幎、デゞタル SaaS バヌゞョンのプラットフォヌムは 2017 幎が経過しおいたすが、比范的最近になっお、デゞタル テクノロゞヌを䌁業暙準に適応させるプロセスが始たりたした。 「新しい」バヌゞョンは XNUMX 幎に発売され、叀いバヌゞョンずほが同じでしたが、動䜜が悪くなっおいたした。

最も興味深いのは、この䌚瀟のトラフィックは非垞に予枬可胜であるずいうこずです。日ごず、幎ごずに、い぀䜕人の人が来るかを非垞に明確に予枬できたす。 たずえば、午埌 13 時から 15 時たでの間に、幌皚園の子䟛たちは党員就寝し、教垫が情報を入力し始めたす。 そしお、週末にはほずんど誰も働かないため、これは週末を陀いお毎日起こりたす。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

少し先を芋おみるず、私は幎間トラフィックが最も倚い時期に仕事を始めたこずに泚目したす。これにはさたざたな理由があっお興味深いです。

わずか 2 幎前に䜜られたように芋えるこのプラットフォヌムには、2008 幎からの ColdFusion ず SQL Server ずいう独特のスタックがありたした。 ColdFusion は、ご存知ない方もいるかもしれたせんが、おそらくご存知ないかもしれたせんが、90 幎代半ばに登堎した゚ンタヌプラむズ向け PHP であり、それ以来、私はその名前さえ聞いたこずがありたせん。 Ruby、MySQL、PostgreSQL、Java、Go、Python もありたした。 しかし、メむンのモノリスは ColdFusion ず SQL Server 䞊で実行されたした。

問題

瀟員ず仕事の内容や困ったこずに぀いお話せば話すほど、問題は技術的なものだけではないこずがわかりたした。 そうですね、テクノロゞヌは叀いです - そしお圌らはそれに取り組んでいたせんでしたが、チヌムずプロセスに問題があり、䌚瀟はそれを理解し始めたした。

埓来、技術者は郚屋の隅に座っお、䜕らかの仕事をしおいたした。 しかし、たすたす倚くのビゞネスがデゞタル バヌゞョンを利甚し始めたした。 そのため、私が働き始める前の昚幎、取締圹䌚、CTO、CPO、QA ディレクタヌずいった新しいメンバヌが䌚瀟に登堎したした。 ぀たり、同瀟はテクノロゞヌ分野ぞの投資を開始した。

重い遺産の痕跡はシステムの䞭だけにあるわけではありたせん。 この䌚瀟には埓来のプロセス、埓来の人材、埓来の文化がありたした。 これらすべおを倉曎する必芁がありたした。 絶察に退屈しないだろうず思っお、やっおみるこずにしたした。

XNUMX日前

新しい仕事を始める 4 日前に私はオフィスに到着し、最埌の曞類に蚘入し、チヌムに䌚ったずころ、圓時チヌムが問題に苊しんでいるこずがわかりたした。 それは平均ペヌゞ読み蟌み時間が2秒、぀たりXNUMX倍に跳ね䞊がったこずです。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

グラフから刀断するず、䜕かが起こったのは明らかですが、䜕が起こったのかは明らかではありたせん。 問題はデヌタ センタヌのネットワヌク遅延であるこずが刀明したした。デヌタ センタヌの 5 ミリ秒の遅延が、ナヌザヌにずっおは 2 秒に倉わりたした。 なぜこれが起こったのかはわかりたせんでしたが、いずれにしおも、問題はデヌタセンタヌにあるこずが刀明したした。

初日

XNUMX日が経過したしたが、仕事の初日に問題が解決しおいないこずに気づきたした。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

4 日間、ナヌザヌのペヌゞは平均 XNUMX 秒で読み蟌たれたした。 䜕が問題なのかを芋぀けたかどうかを尋ねたす。

- はい、チケットをオヌプンしたした。
- そしお
- そうですね、圌らはただ私たちに答えおいたせん。

その時、私がこれたで蚀われおきたこずはすべお、私が戊わなければならない氷山の䞀角にすぎないこずに気づきたした。

これによく圓おはたる良い匕甚がありたす。

「テクノロゞヌを倉えるには、組織を倉えなければならないこずもありたす。」

しかし、私は䞀幎で最も忙しい時期に仕事を始めたので、問題を解決するには、迅速な解決策ず長期的な解決策の䞡方を怜蚎する必芁がありたした。 そしお、今重芁なこずから始めたしょう。

デむ3

したがっお、読み蟌みは 4 秒続き、13 秒から 15 秒が最倧のピヌクずなりたす。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

この期間の XNUMX 日目のダりンロヌド速床は次のようになりたした。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

私の芳点からするず、䜕もうたくいきたせんでした。 他の人から芋るず、い぀もより少し遅い速床でした。 しかし、そんなこずは起こらず、それは深刻な問題なのです。

私はチヌムを説埗しようずしたしたが、チヌムは単にサヌバヌを増やす必芁があるだけだず答えたした。 もちろん、これは問題の解決策ですが、垞に唯䞀か぀最も効果的な解決策であるずは限りたせん。 なぜサヌバヌが足りないのか、トラフィックの量はどれくらいなのかを尋ねたした。 デヌタを掚定したずころ、150 秒あたり玄 XNUMX 件のリク゚ストがあるこずがわかりたした。これは原則ずしお劥圓な制限内に収たりたす。

しかし、正しい答えを埗る前に、正しい質問をする必芁があるこずを忘れおはなりたせん。 次の質問は、フロント゚ンド サヌバヌは䜕台あるのかずいうこずでした。 その答えは「少し圓惑したした」 - フロント゚ンド サヌバヌが 17 台ありたした。

— 恥ずかしいのですが、150 割る 17 は玄 8 になりたすか? 各サヌバヌは 8 秒あたり 160 リク゚ストを蚱可しおおり、明日 2 秒あたり XNUMX リク゚ストがある堎合は、さらに XNUMX ぀のサヌバヌが必芁になるずいうこずですか?

もちろん、远加のサヌバヌは必芁ありたせんでした。 解決策はコヌド自䜓ず衚面䞊にありたした。

var currentClass = classes.getCurrentClass();
return currentClass;

機胜がありたした getCurrentClass()サむト䞊のすべおがクラスのコンテキストで動䜜するためです - それはその通りです。 そしお、各ペヌゞのこの XNUMX ぀の機胜に぀いおは、 200 件以䞊のリク゚スト.

この方法の解決策は非垞に簡単で、䜕も曞き盎す必芁さえありたせん。同じ情報を再床芁求しないだけです。

if ( !isDefined("REQUEST.currentClass") ) {
    var classes = new api.private.classes.base();
   REQUEST.currentClass = classes.getCurrentClass();
}
return REQUEST.currentClass;

たった XNUMX 日目で䞻な問題が芋぀かったず刀断したので、ずおもうれしかったです。 私は䞖間知らずだったので、これは倚くの問題のうちの XNUMX ぀にすぎたせんでした。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

しかし、この最初の問題を解決するず、グラフは倧幅に䞋がりたした。

同時に、他の最適化も行っおいたした。 修正できる点はたくさんありたした。 たずえば、同じ XNUMX 日目に、結局システム内にキャッシュがあるこずがわかりたした (最初はすべおのリク゚ストがデヌタベヌスから盎接送られおくるものだず思っおいたした)。 キャッシュに぀いお考えるずき、私は暙準の Redis たたは Memcached を思い浮かべたす。 しかし、そう思ったのは私だけでした。なぜなら、そのシステムはキャッシュに MongoDB ず SQL Server を䜿甚しおおり、デヌタが読み取られたのず同じものだったからです。

XNUMX日目

最初の週は今すぐ解決しなければならない問題に取り組みたした。 XNUMX週目のどこかで、私はチヌムずコミュニケヌションをずるために、䜕が起こっおいるのか、プロセス党䜓がどのように進んでいるのかを芋るために、初めおスタンドアップに来たした。

たたたた面癜いものを発芋したした。 チヌムは、18 人の開発者で構成されおいたした。 テスタヌ8名。 マネヌゞャヌ3名。 建築家2名。 そしお、圌ら党員が共通の儀匏に参加したした。぀たり、毎朝30人以䞊がスタンドアップに来お、自分たちが䜕をしたかを報告したした。 䌚議に5分も15分もかからなかったこずは明らかです。 誰もが異なるシステムで䜜業しおいるため、誰も誰の意芋にも耳を傟けたせんでした。 この圢匏では、グルヌミング セッションあたり 2 時間あたり 3  XNUMX 枚のチケットがすでに良奜な結果でした。

私たちが最初に行ったのは、チヌムをいく぀かの補品ラむンに分割するこずでした。 セクションやシステムごずに、開発者、テスタヌ、プロダクト マネヌゞャヌ、ビゞネス アナリストを含む個別のチヌムを割り圓おたした。

その結果、次のこずが埗られたした。

  • スタンドアップや集䌚を枛らす。
  • 補品に関する䞻題の知識。
  • 所有感。 人々が垞にシステムをいじっおいたずき、自分自身ではなく、他の誰かがそのバグに察凊する必芁がある可胜性が高いこずを知っおいたした。
  • グルヌプ間のコラボレヌション。 蚀うたでもなく、QA は以前はプログラマヌずあたりコミュニケヌションをずっおおらず、補品は独自のこずを行っおいたした。 今、圌らは共通の責任を負っおいたす。

私たちは䞻に効率、生産性、品質に重点を眮きたした。これらは、チヌムの倉革によっお解決しようずした問題です。

XNUMX日目

チヌム構成を倉える過皋で、カりントの仕方を発芋した ストヌリヌPoints。 1 SP は 2 日に盞圓し、各チケットには開発ず QA の䞡方の SP、぀たり少なくずも XNUMX SP が含たれおいたした。

どうやっおこれを発芋したのでしょうか?

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

バグが芋぀かりたした。レポヌトが必芁な期間の開始日ず終了日が入力されおいるレポヌトの XNUMX ぀で、最終日が考慮されおいたせん。 ぀たり、リク゚ストのどこかに <= ではなく、単に < が含たれおいたした。 これは XNUMX ぀のストヌリヌ ポむントであるず蚀われたした。 3日.

この埌、次のこずを行いたす。

  • ストヌリヌポむントの評䟡システムが改蚂されたした。 システムを迅速に通過できる軜埮なバグの修正が、より早くナヌザヌに届くようになりたした。
  • 開発ずテストのために関連するチケットのマヌゞを開始したした。 以前は、すべおのチケット、すべおのバグは閉じられた゚コシステムであり、他のものずは結び぀いおいたせんでした。 XNUMX ペヌゞ䞊の XNUMX ぀のボタンを倉曎するず、ペヌゞごずに XNUMX ぀の自動テストではなく、XNUMX ぀の異なる QA プロセスを䌎う XNUMX ぀の異なるチケットになる可胜性がありたす。
  • 私たちは開発者ず協力しお人件費を芋積もるアプロヌチを開始したした。 ボタン䞀぀倉えるのにXNUMX日もかかるなんお面癜くない。

XNUMX日目

最初の月の半ばあたりで、状況が少し安定し、基本的に䜕が起こっおいるのかを理解し、すでに将来を芋据えお長期的な解決策に぀いお考え始めたした。

長期的な目暙

  • 管理されたプラットフォヌム。 各ペヌゞにある䜕癟件ものリク゚ストは深刻なものではありたせん。
  • 予枬可胜な傟向。 䞀芋するず他の指暙ずは盞関関係のない定期的なトラフィックのピヌクがありたした。なぜこれが起こったのかを理解し、予枬する方法を孊ぶ必芁がありたした。
  • プラットフォヌムの拡匵。 ビゞネスは垞に成長しおおり、たすたす倚くのナヌザヌが参加し、トラフィックが増加しおいたす。

昔はよくこう蚀われたした。 「[蚀語/フレヌムワヌク]ですべおを曞き盎したしょう。すべおがより良く機胜するでしょう!」

ほずんどの堎合、これは機胜したせんが、曞き換えが少しでも機胜すれば良いのです。 したがっお、次のようなロヌドマップ、぀たりビゞネス目暙をどのように達成するか (䜕を行うのか、なぜ行うのか) を段階的に瀺す具䜓的な戊略を䜜成する必芁がありたした。

  • プロゞェクトの䜿呜ず目暙を反映したす。
  • 䞻な目暙に優先順䜍を付けたす。
  • それらを達成するためのスケゞュヌルが含たれおいたす。

これたでは、倉曎の目的に぀いおチヌムに話す人は誰もいたせんでした。 これには、適切な成功指暙が必芁です。 圓瀟の歎史䞊初めお、技術グルヌプの KPI を蚭定し、これらの指暙が組織の指暙ず関連付けられたした。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

぀たり、組織の KPI はチヌムによっおサポヌトされ、チヌムの KPI は個人の KPI によっおサポヌトされたす。 そうしないず、技術的な KPI が組織の KPI ず䞀臎しない堎合、党員が自分自身に責任を負うこずになりたす。

たずえば、組織の KPI の XNUMX ぀は、新補品による垂堎シェアの拡倧です。

より倚くの新補品を投入するずいう目暙をどのようにサポヌトできるでしょうか?

  • たず、欠陥を修正するのではなく、新補品の開発により倚くの時間を費やしたいず考えおいたす。 これは、枬定が簡単な論理的な゜リュヌションです。
  • 第 XNUMX に、垂堎シェアが倧きくなるずナヌザヌも増え、それに応じおトラフィックも増えるため、取匕量の増加をサポヌトしたいず考えおいたす。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

その堎合、グルヌプ内で実行できる個別の KPI は、たずえば、䞻な欠陥の原因ずなる堎所に配眮されたす。 このセクションに特に焊点を圓おるず、欠陥が倧幅に少なくなるこずを確認でき、その埌、新補品の開発ず組織の KPI のサポヌトにかかる時間が増加したす。

したがっお、コヌドの曞き換えを含むすべおの決定は、䌚瀟が蚭定した特定の目暙 (組織の成長、新機胜、採甚) をサポヌトするものでなければなりたせん。

このプロセス䞭に、興味深いこずが明らかになり、技術者だけでなく瀟内党般でニュヌスになりたした。すべおのチケットは少なくずも XNUMX ぀の KPI に焊点を圓おなければなりたせん。 ぀たり、補品が新しい機胜を䜜りたいず蚀う堎合、最初に「この機胜はどのような KPI をサポヌトしたすか?」ずいう質問をする必芁がありたす。 そうでない堎合は、申し蚳ありたせんが、䞍芁な機胜のようです。

XNUMX日目

月末に、私は別のニュアンスを発芋したした。それは、運甚チヌムの誰も、私たちがクラむアントず締結した契玄を芋たこずがないずいうこずです。 なぜ連絡先を衚瀺する必芁があるのか​​ず疑問に思われるかもしれたせん。

  • たず、SLA は契玄で指定されおいるためです。
  • 次に、SLA はすべお異なりたす。 各クラむアントは独自の芁件を持っおいたしたが、営業郚門は䜕も確認せずに眲名したした。

もう 1 ぀の興味深いニュアンスは、最倧手のクラむアントの XNUMX ぀ずの契玄では、プラットフォヌムでサポヌトされるすべおの゜フトりェア バヌゞョンが n-XNUMX、぀たり最新バヌゞョンではなく最埌から XNUMX 番目のバヌゞョンである必芁があるず芏定されおいるこずです。

プラットフォヌムが ColdFusion ず、1 月にたったくサポヌトされなくなった SQL Server 2008 に基づいおいた堎合、n-XNUMX からどれだけ離れおいたかは明らかです。

XNUMX日目

XNUMXか月目の半ば頃には、座っお䜕かをするのに十分な時間ができたした。 倀流れマッピング プロセス党䜓に察しお完党に。 これらは補品の䜜成から消費者ぞの届けたでに必芁なステップであり、できるだけ詳现に説明する必芁がありたす。

プロセスを小さな郚分に分割し、䜕が時間がかかりすぎおいるのか、䜕が最適化、改善できるのかなどを確認したす。 たずえば、補品リク゚ストがグルヌミングを通過するのにどれくらい時間がかかりたすか、開発者が取埗できるチケットにい぀到達するか、QA などです。 したがっお、個々のステップを詳现に芋お、䜕を最適化できるかを考えたす。

これを実行したずき、次の XNUMX ぀のこずが目に留たりたした。

  • QA から開発者に返されるチケットの割合が高い。
  • プルリク゚ストのレビュヌに時間がかかりすぎたした。

問題は、これらの結論が次のようなものであったこずです。「かなり時間がかかるようですが、どれくらい時間がかかるかはわかりたせん。」

「枬定できないものを改善するこずはできたせん。」

問題の深刻さをどうやっお正圓化するのでしょうか? 䜕日も、あるいは䜕時間も無駄にしおいるでしょうか?

これを枬定するために、Jira プロセスに「ready for dev」ず「ready for QA」ずいういく぀かのステップを远加しお、各チケットの埅機時間ず特定のステップに戻る回数を枬定したした。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

たた、レビュヌ察象のチケットの平均数を知るための「レビュヌ䞭」も远加され、そこからダンスを始めるこずができたす。 システム メトリクスがありたしたが、新しいメトリクスを远加しお以䞋の枬定を開始したした。

  • プロセス効率: パフォヌマンスず蚈画/玍品。
  • プロセス品質: 欠陥の数、QA からの欠陥。

䜕がうたくいっおいお、䜕がうたくいっおいないのかを理解するのに非垞に圹立ちたす。

XNUMX日目

もちろん、これはすべお良いこずであり、興味深いこずですが、XNUMXか月目の終わりに向かっお、私はそのような芏暡を期埅しおいたせんでしたが、原則ずしお予枬可胜な䜕かが起こりたした。 経営トップが倉わったから人が蟞め始めた。 新しい人が経営陣に加わっおすべおを倉え始め、叀い人たちは蟞めたした。 そしお、蚭立から数幎の䌚瀟では通垞、党員が友人であり、党員がお互いのこずを知っおいたす。

これは予想されおいたこずだが、解雇の芏暡は予想倖​​だった。 たずえば、XNUMX 週間で XNUMX 人のチヌムリヌダヌが同時に自らの自由意志で蟞任を提出したした。 したがっお、他の問題を忘れるだけでなく、次のこずに集䞭する必芁がありたした。 チヌムを䜜る。 これは解決するのが長くお難しい問題ですが、残った人々たたは圌らのほずんどを救いたかったので、察凊する必芁がありたした。 チヌムの士気を維持するには、人々が去ったずいう事実に䜕らかの圢で察応する必芁がありたした。

理論的には、これは良いこずです。぀たり、チヌムのスキルを評䟡しお人材を眮き換えるこずができる、完党な癜玙の暩限を持った新しい人が入っおくるのです。 実際、さたざたな理由から、単に新しい人を受け入れるこずはできたせん。 垞にバランスが必芁です。

  • 叀くお新しい。 私たちは、倉化を起こし、䜿呜をサポヌトできる高霢者を維持する必芁がありたす。 しかし同時に、新しい血を取り入れる必芁もありたす。それに぀いおは埌ほど説明したす。
  • 経隓。 䞀緒に働きたいずいう意欲のある優秀な埌茩たちずたくさん話したした。 しかし、埌茩をサポヌトし、指導しおくれる先茩が䞍足しおいたため、匕き受けるこずができたせんでした。 たずトップを採甚し、それから若者を採甚する必芁がありたした。
  • アメずムチ。

適切なバランスずは䜕か、それをどのように維持するか、䜕人を維持し、どの皋床プッシュするかずいう質問に察する良い答えはありたせん。 これは玔粋に個人的なプロセスです。

XNUMX日目

私は自分のチヌムを理解するためにチヌムを泚意深く芳察し始めたしたが、もう䞀床次のこずを思い出したした。

「ほずんどの問題は人間の問題です。」

チヌム自䜓 (開発ず運甚の䞡方) に XNUMX ぀の倧きな問題があるこずがわかりたした。

  • 珟状ぞの満足床。
  • 責任感の欠劂 - なぜなら、パフォヌマヌの仕事の結果をビゞネスに圱響を䞎えるほどもたらした人は誰もいないからです。
  • 倉化ぞの恐怖。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

倉化は垞にあなたを快適ゟヌンから連れ出したす。若者ほど倉化を嫌いたす。理由も方法も理解できないからです。 私が聞いた最も䞀般的な答えは、「そんなこずはしたこずがない」です。 さらに、それは完党に䞍条理な点に達しおおり、誰かが憀慚しなければ、ほんのわずかな倉化も起こりたせん。 そしお、その倉化が圌らの仕事にどれほど圱響を及がしたずしおも、人々はこう蚀いたした。 これではうたくいきたせん。」

しかし、䜕も倉えずに改善するこずはできたせん。

私はある埓業員ずたったくばかげた䌚話をし、最適化に関する私のアむデアを圌に話したずころ、圌は私にこう蚀いたした。
- ああ、去幎のは芋おいなかったね
- だから䜕
「今は以前よりずっず良くなりたした。」
- それで、これ以䞊良くなるこずはできないのですか
- なんで

良い質問です - なぜですか? あたかも今が以前よりも良くなっおいるなら、すべおが十分にうたくいっおいるかのようです。 これは責任の欠劂に぀ながりたすが、これは原理的にはたったく正垞なこずです。 先ほども蚀いたしたが、技術グルヌプは少し傍芳しおいたした。 䌚瀟は存圚すべきだず信じおいたが、 誰も基準を蚭定したこずはありたせん。 テクニカル サポヌトは SLA を䞀床も芋たこずがなかったので、グルヌプにずっおはたったく「受け入れられる」ものでした (これが私にずっお最も衝撃的でした)。

  • ロヌド時間は 12 秒。
  • リリヌスごずに 5  10 分のダりンタむム。
  • 重倧な問題のトラブルシュヌティングには数日から数週間かかりたす。
  • 24 時間 7 日察応の圓盎担圓者䞍足。

もっずうたくやったらどうだろうかず問う人は誰もいないし、そうである必芁はないこずに気づいた人もいない。

おたけに、もう XNUMX ぀問題がありたした。 経隓䞍足。 先茩たちが去り、残った若手チヌムは前䜓制䞋で育ち、それに毒された。

これらすべおに加えお、人々は倱敗し、無胜だず思われるこずも恐れおいたした。 これは、第䞀に、次のような事実によっお衚されたす。 いかなる状況であっおも助けを求めるこずはありたせん。 私たちはグルヌプずしお、たたは個別に䜕床話し合っお、「やり方がわからない堎合は質問しおください」ず蚀ったこずでしょう。 私は自分に自信があり、どんな問題でも解決できるこずを知っおいたすが、時間がかかりたす。 そこで、10分で解決できる方法を知っおいる人に質問できるなら質問したす。 経隓が少ないほど、無胜だず思われるのではないかず思うず、質問するのが怖くなりたす。

質問するこずに察するこの恐怖は、興味深い圢で珟れたす。 たずえば、「このタスクの調子はどうですか?」ず尋ねたす。 - 「あず数時間、もう終わっおいたす。」 翌日、もう䞀床尋ねるず、すべお問題ありたせん。ただし、問題が XNUMX ぀ありたした。その日の終わりたでに必ず準備が敎いたす。ずいう答えが埗られたす。 さらに䞀日が経過し、壁に釘付けになっお誰かず話すこずを匷制されるたで、これが続きたす。 人は問題を自分で解決したいず考えおいたすが、自分で解決しなければ倧きな倱敗になるず信じおいたす。

だからこそ 開発者は芋積もりを氎増しした。 それず同じ逞話ですが、ある仕事に぀いお話し合っおいるずきに、圌らが私に非垞に驚いたような数字をくれたのです。 開発者の芋積もりには、QA で゚ラヌが芋぀かるためチケットが QA から返されるたでの時間、PR にかかる時間、レビュヌする人が䜜業するたでの時間も含たれおいるず聞きたした。それは忙しいでしょう - ぀たり、すべお、可胜な限りのこずです。

第二に、無胜だず思われるこずを恐れおいる人 過剰分析する。 具䜓的に䜕をしなければならないかを蚀うず、「いや、ここで考えおみたらどうなるでしょうか」ずいうこずになりたす。 そういう意味では、圓瀟が特殊なわけではなく、若者にずっおはよくある悩みです。

それに応えお、私は次の実践方法を導入したした。

  • ルヌルは30分。 XNUMX分以内に問題を解決できない堎合は、誰かに助けを求めおください。 人々はただ尋ねおいないので、これはさたざたな皋床の成功を収めお機胜したすが、少なくずもプロセスは始たっおいたす。
  • 本質以倖はすべお排陀する、タスクを完了する期限を芋積もるずき、぀たり、コヌドを曞くのにかかる時間だけを考慮したす。
  • 生涯孊習 分析しすぎる人ぞ。 それは人々ずの継続的な仕事だけです。

XNUMX日目

そうこうしおいるうちに、予算を決める時期が来たした。 もちろん、お金を䜿ったずころでは面癜いこずがたくさん芋぀かりたした。 たずえば、別のデヌタセンタヌにラック党䜓があり、2 ぀の FTP サヌバヌがあり、それを XNUMX ぀のクラむアントが䜿甚しおいたした。 結局のずころ、「...私たちは匕っ越したしたが、圌はそのたたで、私たちは圌を倉えたせんでした。」 XNUMX幎前のこずです。

特に興味深かったのはクラりドサヌビスの請求曞だ。 クラりド料金が高額になる䞻な理由は、開発者が生たれお初めおサヌバヌに無制限にアクセスできるようになったためだず私は考えおいたす。 「テスト サヌバヌをください」ず頌む必芁はなく、自分で取埗できたす。 さらに、開発者は垞に Facebook や Netflix が矚むようなクヌルなシステムを構築したいず考えおいたす。

しかし、開発者には、以前は必芁なかったサヌバヌの賌入経隓や、サヌバヌの必芁なサむズを決定するスキルがありたせん。 そしお、圌らは通垞、スケヌラビリティずパフォヌマンスの違いを完党に理解しおいたせん。

圚庫結果:

  • 私たちは同じデヌタセンタヌを去りたした。
  • ログサヌビス3瀟ずの契玄を終了したした。 なぜなら、私たちはそれらを 5 ぀持っおいたからです。䜕かをいじり始めた開発者は皆、新しいものを採甚したした。
  • 7 ぀の AWS システムがシャットダりンされたした。 繰り返しになりたすが、䞭止されたプロゞェクトは誰も止めず、すべお䜜業を続けたした。
  • ゜フトりェアのコストを 6 分の XNUMX に削枛。

XNUMX日目

時が経ち、XNUMXか月半埌に取締圹䌚を開かなくおはならないこずになりたした。 圓瀟の取締圹䌚は他の取締圹䌚より優れおいるずか劣っおいるずいうこずはなく、すべおの取締圹䌚ず同様に、すべおを知りたいず考えおいたす。 人々は資金を投資しおおり、私たちが行っおいるこずが蚭定された KPI にどの皋床適合するかを理解したいず考えおいたす。

取締圹䌚は毎月、ナヌザヌ数、その成長、ナヌザヌがどのようなサヌビスをどのように䜿甚しおいるか、パフォヌマンスず生産性、そしお最埌に平均ペヌゞ読み蟌み速床など、倚くの情報を受け取りたす。

唯䞀の問題は、平均は玔粋な悪であるず私が信じおいるこずです。 しかし、これを取締圹䌚に説明するのは非垞に困難です。 圌らは、たずえば XNUMX 秒あたりの読み蟌み時間の分散などではなく、集蚈された数倀を扱うこずに慣れおいたす。

この点に関しおは、いく぀か興味深い点がありたした。 たずえば、コンテンツの皮類に応じお、トラフィックを別々の Web サヌバヌ間で分割する必芁があるず蚀いたした。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

぀たり、ColdFusion は Jetty ず nginx を経由しおペヌゞを起動したす。 たた、画像、JS、CSS は、独自の構成を持぀別の nginx を通過したす。 これは私が話しおいるかなり暙準的な習慣です 私が曞きたした 200〜XNUMX幎前。 その結果、画像の読み蟌みが倧幅に速くなり、平均読み蟌み速床が XNUMX ミリ秒増加したした。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

これは、グラフが Jetty に付属のデヌタに基づいお構築されおいるために発生したした。 ぀たり、高速コンテンツは蚈算に含たれおおらず、平均倀が跳ね䞊がっおいたす。 これは私たちには明らかで、私たちは笑いたしたが、なぜ私たちが䜕かをしたのに状況が 12% も悪化したのか、取締圹䌚にどう説明すればよいでしょうか?

XNUMX日目

XNUMX か月目の終わりに、私はたったく圓おにしおいなかったものが XNUMX ぀あるこずに気付きたした。それは時間です。 私が話したこずはすべお時間がかかりたす。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

これは私の実際の週間カレンダヌです。ただの仕事週間であり、あたり忙しくありたせん。 すべおをやるには時間が足りない。 したがっお、繰り返しになりたすが、問題ぞの察凊を支揎しおくれる人材を採甚する必芁がありたす。

たずめ

それがすべおではありたせん。 この話では、私たちがどのように補品に取り組み、䞀般的な波に同調しようずしたのか、技術サポヌトをどのように統合したか、他の技術的な問題をどのように解決したかに぀いおはただ觊れおいたせん。 たずえば、デヌタベヌス内の最倧のテヌブルでは䜿甚しおいないこずをたったく偶然に知りたした。 SEQUENCE。 自䜜関数がありたす nextID、トランザクションでは䜿甚されたせん。

䌌たようなこずは他にも䜕癟䞇件もあり、それに぀いおは長い間話し合うこずができたした。 しかし、それでも蚀わなければならない最も重芁なこずは文化です。

レガシヌ システムずプロセスの継承、たたは CTO ずしお最初の 90 日間

他のすべおの問題を匕き起こすのは、文化たたはその欠劂です。 私たちは、人々が次のような文化を築くこずを目指しおいたす。

  • 倱敗を恐れない。
  • 間違いから孊ぶ;
  • 他のチヌムず協力する。
  • むニシアチブを取りたす;
  • 責任を負いたす。
  • 結果を目暙ずしお歓迎する。
  • 成功を祝う。

これで他のすべおが実珟したす。

レオン・ファむアヌ ツむッタヌで, フェむスブック ず ミディアム.

レガシヌに関しおは XNUMX ぀の戊略がありたす。それを䜕ずしおも扱うこずを避けるか、関連する困難を勇敢に克服するかです。 私たちは、 DevOpsConf 私たちはプロセスずアプロヌチを倉曎する XNUMX 番目の道を遞択しおいたす。 ぜひご参加ください ナヌチュヌブ, メヌリングリスト О 電報、そしお私たちは䞀緒にDevOps文化を実装しおいきたす。

出所 habr.com

コメントを远加したす