Creo que el tour de Go es por lejos la mejor introducción a un lenguaje que he visto, es realmente simple y le brinda una buena visión general de probablemente el 80 por ciento del idioma. Cuando queremos que los desarrolladores aprendan Go y lleguen rápidamente a la producción, les decimos que comiencen con el recorrido por Go.
Go ayuda al ecosistema integrado a atraer desarrolladores y escalar el comercio electrónico
MercadoLibre, Inc. alberga el ecosistema de comercio en línea más grande de América Latina y está presente en 18 países. Fundada en 1999 y con sede en Argentina, la empresa recurrió a Go para ayudarla a escalar y modernizar su ecosistema. Go proporciona código limpio y eficiente que escala fácilmente a medida que crece el comercio en línea de MercadoLibre y aumenta la productividad de los desarrolladores al permitir que sus ingenieros atiendan a su audiencia cada vez mayor mientras escriben menos código.
MercadoLibre busca escalar
Allá por 2015, había una creciente sensación dentro de MercadoLibre de que su framework API existente, en Groovy y Grails, estaba llegando a sus límites y la empresa necesitaba una plataforma diferente para continuar escalando. La plataforma de MercadoLibre se expandió (y continúa) exponencialmente, lo que generó mucho trabajo adicional para sus desarrolladores: tanto Groovy como Grails requieren muchas decisiones por parte de los desarrolladores y Groovy es un lenguaje de programación dinámico. Esta no era una buena combinación para escalar rápidamente el crecimiento, ya que MercadoLibre necesitaba desarrolladores muy experimentados en este entorno con muchos recursos para desarrollar y ajustar para lograr el rendimiento deseado. Los tiempos de ejecución de las pruebas fueron lentos y los tiempos de construcción e implementación fueron lentos. Por lo tanto, la necesidad de eficiencia y escalabilidad del código se volvió tan importante como la necesidad de velocidad en el desarrollo del código.
Go mejora la eficiencia del sistema
Como ejemplo de las contribuciones de Go a la eficiencia de la red, el equipo central de API construye y mantiene las API más grandes en el centro de las soluciones de microservicios de la empresa. Este equipo crea API de usuario, que a su vez son utilizadas por MercadoLibre Marketplace, por la plataforma MercadoPago FinTech, por las soluciones de envío y logística de MercadoLibre y otras soluciones alojadas. Con los altos niveles de servicio que exigen estas soluciones (la API de usuario promedio tiene entre ocho y diez millones de solicitudes por minuto), el equipo emplea Go para atenderlas en menos de diez milisegundos por solicitud.
El equipo de API también implementa contenedores Docker, un producto de software como servicio (SaaS), también escrito en Go, para virtualizar su desarrollo e implementar fácilmente sus microservicios a través de Docker Engine. Este sistema admite API más grandes y de misión crítica que manejan más de 20 millones de solicitudes por minuto en Go.
Una API hizo un uso importante de las primitivas de concurrencia de Go para multiplexar de manera eficiente las ID de varios servicios. El equipo pudo lograr esto con solo unas pocas líneas de código Go, y el éxito de esta API convenció al equipo central de API de migrar cada vez más microservicios a Go. El resultado final para MercadoLibre ha sido una mejor rentabilidad y tiempos de respuesta del sistema.
Apuesta por la escalabilidad
Históricamente, gran parte del stack de la empresa se basaba en Grails y Groovy respaldados por bases de datos relacionales. Sin embargo, pronto se descubrió que este gran framework con múltiples capas tenía problemas de escalabilidad.
La conversión de esa arquitectura heredada a Go como un framework nuevo y muy delgado para crear API simplificó esas capas intermedias y produjo grandes beneficios de rendimiento. Por ejemplo, un gran servicio Go ahora puede ejecutar 70.000 solicitudes por máquina con solo 20 MB de RAM.
“Go fue simplemente maravilloso para nosotros. Es muy potente y muy fácil de aprender, y con la infraestructura backend, ha sido fantástico para nosotros en términos de escalabilidad”.
Usar Go le permitió a MercadoLibre reducir la cantidad de servidores que usan para este servicio a un octavo del número original (de 32 servidores a cuatro), más cada servidor puede funcionar con menos energía (originalmente cuatro núcleos de CPU, ahora hasta dos núcleos de CPU). Con Go, la empresa obvió el 88 por ciento de sus servidores y redujo la CPU en los restantes a la mitad, lo que produjo un enorme ahorro de costos.
Sentado entre los desarrolladores y los proveedores de la nube, MercadoLibre utiliza una plataforma llamada Fury, una herramienta de plataforma como servicio para crear, implementar, monitorear y administrar servicios de manera independiente de la nube. Como resultado, cualquier equipo que quiera crear un nuevo servicio en Go tiene acceso a plantillas comprobadas para una variedad de tipos de servicios y puede crear rápidamente un repositorio en GitHub con código de inicio, una imagen de Docker para el servicio y un proceso de implementación. El resultado final es un sistema que permite a los ingenieros centrarse en la creación de servicios innovadores y, al mismo tiempo, evitar las tediosas etapas de configuración de un nuevo proyecto, y al mismo tiempo estandarizar eficazmente los procesos de construcción e implementación.
Hoy en día, aproximadamente la mitad del tráfico de Mercadolibre es manejado por aplicaciones Go.
MercadoLibre usa Go para desarrolladores
Las lenguas francas de programación para la infraestructura de MercadoLibre actualmente son Go y Java. Cada aplicación, cada programa, cada microservicio está alojado en su propio repositorio de GitHub, además la empresa utiliza un repositorio GitHub adicional de kits de herramientas para resolver nuevos problemas y permitir que los clientes interactúen con sus servicios.
Estos extensos y bien seleccionados kits de herramientas de Go y Java permiten a los programadores desarrollar nuevas aplicaciones rápidamente y con un excelente soporte. Además, en una comunidad de más de 2800 desarrolladores, MercadoLibre tiene múltiples grupos internos disponibles para chatear y recibir orientación sobre la implementación de Go, ya sea en diferentes centros de desarrollo o en diferentes países. La compañía también fomenta grupos de trabajo internos para brindar sesiones de capacitación para nuevos desarrolladores de MercadoLibre Go y organiza reuniones de Go para desarrolladores externos para ayudar a construir una comunidad más amplia de desarrolladores de Go latinoamericanos.
Go como herramienta de reclutamiento
La promoción Go de MercadoLibre también se ha convertido en una fuerte herramienta de reclutamiento para la empresa. MercadoLibre fue una de las primeras empresas que utilizó Go en Argentina, y es quizás la más grande de América Latina que utiliza el lenguaje de manera tan amplia en la producción. Con sede en Buenos Aires, con muchas empresas emergentes y de tecnología emergentes cercanas, la adopción de Go por parte de MercadoLibre ha dado forma al mercado de desarrolladores en toda la Pampa.
“Realmente estamos de acuerdo con la filosofía más amplia del lenguaje. Nos encanta la simplicidad de Go y descubrimos que tener un manejo de errores muy explícito ha sido una ganancia para los desarrolladores porque da como resultado un código más seguro y estable en producción”.
Buenos Aires es hoy un mercado muy competitivo para programadores, ofrece a los programadores informáticos muchas opciones de empleo, y la alta demanda de tecnología en la región impulsa grandes salarios, grandes beneficios y la capacidad de ser selectivo a la hora de elegir un empleador. Como tal, MercadoLibre—como todos los empleadores de ingenieros y programadores en la región—se esfuerza por brindar un lugar de trabajo apasionante y una trayectoria profesional sólida. Go ha demostrado ser un diferenciador clave para MercadoLibre: la empresa organiza talleres de Go para desarrolladores externos para que puedan venir y aprender Go, y cuando disfrutan de lo que están haciendo y de las personas con las que hablan, rápidamente reconocen a MercadoLibre como un lugar atractivo para trabajar. .
Go habilitando desarrolladores
MercadoLibre emplea Go por su simplicidad con sistemas a escala, pero esa simplicidad también es la razón por la que a los desarrolladores de la empresa les encanta Go.
La empresa también utiliza páginas web como Go con ejemplos y EffectiveGo para educar a nuevos programadores y comparte API internas representativas escritas en Go para acelerar la comprensión y el dominio. Los desarrolladores de MercadoLibre obtienen los recursos que necesitan para adoptar el lenguaje y luego aprovechan sus propias habilidades y entusiasmo para comenzar a programar.
"Go ha sido excelente para escribir lógica empresarial y nosotros somos el equipo que escribe esas API".
MercadoLibre aprovecha la sintaxis limpia y expresiva de Go para facilitar a los desarrolladores la escritura de programas que se ejecuten de manera eficiente en plataformas modernas en la nube. Y si bien la velocidad en el desarrollo genera rentabilidad para la empresa, los desarrolladores se benefician individualmente de la rápida curva de aprendizaje que ofrece Go. Los ingenieros experimentados de MercadoLibre no sólo son capaces de crear aplicaciones altamente críticas muy rápidamente con Go, sino que incluso los ingenieros principiantes han podido escribir servicios que, en otros lenguajes, MercadoLibre sólo confiaría a desarrolladores más experimentados. Por ejemplo, un conjunto clave de API de usuario (que manejan casi diez millones de solicitudes por minuto) fue desarrollado por ingenieros de software principiantes, muchos de los cuales solo sabían de programación gracias a cursos recientes en la universidad. De manera similar, MercadoLibre ha visto a desarrolladores que ya dominan otros lenguajes de programación (como Java, .NET o Ruby) aprender Go lo suficientemente rápido y comenzar a escribir servicios de producción en solo unas pocas semanas.
Con Go, los tiempos de compilación de MercadoLibre son tres veces (3 veces) más rápidos y su suite de test se ejecuta sorprendentemente 24 veces más rápido. Esto significa que los desarrolladores de la empresa pueden realizar un cambio, luego crearlo y probarlo mucho más rápido que antes.
Y reducir los tiempos de ejecución del conjunto de pruebas de MercadoLibre de 90 segundos a sólo 3 segundos con Go fue una gran ayuda para sus desarrolladores, ya que les permitió mantener la concentración (y contexto) mientras se completan las pruebas mucho más rápidas.
Aprovechando este éxito, MercadoLibre se compromete no solo con la educación continua de sus programadores, sino con la educación continua en Go. La compañía envía líderes de ingeniería clave a GopherCon y otros eventos de Go cada año, los equipos de infraestructura y seguridad de MercadoLibre alientan a todos los equipos de desarrollo a mantener las versiones de Go actualizadas y la compañía tiene un equipo que desarrolla un Go-meli-toolkit: Una biblioteca Go completa para interconectar todos los servicios proporcionados por Fury.
Cómo iniciar tu empresa con Go
Así como MercadoLibre comenzó con un proyecto de prueba de concepto para implementar Go, docenas de otras grandes empresas también están adoptando Go.
Hay más de un millón de desarrolladores que utilizan Go en todo el mundo, que abarcan banca y comercio, juegos y medios, tecnología y otras industrias, en empresas tan diversas como American Express, PayPal, Capital One, Dropbox, IBM, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, y por supuesto Google.
Para obtener más información sobre cómo Go puede ayudar a tu empresa a crear software confiable y escalable como lo hace en MercadoLibre, visita go.dev hoy.
Sobre MercadoLibre
Go proporciona código limpio y eficiente que escala fácilmente a medida que crece el comercio en línea de MercadoLibre y aumenta la productividad de los desarrolladores al permitir que sus ingenieros atiendan a su audiencia cada vez mayor mientras escriben menos código.