새로운 제품을 만들 때 갑자기 수많은 도전과 결정에 직면하게 됩니다. 안타깝게도 이제 막 시작한 기업이든 노련한 기업가이든 올바른 선택을 하기 위한 마법의 공식은 없습니다. 팀으로서 이 길을 여러 번 걸었기 때문에 우리는 그것이 가져올 수 있는 흥분과 걱정을 이해합니다.
우리는 최근 글로벌 네트워크 테스트 플랫폼인 Globalping을 출시한 소규모 팀입니다. 이번 프로젝트는 비슷한 제품 아이디어를 가진 스타트업이 원하는 결과를 얻지 못한 후 두 번째 시도라는 점에서 특별합니다. Globalping을 통해 우리는 제품에 대한 목표와 비전을 달성하기 위해 다른 접근 방식을 취하고 있습니다.
이 블로그 게시물에서는 스타트업과의 경험에서 얻은 통찰력과 교훈, 그리고 이것이 Globalping에서의 접근 방식에 어떤 영향을 미치는지 공유하겠습니다. 특히 우리가 JavaScript 기반 오픈 소스 플랫폼을 구축한 이유와 이러한 선택이 프로젝트를 어떻게 변화시켰는지에 대해 쓰겠습니다.
PerfOps라는 스타트업을 설립했던 몇 년 전으로 돌아가 보겠습니다. 아이디어는 인터넷 기반 애플리케이션을 최적화하기 위한 B2B SaaS 플랫폼을 구축하는 것이었습니다. RUM(Real User Monitoring) 데이터를 사용하여 CDN 공급자에 대한 성능 지표를 수집하고 다중 CDN 로드 밸런싱 기능을 활성화했습니다.
보너스로 사용자는 경로 추적과 같은 네트워크 측정 요청을 실행하고 전 세계 여러 위치에서 발굴할 수도 있었습니다.
많은 스타트업과 마찬가지로 우리도 자금이 필요했습니다. VC 지원을 받으면서 행운이 우리 편이 되었고, 팀을 구성하고 수백 대의 VM(가상 머신)을 임대하여 주문형 네트워크 테스트를 위한 글로벌 네트워크를 구축할 수 있었습니다. 결과적으로 우리는 수십억 개의 RUM 데이터 포인트를 분석하고 이를 DNS 기반 로드 밸런싱에 실시간으로 활용하는 새로운 기술을 개발할 수 있었습니다.
이 벤처는 계획대로 진행되지 않았지만 얻은 경험은 매우 귀중했으며 오늘날 Globalping의 길을 형성했습니다.
몇 가지 시사점:
그러나 스타트업의 불행한 운명 이후에도 우리는 정확하고 개방적이며 안정적인 네트워크 테스트 및 성능 모니터링의 잠재력과 필요성을 여전히 인식했습니다. 그리하여, 일을 다르게 하고 경험을 바탕으로 사용자와 우리 자신을 위한 더 나은 서비스를 만들 수 있는 두 번째 기회인 Globalping이 탄생했습니다. 이제 그 방법을 알려드리겠습니다.
우리는 Globalping을 오픈 소스 프로젝트로 만드는 것이 자연스러운 진행이라고 믿습니다. 일단 우리는 이미 그 개념에 익숙합니다. 우리는 월간 2,300억 건 이상의 요청을 처리하는 무료 오픈 소스 다중 CDN 서비스인 jsDelivr을 약 10년 동안 운영해 왔습니다.
그래서 우리는 오픈 소스의 장점과 단점, 무엇을 해야 할지, 무엇을 피해야 하는지를 이미 알고 있었습니다. 이에 대해 더 많이 생각할수록 Globalping이 오픈 소스여야 한다는 것이 더 이해가 되었습니다.
Globalping을 오픈소스로 만든 주요 이유는 다음과 같습니다.
당연히 오픈 소스에도 어려움이 있습니다. 제품 개발에는 개발자, 디자이너, 마케팅 담당자, 개발자 관계 전문가가 필요합니다. 커뮤니티의 기술 전문가들의 지원을 받는 동시에, 우리는 여전히 그들의 작업에 대해 보상을 받는 핵심 팀과 협력하고 있습니다.
VC 자금에 의존하는 대신 이제 우리는 같은 생각을 가진 회사와 파트너십을 구축하고 기부금을 통해 우리를 계속 운영하는 GitHub 스폰서의 지원을 구하고 있습니다.
다음으로 중요한 결정은 Globalping을 구축하려는 기술이었습니다. 우리는 대규모 실시간 JavaScript 앱 운영 경험을 바탕으로 자신있게 JavaScript를 선택했습니다.
언어에 대한 친숙함의 이점은 이미 성과를 거두었으며, 익숙하지 않은 언어를 사용할 때보다 새로운 기능을 더 빠르게 구축하고 버그를 더 쉽게 찾고 수정할 수 있게 되었습니다.
또한 전 세계 앱 및 웹 개발자들 사이에서 JavaScript가 인기를 끌면서 우리는 JavaScript를 선택하게 되었습니다. 이 언어에는 개발 목표에 부합하는 도구, 라이브러리 및 패키지로 구성된 풍부하고 강력한 생태계가 있습니다. 다른 오픈 소스 프로젝트를 사용하면 수레바퀴를 재발명하지 않고도 커뮤니티의 지식과 노력을 활용할 수 있습니다.
JavaScript 자체에는 광범위한 커뮤니티가 있으므로 Globalping에 잠재적인 기여자가 많이 있습니다. 그리고 JavaScript 코드는 대부분 읽기 간단하기 때문에 초보자가 소스 코드를 탐색하고 이해하는 것이 더 쉽습니다.
결과적으로 개발자는 더 빠르게 기여할 수 있어 동기를 부여하고 프로젝트를 추진할 수 있습니다.
궁극적으로 우리 핵심 팀이 Globalping에 지속적으로 노력하는 동안 플랫폼에 대한 기여를 환영합니다 . JavaScript를 선택함으로써 우리는 Globalping을 유용하고 사용자 친화적인 네트워크 테스트 플랫폼으로 만드는 데 관심이 있는 모든 사람을 초대하는 개방적이고 협력적인 환경을 유지할 수 있습니다.
마지막으로 Globalping 플랫폼에 대해 간략하게 소개하고 팀의 문제 해결 및 네트워크 테스트를 개선하기 위해 이를 사용해 보고 싶은 호기심을 불러일으키기를 바랍니다.
측정 결과에 빠르게 액세스: 우리는 네트워크 전문가이든 초보자이든 다양한 사용자의 요구 사항을 충족하기 위해 다양한 통합을 개발했습니다. 터미널 사용이 가장 편한 경우 CLI 도구를 사용하세요. GitHub 봇 과 Slack 앱은 네트워크 문제를 해결하기 위해 팀이 협력하는 데 훌륭한 도우미입니다.
마지막으로, 예를 들어 일반적인 설정에 액세스할 수 없을 때 웹 사이트의 간단하고 사용자 친화적인 그래픽 인터페이스에서 Globalping을 사용하여 테스트를 실행할 수도 있습니다.
통합 전반에 걸쳐 일관되게 명령 작성: 통합을 전환할 때마다 처음부터 모든 것을 배우는 것을 원하지 않기 때문에 통일된 명령 구조를 구현했습니다. 일반적으로 모든 Globalping 명령은 동일한 형식을 따릅니다.
globalping [command type] [target] from [location] [flags]
예를 들어, 두 개의 프로브(limit 플래그로 정의됨)를 사용하여 비엔나와 베를린에서 jsdelivr.com 으로 ping을 실행하려면 다음 명령을 작성합니다.
globalping ping jsdelivr.com from "Vienna, Berlin" --limit 2
결과는 다음과 같습니다.
API를 사용하여 나만의 도구 만들기: Globalping 플랫폼을 사용하여 나만의 도구를 만들고 싶으십니까? 문제 없습니다. REST API(한도가 넉넉함)를 사용하여 원하는 것은 무엇이든 만들 수 있습니다!
네트워크의 일부가 되세요: Globalping은 커뮤니티가 제공하는 전 세계적으로 분산된 프로브 네트워크를 사용합니다. 모든 사용자에게 신뢰할 수 있는 결과를 무료로 제공하기 위해 집, 사무실 또는 서버에서 Docker에 프로브를 설정하는 모든 분을 환영합니다.
오늘 우리는 과거 경험과 학습을 통해 Globalping이 어떻게 진화하고 성장하는지 확인하게 되어 기쁩니다. 결국 우리는 Globalping이 인터넷 성능, 대기 시간 및 가동 시간과 관련된 모든 것을 위한 플랫폼이 되기를 바랍니다.
우리는 관심 있는 사람이라면 누구나 플랫폼을 사용할 수 있도록 계속해서 기능을 개선하고 훌륭한 사용자 경험을 제공할 것입니다.