Per què la revolució sense servidor està bloquejada

Punts clau

  • Des de fa uns quants anys, se'ns ha promès que la informàtica sense servidor marcarà el començament d'una nova era sense un sistema operatiu específic per executar aplicacions. Ens van dir que aquesta estructura resoldria molts problemes d'escalabilitat. De fet, tot és diferent.
  • Tot i que molts veuen sense servidor com una idea nova, les seves arrels es remunten al 2006 amb l'arribada de Zimki PaaS i Google App Engine, tots dos utilitzen arquitectura sense servidor.
  • Hi ha quatre raons per les quals la revolució sense servidor s'ha aturat, que van des del suport limitat del llenguatge de programació fins a problemes de rendiment.
  • La informàtica sense servidor no és tan inútil. No del tot. Tanmateix, no s'han de considerar un substitut directe dels servidors. Per a algunes aplicacions poden ser una eina útil.

El servidor ha mort, visca el servidor!

Aquest és el crit de batalla de la revolució sense servidor. Només un cop d'ull a la premsa de la indústria dels darrers anys i és fàcil concloure que el model de servidor tradicional ha mort i que d'aquí a uns anys tots farem servir arquitectures sense servidor.

Com tothom del sector sap, i com també vam assenyalar en el nostre article sobre estat de la informàtica sense servidor, això està malament. Malgrat molts articles sobre els mèrits revolució sense servidor, mai va tenir lloc. De fet, mostren les darreres investigacionsque aquesta revolució podria haver arribat a un carreró sense sortida.

Certament, algunes de les promeses dels models sense servidor s'han complert, però no totes. No tothom.

En aquest article vull veure els motius d'aquesta condició. Per què la manca de flexibilitat dels models sense servidor encara és una barrera per a la seva adopció més àmplia, tot i que segueixen sent útils en circumstàncies específiques i ben definides.

El que van prometre els adeptes de la informàtica sense servidor

Abans d'enfrontar-nos als reptes de la informàtica sense servidor, mirem què havia de proporcionar. La promesa de la revolució sense servidor eren nombrosos i, de vegades, molt ambiciosos.

Per a aquells que no estiguin familiaritzats amb el terme, aquí teniu una definició ràpida. La informàtica sense servidor defineix una arquitectura en què les aplicacions (o parts d'aplicacions) s'executen sota demanda en entorns d'execució que normalment s'allotgen de manera remota. A més, els sistemes sense servidor es poden allotjar a casa. La construcció de sistemes sense servidor resistents ha estat una preocupació important per als administradors de sistemes i les empreses SaaS durant els últims anys, ja que (es diu) aquesta arquitectura ofereix diversos avantatges clau sobre el model client-servidor "tradicional":

  1. Els models sense servidor no requereixen que els usuaris mantinguin els seus propis sistemes operatius ni tan sols creïn aplicacions compatibles amb sistemes operatius específics. En canvi, els desenvolupadors creen codi compartit, el pengen a una plataforma sense servidor i miren que s'executa.
  2. Els recursos en marcs sense servidor normalment es facturen per minut (o fins i tot per segon). Això vol dir que els clients només paguen pel temps que realment executen el codi. Això es compara favorablement amb una màquina virtual de núvol tradicional, on la màquina està inactiva la major part del temps, però cal pagar-ho.
  3. També es va resoldre el problema de l'escalabilitat. Els recursos en marcs sense servidor s'assignen de manera dinàmica perquè el sistema pugui fer front fàcilment als augments sobtats de la demanda.

En resum, els models sense servidor ofereixen solucions flexibles, de baix cost i escalables. És sorprenent que no ens haguéssim pensat abans en aquesta idea.

És realment una idea nova?

De fet, la idea no és nova. El concepte de permetre als usuaris pagar només pel temps que s'executa el codi ha existit des que va ser introduït per Zimki PaaS el 2006, i més o menys al mateix temps, Google App Engine va oferir una solució molt similar.

De fet, el que ara anomenem el model "sense servidor" és més antic que moltes tecnologies que ara s'anomenen "natives del núvol" que proporcionen pràcticament el mateix. Com s'ha assenyalat, els models sense servidor són essencialment només una extensió del model de negoci SaaS que ha existit durant dècades.

També val la pena reconèixer que sense servidor no és una arquitectura FaaS, tot i que hi ha una connexió entre ambdues. FaaS és essencialment la part centrada en la computació d'una arquitectura sense servidor, però no representa tot el sistema.

Aleshores, de què va tot l'enrenou? Bé, a mesura que les taxes de penetració d'Internet continuen disparant-se als països en desenvolupament, la demanda de recursos informàtics també augmenta al mateix temps. Per exemple, molts països amb sectors de comerç electrònic en ràpid creixement simplement no disposen de la infraestructura informàtica per a aplicacions en aquestes plataformes. Aquí és on entren les plataformes sense servidor de pagament.

Problemes amb els models sense servidor

El problema és que els models sense servidor tenen... problemes. No em malinterpreteu: no dic que siguin dolents per si mateixos o que no aportin un valor significatiu a algunes empreses en algunes circumstàncies. Però la reivindicació principal de la "revolució" -que l'arquitectura sense servidor substituirà ràpidament l'arquitectura tradicional- mai es materialitza.

Aixo es perqué.

Suport limitat per a llenguatges de programació

La majoria de plataformes sense servidor només us permeten executar aplicacions escrites en determinats idiomes. Això limita seriosament la flexibilitat i l'adaptabilitat d'aquests sistemes.

Es considera que les plataformes sense servidor admeten la majoria dels idiomes principals. AWS Lambda i Azure Functions també proporcionen un embolcall per executar aplicacions i funcions en idiomes no compatibles, tot i que això sovint comporta un cost de rendiment. Per tant, per a la majoria de les organitzacions, aquesta limitació no sol ser un gran problema. Però aquí està la cosa. Se suposa que un dels avantatges dels models sense servidor és que els programes poc coneguts i poc utilitzats es poden utilitzar més barats perquè només pagueu pel temps que funcionen. I els programes poc coneguts i poc utilitzats sovint s'escriuen en... llenguatges de programació poc coneguts i poc utilitzats.

Això soscava un dels avantatges clau del model sense servidor.

Enquadernació del venedor

El segon problema de les plataformes sense servidor, o almenys la manera com estan implementades actualment, és que no solen ser semblants entre si a nivell operatiu. Pràcticament no hi ha estandardització pel que fa a les funcions d'escriptura, desplegament i gestió. Això significa que la migració de funcions d'una plataforma a una altra requereix molt de temps.

La part més difícil de passar a un model sense servidor no són les funcions de càlcul, que solen ser només fragments de codi, sinó com les aplicacions es comuniquen amb els sistemes connectats, com ara l'emmagatzematge d'objectes, la gestió d'identitats i les cues. Les funcions es poden moure, però la resta de l'aplicació no. Això és exactament el contrari de les plataformes barates i flexibles que es prometen.

Alguns argumenten que els models sense servidor són nous i que no hi ha hagut temps d'estandarditzar com funcionen. Però no són tan nous, com he assenyalat anteriorment, i moltes altres tecnologies al núvol, com els contenidors, ja s'han tornat molt més utilitzables gràcies al desenvolupament i l'adopció generalitzada de bons estàndards.

Productivitat

El rendiment informàtic de les plataformes sense servidor és difícil de mesurar, en part perquè els venedors solen mantenir la informació privada. La majoria argumenta que les funcions a les plataformes remotes sense servidor funcionen amb la mateixa rapidesa que les dels servidors interns, amb l'excepció d'alguns problemes inevitables de latència.

Tanmateix, els fets individuals indiquen el contrari. Les funcions que no s'han executat anteriorment en una plataforma concreta o que no s'han executat durant algun temps trigaran un temps a inicialitzar-se. Això probablement es deu al fet que el seu codi s'ha portat a algun mitjà d'emmagatzematge menys accessible, tot i que, com passa amb els punts de referència, la majoria de proveïdors no us parlaran de la migració de dades.

Per descomptat, hi ha diverses maneres d'evitar-ho. Una és optimitzar les funcions per a qualsevol llenguatge de núvol en què s'executi la vostra plataforma sense servidor, però això soscava una mica l'afirmació que aquestes plataformes són "àgils".

Un altre enfocament és assegurar-se que els programes crítics per a la productivitat s'executen regularment per mantenir-los actuals. Aquest segon enfocament, per descomptat, és una mica una contradicció amb l'afirmació que les plataformes sense servidor són més rendibles perquè només pagueu pel temps que s'executen els vostres programes. Els proveïdors de núvol han introduït noves maneres de reduir els inicis en fred, però molts d'ells requereixen "escala a un", cosa que soscava el valor original de FaaS.

El problema d'arrencada en fred es pot resoldre parcialment executant sistemes sense servidor a casa, però això comporta els seus propis costos i segueix sent una opció de nínxol per a equips amb bons recursos.

No podeu executar aplicacions senceres

Finalment, potser la raó més important per la qual les arquitectures sense servidor no substituiran els models tradicionals aviat: (normalment) no poden executar aplicacions senceres.

Més precisament, és poc pràctic des del punt de vista dels costos. El vostre monòlit reeixit probablement no s'hauria de convertir en un conjunt de quatre dotzenes de funcions connectades per vuit passarel·les, quaranta cues i una dotzena d'instàncies de base de dades. Per aquest motiu, sense servidor és més adequat per a nous desenvolupaments. Gairebé no es pot migrar cap aplicació (arquitectura) existent. Podeu migrar, però heu de començar des de zero.

Això significa que en la gran majoria dels casos, les plataformes sense servidor s'utilitzen com a complement dels servidors de fons per realitzar tasques intensives en càlcul. Això els fa molt diferents de les altres dues formes de tecnologies al núvol (contenidors i màquines virtuals) que ofereixen una forma holística de realitzar informàtica remota. Això il·lustra un dels reptes de passar dels microserveis a les sense servidor.

Per descomptat, això no sempre és un problema. La capacitat d'aprofitar periòdicament recursos informàtics massius sense haver de comprar el vostre propi maquinari pot aportar beneficis reals i duradors a moltes organitzacions. Però quan algunes aplicacions resideixen en servidors interns i altres en arquitectures de núvol sense servidor, la gestió adquireix un nou nivell de complexitat.

Visca la revolució?

Malgrat totes aquestes queixes, no estic en contra de les solucions sense servidor per se. Honestament. Els desenvolupadors només han d'entendre, sobretot si estan explorant sense servidor per primera vegada, que la tecnologia no és un reemplaçament directe dels servidors. En comptes d'això, consulteu els nostres consells i recursos Creació d'aplicacions sense servidor i decidir com aplicar millor el model.

Font: www.habr.com

Afegeix comentari