paint-brush
El poder del código abierto y JavaScript: el viaje del globalpingby@globalping
111

El poder del código abierto y JavaScript: el viaje del globalping

Globalping7m2023/10/05
Read on Terminal Reader

En esta publicación de blog, compartiré ideas y aprendizajes de nuestras experiencias con la startup y cómo influyen en nuestro enfoque en Globalping. En particular, escribiré sobre por qué construimos una plataforma de código abierto basada en JavaScript y cómo estas opciones han transformado el proyecto.
featured image - El poder del código abierto y JavaScript: el viaje del globalping
Globalping HackerNoon profile picture

Al crear un nuevo producto, de repente te enfrentas a innumerables desafíos y decisiones. Lamentablemente, no existe una fórmula mágica para tomar las decisiones correctas, ya sea que recién esté comenzando o sea un emprendedor experimentado. Habiendo recorrido este camino varias veces como equipo, entendemos la emoción y la preocupación que puede generar.


Somos un pequeño equipo que lanzó recientemente Globalping , una plataforma de prueba de red global. Este proyecto es especial porque es nuestro segundo intento después de que una startup con una idea de producto similar no alcanzara el resultado deseado. Con Globalping, estamos adoptando un enfoque diferente para alcanzar nuestros objetivos y nuestra visión del producto.


En esta publicación de blog, compartiré ideas y aprendizajes de nuestras experiencias con la startup y cómo influyen en nuestro enfoque en Globalping. En particular, escribiré sobre por qué construimos una plataforma de código abierto basada en JavaScript y cómo estas opciones han transformado el proyecto.

Reflexionar y aprender: crecer a partir de experiencias pasadas

Retrocedamos unos años, cuando fundamos una startup llamada PerfOps. La idea era construir una plataforma B2B SaaS para optimizar aplicaciones basadas en Internet. Utilizó datos de RUM (Real User Monitoring) para recopilar métricas de rendimiento en proveedores de CDN y habilitar la funcionalidad de equilibrio de carga Multi-CDN.


Como beneficio adicional, también permitió a los usuarios ejecutar solicitudes de medición de red como traceroute y excavar desde diferentes ubicaciones en todo el mundo.


Como muchas empresas emergentes, necesitábamos financiación. La suerte estuvo de nuestro lado cuando recibimos el respaldo de VC, lo que nos permitió formar un equipo y alquilar cientos de VM (máquinas virtuales) para construir una red global para pruebas de red bajo demanda. Como resultado, podríamos desarrollar nuevas tecnologías para analizar miles de millones de puntos de datos RUM y utilizarlos en el equilibrio de carga basado en DNS en tiempo real.


Si bien esta empresa no funcionó como se había previsto, la experiencia adquirida fue invaluable y da forma al camino de Globalping en la actualidad.


Algunas conclusiones:

  • La presión frena la pasión : la inversión en capital riesgo nos instó a cambiar el ritmo y las prioridades de nuestro trabajo. A medida que nos concentramos en cumplir con las métricas para asegurar la siguiente ronda de financiamiento y cambiamos nuestras prioridades de las pequeñas empresas y los usuarios individuales a las empresas más grandes, sentimos que la alegría y el entusiasmo por nuestra idea se desvanecían.


  • Creación para los usuarios : desarrollar el producto para satisfacer las expectativas de los inversores a menudo no coincidía con nuestra visión de crear lo que nuestros usuarios necesitaban. Centrarse en lo que los usuarios quieren y necesitan es importante siempre y cuando se comprenda la industria y el mercado, algo con lo que nuestros inversores no tenían experiencia y presionaron para mejorar diferentes métricas y prioridades que eran incompatibles.


  • Los datos de RUM no son fiables . Si bien eran útiles en grandes cantidades, rápidamente se hizo evidente que la mayoría de los datos de Real User Monitoring (RUM) eran problemáticos y no ideales para depurar problemas de red. Nunca se podría saber si el problema radica en la CDN o en el cliente que ejecuta la prueba. Además, los datos de RUM no son reproducibles; Una vez ejecutada una prueba, no hay forma de volver a ejecutarla desde la misma ubicación para evaluar el impacto de los cambios.


  • Las cajas negras no ayudan . Como empresa respaldada por capital de riesgo, teníamos que mantener todo el código y los datos en secreto y ocultos al público. Nuestros usuarios nunca podrían verificar la autenticidad y exactitud de los datos que se les muestran. Además, cualquiera podría afirmar que cambiamos manualmente las clasificaciones de rendimiento a favor de los clientes que pagan más sin poder demostrar lo contrario.


Pero incluso después del desafortunado destino de la startup, todavía vimos el potencial y la necesidad de realizar pruebas de red y monitoreo del rendimiento precisos, abiertos y confiables. Y así nació Globalping, una segunda oportunidad para hacer las cosas diferentes y aprovechar las experiencias para crear un mejor servicio para nuestros usuarios y para nosotros mismos. Ahora, permítanos compartir con usted cómo lo hacemos.

Adoptar el código abierto y poner a los usuarios en primer lugar

Creemos que fue una progresión natural hacer de Globalping un proyecto de código abierto. Por una vez, ya estamos familiarizados con el concepto. Hemos estado ejecutando jsDelivr durante aproximadamente 10 años, un servicio multi-CDN gratuito, de código abierto que atiende más de 230 mil millones de solicitudes mensuales.


Así que ya conocíamos los pros y los contras del código abierto, qué hacer y qué evitar; cuanto más pensábamos en ello, más sentido tenía que Globalping debía ser de código abierto.


Las principales razones para hacer que Globalping fuera de código abierto fueron:

  • Aprovechar la comunidad : la mayoría de las personas que contribuyen al proyecto también lo utilizan. Por lo tanto, ayudan a crear su propia herramienta y obtienen las funciones deseadas contribuyendo con sus habilidades o simplemente dando comentarios. Además, Globalping crece con su comunidad porque, en lugar de alquilar máquinas virtuales para construir la red de prueba, confiamos en la comunidad para alojar las sondas de Globalping en sus hogares y oficinas.


  • Utilizando jsDelivr : la construcción de una comunidad no ocurre de la noche a la mañana. Afortunadamente, ya contamos con una gran comunidad que apoya nuestro otro proyecto, jsDelivr. Muchos usuarios y seguidores existentes pueden unirse a Globalping debido a la superposición técnica: jsDelivr proporciona una infraestructura distribuida globalmente y Globalping es una forma de monitorear, probar, depurar y comparar dichos sistemas globales.


  • Construyendo para todos : con la presión del crecimiento y las ganancias reducida, ahora podemos concentrarnos en construir una plataforma que sea accesible para todos. La plataforma es gratuita, con límites generosos y ofrece las mismas funciones a todos, ya sean una gran empresa o un estudiante que recién está aprendiendo cómo funciona Internet.


  • Ser transparente : el código abierto hace que nuestro trabajo sea transparente y visible para todos. Cualquiera puede revisar nuestro código y nuestra lógica, ya sean nuestras sondas o nuestra API principal. Esto nos ayuda a validar nuestras afirmaciones de seguridad y privacidad y asegurarles a los usuarios que somos justos y que no vendemos calificaciones ni utilizamos algoritmos sesgados para calcular el rendimiento de CDN. Además, cualquier persona o empresa que encuentre un problema con el código o la funcionalidad puede enviar un parche y solicitar agregar su actualización o solución.


Naturalmente, el código abierto también tiene sus desafíos. El desarrollo de productos requiere desarrolladores, diseñadores, especialistas en marketing y expertos en relaciones con desarrolladores. Y aunque contamos con el apoyo de expertos en tecnología de nuestra comunidad, seguimos trabajando con un equipo central que recibe una compensación por su trabajo.


En lugar de depender de la financiación de capital de riesgo, ahora estamos creando asociaciones con empresas con ideas afines y buscando apoyo de patrocinadores de GitHub, cuyas donaciones nos mantienen funcionando.

Elegir JavaScript para desarrollar Globalping

La siguiente decisión importante fue la tecnología con la que queríamos construir Globalping. Elegimos JavaScript con confianza, basándonos en nuestra experiencia en la operación de aplicaciones JavaScript a gran escala y en tiempo real.


Los beneficios de nuestra familiaridad con el idioma ya han dado sus frutos, permitiéndonos crear nuevas funciones más rápido y encontrar y corregir errores más fácilmente que con idiomas menos familiares.


Además, la popularidad de JavaScript entre los desarrolladores web y de aplicaciones de todo el mundo lo convirtió en una opción obvia para nosotros. El lenguaje tiene un ecosistema rico y sólido de herramientas, bibliotecas y paquetes que se alinean con nuestros objetivos de desarrollo. Al utilizar otros proyectos de código abierto, podemos aprovechar el conocimiento y los esfuerzos de la comunidad, evitando reinventar la rueda.


Dado que JavaScript tiene una vasta comunidad, hay muchos contribuyentes potenciales a Globalping. Y debido a que el código JavaScript es en su mayor parte sencillo de leer, es más fácil para los recién llegados navegar y comprender el código fuente.


Como resultado, los desarrolladores pueden contribuir más rápido, lo que mantiene alta la motivación e impulsa el proyecto.


En última instancia, mientras nuestro equipo central trabaja continuamente en Globalping, agradecemos cualquier contribución a la plataforma. Al elegir JavaScript, podemos mantener un entorno abierto y colaborativo que invita a cualquier persona interesada a hacer de Globalping una plataforma de prueba de red útil y fácil de usar.

Cómo utilizar Globalping usted mismo o en su equipo

Finalmente, nos gustaría presentarle brevemente la plataforma Globalping y, con suerte, despertar su curiosidad para probarla y mejorar la resolución de problemas y las pruebas de red en sus equipos.


Obtenga acceso rápido a los resultados de las mediciones: hemos desarrollado una variedad de integraciones para satisfacer las necesidades de diferentes usuarios, ya sean profesionales de la red o novatos. Si se siente más cómodo con su terminal, utilice nuestra herramienta CLI . Nuestro bot de GitHub y la aplicación Slack son excelentes ayudas para los equipos que trabajan juntos en problemas de red.


Finalmente, también puedes utilizar Globalping en una interfaz gráfica sencilla y fácil de usar en nuestro sitio web para ejecutar pruebas cuando no tengas acceso a tu configuración habitual, por ejemplo.


Escriba comandos de manera consistente en todas las integraciones: dado que no queremos que aprenda todo desde cero cada vez que cambie de integraciones, hemos implementado una estructura de comandos uniforme. En general, todos los comandos de Globalping siguen el mismo formato:

 globalping [command type] [target] from [location] [flags]


Entonces, por ejemplo, para ejecutar ping a jsdelivr.com desde Viena y Berlín usando dos sondas (definidas con el indicador de límite), escriba el siguiente comando:

 globalping ping jsdelivr.com from "Vienna, Berlin" --limit 2


Y así es como podría verse el resultado:

hacer ping desde cualquier parte del mundo usando Globalping


Crea tus propias herramientas con nuestra API: ¿Quieres crear tu propia herramienta utilizando la plataforma Globalping? No hay problema: ¡puedes usar nuestra API REST (con límites generosos) para crear lo que quieras!


Sea parte de la red: Globalping se basa en una red de sondas distribuidas globalmente impulsadas por nuestra comunidad. Nos complace dar la bienvenida a cualquiera que configure una sonda en Docker en su hogar, oficina o servidores para ayudar a brindar resultados confiables a todos los usuarios de forma gratuita.

Mirando hacia el futuro: construyendo juntos la globalización

Hoy, estamos felices de ver cómo Globalping evoluciona y crece, moldeado por nuestras experiencias y aprendizajes pasados. Con el tiempo, esperamos que Globalping se convierta en la plataforma de referencia para todo lo relacionado con el rendimiento, la latencia y el tiempo de actividad de Internet.


Continuaremos perfeccionando las funciones y brindando una excelente experiencia de usuario para que cualquier persona interesada pueda usar la plataforma.