{"id":9416,"date":"2022-03-10T06:55:56","date_gmt":"2022-03-10T11:55:56","guid":{"rendered":"https:\/\/blogs.pacasmayo.com\/felipe\/?p=9416"},"modified":"2022-03-10T07:10:56","modified_gmt":"2022-03-10T12:10:56","slug":"serverless-esta-listo","status":"publish","type":"post","link":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/","title":{"rendered":"Serverless: \u00bfEst\u00e1 listo?"},"content":{"rendered":"\n<p>Read in <a href=\"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/09\/serverless-is-it-ready\/\">English<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Y si, es complejo<\/h2>\n\n\n\n<p>Lambda, Azure Functions, OpenFaaS, Kubeless, Knative, incluso Deno deploy, y la lista podr\u00eda continuar, s\u00ed, las prob\u00e9 y soy un poco esc\u00e9ptico con respecto a los beneficios que brindan a un desarrollador que ya puede desplegar una aplicaci\u00f3n usando kubernetes en 5 minutos o menos.\u00a0Sin embargo, aqu\u00ed estoy, escribiendo sobre por qu\u00e9 no deber\u00eda ser solo una opci\u00f3n para el desarrollo de software, sino una necesidad para las empresas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfLa vida de qui\u00e9n est\u00e1s tratando de mejorar?<\/h2>\n\n\n\n<p>La decisi\u00f3n de servidores o serverless no debe basarse en cu\u00e1n compleja es la configuraci\u00f3n bajo la l\u00ednea de flotaci\u00f3n\u00a0<a href=\"#waterline\"><sup>[1]<\/sup><\/a>, sino en cu\u00e1nto simplifica el punto de entrada para los usuarios reales.\u00a0No hay nada de malo en gastar esfuerzos en automatizar tus tareas diarias y simplificar tus obligaciones, pero esos esfuerzos tienen que traducirse eventualmente en un mejor\/m\u00e1s simple\/m\u00e1s r\u00e1pido servicio al cliente, o no habr\u00e1s logrado mucho.\u00a0Desde una perspectiva de IT (Tecnolog\u00eda de Informaci\u00f3n por sus siglas en Ingl\u00e9s), nuestro objetivo no es mejorar nuestras vidas (aunque debemos ser lo suficientemente inteligentes como para lograrlo al mismo tiempo), sino brindar una experiencia mejor\/m\u00e1s simple\/m\u00e1s r\u00e1pida a nuestros usuarios.<\/p>\n\n\n\n<p>Consideremos el siguiente cuadro:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"438\" src=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6-700x438.png\" alt=\"\" class=\"wp-image-9417\" srcset=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6-700x438.png 700w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6-300x188.png 300w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6-768x480.png 768w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6-450x281.png 450w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6-150x94.png 150w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-6.png 880w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>La \u00fanica tecnolog\u00eda que aparece en la mitad superior del gr\u00e1fico es serverless, desafortunadamente, tambi\u00e9n est\u00e1 en la mitad derecha, lo que significa que, para las personas que la respaldan como plataforma, es bastante m\u00e1s compleja que las ofertas anteriores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQui\u00e9n es tu cliente?<\/h2>\n\n\n\n<p>Pero, antes de continuar, estoy seguro de que la mayor\u00eda de los desarrolladores mirar\u00e1n el gr\u00e1fico anterior y pensar\u00e1n que est\u00e1 totalmente equivocado porque, seg\u00fan su experiencia, los contenedores y la orquestaci\u00f3n han facilitado su trabajo, por lo que deben colocarse en una l\u00ednea ascendente, o algo as\u00ed como el siguiente gr\u00e1fico:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"438\" src=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7-700x438.png\" alt=\"\" class=\"wp-image-9418\" srcset=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7-700x438.png 700w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7-300x188.png 300w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7-768x480.png 768w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7-450x281.png 450w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7-150x94.png 150w, https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-7.png 880w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Y estar\u00edan en lo correcto, desde su perspectiva, pero es solo porque est\u00e1n agregando otra dimensi\u00f3n al problema.\u00a0Los desarrolladores no solo est\u00e1n considerando la experiencia necesaria para crear contenedores o describir su orquestaci\u00f3n, sino que tambi\u00e9n eval\u00faan todos los procesos necesarios para que sus aplicaciones funcionen en un entorno no orquestado.\u00a0La siguiente tabla obviamente est\u00e1 simplificada, pero ilustra la percepci\u00f3n de que al usar contenedores y orquestaci\u00f3n, habr\u00e1 mucho menos trabajo que usando m\u00e1quinas virtuales o reales.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Actividades requeridas<\/td><td>Bare-metal\/VM<\/td><td>Contenedores<\/td><td>Orquestaci\u00f3n<\/td><td>Serverless<\/td><\/tr><tr><td>L\u00f3gica de la aplicaci\u00f3n<\/td><td>x<\/td><td>x<\/td><td>x<\/td><td>x<\/td><\/tr><tr><td>Solicitud inicial<\/td><td>x<\/td><td>x<\/td><td>x<\/td><td><\/td><\/tr><tr><td>Firewalls\/network<\/td><td>x<\/td><td>x<\/td><td><\/td><td><\/td><\/tr><tr><td>Certificados<\/td><td>x<\/td><td>x<\/td><td><\/td><td><\/td><\/tr><tr><td>Parches del Sistema Operativo<\/td><td>x<\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Pero, lo que esa percepci\u00f3n no tiene en cuenta es que una persona cuyo trabajo es desarrollar aplicaciones considera que aprender sobre contenedores y orquestaci\u00f3n es una tarea trivial, una herramienta necesaria y muy \u00fatil en su conjunto de herramientas para crear aplicaciones m\u00e1s r\u00e1pido.\u00a0Y ese conocimiento es muy valioso para ella porque cada aspecto de la aplicaci\u00f3n ahora est\u00e1 bajo su control.<\/p>\n\n\n\n<p>Pero, esta programadora puede que no sea tu \u00fanica cliente, y dir\u00eda que, en un futuro corto, no ser\u00e1 tu cliente m\u00e1s importante.<\/p>\n\n\n\n<p>Los cient\u00edficos de datos de hoy son expertos en usar python para sus proyectos de investigaci\u00f3n.\u00a0Una vez que se ha creado la l\u00f3gica, el investigador desea ejecutarla en un entorno que asegure estabilidad y escalabilidad.\u00a0Si el investigador fuera a implementar la funci\u00f3n en un cl\u00faster de kubernetes, por ejemplo, necesitar\u00eda aprender sobre contenedores, rutas, firewalls, etc., todo lo cual agrega cero valor a su objetivo de ejecutar el c\u00f3digo en un entorno m\u00e1s estable y escalable. S\u00ed, \u00e9l es lo suficientemente inteligente como para aprender, e incluso podr\u00eda estar dispuesto a hacerlo, pero, \u00bfes realmente el mejor uso de su tiempo y esfuerzo?\u00a0Muy bien podr\u00eda ser que este usuario, y la los equivalentes\u00a0SME<sup><a href=\"#sme\">[2]<\/a><\/sup>en medicina, arquitectura, etc., pronto sean clientes tan, o m\u00e1s, importantes para los servicios de IT como el programador a tiempo completo que escribe aplicaciones en la actualidad.\u00a0Y, para este usuario SME, el bagaje heredado de la &#8220;aplicaci\u00f3n&#8221; es solo un peso extra.\u00a0Consideremos serverless.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Serverless<\/h2>\n\n\n\n<p>Como probablemente ya hayas escuchado, serverless no significa que no haya servidores, solo que no tendr\u00e1s que lidiar con ellos.\u00a0Probablemente haya m\u00e1s servidores involucrados en una configuraci\u00f3n serverless que en una implementaci\u00f3n tradicional de kubernetes.\u00a0Serverless no est\u00e1 destinado a reemplazar a las aplicaciones (o la funcionalidad basada en servidor), todav\u00eda hay muchos escenarios de uso para las aplicaciones y es importante evaluar cuidadosamente los requisitos para determinar qu\u00e9 soluci\u00f3n los satisface mejor.<\/p>\n\n\n\n<p>Serverless bajo las cubiertas es muy parecido a kubernetes, y la mayor\u00eda de las ofertas m\u00e1s nuevas en realidad se ejecutan sobre kubernetes.\u00a0\u00bfEntonces cu\u00e1l es la diferencia?\u00a0B\u00e1sicamente dos:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Serverless proporciona un nivel de abstracci\u00f3n encima de kubernetes permitiendo que el usuario se concentre en la funcionalidad y no en la infraestructura;\u00a0en kubernetes, independientemente de la tecnolog\u00eda utilizada para implementar la aplicaci\u00f3n, el desarrollador a\u00fan ten\u00eda que definir servidores, servicios, redes, almacenamiento, etc., mientras que en serverless el desarrollador es libre de concentrarse en su funcionalidad.<\/li><li>Serverless proporciona el concepto de spin-to-zero.\u00a0En kubernetes, una aplicaci\u00f3n est\u00e1 activa (tiene contenedores, pods, rutas, etc. ejecut\u00e1ndose en su cl\u00faster) o no lo est\u00e1 (no se est\u00e1 ejecutando nada y su aplicaci\u00f3n no puede responder a ning\u00fan evento).\u00a0Se puede iniciar m\u00e1s pods para hacer que la aplicaci\u00f3n escale, pero no se puede reducir a menos de uno (lo que significa que pagar\u00e1 por todos esos recursos incluso mientras no se est\u00e9n utilizando).\u00a0Con serverless, usted registra sus funciones\/aplicaciones con el sistema serverless y define qu\u00e9 gatillos desencadenar\u00e1n sus ciclos de vida, pero hasta que ocurra ese evento (tr\u00e1fico entrante, calendario, etc.), no se asignan recursos (lo que podr\u00eda significar menos dinero), y tan pronto se haya tramitado el evento, los recursos se vuelven a reducir a cero.<\/li><\/ul>\n\n\n\n<p>Hay diferentes tipos de soluciones en el espectro serverless:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Backend como servicio (BaaS por sus siglas en Ingl\u00e9s): proporciona todos los servicios que necesitar\u00e1 una aplicaci\u00f3n web o m\u00f3vil (MBaaS) en el backend sin tener que administrar servidores.\u00a0Estos servicios sin servidor podr\u00edan incluir cosas como bases de datos escalables, autenticaci\u00f3n, etc.<\/li><li>Contenedor como servicio (CaaS por sus siglas en Ingl\u00e9s): permite que la empresa ejecute funciones o aplicaciones basadas en contenedores sin preocuparse por la infraestructura que se encuentra debajo.\u00a0El principal jugador de c\u00f3digo abierto en el momento de escribir este art\u00edculo es claramente Knative, aunque algunos argumentar\u00e1n que Knative tambi\u00e9n se puede utilizar como una plataforma FaaS.<\/li><li>Funci\u00f3n como servicio (FaaS por sus siglas en Ingl\u00e9s): permite la ejecuci\u00f3n de piezas \u00fanicas de l\u00f3gica sin tener en cuenta la infraestructura.\u00a0Los nombres principales aqu\u00ed son AWS Lambda, Google Functions, Azure Functions y entre las de c\u00f3digo abierto, OpenFaaS.<\/li><\/ul>\n\n\n\n<p>Si bien es cierto CaaS probablemente continuar\u00e1 avanzando como la forma en que las empresas despliegan funcionalidad, la adopci\u00f3n inicial probablemente ser\u00e1 principalmente entre los desarrolladores profesionales de aplicaciones.\u00a0Teniendo en cuenta que considero que los SMEs se est\u00e1n convirtiendo en consumidores muy importantes de plataformas de IT, concentrar\u00e9 el resto de este art\u00edculo en la funci\u00f3n como servicio (FaaS).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Escenarios de uso<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Implementaci\u00f3n de un API de contenido est\u00e1tico<\/h4>\n\n\n\n<p>Esta deber\u00eda ser una opci\u00f3n f\u00e1cil, si necesita implementar una API para acceder o actualizar contenido est\u00e1tico, serverless es el camino a seguir.\u00a0En esta configuraci\u00f3n, no tendr\u00e1 que preocuparse en absoluto por la infraestructura subyacente, simplemente defines la interfaz y la funcionalidad y la publicas en un entorno serverless.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.plantuml.com\/plantuml\/png\/LP0nQWD134LxdKAuiejr2hV6EE36NS2a2YdadJ-9O39hDDe44dAg724NYxMRneK-V3r97xHlBkRZMw62xEm3cxwyEYSrzAv39Sf3IJ0-mTvX1Qtn5p4_7P2rQg-_FvKJ-5WTbkMJb_SFnzKpIsEvA34lyrZdgGBOAe11qWr1wqtFEjCFKmTzqq5SpjB0fqsqsuPeyTX6CHtkv5Aqbsbv4N1iC0hXxNgzcvAlnTkkcyD29XTNWdJTxZzeql31zgZf-em_\" alt=\"https:\/\/www.plantuml.com\/plantuml\/png\/LP0nQWD134LxdKAuiejr2hV6EE36NS2a2YdadJ-9O39hDDe44dAg724NYxMRneK-V3r97xHlBkRZMw62xEm3cxwyEYSrzAv39Sf3IJ0-mTvX1Qtn5p4_7P2rQg-_FvKJ-5WTbkMJb_SFnzKpIsEvA34lyrZdgGBOAe11qWr1wqtFEjCFKmTzqq5SpjB0fqsqsuPeyTX6CHtkv5Aqbsbv4N1iC0hXxNgzcvAlnTkkcyD29XTNWdJTxZzeql31zgZf-em_\"\/><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">ETL de datos<\/h4>\n\n\n\n<p>Los ETL de datos (Extracci\u00f3n, Transformaci\u00f3n y Carga &#8211; ETL por sus siglas en Ingl\u00e9s) son candidatos perfectos para la tecnolog\u00eda sin servidor.\u00a0Los ETL se utilizan para mover grandes cantidades de datos de forma asincr\u00f3nica, generalmente calendarizado, aunque tambi\u00e9n pueden desencadenarse por cambios en los datos, los ETL generalmente no son sensibles a la latencia.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.plantuml.com\/plantuml\/png\/LKvBJWCn3Dtx55PNiEYgMuGg0Rb0kO2PE2MInv4S1o4XJiKHk1Zoj4CrgxpFUta-TYVpCGi85qTlQFNyxfYhyUIrAK2gmhXBWzKPNpwTJMc7r94lM01Aayo69xOFDk7UyGiGxzBGgVx-QBICsEwNLk39D_whaVRIRAPBneDl4azavwifZJ9ympCvlL5dF1r2xOURaggIX5Yg0gndudx_-Bz-VKEBAYoB-B3Is0WMPC5Xn6z7rZnc-GC0\" alt=\"https:\/\/www.plantuml.com\/plantuml\/png\/LKvBJWCn3Dtx55PNiEYgMuGg0Rb0kO2PE2MInv4S1o4XJiKHk1Zoj4CrgxpFUta-TYVpCGi85qTlQFNyxfYhyUIrAK2gmhXBWzKPNpwTJMc7r94lM01Aayo69xOFDk7UyGiGxzBGgVx-QBICsEwNLk39D_whaVRIRAPBneDl4azavwifZJ9ympCvlL5dF1r2xOURaggIX5Yg0gndudx_-Bz-VKEBAYoB-B3Is0WMPC5Xn6z7rZnc-GC0\"\/><\/figure><\/div>\n\n\n\n<p>En general, serverless es extremadamente \u00fatil para funciones asincr\u00f3nicas puras<a href=\"#pure\"><sup>[3]<\/sup><\/a> y sin estado<sup><a href=\"#stateless\">[4]<\/a><\/sup>. Entonces, miremos un poco m\u00e1s detalladamente a FaaS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">FaaS \u2013 Abstracci\u00f3n de un nivel superior, la funci\u00f3n<\/h3>\n\n\n\n<p>El primer desaf\u00edo de serverless es degradar el concepto de &#8220;aplicaciones&#8221;\u00a0<sup><a href=\"#apps\">[5]<\/a><\/sup>\u00a0con todos los componentes que estas requieren y elevar el concepto de la funci\u00f3n que quiere proporcionarse.\u00a0Ahora, serverless no necesariamente es igual a FaaS, pero comparten la mayor\u00eda de los mismos conceptos.\u00a0Mientras que la implementaci\u00f3n de AWS Lambda y Deno deploy son FaaS porque permiten que el desarrollador se concentre solo en la funci\u00f3n que desea publicar, son \u00fanicos en el sentido de que son propietarios y no se ejecutan sobre kubernetes.\u00a0La mayor\u00eda de las otras opciones de FaaS brindan la libertad de elegir el lenguaje de desarrollo, pero resuelven los problemas de dependencia de manera diferente.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Tabla de lenguajes<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>AWS Lambda<\/td><td>Google Functions<\/td><td>Azure Functions<\/td><td>OpenFaaS<\/td><td>Deno deploy<\/td><\/tr><tr><td>Javascript<\/td><td>x<\/td><td>x<\/td><td>x<\/td><td>x<\/td><td>x<\/td><\/tr><tr><td>Go<\/td><td>x<\/td><td>x<\/td><td><\/td><td>x<\/td><td><\/td><\/tr><tr><td>Python<\/td><td>x<\/td><td>x<\/td><td>x<\/td><td>x<\/td><td><\/td><\/tr><tr><td>Java<\/td><td>x<\/td><td><\/td><td>x<\/td><td>x<\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00f3digo abierto\/propietario<\/h4>\n\n\n\n<p>La mayor\u00eda de los proveedores de la nube tienen una soluci\u00f3n serverless FaaS, por ejemplo, AWS Lambda, Google Functions, Azure Functions, IBM Cloud Functions y Alibaba Functions.\u00a0Todas ellas son soluciones muy potentes pero propietarias y no port\u00e1tiles.\u00a0Tambi\u00e9n existen las ofertas de c\u00f3digo abierto DIY (&#8220;H\u00e1zlo t\u00fa mismo&#8221; por sus siglas en Ingl\u00e9s) que se pueden usar localmente o en cualquier proveedor de la nube: OpenFaas, Fn, Kubeless y OpenWhisk.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p>Serverless no es una tecnolog\u00eda futura.\u00a0S\u00ed, seguir\u00e1 evolucionando, pero es totalmente real, y si no ha estado justo en medio de tu estrategia de innovaci\u00f3n como centro de la expansi\u00f3n de la base de usuarios para soluciones altamente t\u00e9cnicas, ya est\u00e1s tarde.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><a name=\"waterline\">[1]<\/a>&nbsp;: L\u00ednea de flotaci\u00f3n es un t\u00e9rmino que hemos estado usando para separar lo que el usuario\/cliente puede ver e interactuar de lo que el proveedor de servicios necesita hacer para que el entorne funcione para el cliente.&nbsp;Si su servicio es proporcionar m\u00e1quinas virtuales para que los clientes ejecuten sus aplicaciones, su l\u00ednea de flotaci\u00f3n es el sistema operativo, el cliente no sabe\/ni le importa el metal, pero si proporciona un cl\u00faster de kubernetes, entonces la l\u00ednea de flotaci\u00f3n es el plano de control k8s, y el cliente no sabe\/ni le importan las m\u00e1quinas virtuales sobre las que corre el cl\u00faster.<\/p>\n\n\n\n<p><a name=\"sme\">[2]<\/a>&nbsp;: SME, un experto en la materia es una persona con un conocimiento profundo de un dominio espec\u00edfico.&nbsp;En este art\u00edculo, utilizo el t\u00e9rmino para identificar a alguien que es un experto en un campo DISTINTO al desarrollo de aplicaciones.<\/p>\n\n\n\n<p><a name=\"pure\">[3]<\/a>&nbsp;: Funciones puras \u2013 Seg\u00fan&nbsp;<a href=\"https:\/\/translate.google.com\/website?sl=auto&amp;tl=es&amp;hl=es&amp;client=webapp&amp;u=https:\/\/en.wikipedia.org\/wiki\/Pure_function\">programaci\u00f3n funcional<\/a> una funci\u00f3n pura es aquella que, dada la misma entrada, deber\u00eda devolver la misma salida sin efectos secundarios.&nbsp;Por ejemplo, si mi funci\u00f3n es una funci\u00f3n de suma, siempre deber\u00eda devolver exactamente el mismo resultado dados los mismos par\u00e1metros de entrada (2+3=5, todas las veces, independientemente de la hora del d\u00eda).&nbsp;No todas las funciones necesitan ser puras, por ejemplo, getNextId() no es un buen candidato para una funci\u00f3n pura, tampoco lo es la funci\u00f3n rand(), por razones obvias.&nbsp;Pero hay muchas funciones que deber\u00edan ser puras y est\u00e1n mal implementadas como impuras.&nbsp;Por ejemplo, isSignatureValid(object) se vuelve innecesariamente impura, porque la funci\u00f3n depender\u00e1 de una autoridad externa fuera del control de la persona que llama.&nbsp;FP dicta que una funci\u00f3n m\u00e1s legible y comprobable deber\u00eda ser isSignatureValid (objeto, autoridad). La parte &#8220;sin efectos secundarios&#8221; significa que una funci\u00f3n pura no modifica ninguna variable externa (incluidas las variables de entrada) excepto la salida.<\/p>\n\n\n\n<p><a name=\"stateless\">[4]<\/a>&nbsp;: La funci\u00f3n sin estado significa que la funci\u00f3n no puede guardar el estado dentro de la funci\u00f3n en s\u00ed, en otras palabras, las funciones sin servidor son de corta duraci\u00f3n y el estado no se conserva para la pr\u00f3xima ejecuci\u00f3n.&nbsp;Si bien las funciones sin servidor son capaces de conectarse a bases de datos y\/o recuperar y preservar el estado externamente, hacerlo podr\u00eda convertirse en un antipatr\u00f3n de principios de programaci\u00f3n funcional.&nbsp;Debe agregarse que algunos proveedores como Microsoft Azure tienen una funcionalidad de estado dise\u00f1ada para sus funciones sin servidor y la anuncian como una caracter\u00edstica positiva (<a href=\"https:\/\/translate.google.com\/website?sl=auto&amp;tl=es&amp;hl=es&amp;client=webapp&amp;u=https:\/\/docs.microsoft.com\/en-us\/azure\/azure-functions\/durable\/durable-functions-overview?tabs%3Dcsharp\">Durable Functions<\/a>).<\/p>\n\n\n\n<p><a name=\"apps\">[5]<\/a>&nbsp;: Originalmente, las aplicaciones eran piezas de software que se instalaban encima de un sistema operativo, que brindaban funcionalidad a un usuario, generalmente a trav\u00e9s de una interfaz gr\u00e1fica de usuario (GUI).&nbsp;Durante la revoluci\u00f3n DevOps, las piezas de software que se implementaron, incluso si no ten\u00edan una GUI, se incluyeron en el concepto.&nbsp;Por ejemplo, la implementaci\u00f3n de una API que nunca est\u00e1 destinada a la interacci\u00f3n directa con un usuario final, comenz\u00f3 a considerarse una aplicaci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Read in English Y si, es complejo Lambda, Azure Functions, OpenFaaS, Kubeless, Knative, incluso Deno deploy, y la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":9413,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[38],"tags":[60,58,39],"class_list":["post-9416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-faas","tag-serverless","tag-tecnologia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Serverless: \u00bfEst\u00e1 listo? - El blog de Felipe<\/title>\n<meta name=\"description\" content=\"Serverless, y Funci\u00f3n-como-Servicio (FaaS) es una tecnolog\u00eda que est\u00e1 lista y madura para usar en producci\u00f3n ya.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Serverless: \u00bfEst\u00e1 listo? - El blog de Felipe\" \/>\n<meta property=\"og:description\" content=\"Serverless, y Funci\u00f3n-como-Servicio (FaaS) es una tecnolog\u00eda que est\u00e1 lista y madura para usar en producci\u00f3n ya.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/\" \/>\n<meta property=\"og:site_name\" content=\"El blog de Felipe\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-10T11:55:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-10T12:10:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-5.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1599\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"AI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"AI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/\"},\"author\":{\"name\":\"AI\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/person\\\/e32bfb69f0dcbed869e838474a34d240\"},\"headline\":\"Serverless: \u00bfEst\u00e1 listo?\",\"datePublished\":\"2022-03-10T11:55:56+00:00\",\"dateModified\":\"2022-03-10T12:10:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/\"},\"wordCount\":2272,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2022\\\/03\\\/image-5.png\",\"keywords\":[\"faas\",\"serverless\",\"Tecnolog\u00eda\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/\",\"name\":\"Serverless: \u00bfEst\u00e1 listo? - El blog de Felipe\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2022\\\/03\\\/image-5.png\",\"datePublished\":\"2022-03-10T11:55:56+00:00\",\"dateModified\":\"2022-03-10T12:10:56+00:00\",\"description\":\"Serverless, y Funci\u00f3n-como-Servicio (FaaS) es una tecnolog\u00eda que est\u00e1 lista y madura para usar en producci\u00f3n ya.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2022\\\/03\\\/image-5.png\",\"contentUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2022\\\/03\\\/image-5.png\",\"width\":2400,\"height\":1599},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/2022\\\/03\\\/10\\\/serverless-esta-listo\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Serverless: \u00bfEst\u00e1 listo?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#website\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/\",\"name\":\"El blog de Felipe\",\"description\":\"De la abundancia del coraz\u00f3n...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#organization\",\"name\":\"El blog de Felipe\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2019\\\/11\\\/cropped-caricatura_felipe.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/files\\\/2019\\\/11\\\/cropped-caricatura_felipe.jpg\",\"width\":1360,\"height\":598,\"caption\":\"El blog de Felipe\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/#\\\/schema\\\/person\\\/e32bfb69f0dcbed869e838474a34d240\",\"name\":\"AI\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g\",\"caption\":\"AI\"},\"description\":\"Este art\u00edculo ha sido seleccionado y parcialmente escrito e ilustrado por Inteligencia Artificial (AI) basado en noticias disponibles.\",\"url\":\"https:\\\/\\\/blogs.pacasmayo.com\\\/felipe\\\/author\\\/ai\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Serverless: \u00bfEst\u00e1 listo? - El blog de Felipe","description":"Serverless, y Funci\u00f3n-como-Servicio (FaaS) es una tecnolog\u00eda que est\u00e1 lista y madura para usar en producci\u00f3n ya.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/","og_locale":"en_US","og_type":"article","og_title":"Serverless: \u00bfEst\u00e1 listo? - El blog de Felipe","og_description":"Serverless, y Funci\u00f3n-como-Servicio (FaaS) es una tecnolog\u00eda que est\u00e1 lista y madura para usar en producci\u00f3n ya.","og_url":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/","og_site_name":"El blog de Felipe","article_published_time":"2022-03-10T11:55:56+00:00","article_modified_time":"2022-03-10T12:10:56+00:00","og_image":[{"width":2400,"height":1599,"url":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-5.png","type":"image\/png"}],"author":"AI","twitter_card":"summary_large_image","twitter_misc":{"Written by":"AI","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#article","isPartOf":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/"},"author":{"name":"AI","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/person\/e32bfb69f0dcbed869e838474a34d240"},"headline":"Serverless: \u00bfEst\u00e1 listo?","datePublished":"2022-03-10T11:55:56+00:00","dateModified":"2022-03-10T12:10:56+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/"},"wordCount":2272,"commentCount":1,"publisher":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#organization"},"image":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-5.png","keywords":["faas","serverless","Tecnolog\u00eda"],"articleSection":["Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/","url":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/","name":"Serverless: \u00bfEst\u00e1 listo? - El blog de Felipe","isPartOf":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#primaryimage"},"image":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-5.png","datePublished":"2022-03-10T11:55:56+00:00","dateModified":"2022-03-10T12:10:56+00:00","description":"Serverless, y Funci\u00f3n-como-Servicio (FaaS) es una tecnolog\u00eda que est\u00e1 lista y madura para usar en producci\u00f3n ya.","breadcrumb":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#primaryimage","url":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-5.png","contentUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2022\/03\/image-5.png","width":2400,"height":1599},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/2022\/03\/10\/serverless-esta-listo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.pacasmayo.com\/felipe\/"},{"@type":"ListItem","position":2,"name":"Serverless: \u00bfEst\u00e1 listo?"}]},{"@type":"WebSite","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#website","url":"https:\/\/blogs.pacasmayo.com\/felipe\/","name":"El blog de Felipe","description":"De la abundancia del coraz\u00f3n...","publisher":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.pacasmayo.com\/felipe\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#organization","name":"El blog de Felipe","url":"https:\/\/blogs.pacasmayo.com\/felipe\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2019\/11\/cropped-caricatura_felipe.jpg","contentUrl":"https:\/\/blogs.pacasmayo.com\/felipe\/files\/2019\/11\/cropped-caricatura_felipe.jpg","width":1360,"height":598,"caption":"El blog de Felipe"},"image":{"@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.pacasmayo.com\/felipe\/#\/schema\/person\/e32bfb69f0dcbed869e838474a34d240","name":"AI","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4afeebd1deb1471ed6e7e21e6dc44176da2cb2ef0704b36e720ef8656e34bd65?s=96&d=mm&r=g","caption":"AI"},"description":"Este art\u00edculo ha sido seleccionado y parcialmente escrito e ilustrado por Inteligencia Artificial (AI) basado en noticias disponibles.","url":"https:\/\/blogs.pacasmayo.com\/felipe\/author\/ai\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/posts\/9416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/comments?post=9416"}],"version-history":[{"count":4,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/posts\/9416\/revisions"}],"predecessor-version":[{"id":9429,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/posts\/9416\/revisions\/9429"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/media\/9413"}],"wp:attachment":[{"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/media?parent=9416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/categories?post=9416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.pacasmayo.com\/felipe\/wp-json\/wp\/v2\/tags?post=9416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}