Għażiż Google Cloud, li ma tkunx kompatibbli b'lura qed toqtolek.

Indanna Google, ma ridtx nerġa' nibbloggja. Għandi ħafna x'nagħmel. Il-blogging jieħu ż-żmien, l-enerġija u l-kreattività, li stajt nagħmel użu tajjeb: il-kotba tiegħi, il-mużika, il-logħba tiegħi u l-bqija. Imma int għajrejtni biżżejjed li jkolli nikteb dan.

Mela ejja niksbu dan fuq.

Ħa nibda bi storja qasira iżda istruttiva minn meta bdejt naħdem għall-ewwel darba fil-Google. Naf li stajt ngħid ħafna affarijiet ħżiena dwar Google dan l-aħħar, iżda jdejjaqni meta l-kumpanija tiegħi stess regolarment tieħu deċiżjonijiet kummerċjali inkompetenti. Fl-istess ħin, irridu nagħtuha kif suppost: l-infrastruttura interna ta 'Google hija tassew straordinarja, tajjeb li wieħed jgħid li m'hemm xejn aħjar illum. Il-fundaturi tal-Google kienu inġiniera ferm aħjar milli qatt se nkun jien, u din l-istorja tikkonferma biss dak il-fatt.

L-ewwel, ftit sfond: Google għandha teknoloġija tal-ħażna tad-dejta msejħa Bigtable. Kienet kisba teknika notevoli, waħda mill-ewwel (jekk mhux l-ewwel) maħżen ta 'valur ewlieni "infinitament skalabbli" (K / V): essenzjalment il-bidu ta' NoSQL. Dawn il-ġranet Bigtable għadu sejjer tajjeb fl-ispazju tal-ħażna K/V pjuttost iffullar, iżda dak iż-żmien (2005) kien aqwa mill-isbaħ.

Ħaġa waħda umoristiċi dwar Bigtable hija li kellhom oġġetti ta 'pjan ta' kontroll intern (bħala parti mill-implimentazzjoni) imsejħa servers ta 'tablet, b'indiċi kbar, u f'xi punt saru ostakolu meta skalaw is-sistema. L-inġiniera ta 'Bigtable kienu mħawwda dwar kif jimplimentaw l-iskalabbiltà, u f'daqqa waħda rrealizzaw li jistgħu jissostitwixxu s-servers tal-pilloli b'ħażna Bigtable oħra. Allura Bigtable hija parti mill-implimentazzjoni ta 'Bigtable. Dawn il-faċilitajiet tal-ħażna qegħdin hemm fil-livelli kollha.

Dettall ieħor interessanti huwa li għal xi żmien Bigtable sar popolari u kullimkien fi ħdan Google, b'kull tim ikollu r-repożitorju tiegħu. Għalhekk f’waħda mil-laqgħat tal-Ġimgħa, Larry Page staqsa b’mod każwali: “Għaliex għandna aktar minn Bigtable waħda? Għaliex mhux wieħed biss?” Fit-teorija, ħażna waħda għandha tkun biżżejjed għall-ħtiġijiet kollha ta 'ħażna ta' Google. Naturalment, qatt ma marru għal wieħed biss għal raġunijiet prattiċi ta 'żvilupp (bħall-konsegwenzi ta' falliment potenzjali), iżda t-teorija kienet interessanti. Repożitorju wieħed għall-Univers kollu (Mill-mod, xi ħadd jaf jekk Amazon għamlux dan bis-Sable tagħhom?)

Xorta waħda, hawn l-istorja tiegħi.

Dak iż-żmien, kont ilni naħdem ma’ Google għal ftit aktar minn sentejn, u jum wieħed irċivejt email mit-tim tal-inġinerija ta’ Bigtable li marret xi ħaġa bħal din:

Għażiż Steve,

Hello mit-tim ta' Bigtable. Nixtiequ ninfurmak li f'[isem iċ-ċentru tad-dejta] qed tuża binarju Bigtable antiki ħafna ħafna. Din il-verżjoni m'għadhiex appoġġjata u rridu ngħinuk upgrade għall-aħħar verżjoni.

Jekk jogħġbok għarrafni jekk tistax tiskeda ftit ħin biex taħdem flimkien fuq din il-kwistjoni.

Awguri,
Bigtable Team

Fuq Google tirċievi ħafna posta, għalhekk mal-ewwel daqqa t'għajn naqra xi ħaġa bħal din:

Għażiż Riċevitur,

Hello minn xi tim. Irridu nikkomunikaw dak bla bla bla bla bla. Bla bla bla bla bla bla, u bla bla bla immedjatament.

Jekk jogħġbok għarrafna jekk tistax tiskeda ftit mill-ħin prezzjuż tiegħek għal bla bla bla.

Awguri,
Xi tip ta 'kmand

Kważi ħassejtha mill-ewwel, iżda fit-tarf tas-sensi tiegħi ħassejt sensazzjoni ta’ wġigħ u ta’ qerq li dan mhux tassew qisu ittra formali għalkemm ovvjament, li r-riċevitur kien żbaljat għax ma użajtx Bigtable.

Imma kienet stramba.

Għamilt il-bqija tal-ġurnata alternattivament naħseb dwar ix-xogħol u x'tip ta' laħam tal-kelb il-baħar nipprova fil-mikro-kċina, li mill-inqas tlieta minnhom kienu qrib biżżejjed biex jolqtu mis-sedil tiegħi b'temi ta' gallettini mmirati tajjeb, iżda l- ħsieb tal-kitba qatt ma ħallini b'sensazzjoni ta 'ansjetà ħafifa dejjem tikber.

Huma qalu b'mod ċar ismi. U l-email intbagħtet lill-indirizz elettroniku tiegħi, mhux lil xi ħadd ieħor, u mhuwiex cc: jew bcc:. It-ton huwa personali ħafna u ċar. Forsi dan huwa xi tip ta’ żball?

Fl-aħħarnett, il-kurżità qabdet minni u mort inħares lejn il-console Borg fid-data centre li semmew.

U ovvjament, kelli ħażna BigTable taħt ġestjoni. Jiddispjaċini, xiex? Ħarist lejn il-kontenut tiegħu, u naqra! Kien mill-inkubatur Codelab li sibt fih matul l-ewwel ġimgħa tiegħi fil-Google f'Ġunju 2005. Codelab ġiegħlek tmexxi Bigtable biex tikteb xi valuri hemmhekk, u milli jidher qatt ma għalaqt il-ħażna wara dak. Kienet għadha taħdem minkejja li għaddew aktar minn sentejn.

Hemm diversi aspetti notevoli għal din l-istorja. L-ewwelnett, ix-xogħol ta 'Bigtable kien tant insinifikanti fuq l-iskala ta' Google li sentejn biss wara xi ħadd innota l-ħażna żejda, u biss minħabba li l-verżjoni tal-binarju kienet skaduta. Għat-tqabbil, darba ikkunsidrajt li nuża Bigtable fuq Google Cloud għal-logħba online tiegħi. Dak iż-żmien, dan is-servizz jiswa madwar $16 fis-sena. vojta Bigtable fuq GCP. Jien mhux qed ngħid li qed scamming inti, iżda fl-opinjoni personali tiegħi, dak huwa ħafna flus għal database fucking vojta.

Aspett ieħor notevoli huwa li l-ħażna għadu jaħdem wara sentejn. WTF? Iċ-ċentri tad-dejta jiġu u jmorru; jesperjenzaw qtugħ, jgħaddu minn manutenzjoni skedata, jinbidlu l-ħin kollu. Il-ħardwer huwa aġġornat, is-swiċċijiet huma skambjati, kollox qed jitjieb kontinwament. Kif infern kienu kapaċi jżommu l-programm tiegħi għaddej għal sentejn b'dawn il-bidliet kollha? Din tista' tidher bħala kisba modesta fl-2020, iżda fl-2005-2007 kienet pjuttost impressjonanti.

U l-isbaħ aspett huwa li tim ta’ inġinerija minn barra f’xi stat ieħor javviċinani, sid ta’ xi eżempju ċkejken, kważi vojt ta’ Bigtable, li għandu traffiku żero għal dawn l-aħħar sentejn - u qed joffru għajnuna biex jaġġornawha.

Irringrazzjejthom, ħassar il-ħażna, u l-ħajja kompliet bħas-soltu. Imma tlettax-il sena wara, għadni naħseb dwar dik l-ittra. Għax kultant nirċievi emails simili minn Google Cloud. Jidhru bħal dan:

Għażiż Utent Google Cloud,

Bħala tfakkira, aħna se nwaqqfu s-servizz [servizz essenzjali li tuża] minn Awwissu 2020, u wara ma tkunx tista’ taġġorna l-istanzi tiegħek. Nirrakkomandaw li jaġġornaw għall-aħħar verżjoni, li tinsab fl-ittestjar beta, m'għandha l-ebda dokumentazzjoni, l-ebda mogħdija ta 'migrazzjoni u hija skaduta qabel bl-għajnuna tajba tagħna.

Aħna impenjati li niżguraw li din il-bidla jkollha impatt minimu fuq l-utenti kollha tal-pjattaforma Google Cloud.

L-aqwa ħbieb għal dejjem,
Google Cloud Platform

Imma kważi qatt ma qrajt ittri bħal dawn, għax dak li fil-fatt jgħidu huwa:

Għażiż Riċevitur,

Mur linfern. Fok, fok, fok. Waqqa dak kollu li tagħmel għax ma jimpurtax. L-importanti huwa l-ħin tagħna. Naħlu l-ħin u l-flus inżommu l-ħażin tagħna u aħna għajjenin biha u għalhekk ma nibqgħux nappoġġjawh. Mela aqta' l-pjanijiet tal-fucking tiegħek u ibda tħaffer permezz tad-dokumentazzjoni shitty tagħna, tallaba għal ruttam fuq il-forums, u bil-mod, shit il-ġdid tagħna huwa kompletament differenti mill-shit l-antik, għaliex aħna invitat dan id-disinn pjuttost ħażin, heh, imma dak hu tiegħek problema, mhux tagħna.

Aħna nkomplu nagħmlu sforzi biex niżguraw li l-iżviluppi kollha tiegħek ma jistgħux jintużaw fi żmien sena.

Jekk jogħġbok fuck off
Google Cloud Platform

U l-fatt hu li nirċievi tali ittri madwar darba fix-xahar. Dan jiġri tant spiss u tant kontinwament li inevitabbilment imbuttat bogħod jien minn GCP għall-kamp kontra s-sħab. M'għadniex naqbel li niddependi fuq l-iżviluppi proprjetarji tagħhom, għaliex fil-fatt huwa aktar faċli għad-devops li jżommu sistema ta 'sors miftuħ fuq magna virtwali vojta milli jippruvaw ilaħħqu ma' Google bil-politika tagħha li tagħlaq prodotti "skaduti".

Qabel immur lura għal Google Cloud għax jien lanqas mill-qrib mhux lest tikkritikahom, ejja nħarsu lejn il-prestazzjoni tal-kumpanija f'xi oqsma oħra. L-inġiniera ta' Google kburin bid-dixxiplina tagħhom tal-inġinerija tas-softwer, u dan huwa dak li fil-fatt jikkawża problemi. Il-kburija hija nassa għal min ma jagħmilx attenzjoni, u wassal lil ħafna impjegati ta' Google biex jaħsbu li d-deċiżjonijiet tagħhom huma dejjem tajbin u li tkun tajba (b'ċertu definizzjoni vaga mċajpra) hija aktar importanti milli tieħu ħsieb il-klijenti.

Se nagħti xi eżempji każwali minn proġetti kbar oħra barra mill-Google, imma nispera li tara dan il-mudell kullimkien. Huwa kif ġej: Il-kompatibilità b'lura żżomm is-sistemi ħajjin u aġġornati għal għexieren ta' snin.

Il-kompatibilità b'lura hija l-għan tad-disinn tas-sistemi kollha ta 'suċċess iddisinjati għalihom miftuħ użu, jiġifieri, implimentat b'kodiċi open source u/jew standards miftuħa. Inħoss li qed ngħid xi ħaġa wisq ovvja li kulħadd saħansitra skomdu, imma le. Din hija kwistjoni politika, għalhekk huma meħtieġa eżempji.

L-ewwel sistema li ser nagħżel hija l-eqdem: GNU Emacs, li hija tip ta' ibridu bejn Windows Notepad, il-kernel tal-OS, u l-Istazzjon Spazjali Internazzjonali. Huwa ftit diffiċli biex tispjega, iżda fil-qosor, Emacs hija pjattaforma maħluqa fl-1976 (iva, kważi nofs seklu ilu) għall-ipprogrammar biex tagħmlek aktar produttiv, iżda maskra bħala editur tat-test.

Jien nuża Emacs kuljum. Iva, nuża wkoll IntelliJ kuljum, kibret fi pjattaforma ta 'għodda b'saħħitha fiha nnifisha. Iżda l-kitba ta' estensjonijiet għal IntelliJ hija kompitu ħafna aktar ambizzjuż u kumpless mill-kitba ta' estensjonijiet għal Emacs. U aktar importanti, dak kollu miktub għal Emacs huwa ppreservat għal dejjem.

Għadni nuża s-softwer li ktibt għal Emacs lura fl-1995. U jien ċert li xi ħadd qed juża moduli miktuba għal Emacs f'nofs is-snin 80, jekk mhux qabel. Jistgħu jeħtieġu ftit tweaking minn żmien għal żmien, iżda dan huwa verament rari. Ma naf xejn li qatt ktibt għal Emacs (u ktibt ħafna) li kien jeħtieġ ri-arkitettura.

Emacs għandu funzjoni msejħa make-obsolete għal entitajiet skaduti. It-terminoloġija tal-Emacs għal kunċetti fundamentali tal-kompjuter (bħal x'inhi "tieqa") ħafna drabi tvarja mill-konvenzjonijiet tal-industrija minħabba li Emacs introduċiethom żmien twil ilu. Dan huwa periklu tipiku għal dawk li huma qabel iż-żmien tagħhom: it-termini kollha tiegħek huma żbaljati. Iżda Emacs għandu kunċett ta 'deprecation, li fil-lingwaġġ tagħhom jissejjaħ obsolescenza.

Iżda fid-dinja Emacs jidher li hemm definizzjoni ta' ħidma differenti. Filosofija sottostanti differenti, jekk trid.

Fid-dinja ta 'Emacs (u f'ħafna oqsma oħra, li ser inkopru hawn taħt), status API deprecated bażikament ifisser: "Int verament m'għandekx tuża dan l-approċċ, għaliex filwaqt li jaħdem, ibati minn diversi nuqqasijiet li aħna ser lista hawn. Imma fl-aħħar mill-aħħar, hija l-għażla tiegħek."

Fid-dinja ta' Google, li tkun skadut tfisser, "Aħna qed niksru l-impenn tagħna lejk." Dan huwa minnu. Dan huwa dak li jfisser essenzjalment. Dan ifisser li se jġiegħlek regolarment tagħmel xi xogħol, forsi ħafna xogħol, bħala kastig talli temmen fihom reklamar ikkulurit: Għandna l-aħjar softwer. L-aktar mgħaġġla! Int tagħmel kollox skont l-istruzzjonijiet, tniedi l-applikazzjoni jew is-servizz tiegħek, u mbagħad bam, wara sena jew tnejn tinkiser.

Qisu tbigħ karozza użata li żgur tkisser wara 1500 km.

Dawn huma żewġ definizzjonijiet filosofiċi kompletament differenti ta '"obsolexxenza." Definizzjoni ta 'riħa ta' Google obsolexxenza ppjanata. Jien ma nemminx dan fil-fatt obsolexxenza ppjanata fl-istess sens bħal Apple. Iżda Google żgur qed tippjana li tkisser il-programmi tiegħek, b'mod roundabout. Naf dan għax ħdimt hemm bħala inġinier tas-softwer għal aktar minn 12-il sena. Huma għandhom linji gwida interni vagi dwar kemm għandha tiġi segwita kompatibilità b'lura, iżda fl-aħħar mill-aħħar huwa f'idejn kull tim jew servizz individwali. M'hemm l-ebda rakkomandazzjoni fil-livell ta 'intrapriża jew ta' inġinerija, u l-aktar rakkomandazzjoni kuraġġuża f'termini ta 'ċikli ta' obsolexxenza hija "pprova tagħti lill-klijenti 6-12-il xahar biex jaġġornaw qabel ma jiksru s-sistema kollha tagħhom."

Il-problema hija ħafna akbar milli jaħsbu, u se tippersisti għas-snin li ġejjin minħabba li l-kura tal-klijenti mhix fid-DNA tagħhom. Aktar dwar dan hawn taħt.

F'dan il-punt jien ser nagħmel dikjarazzjoni kuraġġuża li Emacs huwa ta 'suċċess fil-biċċa l-kbira u anke bażikament għax jieħdu l-kompatibilità b'lura b'mod daqshekk bis-serjetà. Fil-fatt, din hija t-teżi tal-artiklu tagħna. Sistemi miftuħa ta’ suċċess u ta’ ħajja twila għandhom is-suċċess tagħhom lill-mikrokomunitajiet li għexu madwarhom għal għexieren ta’ snin estensjonijiet/plugins. Din hija l-ekosistema. Diġà tkellimt dwar in-natura tal-pjattaformi u kemm huma importanti, u kif Google fl-istorja korporattiva kollha tagħha qatt ma fehem x'inhu dak li jmur biex toħloq pjattaforma miftuħa ta' suċċess barra minn Android jew Chrome.

Fil-fatt, għandi nsemmi Android fil-qosor għax probabilment qed taħseb dwarha.

L-ewwel, il- Android mhux Google. Huma kważi xejn komuni ma 'xulxin. Android hija kumpanija li nxtrat minn Google f'Lulju 2005, il-kumpanija tħalliet topera bejn wieħed u ieħor b'mod awtonomu u fil-fatt baqgħet fil-biċċa l-kbira mhux mittiefsa fis-snin ta' intervent. Android huwa munzell ta 'teknoloġija notorji u organizzazzjoni tax-xewk ugwalment notorji. Kif qal Googler wieħed, "Ma tistax sempliċement tidħol f'Android."

F'artiklu preċedenti, iddiskutejt kemm kienu ħżiena xi wħud mid-deċiżjonijiet bikrija tad-disinn ta 'Android. Heck, meta ktibt dak l-artikolu kienu qed ixerrdu ħażin imsejħa "apps instantanji" li issa huma (sorpriża!) skaduti, u nissimpatizza jekk kont stupid biżżejjed biex tisma' lil Google u tmexxi l-kontenut tiegħek għal dawn l-apps instantanji.

Iżda hemm differenza hawn, differenza sinifikanti, li hija li n-nies Android verament jifhmu kemm huma importanti l-pjattaformi, jagħmlu l-almu tagħhom biex iżommu apps Android qodma jaħdmu. Fil-fatt, l-isforzi tagħhom biex iżommu l-kompatibilità b'lura huma tant estremi li anke jien, waqt il-qasir ta' żmien tiegħi fid-diviżjoni ta' Android ftit snin ilu, sibt ruħi nipprova nikkonvinċihom biex iwarrbu l-appoġġ għal xi wħud mill-eqdem apparati u APIs (kien żbaljat , kif kien f'ħafna affarijiet oħra tal-passat u tal-preżent. Jiddispjacini Android guys! Issa li ġejt l-Indoneżja, nifhem għaliex għandna bżonnhom).

In-nies ta 'Android jimbuttaw il-kompatibilità b'lura għal estremi kważi inkonċepibbli, u jiġbru ammonti massivi ta' dejn tekniku legat fis-sistemi u l-ktajjen tal-għodda tagħhom. Oh my god, għandek tara xi wħud mill-affarijiet miġnun li għandhom jagħmlu fis-sistema tal-bini tagħhom, kollha f'isem il-kompatibilità.

Għal dan, nagħti lil Android l-għotja mixtieqa "M'intix Google". Verament ma jridux isiru Google, li ma jafx kif toħloq pjattaformi durabbli, iżda Android jaf, kif tagħmel dan. U għalhekk Google qed tkun intelliġenti ħafna f'aspett wieħed: li tippermetti lin-nies jagħmlu l-affarijiet bil-mod tagħhom fuq Android.

Madankollu, apps immedjati għal Android kienu idea pjuttost stupida. U taf għaliex? Għax talbu erġa' ikteb u disinn mill-ġdid l-applikazzjoni tiegħek! Huwa bħallikieku n-nies sempliċiment se jikteb mill-ġdid żewġ miljun applikazzjoni. Qed naħseb li Instant Apps kienet idea ta' xi Googler.

Imma hemm differenza. Il-kompatibilità b'lura tiġi bi spiża għolja. Android innifsu jġorr il-piż ta’ dawn l-ispejjeż, filwaqt li Google jinsisti li l-piż jinġarr int, klijent li jħallas.

Tista 'tara l-impenn ta' Android għall-kompatibilità b'lura fl-APIs tagħha. Meta jkollok erba 'jew ħames sottosistemi differenti li jagħmlu litteralment l-istess ħaġa, huwa sinjal żgur li hemm impenn għall-kompatibilità b'lura fil-qalba. Li fid-dinja tal-pjattaformi huwa sinonimu mal-impenn lejn il-klijenti tiegħek u s-suq tiegħek.

Il-problema ewlenija ta' Google hawnhekk hija l-kburija tagħhom fl-iġjene tal-inġinerija tagħhom. Ma jogħġobhomx meta jkun hemm ħafna modi differenti biex jagħmlu l-istess ħaġa, bil-modi qodma, inqas mixtieqa bilqiegħda ħdejn il-modi ġodda u fancier. Iżżid il-kurva tat-tagħlim għal dawk ġodda għas-sistema, iżid il-piż taż-żamma tal-APIs tal-wirt, inaqqas il-veloċità ta 'karatteristiċi ġodda, u d-dnub kardinali huwa mhux pjuttost. Google - bħal Lady Ascot minn Tim Burton's Alice in Wonderland:

Lady Ascot:
- Alice, taf minn xiex nibża l-aktar?
- It-tnaqqis tal-aristokrazija?
- Kont nibża' li jkolli neputijiet ikrah.

Biex nifhmu l-kompromess bejn sabiħ u prattiku, ejja nagħtu ħarsa lejn it-tielet pjattaforma ta 'suċċess (wara Emacs u Android) u naraw kif taħdem: Java innifsu.

Java għandha ħafna APIs skaduti. Id-deprekazzjoni hija popolari ħafna fost il-programmaturi Java, saħansitra aktar popolari milli fil-biċċa l-kbira tal-lingwi tal-ipprogrammar. Java innifsu, il-lingwa ewlenija, u l-libreriji qed iwarrbu l-APIs b'mod kostanti.

Biex nieħdu biss wieħed minn eluf ta’ eżempji, ħjut tal-għeluq meqjusa skaduta. Ġie deprecated mill-ħruġ ta' Java 1.2 f'Diċembru 1998. Għaddew 22 sena minn meta dan ġie deprecated.

Iżda l-kodiċi attwali tiegħi fil-produzzjoni għadu joqtol il-ħjut kull jum. Tassew taħseb li dan hu tajjeb? Assolutament! Jiġifieri, ovvjament, kieku kelli nikteb mill-ġdid il-kodiċi llum, nimplimentah b'mod differenti. Iżda l-kodiċi għal-logħba tiegħi, li ferħana mijiet ta' eluf ta' nies matul l-aħħar għoxrin sena, huwa miktub b'funzjoni li jagħlaq ħjut li jiddendlu wisq, u jien qatt ma kellu jbiddel dan. Naf is-sistema tiegħi aħjar minn ħaddieħor, għandi litteralment 25 sena esperjenza naħdem magħha fil-produzzjoni, u nista 'ngħid żgur: fil-każ tiegħi, l-għeluq ta' dawn il-ħjut speċifiċi tal-ħaddiema huwa kompletament ma jagħmilx ħsara. Mhuwiex jiswew il-ħin u l-isforz biex nikteb mill-ġdid dan il-kodiċi, u nirringrazzja lil Larry Ellison (probabbilment) li Oracle ma ġiegħliex nikteb mill-ġdid.

Oracle probabbilment jifhem il-pjattaformi wkoll. Min jaf.

L-evidenza tista 'tinstab tul l-APIs ewlenin tal-Java, li huma mifnijin b'mewġ ta' obsolexxenza, bħall-linji ta 'glaċiera f'kanyon. Tista 'ssib faċilment ħames jew sitt maniġers ta' navigazzjoni tat-tastiera differenti (KeyboardFocusManager) fil-librerija Java Swing. Huwa fil-fatt diffiċli li ssib API Java li mhix deprecata. Imma għadhom jaħdmu! Naħseb li t-tim tal-Java se jneħħi tassew API biss jekk l-interface toħloq kwistjoni ta 'sigurtà evidenti.

Hawn il-ħaġa, nies: Aħna l-iżviluppaturi tas-softwer aħna lkoll impenjati ħafna, u f'kull qasam tas-software qed niffaċċjaw alternattivi li jikkompetu. Fi kwalunkwe ħin partikolari, programmaturi fil-lingwa X qed jikkunsidraw il-lingwa Y bħala sostitut possibbli. Oh, ma temminnix? Trid issejjaħlu Swift? Bħal, kulħadd qed jemigra lejn Swift u ħadd mhu qed jabbandunah, hux? Ara naqra, kemm taf ftit. Il-kumpaniji qed jgħoddu l-ispejjeż ta’ timijiet ta’ żvilupp mobbli doppju (iOS u Android) - u qed jibdew jirrealizzaw li dawk is-sistemi ta’ żvilupp ta’ pjattaformi b’ismijiet umoristiċi bħal Flutter u React Native fil-fatt jaħdmu u jistgħu jintużaw biex inaqqsu d-daqs tagħhom. timijiet mobbli darbtejn jew, bil-maqlub, jagħmluhom darbtejn produttivi. Hemm flus reali f'riskju. Iva, hemm kompromessi, imma, min-naħa l-oħra, flus.

Ejja nassumu ipotetikament li Apple b'mod foolishly ħadet spunt minn Guido van Rossum u ddikjara li Swift 6.0 huwa inkompatibbli b'lura ma 'Swift 5.0, bħal Python 3 huwa inkompatibbli ma' Python 2.

Probabbilment għidt din l-istorja madwar għaxar snin ilu, imma madwar ħmistax-il sena ilu mort fil-Foo Camp ta’ O’Reilly ma’ Guido, qgħadt f’tinda ma’ Paul Graham u mazz ta’ tiri kbar. Poġġejna fis-sħana sweltering nistennew lil Larry Page biex itir fil-ħelikopter personali tiegħu filwaqt li Guido droned fuq dwar "Python 3000," li semmieh minħabba n-numru ta 'snin li kien jieħu biex kulħadd jemigra hemmhekk. Aħna komplejna nistaqsuh għaliex kien qed jikser il-kompatibilità, u hu wieġeb: "Unicode." U staqsejna, kieku kellna nikteb il-kodiċi tagħna, liema benefiċċji oħra naraw? U huwa wieġeb "YoooooooooooouuuuuUniiiiiiiicoooooooode."

Jekk tinstalla l-Google Cloud Platform SDK (“gcloud”), tirċievi n-notifika li ġejja:

Għażiż Riċevitur,

Nixtiequ nfakkruk li l-appoġġ għal Python 2 ġie deprecated, mela hack you

… u l-bqija. Ċirku tal-ħajja.

Iżda l-punt huwa li kull żviluppatur għandu għażla. U jekk iġiegħelhom jiktbu mill-ġdid il-kodiċi spiss biżżejjed, jistgħu jaħsbu dwarhom oħrajn għażliet. Mhumiex ostaġġi tiegħek, tkun kemm tridu li jkunu. Huma mistednin tiegħek. Python għadu lingwa ta' programmar popolari ħafna, iżda ħasra, Python 3(000) ħoloq tali mess fih innifsu, fil-komunitajiet tiegħu u fost l-utenti tal-komunitajiet tiegħu li l-konsegwenzi ma ġewx iċċarati għal ħmistax-il sena.

Kemm programmi Python ġew miktuba mill-ġdid f'Go (jew Ruby, jew xi alternattiva oħra) minħabba din l-inkompatibbiltà b'lura? Kemm inkiteb softwer ġdid f'xi ħaġa oħra għajr Python, għalkemm dan jista jkun miktuba bil-Python, kieku Guido ma ħaraqx ir-raħal kollu? Huwa diffiċli li tgħid, iżda Python sofra b'mod ċar. Huwa mess kbir u kulħadd jitlef.

Mela ejja ngħidu li Apple jieħu spunt minn Guido u jkisser il-kompatibilità. X'taħseb li se jiġri wara? Ukoll, forsi 80-90% tal-iżviluppaturi se jerġgħu jikteb is-softwer tagħhom jekk possibbli. Fi kliem ieħor, 10-20% tal-bażi tal-utenti awtomatikament tmur għal xi lingwa li tikkompeti, bħal Flutter.

Agħmel dan diversi drabi u titlef nofs il-bażi tal-utenti tiegħek. L-istess bħal fl-isports, fid-dinja tal-ipprogrammar, il-forma attwali tgħodd ukoll. kollha. Kull min jitlef nofs l-utenti tiegħu f'ħames snin se jitqies bħala Big Fat Loser. Trid tkun trendy fid-dinja tal-pjattaformi. Iżda dan huwa fejn ma tappoġġjax verżjonijiet eqdem se tħassarek maż-żmien. Għax kull darba li teħles minn xi żviluppaturi, int (a) titlefhom għal dejjem għax ikunu rrabjati fik talli kisret il-kuntratt, u (b) tagħtihom lill-kompetituri tiegħek.

Ironikament, għen ukoll lil Google ssir tali prima donna li tinjora l-kompatibilità b'lura meta ħloqt Grok, analiżi tal-kodiċi tas-sors u sistema ta 'fehim li tagħmilha faċli biex tiġi awtomatizzata u strumentata l-kodiċi innifsu - simili għal IDE, iżda hawn il-ħwienet tas-servizz tal-cloud rappreżentazzjonijiet immaterjalizzati tal-biljuni kollha ta' linji tal-kodiċi tas-sors ta' Google f'maħżen kbir tad-dejta.

Grok ipprovda lill-Googlers b'qafas qawwi biex iwettqu refactorings awtomatizzati fil-kodiċi kollu tagħhom (litteralment fil-Google). Is-sistema tikkalkula mhux biss id-dipendenzi upstream tiegħek (li fuqhom tiddependi), iżda wkoll dixxendenti (li huma f'idejk) hekk meta tibdel l-APIs tkun taf lil kulħadd li qed tkisser! B'dan il-mod, meta tagħmel bidliet, tista 'tivverifika li kull konsumatur tal-API tiegħek aġġorna għall-verżjoni l-ġdida, u fir-realtà, ħafna drabi bl-għodda Rosie li kitbu, tista' awtomat kompletament il-proċess.

Dan jippermetti li l-codebase ta’ Google tkun nadifa internament kważi b’mod sopranaturali, peress li dawn il-qaddejja robotiċi jiġru madwar id-dar u awtomatikament inaddfu kollox jekk jisimgħu SomeDespicablyLongFunctionName għal SomeDespicablyLongMethodName għax xi ħadd iddeċieda li kien neputi ikrah u l-bżonnijiet tiegħu li torqod.

U franchement, taħdem pjuttost tajjeb għal Google... internament. Jiġifieri, iva, il-komunità Go fuq Google għandha tidħaq tajba mal-komunità Java fuq Google minħabba l-vizzju tagħhom ta 'refactoring kontinwu. Jekk terġa 'tibda xi ħaġa N darbiet, dan ifisser li inti mhux biss invitat it up N-1 darbiet, iżda wara xi żmien isir pjuttost ċar li inti probabilment invitat up fuq l-Nth jippruvaw ukoll. Iżda, b'mod ġenerali, jibqgħu fuq kollox dan it-taħwid u jżommu l-kodiċi "nadif".

Il-problema tibda meta jippruvaw jimponu din l-attitudni fuq il-klijenti tas-sħab tagħhom u l-utenti ta 'APIs oħra.

Daħħlek ftit Emacs, Android u Java; ejja nħarsu lejn l-aħħar pjattaforma ta 'suċċess fit-tul: il-Web innifsu. Tista 'timmaġina kemm għadda minn iterazzjonijiet HTTP mill-1995 meta użajna tags li jteptep? u ikoni "Taħt Kostruzzjoni" fuq paġni tal-web.

Imma xorta taħdem! U dawn il-paġni għadhom jaħdmu! Iva, guys, il-browsers huma ċ-ċampjins tad-dinja fil-kompatibilità b'lura. Chrome huwa eżempju ieħor tal-pjattaforma rari ta 'Google li għandha l-irjus tagħha invitati b'mod korrett, u kif forsi guessejt, Chrome effettivament topera bħala kumpanija sandboxed separata mill-bqija ta' Google.

Irrid ukoll nirringrazzja lill-ħbieb tagħna fl-iżviluppaturi tas-sistema operattiva: Windows, Linux, NOT APPLE FUCK YOU APPLE, FreeBSD, eċċ., Talli għamlu xogħol daqshekk kbir ta 'kompatibilità b'lura fuq il-pjattaformi ta' suċċess tagħhom (Apple tikseb C fl-aħjar ma 'The l-iżvantaġġ huwa li jiksru kollox il-ħin kollu għall-ebda raġuni tajba, iżda b'xi mod il-komunità tgħaddiha ma 'kull rilaxx, u l-kontenituri OS X għadhom mhumiex kompletament skaduti ... għadhom).

Imma stenna, tgħid. M'aħniex inqabblu t-tuffieħ mal-larinġ - sistemi ta' softwer waħedhom fuq magna waħda bħal Emacs/JDK/Android/Chrome versus sistemi multi-server u APIs bħal servizzi cloud?

Ukoll, twittajt dwar dan il-bieraħ, iżda fl-istil ta 'Larry Wall (kreatur tal-lingwa ta' programmar Perl - approx. per.) fuq il-prinċipju ta '"sucks/regoli" Fittixt il-kelma deprezzat fuq is-siti tal-iżviluppaturi ta’ Google u Amazon. U għalkemm AWS għandha mijiet darbiet aktar offerti ta' servizzi minn GCP, id-dokumentazzjoni tal-iżviluppaturi ta' Google ssemmi d-deprekazzjoni madwar seba' darbiet aktar spiss.

Jekk xi ħadd fil-Google qed jaqra dan, huwa probabbilment lest li joħroġ charts stil Donald Trump li juru li fil-fatt qed jagħmlu kollox sew, u li m'għandix nagħmel paraguni inġusti bħal "numru ta' aċċenn tal-kelma deprecated versus numru ta' servizzi" "

Iżda wara dawn is-snin kollha, Google Cloud għadu s-servizz Nru 3 (Qatt ma ktibt artiklu dwar l-attentat fallut li nsir Nru. 2), imma jekk l-insiders għandhom jiġu emmnuti, hemm xi tħassib li dalwaqt jistgħu jinżlu għal Nru 4.

M'għandi l-ebda argument konvinċenti biex "jipprova" it-teżi tiegħi. Kulma għandi huma l-eżempji ikkuluriti li akkumulajt fuq 30 sena bħala żviluppatur. Diġà semmejt in-natura profondament filosofika ta’ din il-problema; f'ċerti modi hija politiċizzata fil-komunitajiet tal-iżviluppaturi. Xi wħud jemmnu li ħallieqa pjattaformi għandhom jieħdu ħsieb il-kompatibilità, filwaqt li oħrajn jaħsbu li dan huwa ta' tħassib utenti (l-iżviluppaturi nfushom). Wieħed minn tnejn. Tabilħaqq, mhix kwistjoni politika meta niddeċiedu min għandu jbati l-ispejjeż tal-problemi komuni?

Allura din hija politika. U probabbilment se jkun hemm tweġibiet rrabjati għad-diskors tiegħi.

Kif utent Google Cloud Platform, u bħala utent tal-AWS għal sentejn (filwaqt li naħdem għal Grab), nista' ngħid li hemm differenza kbira bejn il-filosofiji ta' Amazon u Google fejn jidħlu prijoritajiet. Ma niżviluppax b'mod attiv fuq AWS, għalhekk ma nafx tajjeb ħafna kemm-il darba jneħħu APIs qodma. Iżda hemm suspett li dan ma jseħħx daqshekk spiss daqs Google. U tassew nemmen li dan is-sors ta' kontroversja u frustrazzjoni kostanti fil-GCP huwa wieħed mill-akbar fatturi li jżommu lura l-iżvilupp tal-pjattaforma.

Naf li ma semmejtx eżempji speċifiċi ta' sistemi GCP li m'għadhomx appoġġjati. Nista' ngħid li kważi dak kollu li użajt, minn networks (mill-eqdem sa VPC) sal-ħażna (Cloud SQL v1-v2), Firebase (issa Firestore b'API kompletament differenti), App Engine (ejja lanqas nibdew) , cloud endpoints Cloud Endpoint u sa... ma nafx - assolutament dan kollu ġiegħlek terġa’ tikteb il-kodiċi wara massimu ta’ 2-3 snin, u qatt ma awtomatizzat il-migrazzjoni għalik, u ħafna drabi ma kien hemm l-ebda mogħdija ta' migrazzjoni dokumentata. Bħallikieku kellu jkun hekk.

U kull darba li nħares lejn l-AWS, nistaqsi lili nnifsi għaliex diakk għadni fuq GCP. Jidher ċar li m'għandhomx bżonn klijenti. Għandhom bżonn xerrejja. Tifhem id-differenza? Ħa nispjega.

Google Cloud għandu Suq, fejn in-nies jipproponu s-soluzzjonijiet tas-software tagħhom, u biex jiġi evitat l-effett tar-ristoranti vojta, kellhom bżonn jimlew b’xi proposti, u għalhekk ikkuntrattaw ma’ kumpanija msejħa Bitnami biex joħolqu mazz ta’ soluzzjonijiet li jiġu skjerati bi “klikk waħda”, jew għandhom Nikteb jien stess "soluzzjonijiet", għax dawn ma jsolvux xi ħaġa kkritikata. Sempliċement jeżistu bħala checkboxes, bħala mili tal-kummerċjalizzazzjoni, u Google qatt ma ħadet ħsieb jekk xi waħda mill-għodod fil-fatt taħdem. Naf maniġers tal-prodotti li kienu fis-sedil tas-sewwieq, u nista' nassigurakom li dawn in-nies ma jimpurtahomx.

Ħu, pereżempju, soluzzjoni ta' skjerament allegatament "b'klikk waħda". percona. I kien marid għall-mewt ta 'shenanigans Google Cloud SQL, għalhekk bdejt inħares lejn il-bini ta' cluster Percona tiegħi stess bħala alternattiva. U din id-darba Google deher li għamel xogħol tajjeb, kienu se jiffrankawli ftit ħin u sforz mal-ikklikkja ta’ buttuna!

Tajjeb tajjeb, ejja. Ejja segwi l-link u kklikkja din il-buttuna. Agħżel "Iva" biex taqbel mas-settings awtomatiċi kollha u tuża r-raggruppament fil-proġett tiegħek Google cloud. Haha, ma taħdimx. Xejn minn dan il-ħażin ma jaħdem. L-għodda qatt ma ġiet ittestjata u bdiet taħsir mill-ewwel minuta, u ma tkunx sorpriża jekk aktar minn nofs is-"soluzzjonijiet" huma skjeramenti b'klikk waħda (issa nifhmu għaliex il-kwotazzjonijiet) b'mod ġenerali ma jaħdimx. Dan huwa dlam assolutament bla tama, fejn huwa aħjar li ma tidħolx.

Iżda Google għandha raġun jinkoraġġixxi inti tużahom. Huma jridu li inti mixtrija. Għalihom hija tranżazzjoni. Huma ma jridu xejn appoġġ. Mhux parti mid-DNA ta’ Google. Iva, l-inġiniera jappoġġjaw lil xulxin, kif muri mill-istorja tiegħi ma 'Bigtable. Iżda fi prodotti u servizzi għal nies ordinarji huma dejjem kienu bla ħniena fil jagħlqu kwalunkwe servizz, li ma tissodisfax il-bar għall-profitabbiltà anke jekk għandha miljuni ta 'utenti.

U dan jippreżenta sfida reali għall-GCP għaliex dan huwa d-DNA wara l-offerti kollha tal-cloud. Mhuma qed jippruvaw jappoġġjaw xejn; Huwa magħruf sew li jirrifjutaw li jospitaw (bħala servizz ġestit) kwalunkwe softwer ta' parti terza sakemm, sakemm AWS tagħmel l-istess u tibni negozju ta 'suċċess madwaru, u meta l-klijenti litteralment jitolbu l-istess. Madankollu, jeħtieġ xi sforz biex Google tappoġġja xi ħaġa.

Dan in-nuqqas ta’ kultura ta’ appoġġ, flimkien mal-mentalità “ejja nkissruha biex nagħmluha aktar sabiħa”, ibiegħed lill-iżviluppaturi.

U din mhix xi ħaġa tajba jekk trid tibni pjattaforma li tibqa' ħajja twila.

Google, qam, indanna. Issa wasal l-2020. Int għadek titlef. Wasal iż-żmien li tagħti ħarsa iebsa fil-mera u twieġeb jekk verament tridx tibqa' fin-negozju tal-cloud.

Jekk trid toqgħod allura tieqaf tkisser kollox. Guys, inti sinjuri. Aħna l-iżviluppaturi le. Allura meta niġu għal min se jerfa 'l-piż tal-kompatibilità, trid teħodha fuqek innifsek. Mhux għalina.

Għax hemm mill-inqas tliet sħab aktar tassew tajbin. Huma jċemplu.

U issa se nkompli biex nirranġa s-sistemi kollha miksura tiegħi. Eh.

Sad-darba li jmiss!

PS Aġġornament wara li taqra xi wħud mid-diskussjonijiet dwar dan l-artikolu (id-diskussjonijiet huma kbar, btw). L-appoġġ Firebase ma twaqqafx u m'hemm l-ebda pjanijiet li jien konxju bihom. Madankollu, għandhom bug ta 'streaming diżgustanti li jikkawża li l-klijent Java jieqaf fl-App Engine. Wieħed mill-inġiniera tagħhom għenni nsolvi din il-problema, meta ħdimt fil-Google, iżda fil-fatt qatt ma rranġaw il-bug, għalhekk għandi soluzzjoni ħażina li jkolli nibda mill-ġdid l-app GAE kuljum. U hekk ilu erba’ snin! Issa għandhom Firestore. Se jieħu ħafna xogħol biex jemigra lejha peress li hija sistema kompletament differenti u l-bug Firebase qatt mhu se jiġi ffissat. Liema konklużjoni tista’ tinġibed? Tista' tikseb l-għajnuna jekk taħdem f'kumpanija. Probabbilment jien l-uniku wieħed li nuża Firebase fuq GAE għax nilloggja inqas minn 100 ċavetta f'app 100% nattiva u tieqaf taħdem kull ftit jiem minħabba bug magħruf. X'nista 'ngħid ħlief tużah għar-riskju tiegħek. Qed naqleb għal Redis.

Rajt ukoll xi utenti tal-AWS aktar b'esperjenza jgħidu li l-AWS normalment qatt ma tieqaf tappoġġja kwalunkwe servizz, u SimpleDB huwa eżempju mill-aqwa. Is-suppożizzjonijiet tiegħi li l-AWS m'għandhiex l-istess marda ta 'appoġġ bħal Google tidher li hija ġġustifikata.

Barra minn hekk, ndunajt li 20 jum ilu t-tim tal-Google App Engine kisser l-hosting ta 'librerija kritika Go, u għalaq applikazzjoni GAE minn wieħed mill-iżviluppaturi ewlenin tal-Go. Kien tassew stupidu.

Fl-aħħarnett, smajt Googlers diġà jiddiskutu din il-kwistjoni u ġeneralment jaqblu miegħi (love you guys!). Imma donnhom jaħsbu li l-problema mhix solvuta minħabba li l-kultura ta’ Google qatt ma kellha l-istruttura ta’ inċentivi t-tajba. Ħsibt li jkun tajjeb li nieħu ftit ħin biex niddiskuti l-esperjenza assolutament aqwa li kelli naħdem ma 'inġiniera tal-AWS waqt li kont naħdem f'Grab. Xi darba fil-futur, nittama!

U iva, fl-2005 kellhom tipi differenti ta 'laħam tal-kelb il-baħar fuq il-buffet ġgant fil-bini 43, u l-favorit tiegħi kien il-laħam tal-kelb il-baħar martell. Madankollu, sal-2006, Larry u Sergei ħelsu mill-snacks ħżiena għas-saħħa kollha. Allura matul l-istorja ta 'Bigtable fl-2007 verament ma kien hemm l-ebda klieb il-baħar u jien qarraq bik.

Meta ħarist lejn cloud Bigtable erba 'snin ilu (tagħti jew tieħu), dan huwa fejn l-ispiża kienet. Jidher li niżel ftit issa, iżda dak għadu ħafna orribbli għal maħżen tad-dejta vojt, speċjalment peress li l-ewwel storja tiegħi turi kemm mejda kbira vojta hija inkonsegwenzjali fl-iskala tagħhom.

Jiddispjacini talli offendejt lill-komunità Apple u ma tgħid xejn sabiħ dwar Microsoft eċċ. Int tajjeb, napprezza ħafna d-diskussjoni kollha li ġġenera dan l-artikolu! Imma kultant trid tagħmel mewġ ftit biex tibda diskussjoni, taf?

Grazzi tal-qari.

Aġġornament 2, 19.08.2020/XNUMX/XNUMX. Strixxa jaġġorna l-API b'mod korrett!

Aġġornament 3, 31.08.2020/2/2. Ġejt ikkuntattjat minn inġinier tal-Google fi Cloud Marketplace li rriżulta li kien ħabib antik tiegħi. Huwa ried biex insemmu għaliex CXNUMXD ma kienx qed jaħdem, u aħna eventwalment dehret li kien minħabba li kont bnejt in-netwerk tiegħi snin ilu, u CXNUMXD ma kienx qed jaħdem fuq netwerks legacy minħabba li l-parametru tas-subnet kien nieqes fil-mudelli tagħhom. Naħseb li huwa aħjar għall-utenti potenzjali tal-GCP biex jiżguraw li jkunu jafu biżżejjed inġiniera fil-Google...

Sors: www.habr.com