paint-brush
Сила открытого исходного кода и JavaScript: путь глобального развитияк@globalping
132 чтения

Сила открытого исходного кода и JavaScript: путь глобального развития

к Globalping7m2023/10/05
Read on Terminal Reader

Слишком долго; Читать

В этом сообщении в блоге я поделюсь идеями и уроками из нашего опыта работы со стартапом и тем, как он влияет на наш подход в Globalping. В частности, я напишу о том, почему мы создали платформу с открытым исходным кодом на основе JavaScript и как этот выбор изменил проект.
featured image - Сила открытого исходного кода и JavaScript: путь глобального развития
Globalping HackerNoon profile picture

Создавая новый продукт, вы неожиданно сталкиваетесь с бесчисленными проблемами и решениями. К сожалению, не существует волшебной формулы, позволяющей сделать правильный выбор, независимо от того, новичок вы или опытный предприниматель. Пройдя этот путь несколько раз всей командой, мы понимаем волнение и беспокойство, которые это может вызвать.


Мы — небольшая команда, которая недавно запустила Globalping , глобальную платформу для тестирования сети. Этот проект особенный, потому что это наша вторая попытка после того, как стартап с похожей идеей продукта не достиг желаемого результата. В Globalping мы применяем другой подход для достижения наших целей и видения продукта.


В этом сообщении в блоге я поделюсь идеями и уроками из нашего опыта работы со стартапом и тем, как он влияет на наш подход в Globalping. В частности, я напишу о том, почему мы создали платформу с открытым исходным кодом на основе JavaScript и как этот выбор изменил проект.

Размышляйте и учитесь: рост на основе прошлого опыта

Давайте вернемся на несколько лет назад, когда мы основали стартап под названием PerfOps. Идея заключалась в создании B2B SaaS-платформы для оптимизации интернет-приложений. Он использовал данные RUM (Real User Monitoring) для сбора показателей производительности поставщиков CDN и включения функции балансировки нагрузки Multi-CDN.


В качестве бонуса он также позволял пользователям запускать запросы на измерение сети, такие как трассировка, и копать данные из разных мест по всему миру.


Как и многим стартапам, нам требовалось финансирование. Удача была на нашей стороне, поскольку мы получили поддержку венчурного капитала, что позволило нам собрать команду и арендовать сотни виртуальных машин (виртуальных машин) для построения глобальной сети для тестирования сети по требованию. В результате мы смогли разработать новые технологии для анализа миллиардов точек данных RUM и использовать их для балансировки нагрузки на основе DNS в режиме реального времени.


Хотя это предприятие не сработало так, как предполагалось, полученный опыт оказался бесценным и определяет сегодняшний путь Globalping.


Некоторые выводы:

  • Давление притупляет страсть : венчурные инвестиции побудили нас изменить темп и приоритеты нашей работы. Когда мы сосредоточились на достижении показателей, чтобы обеспечить следующий раунд финансирования, и сместили наши приоритеты с малого бизнеса и отдельных пользователей на более крупные предприятия, мы почувствовали, что радость и энтузиазм по поводу нашей идеи угасают.


  • Создание для пользователей . Разработка продукта для удовлетворения ожиданий инвесторов часто не соответствовала нашему видению создания того, что нужно нашим пользователям. Сосредоточение внимания на том, чего хотят и в чем нуждаются пользователи, важно, если вы понимаете отрасль и рынок, а наши инвесторы не имели опыта в этом и подталкивали к улучшению различных показателей и приоритетов, которые были несовместимы.


  • Данные РУМ недостоверны . Несмотря на то, что они были полезны в больших объемах, быстро стало очевидно, что большая часть данных реального мониторинга пользователей (RUM) проблематична и не идеальна для отладки сетевых проблем. Никогда не знаешь, связана ли проблема с CDN или с клиентом, выполняющим тест. Кроме того, данные RUM не воспроизводятся; после запуска теста невозможно повторно запустить его из того же места, чтобы оценить влияние ваших изменений.


  • Черные ящики не помогают . Как компания, поддерживаемая венчурным капиталом, нам приходилось держать весь код и данные в секрете и скрывать их от общественности. Наши пользователи никогда не могли проверить подлинность и точность показанных им данных. Более того, любой может утверждать, что мы вручную изменили рейтинг эффективности в пользу высокооплачиваемых клиентов, не имея возможности доказать обратное.


Но даже после печальной судьбы стартапа мы по-прежнему видели потенциал и необходимость точного, открытого и надежного сетевого тестирования и мониторинга производительности. Так родился Globalping, второй шанс сделать что-то по-другому и использовать опыт, чтобы создать лучший сервис для наших пользователей и нас самих. Теперь давайте поделимся с вами, как мы это делаем.

Использование открытого исходного кода и приоритет пользователей

Мы считаем, что превращение Globalping в проект с открытым исходным кодом было естественным шагом. На этот раз мы уже знакомы с этой концепцией. Мы используем jsDelivr около 10 лет — бесплатный сервис с открытым исходным кодом и несколькими CDN, который обслуживает более 230 миллиардов ежемесячных запросов.


Итак, мы уже знали плюсы и минусы открытого исходного кода, что делать и чего следует избегать – чем больше мы об этом думали, тем больше становилось понятно, что Globalping должен быть открытым исходным кодом.


Основными причинами открытия исходного кода Globalping были:

  • Использование сообщества : большинство людей, которые вносят свой вклад в проект, также используют его. Таким образом, они помогают создать свой собственный инструмент и получить желаемые функции, делясь своими навыками или просто оставляя отзывы. Кроме того, Globalping растет вместе со своим сообществом, потому что вместо того, чтобы арендовать виртуальные машины для создания тестовой сети, мы полагаемся на то, что сообщество будет размещать зонды Globalping у себя дома и в офисах.


  • Использование jsDelivr : Создание сообщества не происходит в одночасье. К счастью, у нас уже есть отличное сообщество, поддерживающее другой наш проект — jsDelivr. Многие существующие пользователи и сторонники могут присоединиться к Globalping из-за технического совпадения: jsDelivr предоставляет глобально распределенную инфраструктуру, а Globalping — это способ мониторинга, тестирования, отладки и сравнения таких глобальных систем.


  • Строительство для всех : поскольку давление роста и прибыли снизилось, мы теперь можем сосредоточиться на создании платформы, доступной для всех. Платформа бесплатна, имеет щедрые ограничения и предлагает одни и те же функции всем, будь то огромное предприятие или студент, только изучающий работу Интернета.


  • Прозрачность : открытый исходный код делает нашу работу прозрачной и видимой для всех. Любой может просмотреть наш код и логику, будь то наши зонды или основной API. Это помогает нам подтвердить наши заявления о безопасности и конфиденциальности и убедить пользователей в том, что мы честны и не продаем рейтинги и не используем предвзятые алгоритмы для расчета производительности CDN. Кроме того, любой человек или компания, обнаружившая проблему с кодом или функциональностью, может отправить исправление с просьбой добавить свое обновление или исправление.


Естественно, у открытого исходного кода есть и свои проблемы. Для разработки продукта требуются разработчики, дизайнеры, маркетологи и специалисты по связям с разработчиками. И хотя у нас есть поддержка технических экспертов из нашего сообщества, мы по-прежнему работаем с основной командой, которая получает вознаграждение за свою работу.


Вместо того, чтобы полагаться на венчурное финансирование, мы теперь строим партнерские отношения с компаниями-единомышленниками и ищем поддержки у спонсоров GitHub, чьи пожертвования помогают нам работать.

Выбор JavaScript для разработки Globalping

Следующим важным решением стала технология, с помощью которой мы хотели построить Globalping. Мы уверенно выбрали JavaScript, опираясь на свой опыт работы с крупномасштабными приложениями JavaScript, работающими в режиме реального времени.


Преимущества нашего знакомства с языком уже окупились: мы можем быстрее создавать новые функции, а также легче находить и исправлять ошибки, чем при использовании менее знакомых языков.


Кроме того, популярность JavaScript среди разработчиков приложений и веб-приложений по всему миру сделала для нас очевидным выбор. Язык имеет богатую и надежную экосистему инструментов, библиотек и пакетов, которые соответствуют нашим целям разработки. Используя другие проекты с открытым исходным кодом, мы можем использовать знания и усилия сообщества, избегая изобретения велосипеда.


Поскольку сам JavaScript имеет обширное сообщество, в Globalping есть много потенциальных участников. А поскольку код JavaScript в большинстве случаев прост для чтения, новичкам легче ориентироваться и понимать исходный код.


В результате разработчики могут вносить свой вклад быстрее, что сохраняет мотивацию и продвигает проект вперед.


В конечном счете, хотя наша основная команда постоянно работает над Globalping, мы приветствуем любой вклад в платформу. Выбрав JavaScript, мы можем поддерживать открытую среду для сотрудничества, которая приглашает всех, кто заинтересован в том, чтобы сделать Globalping полезной и удобной платформой для сетевого тестирования.

Использование глобализации для себя или в своей команде

Наконец, мы хотели бы кратко познакомить вас с платформой Globalping и, надеюсь, пробудить у вас любопытство попробовать ее, чтобы улучшить устранение неполадок и сетевое тестирование в ваших командах!


Получите быстрый доступ к результатам измерений. Мы разработали множество интеграций для удовлетворения потребностей разных пользователей, будь то сетевые профессионалы или новички. Если вам удобнее работать с терминалом, воспользуйтесь нашим инструментом CLI . Наш бот GitHub и приложение Slack — отличные помощники для команд, совместно решающих сетевые проблемы.


Наконец, вы также можете использовать Globalping в простом и удобном графическом интерфейсе на нашем веб-сайте для запуска тестов, например, когда у вас нет доступа к обычным настройкам.


Записывайте команды единообразно для всех интеграций. Поскольку мы не хотим, чтобы вы изучали все с нуля каждый раз, когда переключаете интеграцию, мы внедрили единую структуру команд. В общем, все команды Globalping имеют один и тот же формат:

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


Так, например, чтобы запустить ping до jsdelivr.com из Вены и Берлина с использованием двух зондов (определяемых флагом ограничения), вы пишете следующую команду:

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


И вот как может выглядеть результат:

пинг из любой точки мира с помощью Globalping


Создавайте свои собственные инструменты с помощью нашего API. Хотите создать свой собственный инструмент на платформе Globalping? Нет проблем — вы можете использовать наш REST API (с большими ограничениями), чтобы создавать все, что захотите!


Станьте частью сети: Globalping опирается на глобально распределенную сеть зондов, поддерживаемую нашим сообществом. Мы рады приветствовать всех, кто установит зонд в Docker у себя дома, в офисе или на серверах, чтобы бесплатно предоставлять надежные результаты всем пользователям.

Взгляд в будущее: вместе строим глобальную экономику

Сегодня мы рады видеть, как Globalping развивается и растет под влиянием нашего прошлого опыта и знаний. Мы надеемся, что со временем Globalping станет основной платформой для всего, что связано с производительностью Интернета, задержкой и временем безотказной работы.


Мы продолжим совершенствовать функции и обеспечивать удобство для пользователей, чтобы любой желающий мог использовать платформу.