Léif Google Cloud, net zréckkompatibel ze sinn ass dech ëmbréngt.

Verdammt Google, ech wollt net erëm bloggen. Ech hu sou vill ze maachen. Bloggen brauch ZÀit, Energie a Kreativitéit, wat ech gutt benotze kéint: meng Bicher, der Musek, mÀi Spill a sou weider. Mee du hues mech genuch gepisst, dass ech dat muss schreiwen.

Also loosst eis dëst eriwwer maachen.

Loosst mech mat enger kuerzer awer léierrÀicher Geschicht ufÀnken wéi ech fir d'éischt bei Google ugefaang hunn ze schaffen. Ech weess datt ech zënter kuerzem vill schlecht Saachen iwwer Google gesot hunn, awer et mécht mech opgeregt wann meng eegen Firma regelméisseg inkompetent GeschÀftsentscheedungen mécht. Zur selwechter ZÀit musse mir et sÀi Grond ginn: Google seng intern Infrastruktur ass wierklech aussergewéinlech, et ass sécher ze soen datt et haut nÀischt besser gëtt. D'Grënner vu Google ware vill besser Ingenieuren wéi ech jee wÀert sinn, an dës Geschicht bestÀtegt nëmmen dës Tatsaach.

Als éischt e bëssen Hannergrond: Google huet eng Datelagerungstechnologie genannt Bigtable. Et war eng bemierkenswÀert technesch Leeschtung, ee vun den éischten (wann net déi éischt) "onendlech skalierbar" SchlësselwÀertgeschÀft (K / V): am Wesentlechen den Ufank vun NoSQL. Dës Deeg mécht de Bigtable nach ëmmer gutt an der zimlech voller K/V SpÀicherplatz, awer zu dÀr ZÀit (2005) war et erstaunlech cool.

Eng witzeg Saach iwwer Bigtable ass, datt se intern Kontroll Fliger Objete haten (als Deel vun der Ëmsetzung) genannt Tablet Serveren, mat groussen Indizes, an op e puer Punkte goufen se eng Flaschenhals wann de System Skala. Bigtable Ingenieuren hu sech iwwerrascht wĂ©i d'Skalierbarkeet Ă«mzesetzen, an hunn op eemol gemierkt datt se Tablet-Server mat anere Bigtable-SpĂ€ichere kĂ«nnen ersetzen. Also Bigtable ass Deel vun der Bigtable Implementatioun. DĂ«s Stockage Ariichtungen sinn do op all Niveau.

En aneren interessanten Detail ass datt fir eng ZĂ€it Bigtable populĂ€r an ubiquitĂ€r a Google gouf, mat all Team sĂ€in eegene Repository. Also op enger vun de Freidegversammlungen huet de Larry Page zoufĂ€lleg gefrot: "Firwat hu mir mĂ©i wĂ©i ee Bigtable? Firwat net nĂ«mmen een?" An der Theorie sollt eng SpĂ€ichere genuch sinn fir all Google seng SpĂ€icherbedĂŒrfnisser. Natierlech si se ni fir praktesch EntwĂ©cklungsgrĂ«nn op nĂ«mmen een gaang (wĂ©i d'Konsequenze vun engem potenziellen Echec), awer d'Theorie war interessant. Ee Repository fir de ganzen Universum (Iwwregens, weess iergendeen ob Amazon dat mat hirem Sable gemaach huet?)

Jiddefalls, hei ass meng Geschicht.

Zu dÀr ZÀit hunn ech just iwwer zwee Joer bei Google geschafft, an enges Daags krut ech eng E-Mail vum Bigtable Ingenieursteam, deen eppes wéi dëst war:

Léif Steve,

Moien vum Bigtable Team. Mir wëllen Iech informéieren datt Dir bei [Datenzenter Numm] e ganz, ganz alen Bigtable BinÀr benotzt. Dës Versioun gëtt net méi ënnerstëtzt a mir wëllen Iech hëllefen op déi lescht Versioun ze upgrade.

Loosst mech w.e.g. wëssen ob Dir e bëssen ZÀit plangt fir zesummen un dësem Thema ze schaffen.

Nëmmen dat Bescht,
Bigtable Team

Op Google kritt Dir vill Mail, also op den éischte Bléck liesen ech esou eppes:

Léif EmpfÀnger,

Moien vun enger Equipe. Mir wëllen dat blah blah blah blah blah kommunizéieren. Bla bla bla bla bla bla, an bla bla bla direkt.

Loosst eis w.e.g. wĂ«ssen, ob Dir e puer vun Äre wĂ€ertvollen ZĂ€it fir bla bla bla kann.

Nëmmen dat Bescht,
Eng Zort Kommando

Ech hunn et bal direkt gelÀscht, awer um Rand vu mengem Bewosstsinn hunn ech e schmerzhafte Gefill gefillt datt et net wierklech gesÀit awer aus wéi e formelle Bréif selbstverstÀndlech, datt den EmpfÀnger falsch war well ech Bigtable net benotzt hunn.

Mee et war komesch.

Ech hunn de Rescht vum Dag ofwiesselnd un d'Aarbecht geduecht a wéi eng Zort Haischefleesch ech an der Mikro-Kichen probéieren, vun deenen op d'mannst drÀi no genuch waren, fir vu mengem Sëtz mat engem gutt geziilten Kichelcher ze schloen, awer de geduecht fir ze schreiwen huet mech ni mat engem wuessende Gefill mëll Besuergnëss verlooss.

Si sot kloer mÀi Numm. An d'E-Mail gouf op meng E-Mailadress geschéckt, net op eng aner, an et ass net cc: oder bcc:. Den Toun ass ganz perséinlech a kloer. VlÀicht ass dëst eng Zort Feeler?

Schlussendlech huet d'Kuriositéit mech besser gemaach an ech sinn d'Borg Konsole am Rechenzentrum kucken, deen se ernimmt hunn.

An natierlech hat ech BigTable Stockage ënner Gestioun. Et deet mir leed, wat? Ech hunn den Inhalt gekuckt, a wow! Et war vum Codelab Inkubator an deem ech wÀhrend menger éischter Woch bei Google am Juni 2005 souz. Codelab huet Iech gezwongen Bigtable ze lafen fir e puer WÀerter do ze schreiwen, an ech hunn d'SpÀichere anscheinend ni duerno zougemaach. Et huet nach geschafft, obwuel méi wéi zwee Joer vergaange waren.

Et gi verschidde bemierkenswĂ€ert Aspekter zu dĂ«ser Geschicht. Als Ă©ischt war d'Aarbecht vu Bigtable sou onwichteg op der Skala vu Google, datt nĂ«mmen zwee Joer mĂ©i spĂ©it iergendeen dĂ©i extra SpĂ€ichere bemierkt huet, an nĂ«mme well d'Versioun vum BinĂ€re verĂ€nnert war. Zum Verglach hunn ech eng KĂ©ier iwwerluecht ze benotzen Bigtable op Google Cloud fir meng online spill . Zu dĂ€r ZĂ€it huet dĂ«se Service ongefĂ©ier $ 16 pro Joer kascht. eidel Bigtable op GCP. Ech soen net datt si dech betrĂŒgen, awer a menger persĂ©inlecher Meenung ass dat vill Suen fir eng eidel fucking Datebank.

En anere bemierkenswĂ€erten Aspekt ass datt d'Lagerung nach zwee Joer schaffen. WTF? Daten Zentren kommen a ginn; si erliewen Ausbroch, si Ă«nnerleien geplangten Ënnerhalt, si Ă€nneren dĂ©i ganzen ZĂ€it. Hardware gĂ«tt aktualisĂ©iert, Schalter ginn ausgetauscht, alles gĂ«tt permanent verbessert. WĂ©i d'HĂ€ll konnten se mĂ€i Programm fir zwee Joer lafen mat all dĂ«sen Ännerungen? DĂ«st kann wĂ©i eng bescheiden Erreeche am Joer 2020 schĂ©ngen, awer an 2005-2007 war et zimlech beandrockend.

An dee wonnerbarsten Aspekt ass datt en externen Ingenieursteam an engem anere Staat mech zougitt, de Besëtzer vun enger klenger, bal eidel Instanz vu Bigtable, deen huet null Verkéier fir déi lescht zwee Joer - a bidden Hëllef fir se ze aktualiséieren.

Ech hunn hinnen Merci gesot, d'SpÀichere gelÀscht, an d'Liewen ass weidergaang wéi gewinnt. Awer drÀizéng Joer méi spéit denken ech nach ëmmer un dee Bréif. Well heiansdo kréien ech Àhnlech E-Maile vu Google Cloud. Si kucken esou aus:

Léif Google Cloud Benotzer,

Als ErĂ«nnerung wĂ€erte mir den [essentielle Service deen Dir benotzt] Service ab August 2020 ofbriechen, duerno kĂ«nnt Dir Är Instanzen net upgraden. Mir recommandĂ©ieren Upgrade op dĂ©i lescht Versioun, dĂ©i am Beta-Test ass, keng Dokumentatioun huet, kee Migratiounswee an ass virdru verĂ€nnert mat eiser lĂ©ifer HĂ«llef.

Mir verpflichte fir sĂ©cherzestellen datt dĂ«s Ännerung minimalen Impakt op all Benotzer vun der Google Cloud Plattform huet.

Bescht Frënn fir ëmmer,
Google Cloud Plattform

Awer ech liesen bal ni sou Bréiwer, well wat se eigentlech soen ass:

Léif EmpfÀnger,

An d'HĂ€ll goen. Feck dech, feck dech, feck dech. Drop alles wat Dir maacht well et egal ass. Wat wichteg ass eis ZĂ€it. Mir verschwenden ZĂ€it a Sue fir eise SchĂ€iss z'erhalen a mir si midd dovunner also wĂ€erte mir et net mĂ©i Ă«nnerstĂ«tzen. Also loosst deng fucking PlĂ€ng op a fĂ€nkt un duerch eis scheiss Dokumentatioun ze graven, frot Schrott op de Foren, an iwwregens, eisen neie SchĂ€iss ass komplett anescht wĂ©i dĂ©i al SchĂ€iss, well mir hunn dĂ«sen Design zimlech schlecht geschrauft, hehe, awer dat ass Ären Problem, net eis.

Mir maachen weider Efforten fir sĂ©cherzestellen datt all Är EntwĂ©cklungen innerhalb engem Joer onbrauchbar ginn.

Gitt weg
Google Cloud Plattform

An Tatsaach ass, datt ech esou Bréiwer ongeféier eemol de Mount kréien. Dëst geschitt sou dacks a sou stÀnneg datt et inévitabel ass ewechgedréckt mech vum GCP an den Anti-Cloud Camp. Ech averstanen net méi op hir propriétaire Entwécklungen ofhÀnken, well et tatsÀchlech méi einfach ass fir Devops en Open Source System op enger kaler virtueller Maschinn z'erhalen wéi ze probéieren mat Google mat senger Politik ze halen fir "aliséiert" Produkter zouzemaachen.

Ier ech zréck op Google Cloud ginn, well ech net mol no net fÀerdeg ze kritiséieren, loosst eis d'Performance vun der Firma an e puer anere BerÀicher kucken. Google Ingenieuren si stolz op hir Software Engineering Disziplin, an dëst ass wat tatsÀchlech Probleemer verursaacht. Stolz ass eng Fal fir déi Onwahrscheinlech, an et huet vill Google Mataarbechter ze denken datt hir Entscheedungen ëmmer richteg sinn an datt richteg sinn (no enger vague fuzzy Definitioun) méi wichteg ass wéi d'Clientë këmmeren.

Ech ginn e puer zoufÀlleg Beispiller vun anere grousse Projeten ausserhalb vu Google, awer ech hoffen Dir gesitt dëst Muster iwwerall. Et ass wéi follegt: Réckkompatibilitéit hÀlt Systemer lieweg an aktuell fir Joerzéngte.

Réckkompatibilitéit ass den Designziel vun all erfollegrÀiche Systemer entworf fir opgemaach benotzen, dat heescht, mat Open Source Code an/oder oppe Standarden ëmgesat. Ech fille wéi wann ech eppes ze offensichtlech soen datt jidderee souguer onwuel ass, awer nee. Dëst ass e politesche Problem, dofir si Beispiller gebraucht.

DĂ©i Ă©ischt System, dĂ©i ech wielen, ass dĂ©i eelst: GNU Emacs, wat eng Zort Hybrid tĂ«scht Notepad a ... ass. Windows, den OS-Kernel an d'International Raumstatioun. Et ass e bĂ«ssen schwĂ©ier z'erklĂ€ren, awer kuerz gesot, Emacs ass eng ProgrammĂ©ierungsplattform, dĂ©i 1976 (jo, bal en halleft Joerhonnert viru) erstallt gouf fir Är ProduktivitĂ©it ze erhĂ©ijen, awer sech als Texteditor ausgĂ«tt.

Ech benotzen Emacs all Dag. Jo, ech benotzen och IntelliJ all Dag, et ass zu enger mÀchteger Tooling Plattform a sech selwer gewuess. Awer Extensiounen ze schreiwen fir IntelliJ ass eng vill méi ambitiéis a komplex Aufgab wéi d'Extensiounen fir Emacs ze schreiwen. A méi wichteg ass alles wat fir Emacs geschriwwen ass erhale bleiwen fir ëmmer.

Ech benotzen nach ëmmer d'Software, déi ech fir Emacs am Joer 1995 geschriwwen hunn. An ech si sécher datt iergendeen Moduler benotzt, déi fir Emacs an der Mëtt vun den 80er geschriwwe sinn, wann net fréier. Si kënne vun ZÀit zu ZÀit e bëssen Tweaking erfuerderen, awer dëst ass wierklech rar. Ech weess nÀischt wat ech jeemools fir Emacs geschriwwen hunn (an ech hu vill geschriwwen) wat eng nei Architektur erfuerdert.

Emacs huet eng Funktioun genannt make-obsolete fir eeler EntitĂ©iten. Emacs Terminologie fir fundamental Computerkonzepter (wĂ©i wat eng "FĂ«nster" ass) Ă«nnerscheet sech dacks vun Industriekonventiounen well Emacs se viru laanger ZĂ€it agefouert huet. DĂ«st ass eng typesch Gefor fir dĂ©i, dĂ©i hir ZĂ€it viraus sinn: all Är BegrĂ«ffer si falsch. Awer Emacs huet e Konzept vun der Deprecatioun, dat an hirem Jargon genannt gĂ«tt obsolescence.

Awer an der Emacs Welt schéngt et eng aner Aarbechtsdefinitioun ze sinn. Eng aner ënnerierdesch Philosophie, wann Dir wëllt.

An der Welt vun Emacs (an a villen anere BerĂ€icher, dĂ©i mir hei drĂ«nner ofdecken), bedeit den deprecĂ©ierten API Status am Fong: "Dir sollt dĂ«s Approche wierklech net benotzen, well wĂ€rend et funktionnĂ©iert, leid et Ă«nner verschiddene MĂ€ngel dĂ©i mir wĂ€erten LĂ«scht hei. Awer um Enn vum Dag ass et Äre Choix."

An der Welt vun Google heescht Ă©iweg ze sinn, "Mir verletzen eisen Engagement fir Iech." Dat ass richteg. DĂ«st ass wat et am Fong bedeit. DĂ«st bedeit datt se Iech zwĂ©ngen reegelmĂ©isseg maachen e puer Aarbecht, vlĂ€icht vill Aarbecht, als Strof fir hinnen ze gleewen faarweg Reklammen: Mir hunn dĂ©i bescht Software. Am schnellsten! Dir maacht alles no den Instruktiounen, lancĂ©iert Är Applikatioun oder Service, an dann Bam, no engem Joer oder zwee brĂ©cht et.

Et ass wéi wann een en Occasiounsauto verkaaft, deen no 1500 km definitiv brécht.

DĂ«st sinn zwou komplett verschidde philosophesch Definitioune vu "Obsoleszenz." Google seng Definitioun vu Geroch geplangt obsolescence. Ech gleewen dat net tatsĂ€chlech geplangt obsolescence am selwechte SĂ«nn wĂ©i Apple. Awer Google plangt definitiv Är Programmer ze briechen, op engem Rondpoint. Ech weess dat well ech do als Software Ingenieur fir iwwer 12 Joer geschafft hunn. Si hunn vague intern Richtlinnen iwwer wĂ©i vill RĂ©ckkompatibilitĂ©it soll gefollegt ginn, awer et ass schlussendlech un all eenzel Team oder Service un. Et gi keng Empfehlungen op Entreprisen oder Ingenieursniveau, an dĂ©i fettste Empfehlung a punkto Verouderungszyklen ass "probĂ©iert de Clienten 6-12 MĂ©int ze ginn fir Upgrade ze ginn ier se hire ganze System briechen."

De Problem ass vill méi grouss wéi se mengen, an et wÀert fir Joeren bestoe well Clientsfleeg net an hirer DNA ass. Méi iwwer dëst ënnert.

Zu dĂ«sem ZĂ€itpunkt wĂ€ert ech eng fett Ausso maachen datt Emacs zu engem groussen Deel erfollegrĂ€ich ass a souguer am Fong geholl well se RĂ©ckkompatibilitĂ©it sou eescht huelen. Eigentlech ass dĂ«st d'Thes vun eisem Artikel. ErfollegrĂ€ich, laanglieweg oppe Systemer verdanken hiren Erfolleg un de Mikrogemeinschaften dĂ©i zĂ«nter JoerzĂ©ngte ronderĂ«m si gelieft hunn Extensiounen / PluginsDat ass wat en Ökosystem ass. Ech hunn d'Essenz vu Plattformen a wĂ©i wichteg se sinn schonn diskutĂ©iert, a wĂ©i Google a senger ganzer Geschicht ni verstanen huet, wat fir eng erfollegrĂ€ich oppe Plattform erfuerdert, ouni dobĂ€i ze zielen Android oder Chrome.

Eigentlech sollt ech kuerz erwÀhnen, Android, well Dir hutt wahrscheinlech doriwwer nogeduecht.

Éischtens, Android - dĂ«st ass net GoogleSi hunn bal nĂ€ischt mateneen gemeinsam. Android — ass eng Firma, dĂ©i am Juli 2005 vu Google kaaft gouf, an d'Firma krut d'Erlaabnes mĂ©i oder manner autonom ze operĂ©ieren an ass tatsĂ€chlech an de Joren duerno grĂ©isstendeels intakt bliwwen. Android â€” et ass e bekannten Tech-Stack an eng glĂ€ich bekannt, stacheleg Organisatioun. WĂ©i ee Googler et ausgedrĂ©ckt huet: "Dir kĂ«nnt net einfach eran goen Android".

An engem vu menge frĂ©iere Artikelen hunn ech schonn diskutĂ©iert, wĂ©i schlecht e puer vun den frĂ©ien Designentscheedungen waren. Android. Verdammt, wĂ©i ech deen Artikel geschriwwen hunn, hunn se dĂ«se Quatsch mam Numm "Instant Apps" erausbruecht, wat elo (Iwwerraschung!) ass. veroudert, an ech sympathisĂ©ieren wann Dir domm genuch wier fir Google ze lauschteren an Ären Inhalt op dĂ«s Instant Apps ze rĂ©ckelen.

Mee et gĂ«tt hei en Ënnerscheed, en dĂ€itlechen Ënnerscheed, nĂ€mlech datt d'Leit aus Android Si verstinn wierklech wĂ©i wichteg Plattforme sinn, si probĂ©ieren hiert Bescht fir mĂ©i al Applikatiounen am Laf ze halen. AndroidTatsĂ€chlech sinn hir Efforte fir d'RĂ©ckwĂ€rtskompatibilitĂ©it ze erhalen sou extrem, datt souguer ech, wĂ€rend menger kuerzer ZĂ€it an der Divisioun, Android Virun e puer Joer hunn ech probĂ©iert se ze iwwerzeegen, d'ËnnerstĂ«tzung fir e puer vun den eelsten Apparater an APIen opzeginn (ech hat falsch gehandelt, wĂ©i ech et mat villen anere Saachen an der Vergaangenheet an der GĂ©igewaart gemaach hunn. EntschĂ«llegt, Leit bei Android! Elo wou ech an Indonesien war, verstinn ech firwat mir se brauchen).

Leit aus Android Si drécken d'RéckwÀrtskompatibilitéit op bal onvirstellbar Extremer, wat zu enger enormer Quantitéit un technescher Scholden an hire Systemer an Toolketten féiert. MÀi Gott, Dir sollt e puer vun de verréckten Saachen gesinn, déi se an hirem Build-System maache mussen, alles am Numm vun der Kompatibilitéit.

Fir dĂ«st PrĂ€is ginn ech Android de begehrte PrĂ€is "You're Not Google". Si wĂ«lle wierklech net Google ginn, wat keng laangfristeg Plattforme ka bauen, awer Android weess, wĂ©i een et mĂ©cht. An dofir ass Google an enger Hisiicht ganz clever: et erlaabt de Leit Android maach alles op Är eege ManĂ©ier.

WĂ©i och Ă«mmer, Instant-Apps fir Android waren eng zimlech domm Iddi. A wĂ«sst Dir firwat? Well se et verlaangt hunn iwwerschreiwe an nei designen Är Applikatioun! Et ass wĂ©i wann d'Leit einfach zwou Milliounen Uwendungen Ă«mschreiwen. Ech denken, datt Instant Apps dem Googler seng Iddi war.

Mee et gĂ«tt en Ënnerscheed. RĂ©ckwĂ€rtskompatibilitĂ©it brĂ©ngt bedeitend KĂ€schte mat sech. Android drĂ©it d'Laascht vun dĂ«se KĂ€schten selwer, wĂ€hrend Google drop besteet, datt dĂ«s Laascht gedroe gĂ«tt Dir sidd, Client bezuelen.

Dir kĂ«nnt d'Engagement gesinn Android RĂ©ckwĂ€rtskompatibilitĂ©it an hiren APIen. Wann Dir vĂ©ier oder fĂ«nnef verschidden Ënnersystemer hutt, dĂ©i am Fong datselwecht maachen, ass dat e sĂ©chert Zeechen, datt e Engagement fir RĂ©ckwĂ€rtskompatibilitĂ©it am KĂ€r lĂ€it. An der Plattformwelt ass dat synonym mat Engagement fir Är Clienten an Äre Maart.

Dem Google sÀin Haaptproblem hei ass hire Stolz an hirer Ingenieurshygiene. Si hunn et net gÀr wann et vill verschidde Weeër gëtt fir datselwecht ze maachen, mat deenen alen, manner wënschenswÀerte Weeër nieft deenen neien, méi flotten Weeër sëtzen. Et erhéicht d'Léierkurve fir déi nei am System, et erhéicht d'Belaaschtung fir legacy APIs z'erhalen, et verlangsamt d'Geschwindegkeet vun neie Featuren, an d'Kardinal Sënn ass et net schéin. Google - wéi d'Lady Ascot vum Tim Burton senger Alice in Wonderland:

Lady Ascot:
- Alice, wësst Dir wat ech am meeschten Angscht hunn?
- Den Ënnergang vun der Adel?
- Ech hat Angscht datt ech hÀtt ellen Enkelkanner.

Fir den OfwÀgung tëscht schéin a praktesch ze verstoen, kucke mer eis déi drëtt erfollegrÀich Plattform un (no Emacs an Android) a loosst eis kucken, wéi et funktionéiert: Java selwer.

Java huet vill vun alen APIen. Deprecatioun ass ganz populÀr bei Java Programméierer, nach méi populÀr wéi an de meeschte Programméierungssproochen. Java selwer, d'KÀrsprooch, an d'Bibliothéiken entscheeden dauernd APIen.

Fir nëmmen ee vun Dausende vu Beispiller ze huelen, Ofschloss thread als obsolet ugesinn. Et gouf zënter der Verëffentlechung vum Java 1.2 am Dezember 1998 ofgeschaaft. Et sinn 22 Joer zënter datt dëst ofgeschaaft gouf.

Awer mÀi aktuellen Code an der Produktioun killt ëmmer Threads all Dag. Denkt Dir wierklech datt dat gutt ass? Absolut! Ech mengen, natierlech, wann ech de Code haut géif ëmschreiwen, géif ech en anescht ëmsetzen. Awer de Code fir mÀi Spill, deen Honnerte vun Dausende vu Leit an de leschten zwee Joerzéngte glécklech gemaach huet, ass geschriwwen mat enger Funktioun fir Threads ze schloen déi ze laang hÀnken, an ech ni missen Ànneren. Ech kennen mÀi System besser wéi iergendeen, ech hu wuertwiertlech 25 Joer Erfahrung mat der Produktioun an der Produktioun, an ech ka sécher soen: a mengem Fall ass dës spezifesch Aarbechter thread komplett zoumaachen harmlos. Et ass d'ZÀit an d'Ustrengung net wÀert fir dëse Code ëmzeschreiwen, a Merci Larry Ellison (wahrscheinlech) datt Oracle mech net forcéiert huet et ëmzeschreiwen.

Oracle versteet wahrscheinlech och Plattformen. Wien weess.

Beweiser kënnen uechter d'KÀr Java APIs fonnt ginn, déi mat Wellen vun der Obsoleszenz besat sinn, wéi d'Linnen vun engem Gletscher an engem Canyon. Dir kënnt ganz einfach fënnef oder sechs verschidde Keyboard Navigatiounsmanager (KeyboardFocusManager) an der Java Swing Bibliothéik fannen. Et ass tatsÀchlech schwéier eng Java API ze fannen déi net ofgeschnidden ass. Awer si schaffen nach ëmmer! Ech mengen d'Java Team wÀert nëmmen eng API wierklech ewechhuelen wann d'Interface e grellem Sécherheetsprobleem stellt.

Hei ass d'Saach, Leit: mir SoftwareentwĂ©ckler si ganz beschĂ€ftegt, an an all BerĂ€ich vun der Software si mir mat konkurrĂ©ierende Alternativen konfrontĂ©iert. Zu all Moment betruechten ProgrammĂ©ierer an der Sprooch X d'Sprooch Y als mĂ©iglechen Ersatz. Oh, Dir gleeft mir net? Dir mengt Swift? WĂ©i, jiddereen migrĂ©iert op Swift an keen gĂ«tt et op, richteg? Wow, wĂ©i wĂ©ineg Dir wĂ«sst. Firmen zielen d'KĂ€schte vun duebelen mobilen EntwĂ©cklungsteams (iOS an ...) Android) — an si fĂ€nken un ze realisĂ©ieren, datt dĂ«s plattformiwwergrĂ€ifend EntwĂ©cklungssystemer mat witzegen Nimm wĂ©i Flutter a React Native tatsĂ€chlech funktionĂ©ieren, an datt se d'GrĂ©isst vun hire mobilen Équipen Ă«m d'Halschent reduzĂ©iere kĂ«nnen oder, Ă«mgekĂ©iert, se duebel sou produktiv maache kĂ«nnen. Et steet richtegt Geld um Spill. Jo, et gĂ«tt KompromĂ«sser, awer op der anerer SĂ€it ass et mo-o-o-nĂ©ng.

Loosst eis hypothetesch unhuelen datt Apple domm en Hiweis vum Guido van Rossum geholl huet an deklaréiert huet datt Swift 6.0 zréck inkompatibel ass mat Swift 5.0, sou wéi Python 3 inkompatibel mat Python 2 ass.

Ech hunn dës Geschicht wuel virun ongeféier zéng Joer erzielt, awer virun ongeféier fofzéng Joer sinn ech mam Guido op O'Reilly's Foo Camp gaang, souz mam Paul Graham an engem Zelt an eng Rëtsch grouss Schéiss. Mir souzen an der sweltering Hëtzt op de Larry Page gewaart a sengem perséinlechen Helikopter ze fléien, wÀhrend de Guido iwwer "Python 3000" gedronk huet, deen hien no der Unzuel u Joeren genannt huet, déi et dauert fir jiddereen dohinner ze migréieren. Mir hunn him ëmmer gefrot firwat hien d'Kompatibilitéit brécht, an hien huet geÀntwert: "Unicode." A mir hu gefrot, wa mir eise Code mussen ëmschreiwen, wéi eng aner Virdeeler géife mir gesinn? An hien huet geÀntwert "Yooooooooooooouuuuuuuniiiiiiiicooooooooode."

Wann Dir d'Google Cloud Platform SDK ("gcloud") installéiert, kritt Dir déi folgend Notifikatioun:

Léif EmpfÀnger,

Mir wĂ«llen Iech drun erĂ«nneren datt d'ËnnerstĂ«tzung fir Python 2 ofgeschaaft gouf, also fuck dech


 a sou weider. Krees vum Liewen.

Awer de Punkt ass datt all EntwĂ©ckler e Choix huet. A wann Dir se forcĂ©iert de Code dacks genuch ze schreiwen, da kĂ©inte se iwwerdenken anerer Optiounen. Si sinn net Är Geiselen, egal wĂ©i vill Dir wĂ«llt datt se sinn. Si sinn Är GĂ€scht. Python ass nach Ă«mmer eng ganz populĂ€r ProgrammĂ©ierungssprooch, awer verdammt, Python 3(000) huet esou e Chaos u sech, a senge CommunautĂ©iten an Ă«nner de Benotzer vu senge CommunautĂ©iten erstallt, datt d'Konsequenze fir fofzĂ©ng Joer net opgeklĂ€ert sinn.

Wéi vill Python Programmer goufen am Go (oder Ruby, oder eng aner Alternativ) ëmgeschriwwe wéinst dëser Réck Inkompatibilitéit? Wéi vill nei Software gouf an eppes anescht wéi Python geschriwwen, obwuel et kéint sinn am Python geschriwwen, wann de Guido net dat ganzt Duerf ofgebrannt hÀtt? Et ass schwéier ze soen, awer Python huet kloer gelidden. Et ass e grousse Chaos a jidderee verléiert.

Also loosst eis soen datt Apple en Hiweis vum Guido hëlt an d'Kompatibilitéit brécht. Wat mengt Dir wÀert dann geschéien? Gutt, vlÀicht 80-90% vun Entwéckler wÀerten hir Software ëmschreiwen wa méiglech. An anere Wierder, 10-20% vun der Benotzerbasis ginn automatesch an eng kompetitiv Sprooch, wéi Flutter.

Maacht dat e puer Mol an Dir verlĂ©iert d'Halschent vun Ärer Benotzerbasis. Genau wĂ©i am Sport, an der Welt vun der Programmatioun, ass dĂ©i aktuell Form och wichteg. All. Jiddereen deen d'Halschent vun hire Benotzer a fĂ«nnef Joer verlĂ©iert gĂ«tt als Big Fat Loser ugesinn. Dir musst trendy sinn an der Welt vun de Plattformen. Awer dĂ«st ass wou d'ËnnerstĂ«tzung vun aler Versiounen Iech mat der ZĂ€it ruinĂ©iert. Well all KĂ©ier wann Dir e puer EntwĂ©ckler lassgeet, verlĂ©iert Dir (a) se fir Ă«mmer well se rosen op Iech sinn fir de Kontrakt ze briechen, an (b) gitt se Är Konkurrenten ewech.

Ironescherweis hunn ech och Google gehollef esou eng Prima Donna ze ginn déi Réckkompatibilitéit ignoréiert wann ech Grok erstallt hunn, e Quellcode Analyse a VerstÀndnis System deen et einfach mécht de Code selwer ze automatiséieren an ze instrumentéieren - Àhnlech wéi eng IDE, awer hei spÀichert de Cloud Service. materialiséiert Representatioune vun alle Milliarden Linnen vum Google Quellcode an engem groussen Datelager.

Grok huet de Googler e mĂ€chtege Kader zur VerfĂŒgung gestallt fir automatisĂ©iert Refactorings iwwer hir ganz Codebase (wuertwiertlech uechter Google) auszefĂ©ieren. De System berechent net nĂ«mmen Är Upstream OfhĂ€ngegkeeten (op dĂ©i Dir hĂ€nkt), awer och erofgaang (dĂ©i un Iech sinn) also wann Dir APIen Ă€nnert, wĂ«sst Dir jiddereen deen Dir brĂ©cht! Op dĂ«s ManĂ©ier, wann Dir Ännerungen maacht, kĂ«nnt Dir verifizĂ©ieren datt all Konsument vun Ärem API op dĂ©i nei Versioun aktualisĂ©iert huet, an a Wierklechkeet, dacks mam Rosie Tool dat se geschriwwen hunn, kĂ«nnt Dir de Prozess komplett automatisĂ©ieren.

Dëst erlaabt dem Google seng Codebase intern bal iwwernatierlech propper ze sinn, well se dës Roboter-Dénger ronderëm d'Haus hunn an automatesch alles botzen wa se SomeDespicablyLongFunctionName op SomeDespicablyLongMethodName ëmbenannt hunn, well een decidéiert huet datt et en ellent Enkelkand war a seng Bedierfnesser schlofen.

An éierlech gesot, et funktionnéiert zimlech gutt fir Google ... intern. Ech mengen, jo, d'Go Gemeinschaft bei Google huet e gutt laachen mat der Java Gemeinschaft bei Google wéinst hirer Gewunnecht kontinuéierlech Refactoring. Wann Dir eppes N mol nei starten, heescht dat, datt Dir et net nëmmen N-1 Mol verschrauft hutt, awer no enger ZÀit gëtt et zimlech kloer datt Dir et wahrscheinlech och um N. Mee am grousse Ganzen bleiwen se virun allem dëst Gedold an halen de Code "propper".

De Problem fÀnkt un wann se probéieren dës Haltung op hir Cloud Clienten a Benotzer vun aneren APIen opzesetzen.

Ech hunn dir eng kleng Aféierung an Emacs ginn, Android an Java; kucke mer eis déi lescht erfollegrÀich laanglieweg Plattform un: de Web selwer. Kënnt Dir Iech virstellen, wéi vill Iteratiounen HTTP zënter 1995 duerchgemaach huet, wéi mir nach blinkend Tags benotzt hunn? an "Am Opbau" Ikonen op WebsÀiten.

Awer et funktionnéiert nach ëmmer! An dës SÀite schaffen nach ëmmer! Jo, KÀrelen, Browser sinn d'Weltmeeschter an der Réckkompatibilitéit. Chrome ass en anert Beispill vun der seltener Google Plattform déi seng KÀpp richteg geschrauft huet, a wéi Dir et scho scho scho scho scho scho kéint, funktionnéiert Chrome effektiv als Sandkëschtfirma getrennt vum Rescht vu Google.

Ech wëll och eisen Frënn ënner den Entwéckler vu Betribssystemer Merci soen: Windows, Linux, NET APPLE FUCK APPLE, FreeBSD, etc., fir sou eng gutt Aarbecht mat RéckwÀrtskompatibilitéit op hiren erfollegrÀiche Plattformen ze maachen (Apple kritt am beschte Fall en C-minus, well se stÀnneg Saachen ouni gudde Grond futti maachen, awer iergendwéi schafft d'Gemeinschaft et an all Verëffentlechung ze fixéieren, an OS X Container sinn net komplett veraltet... nach).

MĂ€ waart emol, sot Dir. VerglĂ€iche mir net Äppel mat Birnen - Standalone Softwaresystemer op enger eenzeger Maschinn, wĂ©i Emacs/JDK/Android/Chrome, mat Multi-Server-Systemer an APIen, wĂ©i a Cloud-Servicer?

Gutt, ech hunn gëschter doriwwer getwittert, awer am Stil vum Larry Wall (Creator vun der Programmiersprache Perl - ca. pro.) nom Prinzip vun "Suckt/Regelen" hunn ech d'Wuert opgekuckt verzielt op de Google an Amazon Entwéckler Siten. An obwuel AWS huet honnert Mol méi Service Affer wéi GCP, Google d'Entwéckler Dokumentatioun ernimmt Ofbau ongeféier siwe Mol méi dacks.

Wann iergendeen bei Google dëst liest, si si wahrscheinlech prett fir den Donald Trump-Stil Charts erauszezéien, déi weisen datt se tatsÀchlech alles richteg maachen, an datt ech net ongerecht VerglÀicher maache sollt wéi "Zuel vun Ernimmungen vum Wuert ofgeschaaft versus" Zuel vu Servicer" "

Awer no all deene Joeren ass Google Cloud nach ëmmer den Nummer 3 Service (ech hunn ni en Artikel geschriwwen iwwer de gescheiterten Versuch Nummer 2 ze ginn), awer wann Insider ze gleewen sinn, ginn et e puer Bedenken, datt se geschwënn erofgoe kënnen Nr 4.

Ech hu keng zwĂ©ngend Argumenter fir meng Dissertatioun ze "beweisen". Alles wat ech hunn sinn dĂ©i faarweg Beispiller dĂ©i ech iwwer 30 Joer als EntwĂ©ckler gesammelt hunn. Ech hu schonn dĂ©i dĂ©if philosophesch Natur vun dĂ«sem Problem ernimmt; an e puer ManĂ©ieren ass et an EntwĂ©ckler CommunautĂ©iten politisĂ©iert. E puer gleewen dat SchĂ«pfer Plattforme solle sech Ă«m KompatibilitĂ©it kĂ«mmeren, anerer mengen datt dĂ«st eng Suerg ass Benotzer (d'EntwĂ©ckler selwer). Een vun zwee. Ass et jo net eng politesch Fro, wa mir dĂ©cidĂ©ieren, wien d’KĂ€schte vun de gemeinsame Problemer droe soll?

Also dat ass Politik. An et wĂ€ert wahrscheinlech rosen Äntwerten op meng Ried ginn.

wĂ©i de Benotzer Google Cloud Plattform, an als AWS Benotzer fir zwee Joer (wĂ€hrend Dir fir Grab schafft), kann ech soen datt et e groussen Ënnerscheed tĂ«scht Amazon a Google Philosophien ass wann et Ă«m PrioritĂ©ite kĂ«nnt. Ech entwĂ©ckelen net aktiv op AWS, also weess ech net ganz gutt wĂ©i dacks se al APIen ewechhuelen. Awer et gĂ«tt e Verdacht datt dĂ«st net bal sou dacks geschitt wĂ©i bei Google. An ech gleewen wierklech datt dĂ«s Quell vu konstante Kontrovers a Frustratioun am GCP ee vun de grĂ©isste Faktoren ass, dĂ©i d'EntwĂ©cklung vun der Plattform zrĂ©ckhalen.

Ech weess datt ech keng spezifesch Beispiller vu GCP Systemer genannt hunn déi net méi ënnerstëtzt ginn. Ech ka soen datt bal alles wat ech benotzt hunn, vun Netzwierker (vum eelsten bis VPC) bis Stockage (Cloud SQL v1-v2), Firebase (elo Firestore mat enger ganz anerer API), App Engine (loosst eis net mol ufÀnken) , Cloud Endpoints Cloud Endpoint a bis zu ... Ech weess et net - absolut all vun dëser forcéiert Iech de Code no engem Maximum vun 2-3 Joer ëmzeschreiwen, a si hunn d'Migratioun ni fir Iech automatiséiert, an dacks et war guer keng dokumentéiert Migratiounswee. Wéi wann et esou wier.

An all KĂ©ier wann ech AWS kucken, froen ech mech firwat d'HĂ€ll ech nach Ă«mmer op GCP sinn. Si brauche kloer keng Clienten. Si brauchen Keefer. Verstinn Dir den Ënnerscheed? Loosst mech erklĂ€ren.

Google Cloud huet Maartplaz, wou d'Leit hir Software-Léisungen proposéieren, a fir den eidele Restaurant-Effekt ze vermeiden, hu se misse mat e puer Propositioune fëllen, sou datt se mat enger Firma mam Numm Bitnami Kontrakter hunn fir eng Rëtsch Léisungen ze kreéieren déi mat "een Klick" ofgesat ginn, oder sollen Ech schreiwen et selwer "Léisungen", well dës léisen keng Verdammt Saach. Si existéieren einfach als Checkboxen, als Marketing Filler, a Google ass ni egal ob iergendeng vun den Tools tatsÀchlech funktionnéieren. Ech kennen Produktmanager, déi am Chauffer d'Sëtz gewiescht sinn, an ech kann Iech versécheren, datt dës Leit egal sinn.

Huelt, zum Beispill, eng vermeintlech "One-Click" Deployment Léisung. percona. Ech war krank zum Doud vu Google Cloud SQL Shenanigans, also hunn ech ugefaang mÀin eegene Percona Cluster als Alternativ ze bauen. An dës Kéier schéngt Google eng gutt Aarbecht gemaach ze hunn, si wÀerten mech e bëssen ZÀit an Effort spueren mat engem Klick op de KnÀppchen!

Gutt, loosst eis goen. Loosst eis de Link verfollegen a klickt op dĂ«se KnĂ€ppchen. Wielt "Jo" fir all Standardastellungen averstanen ze ginn an de Cluster an Ärem Google Cloud-Projet z'installĂ©ieren. Haha, et geet net. Keen vun dĂ«ser Knascht Wierker. D'Tool gouf ni getest an et huet ugefaang vun der Ă©ischter Minutt ze verrotten, an et wĂ€ert mech net iwwerraschen wann mĂ©i wĂ©i d'Halschent vun de "LĂ©isungen" Een-Klick-Deployementer sinn (elo verstinn mir firwat d'Zitater) am Allgemengen geet net. DĂ«st ass absolut hoffnungslos DĂ€ischtert, wou et besser ass net anzeginn.

Awer Google huet Recht encouragĂ©iert Dir se ze benotzen. Si wĂ«llen Iech kaaft. Fir si ass et eng Transaktioun. Si wĂ«llen nĂ€ischt ËnnerstĂ«tzung. Et ass net Deel vun der Google DNA. Jo, Ingenieuren Ă«nnerstĂ«tzen gĂ©igesĂ€iteg, wĂ©i beweist vu menger Geschicht mat Bigtable. MĂ€ a Produiten a Servicer fir gewĂ©inlech Leit si Ă«mmer waren ruthless an all Service zoumaachen, dĂ©i net d'Bar fir RentabilitĂ©it entspriechen, och wann et Millioune Benotzer huet.

An dëst stellt eng richteg Erausfuerderung fir GCP, well dëst ass d'DNA hannert all Cloud Offeren. Si probéieren nÀischt ze ënnerstëtzen; Et ass bekannt datt se refuséieren (als geréiert Service) all Drëtt Partei Software ze hosten bis, bis AWS datselwecht mécht an en erfollegrÀicht GeschÀft ronderëm baut, a wann d'Clienten wuertwiertlech datselwecht verlaangen. Wéi och ëmmer, et brauch e bëssen Effort fir Google ze kréien fir eppes z'ënnerstëtzen.

Dëse Mangel u Supportkultur, gekoppelt mat der "Loosst eis et briechen fir et méi schéin ze maachen" Mentalitéit, alienéiert Entwéckler.

An dat ass net gutt wann Dir eng laanglieweg Plattform wëllt bauen.

Google, erwÀcht, verdammt. Et ass elo 2020. Dir verléiert nach ëmmer. Et ass ZÀit e schwéiere Bléck an de Spigel ze huelen an ze beÀntweren ob Dir wierklech am CloudgeschÀft wëllt bleiwen.

Wann Dir wëllt bleiwen dann ophalen alles ze briechen. KÀrelen, Dir sidd rÀich. Mir Entwéckler net. Also wann et drëm geet, wien d'Belaaschtung vun der Kompatibilitéit iwwerhëlt, musst Dir et op Iech selwer huelen. Net fir eis.

Well et sinn op mannst drÀi méi richteg gutt Wolleken. Si wénken.

An elo wÀert ech weidergoen fir all meng futti Systemer ze fixéieren. Ech.

Bis déi nÀchste Kéier!

PS Update nodeems Dir e puer vun den Diskussiounen iwwer dĂ«sen Artikel gelies hutt (d'Diskussiounen si super, btw). Firebase Support ass net gestoppt ginn an et gi keng PlĂ€ng dĂ©i ech bewosst sinn. WĂ©i och Ă«mmer, si hunn e bĂ©ise Streaming-Bug deen den Java Client an der App Engine stoppt. Ee vun hiren Ingenieuren huet mir gehollef dĂ«se Problem ze lĂ©isen, wĂ©i ech bei Google geschafft hunn, awer si hunn de Fehler ni wierklech fixĂ©iert, also hunn ech e schrecklechen Ëmlaf fir d'GAE App all Dag nei ze starten. An esou ass et scho vĂ©ier Joer! Si hunn elo Firestore. Et wĂ€ert vill Aarbecht huelen fir dohinner ze migrĂ©ieren well et e komplett anere System ass an de Firebase KĂ€fer gĂ«tt ni fixĂ©iert. WĂ©i eng Conclusioun kann gezunn ginn? Dir kĂ«nnt HĂ«llef krĂ©ien wann Dir an enger Firma schafft. Ech si wahrscheinlech deen eenzegen deen Firebase op GAE benotzt well ech manner wĂ©i 100 SchlĂ«sselen an enger 100% gebierteg App aloggen an et hĂ€lt all puer Deeg op wĂ©inst engem bekannte Feeler. Wat kann ech soen anescht wĂ©i et op Ären eegene Risiko ze benotzen. Ech wiesselen op Redis.

Ech hunn och e puer mĂ©i erfuerene AWS Benotzer gesinn soen datt AWS normalerweis ni ophĂ€lt fir Servicer z'Ă«nnerstĂ«tzen, an SimpleDB ass e super Beispill. Meng Viraussetzungen datt AWS net datselwecht Enn vun der ËnnerstĂ«tzungskrankheet huet wĂ©i Google schĂ©ngt gerechtfĂ€erdegt ze sinn.

ZousÀtzlech hunn ech gemierkt datt virun 20 Deeg d'Google App Engine Team den Hosting vun enger kritescher Go Bibliothéik gebrach huet, eng GAE Applikatioun vun engem vun de KÀr Go Entwéckler auszeschalten. Et war wierklech domm.

Schlussendlech hunn ech héieren datt Googler scho dëst Thema diskutéieren an allgemeng mat mir averstane sinn (hunn dech gÀr!). Awer si schéngen ze denken datt de Problem onléisbar ass well d'Google Kultur ni déi richteg Ureizstruktur hat. Ech hu geduecht datt et gutt wier e bëssen ZÀit ze huelen fir iwwer déi absolut erstaunlech Erfahrung ze diskutéieren déi ech mat AWS Ingenieuren geschafft hunn wÀrend ech bei Grab geschafft hunn. Iergendwann an Zukunft, hoffen ech!

An jo, 2005 hu se verschidden Zorte Shark Fleesch op de Ris Buffet am Gebai 43, a meng Léifsten war Hammerhead Shark Fleesch. Wéi och ëmmer, bis 2006 hunn de Larry a Sergei all ongesonde Snacks lassginn. Also wÀhrend der Bigtable Geschicht am Joer 2007 waren et wierklech keng Haien an ech hunn dech tÀuscht.

Wann ech viru véier Joer Cloud Bigtable gekuckt hunn (ginn oder huelen), dat ass wou d'KÀschte waren. Et schéngt elo e bëssen erofgaang ze sinn, awer dat ass nach ëmmer vill fir en eidelen Datelager, besonnesch well meng éischt Geschicht weist wéi onkonsequent en eidelen groussen Dësch op hirer Skala ass.

Entschëllegt fir d'Apple Gemeinschaft ze beleidegen an nÀischt Schéines iwwer Microsoft ze soen etc. Dir sidd gutt, ech schÀtzen wierklech all Diskussioun déi dësen Artikel generéiert huet! Awer heiansdo musst Dir Wellen e bësse maachen fir eng Diskussioun ze starten, wësst Dir?

Merci fir d'Liesen.

Aktualiséiert 2/19.08.2020/XNUMX XNUMX/XNUMX StrÀif aktualiséiert d'API korrekt!

Aktualiséiert 3/31.08.2020/2. Ech gouf vun engem Google Ingenieur um Cloud Marketplace kontaktéiert, dee sech als en ale Frënd vu mir erausgestallt huet. Hie wollt erausfannen, firwat C2D net funktionnéiert, a mir hu schlussendlech erausfonnt datt et war well ech mÀi Netz viru Joeren gebaut hunn, an CXNUMXD huet net op legacy Netzwierker geschafft well de Subnetparameter an hire Templates fehlt. Ech mengen et ass am beschten fir potenziell GCP Benotzer sécherzestellen datt se genuch Ingenieuren bei Google kennen ...

Source: will.com

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster