paint-brush
O poder do código aberto e do JavaScript: a jornada da globalizaçãoby@globalping
111

O poder do código aberto e do JavaScript: a jornada da globalização

Globalping7m2023/10/05
Read on Terminal Reader

Nesta postagem do blog, compartilharei insights e aprendizados de nossas experiências com a startup e como elas influenciam nossa abordagem na Globalping. Em particular, escreverei sobre por que construímos uma plataforma de código aberto baseada em JavaScript e como essas escolhas transformaram o projeto.
featured image - O poder do código aberto e do JavaScript: a jornada da globalização
Globalping HackerNoon profile picture

Ao construir um novo produto, de repente você enfrenta inúmeros desafios e decisões. Infelizmente, não existe uma fórmula mágica para fazer as escolhas certas, quer você esteja apenas começando ou seja um empresário experiente. Tendo trilhado esse caminho diversas vezes em equipe, entendemos a emoção e a preocupação que isso pode trazer.


Somos uma pequena equipe que lançou recentemente a Globalping , uma plataforma global de testes de rede. Este projeto é especial porque é a nossa segunda tentativa depois que uma startup com uma ideia de produto semelhante não alcançou o resultado desejado. Com a Globalping, estamos adotando uma abordagem diferente para alcançar nossos objetivos e visão para o produto.


Nesta postagem do blog, compartilharei insights e aprendizados de nossas experiências com a startup e como elas influenciam nossa abordagem na Globalping. Em particular, escreverei sobre por que construímos uma plataforma de código aberto baseada em JavaScript e como essas escolhas transformaram o projeto.

Reflita e Aprenda: Crescendo com Experiências Passadas

Vamos voltar alguns anos, quando fundamos uma startup chamada PerfOps. A ideia era construir uma plataforma SaaS B2B para otimizar aplicações baseadas na Internet. Ele usou dados RUM (Real User Monitoring) para coletar métricas de desempenho em provedores de CDN e habilitar a funcionalidade de balanceamento de carga Multi-CDN.


Como bônus, também permitiu que os usuários executassem solicitações de medição de rede, como traceroute e escavação, em diferentes locais do mundo.


Como muitas startups, precisávamos de financiamento. A sorte estava do nosso lado quando recebemos apoio de VC, o que nos permitiu formar uma equipe e alugar centenas de VMs (máquinas virtuais) para construir uma rede global para testes de rede sob demanda. Como resultado, poderíamos desenvolver novas tecnologias para analisar bilhões de pontos de dados RUM e utilizá-los no balanceamento de carga baseado em DNS em tempo real.


Embora este empreendimento não tenha funcionado como previsto, a experiência adquirida foi inestimável e molda o caminho da Globalping hoje.


Algumas lições:

  • A pressão amortece a paixão : o investimento em capital de risco nos incentivou a mudar o ritmo e as prioridades do nosso trabalho. À medida que nos concentrámos em cumprir as métricas para garantir a próxima ronda de financiamento e mudámos as nossas prioridades de pequenas empresas e utilizadores individuais para empresas maiores, sentimos a alegria e o entusiasmo pela nossa ideia desaparecerem.


  • Construindo para os usuários : Desenvolver o produto para atender às expectativas dos investidores muitas vezes não correspondia à nossa visão de construir o que nossos usuários precisavam. Focar no que os usuários desejam e precisam é importante, desde que você entenda o setor e o mercado, algo com o qual nossos investidores não tinham experiência e pressionaram para melhorar diferentes métricas e prioridades que eram incompatíveis.


  • Os dados RUM não são confiáveis . Embora úteis em grandes quantidades, rapidamente ficou claro que a maioria dos dados do Real User Monitoring (RUM) eram problemáticos e não ideais para depurar problemas de rede. Você nunca saberia se o problema estava no CDN ou no cliente que estava executando o teste. Além disso, os dados RUM não são reproduzíveis; depois que um teste é executado, não há como executá-lo novamente no mesmo local para avaliar o impacto de suas alterações.


  • Caixas pretas não ajudam . Como uma empresa apoiada por VC, tínhamos que manter todo o código e dados em segredo e escondidos do público. Nossos usuários nunca puderam verificar a autenticidade e precisão dos dados que lhes são mostrados. Além disso, qualquer um poderia alegar que alteramos manualmente as classificações de desempenho em favor dos clientes que pagam mais, sem ser capaz de provar o contrário.


Mas mesmo após o infeliz destino da startup, ainda vimos o potencial e a necessidade de testes de rede e monitoramento de desempenho precisos, abertos e confiáveis. E assim nasceu a Globalping, uma segunda oportunidade para fazer as coisas de forma diferente e aproveitar experiências para criar um serviço melhor para os nossos utilizadores e para nós próprios. Agora, deixe-nos compartilhar com você como fazemos isso.

Adotando o código aberto e colocando os usuários em primeiro lugar

Acreditamos que foi uma progressão natural tornar o Globalping um projeto de código aberto. Pela primeira vez, já estamos familiarizados com o conceito. Executamos o jsDelivr há cerca de 10 anos, um serviço gratuito, de código aberto e multi-CDN que atende mais de 230 bilhões de solicitações mensais.


Portanto, já sabíamos os prós e os contras do código aberto, o que fazer e o que evitar – quanto mais pensávamos sobre isso, mais fazia sentido que o Globalping fosse de código aberto.


As principais razões para tornar o Globalping open source foram:

  • Aproveitando a comunidade : A maioria das pessoas que contribuem para o projeto também o utiliza. Assim, eles ajudam a construir sua própria ferramenta e a obter os recursos desejados, contribuindo com suas habilidades ou simplesmente dando feedback. Além disso, a Globalping cresce com a sua comunidade porque, em vez de alugar VMs para construir a rede de teste, contamos com a comunidade para hospedar sondas Globalping em suas casas e escritórios.


  • Utilizando jsDelivr : construir uma comunidade não acontece da noite para o dia. Felizmente, já temos uma grande comunidade apoiando nosso outro projeto, jsDelivr. Muitos usuários e apoiadores existentes podem ingressar no Globalping devido à sobreposição técnica: o jsDelivr fornece infraestrutura distribuída globalmente e o Globalping é uma forma de monitorar, testar, depurar e comparar esses sistemas globais.


  • Construindo para todos : Com a pressão do crescimento e do lucro reduzida, podemos agora concentrar-nos na construção de uma plataforma que seja acessível a todos. A plataforma é gratuita, com limites generosos, oferecendo os mesmos recursos para todos, sejam eles uma grande empresa ou um estudante que está apenas aprendendo como funciona a Internet.


  • Ser transparente : o código aberto torna nosso trabalho transparente e visível para todos. Qualquer pessoa pode revisar nosso código e lógica, sejam nossos testes ou API principal. Isso nos ajuda a validar nossas reivindicações de segurança e privacidade e a garantir aos usuários que somos justos e não vendemos classificações ou usamos algoritmos tendenciosos para calcular o desempenho da CDN. Além disso, qualquer pessoa ou empresa que encontrar um problema com o código ou funcionalidade pode enviar um patch, solicitando a adição de sua atualização ou correção.


Naturalmente, o código aberto também tem os seus desafios. O desenvolvimento de produtos requer desenvolvedores, designers, profissionais de marketing e especialistas em relações com desenvolvedores. E embora tenhamos o apoio de especialistas em tecnologia da nossa comunidade, ainda trabalhamos com uma equipe principal que é remunerada pelo seu trabalho.


Em vez de depender de financiamento de capital de risco, agora estamos construindo parcerias com empresas com ideias semelhantes e buscando apoio de patrocinadores do GitHub, cujas doações nos mantêm funcionando.

Escolhendo JavaScript para desenvolver Globalping

A próxima decisão importante foi a tecnologia com a qual queríamos construir o Globalping. Escolhemos o JavaScript com confiança, contando com nossa experiência na operação de aplicativos JavaScript em grande escala e em tempo real.


Os benefícios da nossa familiaridade com a linguagem já valeram a pena, permitindo-nos construir novos recursos com mais rapidez e encontrar e corrigir bugs com mais facilidade do que com linguagens menos familiares.


Além disso, a popularidade do JavaScript entre desenvolvedores de aplicativos e web em todo o mundo tornou-o uma escolha óbvia para nós. A linguagem possui um ecossistema rico e robusto de ferramentas, bibliotecas e pacotes que se alinham aos nossos objetivos de desenvolvimento. Ao utilizar outros projetos de código aberto, podemos aproveitar o conhecimento e os esforços da comunidade, evitando reinventar a roda.


Como o próprio JavaScript tem uma vasta comunidade, existem muitos contribuidores potenciais para o Globalping. E como o código JavaScript é bastante simples de ler, é mais fácil para os recém-chegados navegar e compreender o código-fonte.


Como resultado, os desenvolvedores podem contribuir mais rapidamente, o que mantém a motivação elevada e impulsiona o projeto.


Em última análise, embora a nossa equipa principal trabalhe continuamente no Globalping, qualquer contribuição para a plataforma será bem-vinda . Ao escolher o JavaScript, podemos manter um ambiente aberto e colaborativo que convida qualquer pessoa interessada em tornar o Globalping uma plataforma de testes de rede útil e fácil de usar.

Usando Globalping você mesmo ou em sua equipe

Por fim, gostaríamos de apresentar brevemente a plataforma Globalping e esperamos despertar sua curiosidade em testá-la para melhorar a solução de problemas e os testes de rede em suas equipes!


Obtenha acesso rápido aos resultados de medição: desenvolvemos uma variedade de integrações para atender às necessidades de diferentes usuários, sejam eles profissionais de rede ou novatos. Se você se sentir mais confortável com seu terminal, use nossa ferramenta CLI . Nosso bot GitHub e aplicativo Slack são ótimos auxiliares para equipes que trabalham juntas em problemas de rede.


Por fim, você também pode utilizar o Globalping em uma interface gráfica simples e amigável em nosso site para realizar testes quando não tiver acesso à sua configuração habitual, por exemplo.


Escreva comandos de forma consistente em todas as integrações: como não queremos que você aprenda tudo do zero sempre que mudar de integração, implementamos uma estrutura de comando uniforme. Em geral, todos os comandos Globalping seguem o mesmo formato:

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


Assim, por exemplo, para executar ping para jsdelivr.com de Viena e Berlim usando dois testes (definidos com o sinalizador limit), você escreve o seguinte comando:

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


E é assim que o resultado poderia ser:

ping de qualquer lugar do mundo usando Globalping


Crie suas próprias ferramentas com nossa API: Quer construir sua própria ferramenta usando a plataforma Globalping? Não tem problema – você pode usar nossa API REST (com limites generosos) para criar o que quiser!


Torne-se parte da rede: Globalping depende de uma rede distribuída globalmente de sondas alimentadas por nossa comunidade. Temos o prazer de dar as boas-vindas a qualquer pessoa que configure uma investigação no Docker em sua casa, escritório ou servidores para ajudar a fornecer resultados confiáveis a todos os usuários gratuitamente.

Olhando para o Futuro: Construindo a Globalização Juntos

Hoje, estamos felizes em ver como a Globalping evolui e cresce, moldada pelas nossas experiências e aprendizados passados. Eventualmente, esperamos que o Globalping se torne a plataforma ideal para qualquer coisa relacionada ao desempenho, latência e tempo de atividade da Internet.


Continuaremos refinando os recursos e oferecendo uma ótima experiência ao usuário para que qualquer pessoa interessada possa usar a plataforma.