Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Perlu dipikanyaho yén kompeténsi CTO dites ngan kadua kalina anjeunna ngalaksanakeun peran ieu. Kusabab éta hiji hal pikeun digawé di hiji parusahaan pikeun sababaraha taun, mekar kalawan eta na, keur dina konteks budaya anu sarua, laun nampi tanggung jawab leuwih. Tur éta rada sejen datang langsung kana posisi diréktur teknis di hiji parusahaan jeung bagasi warisan sarta kebat masalah rapih disapu handapeun rug.

Dina rasa ieu, pangalaman Leon Fire, anu anjeunna bagikeun DevOpsConf, teu persis unik, tapi dikali pangalaman sarta Jumlah kalungguhan béda yén anjeunna junun coba on ngaliwatan kursus 20 taun, éta pohara kapaké. Handap cut mangrupa kronologi kajadian leuwih 90 poé sarta loba carita anu senang seuri nalika aranjeunna kajadian ka batur, tapi nu teu jadi senang nyanghareupan jalma.

Leon nyarios pisan warni dina basa Rusia, janten upami anjeun gaduh 35-40 menit, kuring nyarankeun ningali pidéo. Vérsi téks pikeun ngahemat waktos di handap.


Versi munggaran laporan éta pedaran well-terstruktur gawé bareng jalma jeung prosés, ngandung saran mangpaat. Tapi manehna teu nepikeun sagala kejutan nu encountered sapanjang jalan. Ku alatan éta, kuring ngarobah format jeung dibere masalah anu popped up di hareup kuring kawas jack-in-the-box di parusahaan anyar, sarta métode pikeun ngarengsekeun aranjeunna dina urutan kronologis.

Sabulan sateuacanna

Sapertos seueur carita anu saé, ieu dimimitian ku alkohol. Kami calik sareng réréncangan dina bar, sareng sapertos anu diharapkeun diantara spesialis IT, sadayana nangis ngeunaan masalahna. Salah sahijina nembé ngarobih padamelan sareng nyarioskeun masalahna sareng téknologi, sareng jalma, sareng tim. Beuki kuring ngupingkeun, beuki kuring sadar yén anjeunna kedah nyéwa kuring, sabab ieu mangrupikeun jinis masalah anu kuring parantos direngsekeun salami 15 taun ka pengker. Kuring bébéja anjeunna kitu, sarta poé saterusna urang patepung di lingkungan gawé. Pausahaan ieu disebut Strategi Ngajar.

Strategi Pangajaran mangrupikeun pamimpin pasar dina kurikulum pikeun murangkalih anu alit ti lahir dugi ka umur tilu taun. Perusahaan "kertas" tradisional parantos 40 taun, sareng versi platform SaaS digital umurna 10. Relatif nembe, prosés adaptasi téknologi digital kana standar perusahaan dimimitian. Versi "anyar" diluncurkeun dina 2017 sareng ampir sapertos anu lami, ngan ukur langkung parah.

Hal anu paling pikaresepeun nyaéta yén lalu lintas perusahaan ieu tiasa diprediksi pisan - ti dinten ka dinten, ti taun ka taun, anjeun tiasa jelas-jelas ngaduga sabaraha jalma anu bakal datang sareng iraha. Contona, antara 13 jeung 15 p.m. sadaya barudak di TK indit ka ranjang jeung guru mimiti ngasupkeun informasi. Sareng ieu kajantenan unggal dinten, kecuali akhir minggu, sabab ampir teu aya anu damel di akhir minggu.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Ningali payun sakedik, kuring bakal perhatikeun yén kuring ngamimitian padamelan salami periode lalu lintas taunan pangluhurna, anu pikaresepeun pikeun sababaraha alesan.

Platformna, anu sigana ngan ukur 2 taun, ngagaduhan tumpukan anu aneh: ColdFusion & SQL Server ti 2008. ColdFusion, upami anjeun henteu terang, sareng paling dipikaresep anjeun henteu terang, mangrupikeun PHP perusahaan anu kaluar dina pertengahan 90an, sareng ti saprak éta kuring henteu kantos ngupingkeun éta. Ogé aya: Ruby, MySQL, PostgreSQL, Java, Go, Python. Tapi monolith utama dijalankeun dina ColdFusion sareng SQL Server.

Anu jadi masalah

Beuki kuring ngobrol sareng karyawan perusahaan ngeunaan padamelan sareng masalah naon anu disanghareupan, beuki kuring sadar yén masalah éta henteu ngan ukur téknis. Oke, téhnologi nu geus heubeul - sarta aranjeunna henteu dianggo dina eta, tapi aya masalah jeung tim jeung prosés, sarta pausahaan mimiti ngarti ieu.

Sacara tradisional, téknisna calik di pojok sareng ngalakukeun sababaraha padamelan. Tapi beuki loba bisnis mimiti ngaliwatan versi digital. Ku alatan éta, dina taun kamari sateuacan kuring ngamimitian damel, perusahaan anyar muncul: dewan direksi, CTO, CPO sareng diréktur QA. Hartina, pausahaan mimiti investasi di sektor téhnologi.

Ngambah warisan beurat henteu ngan dina sistem. Perusahaan ngagaduhan prosés warisan, jalma warisan, budaya warisan. Sadaya ieu kedah dirobih. Teu sangka yen eta pasti moal boring, sarta mutuskeun hiji try.

Dua poé saméméh

Dua dinten sateuacan ngamimitian padamelan énggal, kuring dugi ka kantor, ngeusian kertas terakhir, pendak sareng tim, sareng mendakan yén tim éta berjuang sareng masalah dina waktos éta. Éta yén rata-rata waktos muka halaman luncat ka 4 detik, nyaéta, 2 kali.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Ditilik ku grafik, hal jelas kajadian, sarta teu jelas naon. Tétéla yén masalah éta latency jaringan di puseur data: 5 ms latency di puseur data robah jadi 2 s pikeun pamaké. Kuring henteu weruh naha ieu kajadian, tapi dina sagala hal eta jadi dipikawanoh yen masalahna aya dina puseur data.

dinten Salah

Dua poé kaliwat sarta dina dinten munggaran kuring gawé kuring manggihan yén masalahna teu leungit.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Pikeun dua poé, kaca pamaké dimuat rata-rata dina 4 detik. Kuring naros upami aranjeunna mendakan naon masalahna.

- Sumuhun, urang muka tikét.
- Jeung?
- Nya, aranjeunna henteu acan ngawaler kami.

Teras kuring sadar yén sadayana anu parantos dicaritakeun ku kuring sateuacana ngan ukur tip leutik gunung es anu kuring kedah tarung.

Aya kutipan anu saé anu cocog pisan ieu:

"Kadang-kadang pikeun ngarobih téknologi anjeun kedah ngarobih organisasi."

Tapi saprak kuring mimiti digawé dina waktu pangsibukna taun, kuring kungsi kasampak di duanana pilihan pikeun ngarengsekeun masalah: duanana gancang jeung jangka panjang. Sareng mimitian ku naon anu kritis ayeuna.

Poé tilu

Ku kituna, loading lasts 4 detik, sarta ti 13 nepi ka 15 puncak pangbadagna.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Dina dinten katilu salami waktos ieu, laju unduhan sapertos kieu:

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Ti sudut pandang kuring, euweuh gawé pisan. Ti sudut pandang dulur sejenna, éta ngajalankeun saeutik laun ti biasana. Tapi éta henteu kajantenan sapertos kitu-éta masalah anu serius.

Kuring diusahakeun ngayakinkeun tim, nu maranéhna ngajawab yén maranéhna saukur diperlukeun leuwih server. Ieu, tangtosna, mangrupakeun solusi pikeun masalah, tapi teu salawasna hijina jeung paling éféktif. Kuring nanya naha aya teu cukup server, naon volume lalulintas. Kuring extrapolated data sarta manggihan yén urang boga kira 150 requests per detik, nu, prinsipna mah, ragrag dina wates lumrah.

Tapi urang henteu kedah hilap yén sateuacan anjeun kéngingkeun jawaban anu leres, anjeun kedah naroskeun patarosan anu leres. Patarosan kuring salajengna nyaéta: sabaraha server frontend anu urang gaduh? Jawabanna "ngabingungkeun kuring sakedik" - kami ngagaduhan 17 server frontend!

- Abdi embarrassed nanya, tapi 150 dibagi 17 méré ngeunaan 8? Dupi anjeun nyebutkeun yén unggal server ngamungkinkeun 8 requests per detik, sarta lamun isukan aya 160 requests per detik, urang bakal butuh 2 server deui?

Tangtosna, urang henteu peryogi server tambahan. Solusina aya dina kode sorangan, sareng dina beungeut cai:

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

Aya fungsi getCurrentClass(), sabab sagalana dina loka jalan dina konteks kelas hiji - éta katuhu. Sareng pikeun fungsi ieu dina unggal halaman aya 200+ pamundut.

Solusi ku cara ieu saderhana pisan, anjeun henteu kedah nyerat deui nanaon: ngan henteu naroskeun inpormasi anu sami deui.

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

Abdi bagja pisan sabab kuring mutuskeun yén dina dinten katilu kuring mendakan masalah utama. Naif sakumaha kuring, ieu ngan salah sahiji loba masalah.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Tapi ngarengsekeun masalah munggaran ieu turun grafik leuwih handap.

Dina waktos anu sami, urang ngalakukeun optimasi anu sanés. Aya seueur hal anu tiasa dilereskeun. Salaku conto, dina dinten katilu anu sami kuring mendakan yén aya cache dina sistem saatosna (mimitina kuring ngira yén sadaya pamundut langsung ti pangkalan data). Nalika kuring mikir ngeunaan cache, kuring mikir ngeunaan standar Redis atanapi Memcached. Tapi kuring ngan hiji-hijina anu nyangka kitu, sabab sistem éta ngagunakeun MongoDB sareng SQL Server pikeun caching - anu sami sareng data anu dibaca.

Poé sapuluh

Minggu kahiji kuring ngurus masalah anu kedah direngsekeun ayeuna. Hiji tempat dina minggu kadua, kuring sumping ka stand-up pikeun kahiji kalina pikeun komunikasi sareng tim, ningali naon anu lumangsung sarta kumaha sakabeh proses lumangsung.

Hal metot kapanggih deui. Tim diwangun ku: 18 pamekar; 8 panguji; 3 pangurus; 2 arsiték. Sareng aranjeunna sadayana milu dina ritual umum, nyaéta, langkung ti 30 urang sumping ka stand-up unggal isuk sareng nyarioskeun naon anu aranjeunna laksanakeun. Jelas yén rapat henteu nyandak 5 atanapi 15 menit. Teu aya anu ngadangukeun saha waé sabab sadayana damel dina sistem anu béda. Dina bentuk ieu, 2-3 tiket per jam pikeun sési dandan parantos hasil anu saé.

Hal kahiji anu urang laksanakeun nyaéta ngabagi tim kana sababaraha garis produk. Pikeun bagian sareng sistem anu béda, kami nyayogikeun tim anu misah, anu kalebet pamekar, panguji, manajer produk, sareng analis bisnis.

Hasilna urang meunang:

  • Ngurangan stand-up jeung unjuk rasa.
  • Pengetahuan subjek ngeunaan produk.
  • Rasa kapamilikan. Nalika jalma biasa tinker sareng sistem sepanjang waktos, aranjeunna terang yén batur bakal paling dipikaresep kedah damel sareng bug na, tapi henteu nyalira.
  • Kolaborasi antar kelompok. Henteu kedah disebatkeun, QA henteu seueur komunikasi sareng programer sateuacana, produkna ngalakukeun hal sorangan, jsb. Ayeuna aranjeunna gaduh titik tanggung jawab umum.

Kami utamina difokuskeun kana efisiensi, produktivitas sareng kualitas - ieu mangrupikeun masalah anu kami usahakeun pikeun direngsekeun ku transformasi tim.

Poé sabelas

Dina prosés ngarobah struktur tim, kuring manggihan cara ngitung dongengnunjuk. 1 SP éta sarua jeung hiji poé, sarta unggal tikét ngandung SP pikeun duanana ngembangkeun sarta QA, nyaeta, sahenteuna 2 SP.

Kumaha kuring manggihan ieu?

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Kami mendakan bug: dina salah sahiji laporan, dimana tanggal awal sareng akhir periode dimana laporan diperyogikeun dilebetkeun, dinten terakhir henteu dipertimbangkeun. Nyaéta, dimana waé dina pamundut henteu aya <=, tapi ngan saukur <. Kuring bébéja yén ieu mangrupikeun tilu Titik Carita, nyaéta poé 3.

Sanggeus ieu urang:

  • Sistem rating Story Points parantos dirévisi. Ayeuna ngalereskeun bug minor anu tiasa gancang dialirkeun kana sistem ngahontal pangguna langkung gancang.
  • Urang mimitian merging tikét patali pikeun ngembangkeun sarta nguji. Sateuacanna, unggal tikét, unggal bug mangrupikeun ékosistem anu katutup, henteu aya hubunganana sareng anu sanés. Ngarobih tilu tombol dina hiji halaman tiasa janten tilu tikét anu béda sareng tilu prosés QA anu béda tibatan hiji tés otomatis per halaman.
  • Urang mimitian gawé bareng pamekar dina pendekatan kana estimasi waragad kuli. Tilu poé pikeun ngarobah hiji tombol teu lucu.

Poé ka duapuluh

Di mana waé di tengah bulan kahiji, kaayaan rada stabil, kuring terang naon anu dasarna kajantenan, sareng parantos mimiti ningali ka hareup sareng mikirkeun solusi jangka panjang.

Tujuan jangka panjang:

  • platform junun. Ratusan pamundut dina unggal halaman henteu serius.
  • Tren anu tiasa diprediksi. Aya puncak lalulintas périodik anu dina glance kahiji teu correlate kalawan metrics séjén - urang diperlukeun pikeun ngarti naha ieu kajantenan tur diajar prediksi.
  • ékspansi platform. Usahana terus-terusan ngembang, beuki seueur pangguna anu datang, sareng lalu lintas naék.

Kapungkur sering nyarios: "Hayu urang nyerat deui sadayana dina [basa / kerangka], sadayana bakal langkung saé!"

Dina kalolobaan kasus ieu teu jalan, éta alus lamun nulis balik jalan pisan. Ku alatan éta, urang diperlukeun pikeun nyieun peta jalan - strategi husus illustrating step by step kumaha tujuan bisnis bakal dihontal (naon nu bakal urang ngalakukeun tur naha), nu:

  • ngagambarkeun misi jeung tujuan proyék;
  • prioritas tujuan utama;
  • ngandung jadwal pikeun ngahontal éta.

Sateuacan ieu, teu aya anu parantos ngobrol sareng tim ngeunaan tujuan naon waé parobihan anu dilakukeun. Ieu merlukeun metrics kasuksésan katuhu. Pikeun kahiji kalina dina sajarah parusahaan, urang nyetel KPIs pikeun grup teknis, sarta indikator ieu dihijikeun ka organisasi.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Hartina, KPI organisasi dirojong ku tim, sareng KPI tim dirojong ku KPI individu. Upami teu kitu, lamun KPIs téhnologis teu coincide jeung organisasi, teras dulur narik simbut dina diri.

Contona, salah sahiji KPI organisasi ngaronjatkeun pangsa pasar ngaliwatan produk anyar.

Kumaha anjeun tiasa ngadukung tujuan gaduh langkung seueur produk anyar?

  • Kahiji, urang hayang méakkeun leuwih waktos ngamekarkeun produk anyar tinimbang ngalereskeun defects. Ieu mangrupikeun solusi logis anu gampang diukur.
  • Bréh, urang rék ngarojong kanaékan volume transaksi, sabab nu leuwih gede pangsa pasar, beuki pamaké sarta, sasuai, beuki lalulintas.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Lajeng KPI individu anu tiasa dieksekusi dina grup bakal, contona, di tempat dimana cacad utama asalna. Lamun fokus husus dina bagian ieu, anjeun tiasa pastikeun yén aya loba pangsaeutikna defects, lajeng waktos pikeun ngembangkeun produk anyar jeung deui pikeun ngarojong KPIs organisasi bakal ningkat.

Ku kituna, unggal kaputusan, kaasup kode nulis balik, kudu ngarojong tujuan husus nu parusahaan geus diatur pikeun urang (pertumbuhan organisasi, fitur anyar, rekrutmen).

Salila prosés ieu, hiji hal metot sumping ka lampu, nu janten warta teu ukur keur techies, tapi sacara umum di parusahaan: sagala tiket kudu difokuskeun sahanteuna hiji KPI. Nyaéta, upami produk nyarios yén éta hoyong ngadamel fitur énggal, patarosan anu munggaran kedah ditaroskeun: "Naon KPI anu dirojong ku fitur ieu?" Upami henteu, maka punten - sigana sapertos fitur anu teu perlu.

Poé tilu puluh

Dina ahir bulan, kuring mendakan nuansa anu sanés: teu aya anu dina tim Ops kuring anu kantos ningali kontrak anu kami lebetkeun sareng klien. Anjeun tiasa naroskeun naha anjeun kedah ningali kontak.

  • Firstly, sabab SLAs dieusian dina kontrak.
  • Bréh, SLAs sadayana béda. Unggal klien sumping kalawan syarat sorangan, sarta departemén jualan ditandatanganan tanpa pilari.

nuansa sejen metot nyaéta yén kontrak kalayan salah sahiji klien pangbadagna nyebutkeun yén sakabéh versi software dirojong ku platform kudu n-1, nyaeta, teu versi panganyarna, tapi penultimate.

Ieu jelas sabaraha jauh kami ti n-1 lamun platform ieu dumasar kana ColdFusion jeung SQL Server 2008, nu teu dirojong deui dina bulan Juli.

Poé opat puluh lima

Kira-kira pertengahan bulan kadua kuring boga cukup waktu pikeun diuk turun jeung ngalakukeun ajenwalungan leutikpemetaan lengkep pikeun sakabéh prosés. Ieu mangrupikeun léngkah-léngkah anu kedah dilakukeun, ti mimiti nyiptakeun produk dugi ka ngirimkeun ka konsumen, sareng aranjeunna kedah dijelaskeun sacara jéntré.

Anjeun megatkeun prosés kana buah leutik tur tingal naon nyokot teuing waktos, naon bisa dioptimalkeun, ningkat, jsb. Contona, sabaraha lila waktu nu diperlukeun pikeun menta produk ngaliwatan dandan, iraha éta ngahontal tikét anu pamekar tiasa nyandak, QA, jsb. Janten anjeun ningali unggal léngkah individu sacara rinci sareng pikirkeun naon anu tiasa dioptimalkeun.

Nalika kuring ngalakukeun ieu, dua hal narik panon kuring:

  • persentase luhur tikét balik ti QA deui pamekar;
  • ulasan pamundut tarik nyandak panjang teuing.

Masalahna nya éta ieu conclusions kawas: Ieu sigana butuh loba waktu, tapi urang teu yakin kana sabaraha lila.

"Anjeun teu bisa ningkatkeun naon teu bisa ngukur".

Kumaha menerkeun kumaha serius masalahna? Naha éta runtah dinten atanapi jam?

Pikeun ngukur ieu, kami nambihan sababaraha léngkah kana prosés Jira: "siap pikeun dev" sareng "siap pikeun QA" pikeun ngukur sabaraha lami unggal tikét ngantosan sareng sabaraha kali éta uih deui ka léngkah anu tangtu.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Urang ogé ditambahkeun "dina review" uninga sabaraha tiket rata-rata pikeun review, sarta ti ieu anjeun bisa mimiti nari. Kami ngagaduhan métrik sistem, ayeuna urang nambihan métrik énggal sareng mimiti ngukur:

  • Éféktivitas prosés: kinerja sarta rencanana / dikirimkeun.
  • Kualitas prosés: jumlah cacad, cacad ti QA.

Éta leres-leres ngabantosan ngartos naon anu saé sareng naon anu henteu saé.

Poé kalima puluh

Ieu sadayana, tangtosna, alus jeung metot, tapi nuju ahir bulan kadua aya kajadian anu, prinsipna mah, éta bisa diprediksi, sanajan kuring teu nyangka skala misalna. Jalma-jalma mimiti angkat kusabab manajemén luhur parantos robih. jalma anyar sumping kana manajemén sarta mimiti ngarobah sagalana, sarta leuwih heubeul kaluar. Sareng biasana dina perusahaan anu umurna sababaraha taun, sadayana babaturan sareng sadayana kenal.

Ieu diperkirakeun, tapi skala PHK teu kaduga. Contona, dina hiji minggu dua tim ngarah sakaligus nyerah pengunduran diri maranéhanana kahayang bébas sorangan. Ku alatan éta, kuring kungsi teu ngan poho ngeunaan masalah sejenna, tapi difokuskeun nyieun tim. Ieu mangrupikeun masalah anu panjang sareng sesah pikeun direngsekeun, tapi kedah diurus sabab kuring hoyong nyalametkeun jalma-jalma anu tetep (atanapi kalolobaanana). Ieu diperlukeun kumaha bae meta pikeun kanyataan yén jalma ditinggalkeun guna ngajaga moral dina tim.

Dina tiori, ieu téh alus: datang hiji jalma anyar nu boga carte blanche lengkep, nu bisa evaluate kaahlian tim tur ngaganti tanaga. Kanyataanna, anjeun teu bisa ngan mawa jalma anyar pikeun jadi loba alesan. Kasaimbangan salawasna diperlukeun.

  • Heubeul jeung anyar. Urang kedah ngajaga jalma sepuh anu tiasa ngarobih sareng ngadukung misi. Tapi dina waktos anu sami, urang kedah nyandak getih anyar, urang bakal ngobrol ngeunaan éta engké.
  • Pangalaman. Kuring ngobrol pisan sareng junior anu saé anu hoyong pisan sareng hoyong damel sareng kami. Tapi kuring henteu tiasa nyandak aranjeunna kusabab teu cukup senior pikeun ngadukung juniors sareng janten mentor pikeun aranjeunna. Ieu diperlukeun mimitina recruit luhur sarta ngan lajeng nonoman.
  • Wortel jeung iteuk.

Kuring teu boga jawaban alus kana sual naon kasaimbangan katuhu, kumaha carana ngajaga eta, sabaraha urang tetep sarta sabaraha nyorong. Ieu prosés murni individu.

Poé lima puluh hiji

Kuring mimiti ningali sacara saksama dina tim pikeun ngartos saha kuring, sareng sakali deui kuring émut:

"Kaseueuran masalah mangrupikeun masalah jalma."

Kuring mendakan yén tim sapertos kitu - duanana Dev sareng Ops - ngagaduhan tilu masalah ageung:

  • Kasugemaan ku kaayaan kiwari.
  • Kurangna tanggung jawab - sabab teu saurang ogé kungsi mawa hasil karya palaku pikeun pangaruh bisnis.
  • Sieun robah.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Robah sok nyandak anjeun kaluar tina zona kanyamanan anjeun, sareng jalma-jalma anu langkung ngora, langkung-langkung aranjeunna henteu resep ngarobih sabab henteu ngartos naha sareng henteu ngartos kumaha. Jawaban paling umum Kuring geus uninga nyaeta, "Kami geus pernah ngalakukeun éta." Leuwih ti éta, éta ngahontal titik absurdity lengkep - parobahan slightest teu bisa lumangsung tanpa batur keur indignant. Sareng henteu paduli sabaraha parobihan mangaruhan padamelan na, jalma-jalma nyarios: "Henteu, kunaon? Ieu moal jalan."

Tapi anjeun moal tiasa langkung saé tanpa ngarobih nanaon.

Kuring kungsi paguneman kacida absurd jeung hiji pagawe, Kuring bébéja anjeunna gagasan kuring pikeun optimasi, nu anjeunna ngawartoskeun kuring:
- Oh, anjeun teu ningali naon urang tadi taun ka tukang!
- Émang kunaon?
"Ayeuna éta langkung saé tibatan éta."
- Janten, éta moal tiasa langkung saé?
- Kanggo naon?

Patarosan alus - naha? Saolah-olah ayeuna langkung saé tibatan éta, teras sadayana cekap. Ieu ngakibatkeun kurangna tanggung jawab, anu leres-leres normal dina prinsipna. Salaku Cenah mah, grup teknis éta saeutik dina sela. Pausahaan percaya yén maranéhna kudu aya, tapi teu aya anu pernah netepkeun standar. Pangrojong téknis henteu pernah ningali SLA, janten éta "ditampi" pikeun grup (sareng ieu anu paling kuring pikahoyong):

  • 12 detik loading;
  • 5-10 menit downtime unggal release;
  • Ngungkulan masalah kritis butuh poé sarta minggu;
  • kurangna tanaga tugas 24x7 / on-panggero.

Teu aya anu kantos nyobian naroskeun naha urang henteu ngalakukeun éta langkung saé, sareng teu aya anu kantos sadar yén éta henteu kedah sapertos kieu.

Salaku bonus, aya hiji deui masalah: kurangna pangalaman. The manula ditinggalkeun, sarta tim ngora sésana tumuwuh nepi handapeun rezim saméméhna sarta diracun ku eta.

Di luhureun sakabeh ieu, jalma ogé sieun gagal sarta muncul teu mampuh. Ieu dinyatakeun dina kanyataan yén, firstly, aranjeunna dina kaayaan teu dipénta pitulung. Sabaraha kali urang ngobrol salaku grup sareng individu, sareng kuring parantos nyarios, "Taroskeun patarosan upami anjeun henteu terang kumaha ngalakukeunana." Kuring yakin kana diri sareng terang yén kuring tiasa ngabéréskeun masalah naon waé, tapi bakal butuh waktos. Ku alatan éta, lamun kuring bisa nanya ka batur anu weruh kumaha carana ngajawab dina 10 menit, abdi bakal nanya. Kurang pangalaman anjeun, beuki sieun anjeun nanya sabab anjeun pikir anjeun bakal dianggap teu mampuh.

Sieun naroskeun patarosan ieu muncul dina cara anu pikaresepeun. Salaku conto, anjeun naros: "Kumaha anjeun ngalaksanakeun tugas ieu?" - "Sababaraha jam deui, abdi parantos réngsé." Isukna anjeun naros deui, anjeun nampi jawaban yén sadayana henteu kunanaon, tapi aya hiji masalah, éta pasti bakal siap dina ahir poé. Dinten sejen pas, sarta nepi ka anjeun pinned kana témbok jeung kapaksa ngobrol batur, ieu terus. Hiji jalma hayang ngabéréskeun masalah sorangan; anjeunna yakin yén lamun manehna teu ngajawab sorangan, éta bakal gagal badag.

Éta pisan sababna naha pamekar inflated perkiraan. Éta anekdot anu sami, nalika aranjeunna ngabahas tugas anu tangtu, aranjeunna masihan kuring tokoh anu kuring reuwas pisan. Anu kuring bébéja yén dina perkiraan pamekar, pamekar kalebet waktos tikét bakal dipulangkeun ti QA, sabab bakal mendakan kasalahan di dinya, sareng waktos anu bakal dilaksanakeun ku PR, sareng waktos nalika jalma anu kedah marios. eta bakal sibuk - nyaeta, sagalana, naon mungkin.

Bréh, jalma anu sieun muncul teu mampuh overanalyze. Nalika anjeun nyarios naon anu kedah dilakukeun, éta dimimitian: "Henteu, kumaha upami urang mikirkeun éta di dieu?" Dina hal ieu, perusahaan kami henteu unik; ieu mangrupikeun masalah standar pikeun jalma ngora.

Salaku jawaban, kuring ngenalkeun prakték ieu:

  • Aturan 30 menit. Lamun teu bisa ngajawab masalah dina satengah jam, ménta batur pikeun mantuan. Ieu jalan kalawan varying derajat sukses, sabab jalma masih teu nanya, tapi sahenteuna prosés geus dimimitian.
  • Ngaleungitkeun sagalana tapi hakekat, dina estimasi deadline pikeun ngarengsekeun tugas, nyaeta, mertimbangkeun ngan sabaraha lila waktu nu diperlukeun pikeun nulis kode.
  • Pangajaran Saumur Hirup pikeun maranéhanana anu overanalyze. Ieu ngan gawé konstan kalayan jalma.

Poé genep puluh

Bari kuring ngalakonan sagala ieu, éta waktu pikeun angka kaluar anggaran. Tangtosna, kuring mendakan seueur hal anu pikaresepeun dimana urang nyéépkeun artos. Salaku conto, urang ngagaduhan sadayana rak dina pusat data anu misah sareng hiji server FTP, anu dianggo ku hiji klien. Tétéla yén "... urang dipindahkeun, tapi anjeunna tetep kitu, urang teu ngarobah anjeunna." Éta 2 taun ka pengker.

Anu dipikaresep khusus nyaéta tagihan pikeun jasa awan. Kuring yakin alesan utama pikeun tagihan awan anu luhur nyaéta pamekar anu ngagaduhan aksés anu henteu terbatas ka server pikeun kahiji kalina dina kahirupan maranéhanana. Aranjeunna henteu kedah naroskeun: "Punten pasihan abdi server uji," aranjeunna tiasa nyandak nyalira. Tambih Deui, pamekar sok hoyong ngawangun sistem anu saé sapertos Facebook sareng Netflix bakal timburu.

Tapi pamekar teu boga pangalaman dina purchasing server jeung skill tina nangtukeun ukuran diperlukeun tina server, sabab teu kedah eta sateuacan. Sareng aranjeunna biasana henteu ngartos bédana antara skalabilitas sareng kinerja.

Hasil inventaris:

  • Urang ninggalkeun puseur data sarua.
  • Urang terminated kontrak kalayan 3 jasa log. Kusabab urang ngagaduhan 5 di antarana - unggal pamekar anu ngamimitian maén sareng hiji hal nyandak anu énggal.
  • 7 sistem AWS dipareuman. Sakali deui, teu aya anu ngeureunkeun proyék-proyék anu maot; aranjeunna sadayana teras damel.
  • Ngurangan biaya software ku 6 kali.

Poé tujuh puluh lima

Waktu kaliwat, sarta dina dua satengah bulan kuring kungsi papanggih jeung dewan direksi. Dewan direksi kami henteu langkung saé atanapi langkung goréng tibatan anu sanés; sapertos sadayana direksi, éta hoyong terang sadayana. Jalma investasi duit jeung hayang ngarti sabaraha urang ngalakukeun fits kana KPIs set.

Déwan direksi nampi seueur inpormasi unggal bulan: jumlah pangguna, kamekaranana, jasa naon anu aranjeunna anggo sareng kumaha, kinerja sareng produktivitas, sareng tungtungna, rata-rata laju muka halaman.

Hiji-hijina masalah nyaéta yén kuring yakin yén rata-rata jahat murni. Tapi hésé pisan ngajelaskeun ieu ka dewan direksi. Aranjeunna biasa operasi kalawan jumlah aggregated, sarta henteu, contona, panyebaran kali loading per detik.

Aya sababaraha titik metot dina hal ieu. Salaku conto, kuring nyarios yén urang kedah ngabagi lalu lintas antara pangladén wéb anu misah gumantung kana jinis eusi.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Nyaéta, ColdFusion ngalangkungan Jetty sareng nginx sareng ngaluncurkeun halaman. Sareng gambar, JS sareng CSS ngalangkungan nginx anu misah sareng konfigurasi sorangan. Ieu prakték anu cukup standar anu kuring nyarioskeun kuring nulis sababaraha taun ka pengker. Hasilna, gambar dimuat leuwih gancang, jeung... laju loading rata geus ngaronjat ku 200 mdet.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Ieu lumangsung alatan grafik diwangun dumasar kana data nu hadir kalawan Jetty. Hartina, eusi gancang teu kaasup kana itungan - nilai rata geus ucul. Ieu jelas ka urang, urang seuri, tapi kumaha urang bisa ngajelaskeun ka dewan direksi naha urang ngalakukeun hiji hal sarta hal jadi parah ku 12%?

Poé dalapan puluh lima

Dina ahir bulan katilu, kuring sadar yén aya hiji hal anu kuring henteu percanten pisan: waktos. Sagalana kuring ngobrol ngeunaan butuh waktu.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Ieu kalénder mingguan nyata kuring - ngan saminggu gawé, teu sibuk pisan. Aya teu cukup waktu pikeun sagalana. Kituna, sakali deui, anjeun kudu recruit jalma anu bakal nulungan anjeun Cope jeung masalah.

kacindekan

Henteu ngan éta. Dina carita ieu, kuring malah teu acan meunang kumaha urang digawé kalayan produk jeung nyoba Ngepaskeun ka gelombang umum, atawa kumaha urang terpadu rojongan teknis, atawa kumaha urang direngsekeun masalah teknis lianna. Contona, kuring diajar rada ku kacilakaan yén dina tabel pangbadagna dina database urang teu make SEQUENCE. Urang boga fungsi timer ditulis nextID, sarta eta henteu dipaké dina urus a.

Aya sajuta deui hal anu sami anu tiasa urang bahas kanggo waktos anu lami. Tapi hal anu paling penting anu masih kedah disebatkeun nyaéta budaya.

Warisan sistem sareng prosés warisan atanapi 90 dinten munggaran salaku CTO

Éta budaya atanapi kakuranganana anu nyababkeun sagala masalah anu sanés. Kami nyobian ngawangun budaya dimana jalma:

  • teu sieun gagal;
  • diajar tina kasalahan;
  • gawé bareng jeung tim séjén;
  • nyandak inisiatif;
  • nyandak tanggung jawab;
  • ngabagéakeun hasilna salaku tujuan;
  • ngagungkeun kasuksésan.

Kalawan ieu sagalana sejenna bakal datang.

Leon Seuneu dina twitter, facebook jeung sedeng.

Aya dua stratégi ngeunaan warisan: ulah dianggo kalayan sagala biaya, atanapi wani nungkulan kasusah anu aya hubunganana. Urang c DevOpsConf Kami nyandak jalur kadua, ngarobih prosés sareng pendekatan. Gabung kami dina youtube, milis и telegram, sarta babarengan urang bakal nerapkeun budaya DevOps.

sumber: www.habr.com

Tambahkeun komentar