Dear Google Cloud, henteu cocog ka tukang nyaéta maéhan anjeun.

Google sial, kuring henteu hoyong blog deui. Abdi seueur anu kedah dilakukeun. Blogging butuh waktos, tanaga sareng kréatipitas, anu tiasa dianggo pikeun kuring: buku kuring, musik, kaulinan kuring jeung saterusna. Tapi anjeun parantos ngaganggu kuring dugi ka kuring kedah nyerat ieu.

Ku kituna hayu urang meunang ieu leuwih kalawan.

Hayu atuh mimitian ku carita pondok tapi instructive ti nalika kuring mimiti digawé di Google. Kuring terang kuring parantos nyarios seueur hal anu goréng ngeunaan Google akhir-akhir ieu, tapi kuring ngaganggu nalika perusahaan kuring sorangan rutin ngadamel kaputusan bisnis anu henteu mampuh. Dina waktos anu sami, urang kedah masihan éta kusabab: infrastruktur internal Google leres-leres luar biasa, éta aman pikeun nyarios yén teu aya anu langkung saé ayeuna. Pendiri Google mangrupikeun insinyur anu langkung saé tibatan kuring, sareng carita ieu ngan ukur negeskeun kanyataan éta.

Kahiji, kasang tukang saeutik: Google boga téhnologi panyimpen data disebut Badéb. Éta mangrupikeun prestasi téknis anu luar biasa, salah sahiji anu munggaran (upami sanés anu munggaran) "infinitely scalable" toko nilai konci (K / V): dasarna awal NoSQL. Dinten ieu Bigtable masih ngalakonan ogé dina K / V gudang rada rame, tapi dina waktu éta (2005) éta amazingly tiis.

Hiji hal lucu ngeunaan Bigtable nyaeta aranjeunna kagungan objék pesawat kontrol internal (salaku bagian tina palaksanaan) disebut server tablet, kalawan indéks badag, sarta di sawatara titik aranjeunna jadi bottleneck nalika skala sistem. Insinyur Bigtable bingung kumaha nerapkeun skalabilitas, sareng ujug-ujug sadar yén aranjeunna tiasa ngagentos server tablet sareng neundeun Bigtable sanés. Janten Bigtable mangrupikeun bagian tina palaksanaan Bigtable. Fasilitas panyimpen ieu aya di sadaya tingkat.

Rincian anu sanés anu pikaresepeun nyaéta pikeun samentawis Bigtable janten populer sareng dimana-mana dina Google, kalayan masing-masing tim gaduh gudang sorangan. Janten dina salah sahiji rapat Jumaah, Larry Page kasual naroskeun: "Naha urang gaduh langkung ti hiji Bigtable? Naha teu ngan hiji?” Dina tiori, hiji gudang kedah cukup pikeun sakabéh kaperluan gudang Google. Tangtu, aranjeunna pernah indit ka ngan hiji alesan ngembangkeun praktis (kawas konsékuansi tina gagal poténsial), tapi téori éta metot. Hiji gudang pikeun sakabéh Alam Semesta (Ku jalan kitu, aya anu terang upami Amazon ngalakukeun ieu sareng Sable na?)

Atoh, ieu carita kuring.

Dina waktos éta, kuring parantos damel di Google langkung ti dua taun, sareng hiji dinten kuring nampi email ti tim rékayasa Bigtable anu sapertos kieu:

Dear Steve,

Salam ti tim Bigtable. Kami hoyong nginpokeun ka anjeun yén di [ngaran pusat data] anjeun nganggo binér Bigtable anu lami pisan. Versi ieu henteu dirojong deui sareng kami hoyong ngabantosan anjeun ningkatkeun kana vérsi panganyarna.

Punten wartosan kuring upami anjeun tiasa ngajadwalkeun sababaraha waktos pikeun gawé bareng dina masalah ieu.

Sing salamet,
Tim Bigtable

Dina Google anjeun meunang loba surat, jadi dina glance kahiji kuring maca hal kawas kieu:

Dear panarima,

Salam ti sababaraha tim. Urang rék komunikasi yén bla bla bla bla bla. Bla bla bla bla bla bla, jeung bla bla bla langsung.

Punten wartosan kami upami anjeun tiasa ngajadwalkeun sababaraha waktos anu berharga pikeun bla bla bla.

Sing salamet,
Sababaraha jenis paréntah

Kuring ampir ngahapus éta langsung, tapi dina tungtung kasadaran kuring ngarasa nyeri, ngaganggu perasaan éta. henteu cekap Sigana mah surat resmi jelas, yén panarima ieu salah kaprah sabab kuring teu make Bigtable.

Tapi éta aneh.

Kuring nyéépkeun sésa-sésa sapoé silih-ganti mikiran pagawéan sareng jinis daging hiu anu badé dicobian di dapur mikro, anu sahenteuna tilu cukup caket tina korsi kuring kalayan lémparan biskuit anu dituju, tapi pamikiran nulis pernah ninggalkeun kuring jeung rarasaan tumuwuh hampang kahariwang.

Aranjeunna jelas nyebutkeun ngaran kuring. Jeung email ieu dikirim ka alamat surélék kuring, teu batur, tur éta lain cc: atanapi bcc:. Nada pisan pribadi sareng jelas. Meureun ieu sababaraha jenis kasalahan?

Tungtungna, ngarasa panasaran meunang hadé ti kuring sarta kuring indit ka katingal dina konsol Borg di puseur data aranjeunna disebutkeun.

Sarta tangtu, kuring kungsi gudang BigTable handapeun manajemén. Hapunten, naon? Kuring nempo eusina, sarta wow! Éta tina inkubator Codelab anu kuring linggih dina minggu kahiji kuring di Google dina Juni 2005. Codelab maksa anjeun ngajalankeun Bigtable pikeun nyerat sababaraha nilai di dinya, sareng kuring katingalina henteu pernah nutup gudang saatos éta. Ieu masih jalan sanajan leuwih ti dua taun geus kaliwat.

Aya sababaraha aspék anu penting pikeun carita ieu. Firstly, karya Bigtable éta jadi kalindih dina skala Google nu ngan dua warsih saterusna teu saha perhatikeun gudang tambahan, sarta ngan kusabab versi binér geus luntur. Pikeun babandingan, kuring sakali dianggap ngagunakeun Bigtable dina Google Cloud pikeun kaulinan online kuring. Dina waktos éta, jasa ieu hargana sakitar $16 per taun. kosong Bigtable on GCP. Kuring teu nyebutkeun aranjeunna scamming anjeun, tapi dina pamadegan pribadi kuring, éta loba duit pikeun database bangsat kosong.

aspék noteworthy séjén nyaéta yén gudang masih digawé sanggeus dua taun. WTF? Puseur data datang jeung indit; aranjeunna ngalaman outages, aranjeunna ngalaman pangropéa dijadwalkeun, aranjeunna robah sadaya waktu. Hardware diropéa, switch diganti, sagalana terus ditingkatkeun. Kumaha sih aranjeunna tiasa ngajaga program kuring salami dua taun kalayan sagala parobihan ieu? Ieu sigana sapertos prestasi anu sederhana dina taun 2020, tapi dina taun 2005-2007 éta cukup pikaresepeun.

Sareng aspék anu paling éndah nyaéta tim rékayasa luar di sababaraha nagara bagian anu ngadeukeutan kuring, anu gaduh sababaraha conto leutik, ampir kosong tina Bigtable, anu ngagaduhan lalulintas enol salami dua taun katukang - sareng nawiskeun bantosan pikeun ngapdet éta.

Kuring thanked aranjeunna, dihapus gudang, sarta hirup nuluykeun sakumaha biasa. Tapi tilu belas taun ti harita, kuring masih mikir ngeunaan surat éta. Kusabab sakapeung kuring nampa surelek sarupa ti Google Cloud. Aranjeunna kasampak kawas kieu:

Pamaké Google Cloud anu dihormat,

Salaku panginget, kami bakal ngeureunkeun jasa [layanan penting anu anjeun anggo] ti Agustus 2020, saatos éta anjeun moal tiasa ningkatkeun instansi anjeun. Kami ngarékoméndasikeun ningkatkeun ka versi panganyarna, nu aya dina nguji béta, teu boga dokuméntasi, euweuh jalur migrasi tur tos rengse luntur ku bantuan nanaon urang.

Kami komitmen pikeun mastikeun yén parobihan ieu gaduh dampak minimal ka sadaya pangguna platform Google Cloud.

Babaturan salamina,
Google Cloud Platform

Tapi kuring ampir henteu kantos maca hurup sapertos kitu, sabab naon anu aranjeunna nyarioskeun nyaéta:

Dear panarima,

Ka naraka. Bangsat anjeun, bangsat anjeun, bangsat anjeun. Leupaskeun sagalana anjeun ngalakukeun sabab teu masalah. Anu penting nyaéta waktos urang. Urang runtah waktu jeung duit ngajaga crap urang jeung urang bosen eta jadi urang moal ngarojong deui. Janten kaluar tina rencana bangsat anjeun sareng mimitian ngagali dokuméntasi anu jelek kami, menta potongan-potongan dina forum, sareng ku jalan kitu, telek anyar kami béda pisan sareng telek anu lami, sabab kami ngaco desain ieu lumayan parah, heh, tapi éta anjeun masalah, teu urang.

Kami terus usaha pikeun mastikeun yén sadaya pamekaran anjeun teu tiasa dianggo dina sataun.

Mangga bangsat off
Google Cloud Platform

Sareng kanyataanna kuring nampi serat sapertos sabulan sakali. Ieu lumangsung jadi mindeng sarta jadi terus-terusan yén maranéhna inevitably didorong jauh kuring ti GCP ka camp anti awan. Kuring henteu deui satuju gumantung kana kamajuan proprietary maranéhanana, sabab dina kanyataanana leuwih gampang pikeun devops ngajaga sistem open source dina mesin virtual bulistir ti nyoba tetep nepi ka Google jeung kawijakan na nutup produk "katinggaleun jaman".

Sateuacan kuring uih deui ka Google Cloud sabab kuring malah teu deukeut teu rengse criticizing aranjeunna, hayu urang nempo kinerja parusahaan di sababaraha wewengkon séjén. Insinyur Google bangga kana disiplin rékayasa parangkat lunakna, sareng ieu anu nyababkeun masalah. Bangga mangrupikeun bubu pikeun anu teu waspada, sareng éta nyababkeun seueur karyawan Google mikir yén kaputusanna salawasna leres sareng leres (ku sababaraha definisi kabur anu samar) langkung penting tibatan miara konsumén.

Kuring bakal masihan sababaraha conto acak tina proyék ageung sanés di luar Google, tapi kuring ngarepkeun anjeun ningali pola ieu dimana-mana. Ieu kieu: kasaluyuan mundur ngajaga sistem hirup jeung up-to-date pikeun dekade.

Kasaluyuan mundur mangrupikeun tujuan desain sadaya sistem suksés anu dirancang pikeun buka pamakéan, nyaeta, dilaksanakeun kalawan kode open source jeung / atawa standar kabuka. Kuring ngarasa kuring nyebutkeun hal teuing atra yén dulur malah uncomfortable, tapi henteu. Ieu masalah pulitik, jadi perlu conto.

Sistem kahiji anu kuring pilih nyaéta anu pangkolotna: GNU Emacs, anu mangrupikeun hibrida antara Windows Notepad, kernel OS, sareng Stasion Angkasa Internasional. Éta rada sesah ngajelaskeun, tapi sacara ringkes, Emacs mangrupikeun platform anu diciptakeun dina 1976 (enya, ampir satengah abad ka tukang) pikeun program pikeun ngajantenkeun anjeun langkung produktif, tapi nyamar salaku pangropéa téksu.

Kuring nganggo Emacs unggal dinten. Leres, kuring ogé nganggo IntelliJ unggal dinten, éta parantos janten platform alat anu kuat dina hakna sorangan. Tapi nyerat ekstensi pikeun IntelliJ mangrupikeun tugas anu langkung ambisius sareng rumit tibatan nyerat ekstensi pikeun Emacs. Sareng anu langkung penting, sadayana anu ditulis pikeun Emacs dilestarikan salamina.

Kuring masih nganggo parangkat lunak anu kuring nyerat pikeun Emacs dina taun 1995. Sareng kuring yakin yén aya anu nganggo modul anu ditulis pikeun Emacs dina pertengahan 80an, upami henteu sateuacana. Éta bisa merlukeun saeutik tweaking ti jaman ka jaman, tapi ieu téh bener rada langka. Kuring henteu weruh nanaon Kuring geus kungsi ditulis pikeun Emacs (sarta Kuring geus ditulis pisan) nu diperlukeun hiji ulang arsitéktur.

Emacs ngagaduhan fungsi anu disebut make-upsolete pikeun éntitas usang. Terminologi Emacs pikeun konsép komputer dasar (sapertos naon "jandela") sering bénten sareng konvénsi industri sabab Emacs ngenalkeunana parantos lami. Ieu mangrupikeun bahaya anu biasa pikeun jalma anu sateuacanna: sadayana istilah anjeun henteu leres. Tapi Emacs ngagaduhan konsép deprecation, anu dina jargonna disebut kabulusan.

Tapi di dunya Emacs sigana aya definisi kerja anu béda. Filsafat dasar anu béda, upami anjeun hoyong.

Di dunya Emacs (sareng di seueur daérah sanés, anu bakal urang bahas di handap), status API anu dicabut dina dasarna hartosna: "Anjeun leres-leres henteu kedah nganggo pendekatan ieu, sabab sanaos jalanna, éta ngalaman sababaraha kakurangan anu urang bakal daptar di dieu. Tapi dina ahir poé, éta pilihan anjeun ".

Di dunya Google, janten luntur hartosna, "Kami ngalanggar komitmen kami ka anjeun." Ieu leres. Ieu naon dasarna hartina. Ieu ngandung harti yén maranéhna bakal maksa anjeun tetep ngalakukeun sababaraha pagawean, meureun loba karya, salaku hukuman pikeun percanten ka aranjeunna iklan warni: Urang boga software pangalusna. Panggancangna! Anjeun ngalakukeun sagalana nurutkeun parentah, ngajalankeun aplikasi atawa jasa anjeun, lajeng bam, sanggeus sataun atawa dua eta megatkeun.

Ibarat ngajual mobil bekas anu pasti bakal mogok sanggeus 1500 km.

Ieu dua definisi filosofis lengkep beda tina "obsolescence". harti Google ngeunaan bau rencanana obsolescence. Abdi henteu percanten ieu nyatana rencanana obsolescence dina rasa anu sarua sakumaha Apple. Tapi Google pasti ngarencanakeun pikeun megatkeun program anjeun, dina cara roundabout. Kuring terang ieu kusabab kuring damel di dinya salaku insinyur parangkat lunak langkung ti 12 taun. Aranjeunna gaduh tungtunan internal samar dina sabaraha kasaluyuan mundur kudu dituturkeun, tapi pamustunganana nepi ka unggal tim individu atawa jasa. Henteu aya rekomendasi tingkat perusahaan atanapi rékayasa, sareng rekomendasi anu paling gagah dina hal siklus obsolescence nyaéta "coba masihan palanggan 6-12 bulan kanggo ningkatkeun sateuacan ngarobih sadayana sistemna."

Masalahna langkung ageung tibatan anu disangka, sareng éta bakal tetep salami mangtaun-taun sabab perawatan palanggan henteu aya dina DNAna. Langkung lengkep ihwal ieu di handap.

Dina titik ieu Kaula bade nyieun hiji pernyataan kandel yén Emacs suksés ka extent badag sarta malah lolobana sabab nyandak kasaluyuan mundur jadi serius. Sabenerna, ieu tesis artikel urang. Suksés, sistem kabuka lila-hirup ngahutang kasuksésan maranéhna pikeun microcommunities nu hirup di sabudeureun éta salila sababaraha dekade. ekstensi / plugins. Ieu ékosistem. Kuring parantos nyarioskeun ngeunaan sifat platform sareng kumaha pentingna aranjeunna, sareng kumaha Google henteu kantos dina sadaya sajarah perusahaanna ngartos naon anu badé nyiptakeun platform terbuka anu suksés di luar Android atanapi Chrome.

Sabenerna, kuring kudu nyebut Android sakeudeung sabab Anjeun meureun nuju mikir ngeunaan eta.

firstly, Android sanes Google. Aranjeunna mibanda ampir euweuh di umum kalawan unggal lianna. Android nyaéta parusahaan nu dibeuli ku Google dina bulan Juli 2005, pausahaan ieu diwenangkeun beroperasi leuwih atawa kirang otonom sarta sabenerna tetep sakitu legana teu kacekel dina taun intervening. Android nyaéta tumpukan téknologi kasohor sareng organisasi biang anu sami-sami kasohor. Salaku salah sahiji Googler nyebutkeun, "Anjeun teu bisa ngan asup kana Android".

Dina tulisan sateuacana, kuring ngabahas kumaha goréngna sababaraha kaputusan desain awal Android. Heck, nalika kuring nyerat tulisan éta aranjeunna ngaluncurkeun omong kosong anu disebut "aplikasi instan" anu ayeuna (kaget!) katinggaleun jaman, sarta kuring simpati lamun anjeun cukup bodo ngadangukeun Google sarta mindahkeun eusi Anjeun ka ieu aktip instan.

Tapi aya bédana di dieu, béda anu signifikan, nyaéta yén jalma Android leres-leres ngartos kumaha pentingna platform, aranjeunna nyobian anu saé pikeun ngajaga aplikasi Android anu lami. Kanyataanna, usaha maranéhna pikeun ngajaga kasaluyuan ka tukang pisan ekstrim na malah kuring, salila stint ringkes kuring di division Android sababaraha taun ka pengker, kapanggih sorangan nyobian ngayakinkeun aranjeunna pikeun leupaskeun rojongan pikeun sababaraha alat pangkolotna sarta API (kuring salah. , sakumaha dina loba hal sejenna baheula jeung ayeuna. Hapunten guys Android! Ayeuna kuring geus ka Indonesia, abdi ngartos naha urang peryogi eta).

Jalma-jalma Android nyorong kasaluyuan ka tukang ka ekstrim anu ampir teu kabayang, ngumpulkeun sajumlah ageung hutang téknis warisan dina sistem sareng ranté alatna. Duh Gusti, anjeun kedah ningali sababaraha hal anu gélo anu kedah dilakukeun dina sistem ngawangunna, sadayana dina nami kasaluyuan.

Kanggo ieu, kuring masihan Android pangajén "You're Not Google". Éta leres-leres henteu hoyong janten Google, anu henteu terang kumaha nyiptakeun platform anu tahan, tapi Android terang, kumaha carana. Janten Google janten pinter pisan dina hiji hal: ngamungkinkeun jalma-jalma ngalakukeun hal-hal ku cara sorangan dina Android.

Nanging, aplikasi instan pikeun Android mangrupikeun ide anu bodo. Sareng anjeun terang naha? Sabab nungtut nyerat ulang sareng ngadesain ulang aplikasi anjeun! Saolah-olah jalma ngan saukur bakal nulis ulang dua juta aplikasi. Kuring nyangka Aplikasi Instan mangrupikeun ideu Googler.

Tapi aya bédana. Kasaluyuan mundur asalna dina biaya tinggi. Android sorangan nanggung beungbeurat waragad ieu, bari Google insists yén beungbeurat ditanggung anjeun, mayar klien.

Anjeun tiasa ningali komitmen Android pikeun kasaluyuan mundur dina API na. Nalika anjeun gaduh opat atanapi lima subsistem anu béda-béda ngalakukeun hal anu sami, éta mangrupikeun tanda pasti yén aya komitmen pikeun kasaluyuan mundur dina inti. Anu dina dunya platform sinonim sareng komitmen ka konsumén anjeun sareng pasar anjeun.

Masalah utama Google di dieu nyaéta kareueus kana kabersihan rékayasa. Aranjeunna teu resep lamun aya loba cara béda pikeun ngalakonan hal anu sarua, kalawan cara heubeul, kirang desirable diuk gigireun anyar, cara fancier. Ieu ngaronjatkeun kurva learning pikeun maranéhanana anyar pikeun sistem, éta ngaronjatkeun beungbeurat ngajaga API warisan, éta slows turun speed fitur anyar, jeung dosa Cardinal éta teu geulis. Google - kawas Lady Ascot ti Tim Burton's Alice in Wonderland:

Lady Ascot:
- Alice, naha anjeun terang naon anu kuring pikasieuneun?
- Turunna aristokrasi?
- Kuring éta sieun yén kuring bakal boga incu awon.

Pikeun ngartos tradeoff antara geulis tur praktis, hayu urang tingali dina platform suksés katilu (sanggeus Emacs sarta Android) tur tingal kumaha gawéna: Java sorangan.

Java ngabogaan loba API luntur. Deprecation populer pisan di kalangan programer Java, bahkan langkung populer tibatan dina kalolobaan basa program. Java sorangan, basa inti, jeung perpustakaan terus deprecating API.

Pikeun nyandak ngan hiji tina rébuan conto, nutup threads dianggap luntur. Eta geus deprecated saprak release Java 1.2 dina Désémber 1998. Geus 22 taun ti saprak ieu dicabut.

Tapi kode kuring sabenerna dina produksi masih killing threads unggal poé. Naha anjeun nganggap éta saé? Leres pisan! Maksad abdi, tangtosna, lamun kuring éta nulis balik kode kiwari, abdi bakal nerapkeun eta béda. Tapi kodeu pikeun kaulinan kuring, nu geus nyieun ratusan rébu jalma senang leuwih dua dekade kaliwat, ditulis kalawan fungsi pikeun nutup threads nu ngagantung panjang teuing, sarta kuring pernah kungsi ngarobah éta. Kuring terang sistem kuring langkung saé tibatan saha waé, kuring sacara harfiah 25 taun pangalaman damel sareng éta dina produksi, sareng kuring tiasa nyarios pasti: bisi kuring, nutup benang padamel khusus ieu lengkep. teu bahaya. Teu patut waktu jeung usaha nulis ulang kode ieu, sarta hatur Larry Ellison (meureun) nu Oracle teu maksa kuring nulis ulang eta.

Oracle sigana ogé ngartos platform. Saha anu terang.

Bukti bisa kapanggih sapanjang inti Java API, nu riddled ku gelombang obsolescence, kawas garis glacier dina jurang a. Anjeun tiasa mendakan lima atanapi genep manajer navigasi keyboard anu béda (KeyboardFocusManager) dina perpustakaan Java Swing. Sabenerna sesah milarian Java API anu henteu dicabut. Tapi aranjeunna tetep dianggo! Jigana tim Java ngan bakal sabenerna miceun hiji API lamun panganteur nu penah hiji masalah kaamanan glaring.

Ieu hal, folks: Kami pamekar software sadayana sibuk pisan, sareng di unggal daérah parangkat lunak kami disanghareupan ku alternatip anu bersaing. Iraha waé, programer dina basa X nganggap basa Y salaku panggantian anu mungkin. Oh, anjeun teu percanten ka abdi? Naha anjeun badé nyebat éta Swift? Siga, sadayana hijrah ka Swift sareng teu aya anu ngantunkeun, sanés? Wah, kumaha saeutik anjeun terang. Pausahaan ngitung biaya tim pamekaran sélulér ganda (ios sareng Android) - sareng aranjeunna mimiti sadar yén sistem pangembangan cross-platform kalayan nami lucu sapertos Flutter sareng React Native leres-leres tiasa dianggo sareng tiasa dianggo pikeun ngirangan ukuranana. tim mobile dua kali atawa, Sabalikna, ngajadikeun aranjeunna dua kali leuwih produktif. Aya duit nyata di stake. Sumuhun, aya compromises, tapi, di sisi séjén, duit.

Hayu urang hypothetically nganggap yén Apple foolishly nyandak cue ti Guido van Rossum sarta nyatakeun yén Swift 6.0 mundur sauyunan jeung Swift 5.0, kawas Python 3 teu cocog jeung Python 2.

Sigana mah carita ieu ngeunaan sapuluh taun ka pengker, tapi ngeunaan lima belas taun ka tukang kuring indit ka O'Reilly urang Foo Camp kalawan Guido, diuk dina tenda jeung Paul Graham sarta kebat nembak badag. Urang diuk dina panas sweltering ngantosan Larry Page ngapung kaluar dina helikopter pribadi na bari Guido droned on ngeunaan "Python 3000," nu anjeunna dingaranan jumlah taun eta bakal nyandak for everyone migrasi ka dinya. Kami terus naroskeun ka anjeunna naha anjeunna ngalanggar kasaluyuan, sareng anjeunna ngawaler: "Unicode." Sareng urang naroskeun, upami urang kedah nyerat deui kodeu, naon mangpaat anu bakal urang tingali? Sareng anjeunna ngawaler "Yoooooooooooouuuuuuuuiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii."

Upami anjeun masang Google Cloud Platform SDK ("gcloud"), anjeun bakal nampi béwara ieu:

Dear panarima,

Simkuring hoyong ngingetkeun yén rojongan pikeun Python 2 geus deprecated, jadi bangsat anjeun

… teras salajengna. Lingkaran kahirupan.

Tapi intina nyaéta unggal pamekar gaduh pilihan. Tur upami Anjeun salah maksa aranjeunna nulis ulang kode cukup mindeng, aranjeunna bisa mikir ngeunaan batur pilihan. Aranjeunna sanés sandera anjeun, henteu paduli sabaraha anjeun hoyong aranjeunna. Aranjeunna tamu anjeun. Python masih mangrupa basa programming pohara populér, tapi damn, Python 3(000) nyiptakeun mess misalna dina sorangan, di komunitas sarta diantara pamaké komunitas na yén konsékuansi teu diberesihan nepi ka lima belas taun.

Sabaraha program Python geus ditulis ulang dina Go (atawa Ruby, atawa sababaraha alternatif séjén) kusabab incompatibility mundur ieu? Sabaraha software anyar geus ditulis dina hal lian ti Python, sanajan eta bisa jadi ditulis dina Python, lamun Guido teu ngaduruk sakabeh désa? Hésé nyarios, tapi Python jelas ngalaman. Éta kacau pisan sareng sadayana éléh.

Ku kituna hayu urang nyebutkeun Apple nyokot cue ti Guido sarta megatkeun kasaluyuan. Kumaha saur anjeun bakal kajadian salajengna? Nya, panginten 80-90% pamekar bakal nyerat deui parangkat lunak upami mungkin. Dina basa sejen, 10-20% tina basa pamaké otomatis balik ka sababaraha basa competing, kayaning Flutter.

Laksanakeun ieu sababaraha kali sareng anjeun bakal kaleungitan satengah pangkalan pangguna anjeun. Sapertos dina olahraga, dina dunya pemrograman, bentuk ayeuna ogé penting. sadaya. Saha waé anu kaleungitan satengah pangguna dina lima taun bakal dianggap Big Fat Loser. Anjeun kedah janten trendi di dunya platform. Tapi ieu tempat henteu ngadukung versi anu langkung lami bakal ngarusak anjeun kana waktosna. Kusabab unggal waktos anjeun nyingkirkeun sababaraha pamekar, anjeun (a) kaleungitan aranjeunna salamina sabab ambek ka anjeun ngalanggar kontrak, sareng (b) masihan aranjeunna ka pesaing anjeun.

Ironisna, kuring ogé mantuan Google jadi primadona sapertos nu teu malire kasaluyuan ka tukang nalika kuring nyieun Grok, analisis kode sumber jeung sistem pamahaman nu matak ngamudahkeun pikeun ngajadikeun otomatis tur instrumen kode sorangan - sarupa IDE, tapi di dieu toko layanan awan. representasi materialized sadaya milyaran garis kode sumber Google dina gudang data badag.

Grok nyadiakeun Googlers kalawan kerangka kuat pikeun ngajalankeun refactorings otomatis sakuliah sakabéh codebase maranéhanana (sacara harfiah sakuliah Google). Sistim nu ngitung teu ukur kagumantungan hulu anjeun (nu anjeun gumantung), tapi ogé nurun (anu terserah anjeun) janten nalika anjeun ngarobih API anjeun terang saha waé anu anjeun ngalanggar! Ku cara ieu, nalika anjeun ngalakukeun parobihan, anjeun tiasa pariksa yén unggal konsumen API anjeun parantos diropéa kana versi énggal, sareng kanyataanna, sering nganggo alat Rosie anu aranjeunna nyerat, anjeun tiasa ngajadikeun otomatis prosésna.

Hal ieu ngamungkinkeun codebase Google sacara internal ampir supernaturally bersih, sabab boga ieu pagawé robotic scurrying sabudeureun imah jeung otomatis ngabersihkeun sagalana up lamun maranéhna diganti SomeDespicablyLongFunctionName mun SomeDespicablyLongMethodName sabab batur mutuskeun éta incu awon sarta kudu nempatkeun sare.

Jeung terus terang, gawéna geulis ogé pikeun Google ... internal. Maksad abdi, enya, komunitas Go di Google teu boga seuri alus jeung komunitas Java di Google kusabab watek maranéhanana refactoring kontinyu. Lamun balikan deui hal N kali, hartina anjeun teu ngan ngaco deui nepi N-1 kali, tapi sanggeus bari janten geulis jelas nu meureun ngaco eta up dina Nth try ogé. Tapi, sacara umum, aranjeunna tetep di luhur sadaya masalah ieu sareng ngajaga kodeu "bersih".

Masalahna dimimitian nalika aranjeunna nyobian maksakeun sikep ieu ka klien awan sareng pangguna API anu sanés.

Kuring geus ngawanohkeun anjeun saeutik Emacs, Android sarta Java; hayu urang tingali dina platform lila-hirup suksés panganyarna: Web sorangan. Dupi anjeun ngabayangkeun sabaraha iterations HTTP geus Isro ngaliwatan saprak 1995 nalika kami dipaké flashing tags? sareng ikon "Dina Konstruksi" dina halaman wéb.

Tapi tetep jalan! Jeung kaca ieu masih jalan! Leres, guys, browser mangrupikeun juara dunya dina kasaluyuan mundur. Chrome mangrupikeun conto sanés tina platform Google anu jarang anu leres-leres ngaco, sareng sakumaha anu anjeun duga, Chrome sacara efektif beroperasi salaku perusahaan kotak pasir anu misah ti sesa Google.

Abdi ogé hoyong ngahaturkeun nuhun ka réréncangan urang dina pamekar sistem operasi: Windows, Linux, NOT APPLE FUCK YOU APPLE, FreeBSD, jsb., pikeun ngalakukeun padamelan anu saé pikeun kasaluyuan mundur dina platform anu suksés (Apple meunang C anu pangsaéna sareng The downside nyaeta aranjeunna megatkeun sagalana sepanjang waktos keur euweuh alesan alus, tapi kumaha bae komunitas meunang sabudeureun eta kalawan unggal release, sarta OS X wadahna masih teu lengkep leungit ... acan).

Tapi antosan, anjeun nyarios. Naha urang ngabandingkeun apel sareng jeruk - sistem parangkat lunak mandiri dina mesin tunggal sapertos Emacs/JDK/Android/Chrome versus sistem multi-server sareng API sapertos jasa awan?

Nya, kuring tweeted ngeunaan ieu kamari, tapi dina gaya Larry Wall (pencipta basa programming Perl - approx. per.) Dina prinsip "nyedot / aturan" Kuring nempo up kecap. deprecated dina situs pamekar Google sareng Amazon. Sarta sanajan AWS boga ratusan kali leuwih kurban jasa ti GCP, dokuméntasi pamekar Google nyebutkeun deprecation ngeunaan tujuh kali leuwih sering.

Upami saha waé di Google anu maca ieu, aranjeunna sigana siap narik bagan gaya Donald Trump anu nunjukkeun yén aranjeunna leres-leres ngalakukeun sadayana leres, sareng yén kuring henteu kedah ngadamel perbandingan anu teu adil sapertos "jumlah nyebatkeun kecap anu dileungitkeun versus. jumlah jasa ""

Tapi sanggeus sababaraha taun ieu, Google Awan masih layanan No. 3 (Kuring pernah nulis artikel ngeunaan usaha gagal pikeun jadi No. 2), tapi lamun insiders anu bisa dipercaya, aya sababaraha masalah nu maranéhna bisa geura-giru turun ka. No. 4.

Abdi henteu gaduh alesan anu kuat pikeun "ngabuktoskeun" skripsi kuring. Sadaya anu kuring gaduh nyaéta conto-conto warni anu kuring kumpulkeun salami 30 taun salaku pamekar. Kuring geus disebutkeun alam deeply filosofis masalah ieu; dina sababaraha cara dipolitisir di komunitas pamekar. Sababaraha yakin éta panyipta platform kedah paduli kasaluyuan, bari batur mikir yén ieu téh perhatian pamaké (pamekar sorangan). Hiji ti dua. Saleresna, sanes masalah politik nalika urang mutuskeun saha anu kedah nanggung biaya masalah umum?

Tah ieu politik. Sareng sigana bakal aya réspon ambek kana pidato kuring.

kumaha pamaké éta Google Cloud Platform, sareng salaku pangguna AWS salami dua taun (bari damel pikeun Grab), kuring tiasa nyebatkeun yén aya bédana ageung antara filosofi Amazon sareng Google ngeunaan prioritas. Kuring henteu aktip ngembangkeun dina AWS, janten kuring henteu terang kumaha sering aranjeunna ngahapus API anu lami. Tapi aya kacurigaan yén ieu teu lumangsung ampir mindeng sakumaha di Google. Sareng kuring leres-leres yakin yén sumber kontroversi konstan sareng hanjelu dina GCP mangrupikeun salah sahiji faktor pangbadagna anu nahan pangembangan platform.

Kuring terang yén kuring henteu masihan nami conto khusus sistem GCP anu henteu didukung deui. Abdi tiasa nyebatkeun yén ampir sadayana anu kuring dianggo, tina jaringan (ti anu pangkolotna ka VPC) dugi ka panyimpenan (Cloud SQL v1-v2), Firebase (ayeuna Firestore kalayan API anu béda-béda), App Engine (hayu urang henteu ngamimitian) , cloud endpoints Cloud Endpoint jeung nepi ka... Kuring henteu weruh - leres pisan sadayana ieu kapaksa anjeun nulis ulang kode sanggeus maksimum 2-3 taun, sarta aranjeunna pernah otomatis migrasi pikeun anjeun, sarta mindeng euweuh jalur migrasi documented pisan. Saolah-olah geus sakuduna kitu.

Sareng unggal waktos kuring ningali AWS, kuring naroskeun ka diri naha kuring masih nganggo GCP. Aranjeunna jelas teu butuh klien. Aranjeunna peryogi pembeli. Naha anjeun ngartos bédana? Hayu atuh ngajelaskeun.

Google Cloud boga pasaran, dimana urang ngajukeun solusi software maranéhanana, sarta pikeun nyingkahan éfék réstoran kosong, aranjeunna diperlukeun pikeun ngeusian eta kalawan sababaraha usulan, ngarah kaserang ku parusahaan disebut Bitnami nyieun kebat solusi anu deployed kalawan "hiji klik", atawa kedah Kuring nulis sorangan "solusi," sabab ieu teu ngajawab hiji hal damn. Éta ngan saukur aya salaku kotak centang, salaku pangisi pamasaran, sareng Google henteu kantos paduli naha alat-alat éta leres-leres jalanna. Kuring nyaho manajer produk anu geus di korsi supir urang, tur abdi tiasa assure yén jalma ieu teu paduli.

Candak, contona, solusi deployment konon "hiji-klik". percona. Abdi gering maot tina Google Cloud SQL shenanigans, janten kuring mimiti ningali ngawangun klaster Percona kuring sorangan salaku alternatif. Sareng waktos ieu Google sigana parantos ngalaksanakeun padamelan anu saé, aranjeunna bakal nyalametkeun kuring sababaraha waktos sareng usaha kalayan ngaklik tombol!

Muhun hébat, hayu urang balik. Hayu urang tuturkeun tautan sareng klik tombol ieu. Pilih "Leres" pikeun satuju kana sadaya setélan standar sareng nyebarkeun klaster dina proyék awan Google anjeun. Haha, teu hasil. Taya crap ieu jalan. Alatna henteu pernah diuji sareng mimiti rot ti menit kahiji, sareng éta moal kaget kuring upami langkung ti satengah tina "solusi" mangrupikeun panyebaran hiji-klik (ayeuna urang ngartos naha tanda petik) RІRѕRѕR C ± ‰ Rμ teu hasil. Ieu mangrupikeun gelap anu teu aya harepan, dimana éta langkung saé henteu lebet.

Tapi Google bener nyorong anjeun ngagunakeun aranjeunna. Aranjeunna hoyong anjeun ngagaleuh. Pikeun aranjeunna éta transaksi. Aranjeunna teu hoyong nanaon ngadukung. Éta sanés bagian tina DNA Google. Sumuhun, insinyur silih ngarojong, sakumaha dibuktikeun ku carita kuring jeung Bigtable. Tapi dina produk sareng jasa pikeun jalma biasa aranjeunna salawasna éta kejam di nutup jasa naon waé, nu teu minuhan bar pikeun Profitability sanajan boga jutaan pamaké.

Sareng ieu nampilkeun tangtangan nyata pikeun GCP sabab ieu mangrupikeun DNA anu aya di balik sadaya panawaran awan. Aranjeunna teu nyobian ngarojong nanaon; Hal ieu ogé dipikawanoh yen aranjeunna nolak host (salaku layanan junun) sagala software pihak katilu dugi ka, dugi AWS ngalakukeun hal anu sami sareng ngawangun bisnis anu suksés di sabudeureun éta, sareng nalika konsumén sacara harfiah nungtut sami. Nanging, peryogi sababaraha usaha pikeun ngajantenkeun Google ngadukung hiji hal.

Kurangna budaya pangrojong ieu, ditambah ku mentalitas "hayu urang pisahkeun supados langkung endah", ngasingkeun pamekar.

Sareng éta sanés hal anu saé upami anjeun hoyong ngawangun platform anu umurna panjang.

Google, hudang, sial. Ayeuna 2020. Anjeun masih éléh. Waktosna pikeun ningali eunteung sareng ngajawab naha anjeun leres-leres hoyong tetep dina bisnis awan.

Lamun hayang cicing lajeng eureun megatkeun sagalana. Lalaki, anjeun beunghar. Urang pamekar henteu. Janten nalika datang ka saha anu bakal nanggung beban kasaluyuan, anjeun kedah nanggung kana diri anjeun. Henteu pikeun urang.

Kusabab aya sahanteuna tilu deui awan bener alus. Aranjeunna beckon.

Sareng ayeuna kuring bakal ngaléngkah pikeun ngalereskeun sadaya sistem anu rusak. Eh.

Dugi ka waktos salajengna!

Pembaruan PS saatos maca sababaraha diskusi dina tulisan ieu (diskusi anu saé, btw). Pangrojong Firebase teu acan dileungitkeun sareng teu aya rencana anu kuring terang. Nanging, aranjeunna gaduh bug streaming jahat anu nyababkeun klien Java macét dina App Engine. Salah sahiji insinyur maranéhna mantuan kuring ngajawab masalah ieu, nalika kuring digawé di Google, Tapi maranéhna pernah sabenerna ngalereskeun bug, jadi kuring boga workaround crappy ngabogaan ngabalikan deui aplikasi GAE unggal poe. Sarta eta geus salila opat taun! Aranjeunna ayeuna gaduh Firestore. Éta peryogi seueur padamelan pikeun migrasi ka éta sabab éta mangrupikeun sistem anu béda-béda sareng bug Firebase moal pernah dibenerkeun. Naon kacindekan nu bisa dicokot? Anjeun tiasa meunang pitulung upami anjeun damel di perusahaan. Kuring sigana ngan hiji-hijina anu nganggo Firebase dina GAE sabab kuring log kirang ti 100 konci dina aplikasi asli 100% sareng lirén damel unggal sababaraha dinten kusabab bug anu dipikanyaho. Naon anu bisa kuring nyebutkeun lian ti make eta dina resiko sorangan. Abdi ngalih ka Redis.

Kuring ogé ningali sababaraha pangguna AWS anu langkung ngalaman nyarios yén AWS biasana henteu lirén ngadukung jasa naon waé, sareng SimpleDB mangrupikeun conto anu saé. Asumsi kuring yén AWS henteu gaduh tungtung anu sami pikeun panyakit dukungan sapertos Google sigana leres.

Salaku tambahan, kuring perhatikeun yén 20 dinten ka pengker tim Google App Engine ngarobih hosting perpustakaan Go kritis, mareuman aplikasi GAE tina salah sahiji pamekar inti Go. Ieu bener bodo.

Tungtungna, kuring nguping Googlers parantos ngabahas masalah ieu sareng umumna satuju sareng kuring (nyaah ka anjeun!). Tapi aranjeunna sigana nganggap masalahna teu tiasa direngsekeun sabab budaya Google henteu pernah ngagaduhan struktur insentif anu leres. Panginten éta hadé pikeun nyandak sababaraha waktos pikeun ngabahas pangalaman anu luar biasa anu kuring damel sareng insinyur AWS nalika damel di Grab. Someday di mangsa nu bakal datang, abdi miharep!

Na enya, dina 2005 maranéhna teu boga tipena béda daging hiu on Tambaksari raksasa di gedong 43, sarta favorit abdi éta daging hiu hammerhead. Sanajan kitu, ku 2006, Larry na Sergei meunang leupas tina sagala snacks damang. Janten salami carita Bigtable di 2007 leres-leres henteu aya hiu sareng kuring nipu anjeun.

Nalika kuring ningal awan Bigtable opat taun ka pengker (masihan atanapi nyandak), ieu dimana biayana. Sigana ayeuna parantos turun, tapi éta masih seueur pisan pikeun gudang data kosong, khususna saprak carita munggaran kuring nunjukkeun kumaha teu pentingna méja ageung kosong dina skala na.

Hapunten pikeun ngalanggar komunitas Apple sareng henteu nyarios nanaon anu saé ngeunaan Microsoft jsb. Tapi kadang anjeun kedah ngadamel gelombang sakedik pikeun ngamimitian diskusi, anjeun terang?

Hatur nuhun pikeun maca.

Update 2, 19.08.2020/XNUMX/XNUMX. Belang ngamutahirkeun API bener!

Update 3, 31.08.2020/2/2. Kuring dikontak ku insinyur Google di Cloud Marketplace anu tétéla janten réréncangan lami. Anjeunna hoyong terang naha CXNUMXD henteu tiasa dianggo, sareng kami tungtungna terang yén éta kusabab kuring parantos ngawangun jaringan kuring sababaraha taun ka pengker, sareng CXNUMXD henteu tiasa dianggo dina jaringan warisan kusabab parameter subnet leungit dina témplatna. Jigana éta pangalusna pikeun pamaké GCP poténsi pikeun mastikeun maranéhna terang cukup insinyur di Google ...

sumber: www.habr.com