Transcript for:
Workshop sobre Tecnología Serverless

[Música] Hola cómo están mi nombre es Andrés Jordán Ceballos y soy cofundador de clicket y soy cto de Bol living tengo más de 8 años de experiencia en tecnología y he tenido la oportunidad de trabajar para grandes empresas en Estados Unidos como ser slack o salesforce y toda esa experiencia que ido adquiriendo en este tiempo me ha permitido poder implementar todos estos conocimientos en lo que es clicket y en lo que es todas las empresas de boling Así que el día de hoy vamos a aprender un poco acerca de la tecnología serverless esta arquitectura que es Revolucionaria y que pienso que es muy importante para que las empresas puedan aprender y puedan utilizar de mejor manera sus recursos para poder tener éxito en lo que es el comercio electrónico los objetivos de este workshop es proporcionar a los participantes las herramientas y la información necesaria para que puedan aplicar serverless en sus empresas el día de hoy estaremos viendo primeramente la definición de ser Cuáles son las ventajas que tienen casos de estudios reales Cuáles son las consideraciones técnicas que deberíamos tener y cómo podríamos implementar esta tecnología en nuestras empresas vamos a empezar primero con la definición de serverless Qué es serverless serverless Es un modelo de ejecución en la nube donde el proveedor gestiona dinámicamente la asignación de recursos Qué significa esto que básicamente nosotros nos despreocupar los servidores de configurar y de administrarlos esto nos nos nos da muchísimas ventajas al poder implementar esta tecnología vamos a ver un poquito la comparación entre serverless y el modelo tradicional en la arquitectura serverless podemos ver de que nosotros estamos delegando a un proveedor en la nube todos nuestros servicios los servicios de frontend de backend la seguridad la base de datos y todo esto lo tenemos delegado en un proveedor en cambio en el modelo tradicional nosotros alquilamos o compramos un servidor también en la nube o puede ser físico donde nosotros implementamos de manera manual y hacemos muchas configuraciones para poder tener todos estos elementos funcionando entonces básicamente el serverless nos ayuda en muchos aspectos a poder gestionar de mejor manera nuestros recursos y también nuestro equipo Cuáles son las ventajas de serverless para el e-commerce dentro de las ventaj B tenemos muchísimas pero creo que las más importantes son la escalabilidad automática el modelo de pago por uso y la eliminación de la gestión de servidores en la escalabilidad automática básicamente nos referimos a que la infraestructura se adapta de manera automática a la demanda de nosotros puede escalar tanto hacia arriba como hacia abajo de manera automática esto significa que durante periodos de alta demanda por ejemplo ventas o campañas muy fuertes nosotros podemos manejar de manera fácil los picos de tráfico y evitar las interrupciones o las caídas en nuestros servidores entonces este tema de la escalabilidad es super importante porque muchas veces nos ha pasado que y sobre todo en comercio electrónico que tenemos un día en específico en el que tenemos un pico de ventas y nuestro servidor No soporta esa capacidad para poder manejar esa idad de usuarios Entonces es en ese sentido que el tema de la escalabilidad automática es una ventaja super importante aquí podemos ver un ejemplo de un cliente real nuestro en el que por ejemplo para la venta de tickets de un evento aplicando Este modelo de serverless básicamente nosotros lo que hemos hecho ha sido utilizar esos recursos en días específicos si podemos ver la Gráfica en la presentación vemos que entre el 17 y el 21 han sido los días más fuertes y el día 19 hemos tenido un pico de ventas durante todo este periodo hemos realizado más de 5000 transacciones de ventas en línea lo cual ha generado para nuestro cliente en ventas más de 500,000 y sorprendentemente Los costos del server les Y de todos los recursos que nosotros utilizamos para poder gestionar el comercio electrónico han sido de $18 se imaginan poder gestionar semejante cantidad de transacciones alcanzar estos números de ventas a nivel monetario Y que nuestro costo sea un dólar parece irreal pero es posible lograr esto además serverless ofrece un modelo de pago por uso lo que significa que solamente vamos a pagar por los recursos que se han utilizados durante la ejecución de las funciones servicios que tengamos en la nube Esta es una gran ventaja para nosotros por qué Porque tradicionalmente teníamos un servidor fijo ya sea alquilado comprado el cual nos implicaba un costo de mantenimiento mensual en nuestro caso Hemos llegado a pagar hasta $1,200 de manera mensual por un servidor con características específicas esto independientemente del tráfico que tengamos podríamos tener en un mes unas 1000 transacciones o podríamos tener 300,000 transacciones como hemos tenido alguna vez independientemente de la cantidad de transacciones que ya ya hem tenido hemos seguido pagando este mismo costo de manera mensual en cambio en el modelo serverless nosotros Hemos llegado a optimizar a tal punto de que nos cuesta 0.0006 centavos de dólar por transacción Entonces qué significa esto que en un mes en el cual nosotros generamos 1000 transacciones nos cuesta a nosotros 0.6 centavos de dólar en un mes en el que por ejemplo tengamos un pico de 300,000 transacciones vamos a llegar a pagar $180 Entonces si se ponen a pensar la diferencia entre el modelo serverless y el tradicional es abismal entonces por eso es importante tomar en cuenta esto Además de que considerando que en comercio electrónico los periodos de venta son bien irregulares es muy an manejar Este modelo otra ventaja fundamental del serverless es la eliminación de la gestión de servidores básicamente con serverless todas las tareas de aprovisionamiento configuración mantenimiento de servidores se gestionan automáticamente por el proveedor Qué significa esto que nosotros dejamos de lado Muchas tareas que antes solíamos hacer para poder configurar nuestro servidor de la mejor manera aquí podemos ver una comparación entre el modelo serverless y el modelo tradicional en el modelo tradicional vemos que por ejemplo para poder mantener nuestro servidor vamos a necesitar un especialista en The bobs y Qué significa esto que tenemos que realizar muchas configuraciones que no que nos van a tomar un tiempo específico aquí estamos utilizando un promedio de 12 horas pero es bastante optimista en realidad los periodos de configuración de un servidor pueden durar muchísimo más Cuáles son esas tareas que tenemos que hacer en el modelo adicional tenemos que configurar nuestros certificados de seguridad tenemos que configurar el sistema operativo tenemos que configurar el entorno la base de datos el Hosting y muchas otras cosas más sin embargo en el en el arquitectura serverless en promedio todas estas tareas nos toma 10 minutos por qué Porque estamos delegando todo esto al proveedor en la nube que tengamos las configuraciones que tenemos que hacer son básicamente mínimas y vamos a tener un entorno mucho más seguro mucho más automatizado que en el modelo tradicional un dato super relevante importante es que estos proveedores en la nube están certificados en Bolivia y y cómo funciona esto por ejemplo uno de los uno de los servicios más utilizados que es Amazon web Services cumple con toda la reglamentación de la asfi del sistema financiero y esto es importante Por qué Porque quiere decir de que hasta los bancos o las entidades financieras en nuestro país pueden utilizar esta tecnología de manera legal y reglamentada sin tener brechas de seguridad por otro lado al al igual que Amazon tenemos a Google Cloud lo mismo Google Cloud cumple con toda la normativa de la asfi Entonces esto significa que si una entidad financiera está utilizando este tipo de servicios en la nube Por qué nuestro página o nuestro sitio de de comercio electrónico No puedo utilizar de estos es importante Saber esto porque nos da seguridad y nos da confianza a la hora de poder implementar nuestras herramientas y nuestras aplicaciones ahora exploremos algunos ejemplos rápidos que ilustran Cuáles son las ventajas del e-commerce eh utilizando serverless por ejemplo vamos a tomar uno de los eventos más importantes en ventas en línea que es el Black Friday Durante este evento el sitio web nuestros sitios web we experimentan picos de tráficos repentinos entonces bajo el modelo tradicional nosotros tendríamos que que tratar de de de saber cuántos usuarios van a entrar en nuestra plataforma y cuántas transacciones se van a generar pero básicamente es imposible saber ese dato puede que se conecten 1000 personas o puede que se conecten 10,000 o 100000 personas Al mismo instante con serverless la infraestructura escala de manera automática Entonces por ejemplo en en en Casos como en Black Friday nosotros vamos a estar tranquilos ya que nuestra arquitectura se va a encargar de escalar de manera automática y de utilizar los recursos que sean necesarios para poder eh brindar la mejor experiencia a nuestros usuarios además considerando que el pago es por uso simplemente vamos a pagar por ese pico como el ejemplo que les ponía de un cliente que teníamos Entonces vamos a pagar por esos picos de tráfico que vamos a tener que nos van a generar muchísimas ventas y simplemente vamos a enfocarnos en la experiencia en en dar la mejor experiencia ese día y no preocuparnos por si nuestro servidor se va a mantener en línea o si se va a caer o si va O si la capacidad va a ser la necesaria para la cantidad de usuarios que se van a conectar ahora vamos a explorar casos de estudios reales en e-commerce de empresas que llevan años en el mercado y que han migrado a utilizar esta tecnología un caso super interesante es de Dominos Pizza como sabemos Domino's Pizza es una de las cadenas más grandes del mundo esta cadena enfrentaba desafíos con la gestión de la infraestructura de su sistema de pedidos en línea Durante los periodos de alta demanda con Como por ejemplo los fines de semana o eventos especiales entonces básicamente qué es lo que hicieron ellos para poder solucionar esta este problema que tenían primero implementaron el uso de firebase Hosting y por otro lado implementaron las Cloud functions de firebase para poder ejecutar toda la lógica de su backend de manera serverless y todo esto de firebase todo este entorno está soportado por Google Cloud entonces después de haber hecho esta implementación Y de utilizar esta tecnología básicamente han logrado mejorar sus tiempos de respuesta ya no tienen demoras en el tema de los pedidos su sitio no se ha caído y pueden soportar tranquilamente los picos de alta demanda que tengan Durante los fines de semana o durante eventos especiales por otro lado tenemos a Nike que al igual que que Dominos Pizza ha hecho el uso de la tecnología serverless para poder mejorar su experiencia de compra en línea en este caso Nike que que sabemos muy bien que es una empresa global de ropa y calzado deportivo enfrentaba las dificultades de la implementación lenta de nuevas características en su plataforma de comercio electrónico debido a que su arquitectura era monolítica entonces básicamente lo que hicieron ellos fue utilizar los servicios de Amazon web Services y específicamente implementaron el servicio de Amazon web Services lambda este servicio es similar al de firebase Cloud functions que nos permiten crear funciones específicas en la nube para que se ejecuten en en varios servidores en el mundo luego de haber hecho esta implementación Nike básicamente mejoró su velocidad de desarrollo Por qué Porque ya no se ocupaban de manejar los servidores o de preocuparse por el tamaño la capacidad el rendimiento se enfocaron netamente en en mejorar su producto en desarrollar más funcionalidades que le brinden una mejor experiencia a sus clientes y despreocuparse del tema de los servidores es importante que tomemos en cuenta aspectos técnicos clave para poder implementar serverless en nuestros negocios o nuestros comercios Cuáles son esos aspectos técnicos clave por un lado tenemos la arquitectura de microservicios que básicamente considera Cómo dividir las funcionalidades de tu e-commerce en microservicios para qué Para que estos se ejecuten de manera Autónoma y no tener todo centralizado en uno entonces es importante que nosotros dividamos estas tareas y identifiquemos cuáles son las funcionalidades más importantes de nuestro negocio para poder trasladarlas por otro lado también es importante poder gestionar las dependencias y versiones en este caso utilizar herramientas de gestión de dependencias como npm que básicamente nos va ayudar a controlar las versiones de los paquetes que estamos utilizando en nuestra solución También es importante tomar en cuenta la seguridad y la autenticación si bien estamos utilizando servicios de un proveedor en la nube depende de nosotros la configuración de seguridad que le demos estos nos van a proveer todas las herramientas posibles de seguridad pero si no realizamos una configuración correcta obviamente nuestro sitio corren riesgo Entonces es importante utilizar servicios de autenticación y autorización para el control de acceso tanto para las funciones y tanto para los datos que manejamos por otro lado también es importante considerar el el monitoreo es importante implementar soluciones que nos permitan monitorear nuestras funciones y supervisar su rendimiento Cómo están funcionando Cuántas veces están siendo ejecutadas y todo esto También es importante tomar en cuenta para el tema del pricing el hecho de que yo les haya puesto Este ejemplo de que a nosotros nos cuesta 0.0006 centavos de dólar cada transacción no significa que todo vaya a costar así esto lo hemos conseguido tomando en cuenta todos estos aspectos técnicos que son clave e implementando mejoras y optimizando todas las consultas ahora vamos a hablar de Consejos prácticos para poder implementar el serverless en nuestra solución de e-commerce vamos a mencionar cuatro consejos prácticos por un lado está el tema de las pruebas unitarias y la automatización si bien no nos gusta mucho este tema de las pruebas unitarias al manejar una arquitectura serverless es importante tenerlas escribir estas pruebas para las funciones serverless que tengamos y automatizar además este proceso de pruebas ya que se Ejecutan en la nube de nuestro proveedor es importante tenerlas funcionando al 100% y poder mitigar la mayor cantidad de errores por otro lado como les comentaba anteriormente la optimización del rendimiento es sumamente importante porque así como el modelo es eh de pago por uso si nosotros no implementamos bien el rendimiento la cantidad de solicitudes que realizamos estas funciones en la nube nuestros costos se pueden disparar pero si tomamos en cuenta nosotros el tema de optimizar el rendimiento de las funciones los tiempos de ejecución maximizando la eficiencia de los recursos no vamos a tener ningún problema Entonces es importante medir el rendimiento y ver de que esté al máximo por otro lado también es importante gestionar el ciclo de vida qué podemos utilizar aquí herramientas de integración continua y de entrega continua para poder tener automatizados nuestros procesos de deployment y de integración tenemos varias herramientas como github para poder hacer esta ación lo mismo podemos hacer en gitlab tenemos ambas opciones para poder automatizar tanto la integración como la entrega de nuestros productos Y por último el tema de la escala automática es importante diseñar nuestras funciones para poder manejar estos picos de alto tráfico y poder evitar las fallas hay que poder hay que distribuir la carga de manera eficiente y mitigar los errores al máximo o poder manejarlos de manera correcta cosa de que que nuestros clientes nuestros usuarios puedan tener una respuesta a lo que están haciendo O a lo que está pasando ahora vamos a hablar de estrategias de la implementación de serverless qué es lo que tenemos que hacer y cuáles son los pasos que debemos de cumplir primero debemos evaluar nuestra infraestructura actual tenemos que identificar áreas de oportunidad donde serverless pueda ofrecer beneficios en nuestro caso como les comentaba nosotros teníamos un servidor fijo por el cual pagamos un monto específico cada mes y no era útil Por qué Porque dependía mucho de la cantidad de eventos que teníamos de la estacionalidad de los mismos eventos entonces puede que un día hayamos vendido 1000 entradas como otro día haber vendido 300,000 entradas Entonces esto nos ha permitido a nosotros identificar que tenemos picos Enton Entonces al al identificar estos picos de de de tráfico que teníamos en nuestra web vimos que lo más importante era mejorar esta parte del sistema de obtener pedidos el tema de reportes ir moviéndolo a la arquitectura serverless por otro lado es importante identificar los casos de uso no es necesario que implementos serverless en todo nuestro sistema podemos ir haciendo en cosas en específico donde vemos que por ej ejemplo se generan los mayores picos de tráfico esto puede ser paulatino y una vez que tengamos identificados los casos de uso que vamos a implementar vamos a poder ver dónde implementar esta tecnología por otro lado también es importante seleccionar una plataforma como les mencionaba tenemos las plataformas de aws tenemos las plataformas de Google y de firebase para poder hacer estas implementaciones tenemos que ver con cuál de estas tecnologías estamos más familiarizados y en base a eso definir cuál vamos a utilizar es importante también que podamos diseñar una arquitectura serverless tener en cuenta los principios del diseño de microservicios y la escalabilidad automática para que podamos nosotros identificar Qué cosas de nuestro sistema van a utilizar serverless Y cómo va a estar todo en microservicios y distribuido de manera eficiente y correcta También es importante poder desarrollar y probar estas funciones es ir cambiando de función en función si nosotros teníamos un Rest Api fijo tratemos de mover una función de nuestro sistema a al serverless y probar y ver cómo funciona y cómo se comporta cosa de que no afecte el rendimiento en nuestro sitio Y por último seguir monitoreando y optimizar el rendimiento hago mucho énfasis en esto porque como les decía así como podemos tener costos muy bajos si no hacemos una correcta implementación de este serverless podemos tener también costos muy elevados al no tener Bien planificado bien estructurado y bien diseñada nuestra arquitectura de cómo se van a consumir estos servicios como recursos adicionales tenemos los sitios oficiales de las de las herramientas y los proveedores de serverless primero Amazon web Services como les digo la documentación oficial es lo máximo firebase lo mismo o Google Cloud en ellos vamos a poder encontrar la documentación oficial Y cómo implementar estas características en nuestro sistema por otro lado también es importante utilizar la plataforma de medium donde vamos a encontrar varios artículos sobre cómo implementar esta tecnología en en nuestro sistema Y por último Si queremos aprender mucho más de esto hay plataformas como udemy o como curseria donde podemos ver cursos prácticos donde vamos a aprender a cómo implementar este tipo de tecnología bueno primeramente quiero agradecerles por su tiempo y espero que todo a esta información que les he podido transmitir les haya sido muy útil les dejo ahí mi contacto Por si tienen alguna duda alguna consulta que tengan sobre cómo implementar est en comercio electrónico Así que no duden en en contactarme estoy para poder ayudarles y colaborarles en lo que sea posible y