1P by neo 9달전 | favorite | 댓글 1개

CEO가 말하는 스타트업의 독특한 여정

  • 스타트업이 5년간 은밀하게 운영되는 것은 이례적임.
  • 대중에게 공개하기 전에 놀라운 제품을 만들고자 했으며, 이 과정에서 훌륭한 인재를 채용하고 초기 고객을 찾으며 투자자와 협력함.
  • 스타트업으로서는 자연스럽지 않은 방법이지만, 이를 통해 많은 것을 구축할 수 있었음.

우리가 이것을 만든 이유

  • FoundationDB라는 이전 회사에서 시작된 이야기의 연장선상에 Antithesis가 있음.
  • 확장 가능하고 장애에 강한 분산 데이터베이스를 만들고자 했으나, 이를 테스트하고 올바름을 확신하는 것이 가장 어려운 문제였음.
  • 소프트웨어 개발의 근본적인 문제는 개발자가 예상하지 못한 상황을 처리해야 한다는 것임.

우리가 만든 것

  • 데이터베이스를 작성하기 전에 완전 결정론적인 이벤트 기반 네트워크 시뮬레이션을 먼저 작성함.
  • 이 시스템을 통해 버그를 발견하면 동일한 랜덤 시드로 반복 실행하여 버그를 추적할 수 있음.
  • FoundationDB는 거의 버그가 없는 데이터베이스로, 고객에 의해 보고된 버그가 거의 없었음.

우리가 만든 것

  • 임의의 소프트웨어를 결정론적으로 만들기 위해 하이퍼바이저를 작성함.
  • 이 플랫폼은 소프트웨어의 버그를 찾아내고 완벽하게 재현할 수 있음.
  • 현재는 분산 시스템의 신뢰성과 내결함성 테스트에 집중하고 있음.

연락처?

  • 분산 시스템의 신뢰성과 엔지니어링 생산성을 중시하는 조직과 대화를 나누고 싶음.
  • 질문이나 코멘트가 있다면 TwitterX 또는 [email protected]으로 연락 가능함.

GN⁺의 의견

  • 이 글에서 가장 중요한 것은 결정론적 테스팅 방법을 통해 거의 완벽한 소프트웨어를 만들 수 있다는 점임. 이는 엔지니어링 팀의 생산성을 극대화하고 버그 발견 시간을 단축시키는 데 큰 도움이 됨.
  • Antithesis가 제공하는 플랫폼은 소프트웨어 개발의 패러다임을 바꿀 잠재력을 가지고 있으며, 이는 엔지니어링 커뮤니티에 큰 영향을 미칠 수 있음.
  • 이 글은 소프트웨어 테스팅의 한계를 극복하고자 하는 혁신적인 접근 방식을 제시하며, 이는 기술 분야에 종사하는 사람들에게 매우 흥미롭고 유익한 정보를 제공함.
Hacker News 의견
  • 엔지니어링 팀의 생산성이 50배 증가함

    • "10배 개발자"라는 개념이 일주일에 6.5일, 하루 15시간 일하는 사람을 의미하게 변질되었다고 느낌.
    • 실제 10배(또는 50배) 생산성은 불가능하다고 여겨진 것을 실현하여 소프트웨어를 훨씬 빠르게 제공하는 사람들에게서 나옴.
  • 이것은 내가 읽은 소개글 중 최고임

    • 사람들과 그들이 만든 것에 대한 기초를 잘 설명함.
    • 현재 만들고 있는 것이 이전에 만든 것의 결과라는 점을 설명함.
    • 이미 사용한 팀들(유명하고 복잡한 시스템을 가진)에 대해서도 언급함.
    • 개발자/창업자에게 호소력 있는 좋은 글쓰기로 포장됨. 랜딩 페이지도 훌륭함.
  • 이것은 훌륭한 제안이지만, "모든 버그를 찾았다"는 말은 버그의 정의가 매우 좁을 때만 사실일 수 있음

    • 가장 까다로운 버그는 애플리케이션의 비즈니스 로직과 관련이 있음.
    • "올바른" 것이 무엇인지를 처음부터 파악하는 문제임.
    • 실제 세계에서 소프트웨어를 만드는 것과 버그 없는 상태를 상상하는 것은 다름.
  • 소프트웨어에서 버그를 찾는 플랫폼

    • 실제로는 통합 테스트를 실행하는 클라우드 서비스 같음.
    • 특별한 환경에 배포하는 방법을 알아내야 하고, 특별한 라이브러리를 사용하여 통합 테스트를 작성해야 함.
    • 이미 자체 환경과 통합 테스트로 찾을 수 있는 버그를 찾는 데 어떻게 도움이 될지 의문임.
  • 이름에 대한 고민

    • 단순히 'Hypothesis'라는 단어의 변형인지, 아니면 속성 기반 테스팅의 반대를 뜻하는 똑똑한 의미가 있는지 궁금함.
  • 이 분야에 대한 관심

    • sled 시뮬레이션 가이드를 통해 FoundationDB가 무엇을 하는지 알게 됨.
    • madsim을 사용하여 비동기/await 스타일 서비스를 작성하고, 테스트에서는 모든 비결정적 요소를 패치하는 결정적 실행자로 대체함.
    • 이러한 테스트는 매우 강력한 도구임.
  • 글쓰기가 정말 즐거움

    • 모든 해를 방지하는 힘의 방패에 둘러싸인 것 같은 프로그래밍 경험.
    • 의존성을 모두 삭제하고 자체 Paxos 구현을 매우 빠르게 작성함. 버그가 없음.
  • 이것은 바로 성배 같은 것이 아닌가?

    • 기존 애플리케이션을 그대로 사용하고 속성만 확인함.
    • 비결정적인 CPU와 운영 체제가 항상 장애물이었음.
    • 전체 수직 컴퓨팅 스택을 재구축하는 것은 거의 불가능하므로, 고해상도 결정적 시뮬레이터를 구축하여 이를 회피함.
  • Antithesis를 Strangeloop에서 만남

    • 아마존에서 일할 때 따르던 자동 결함 주입의 최신 상태에 비해 제품이 크게 앞서 있음.
    • Apache Spark 스트리밍에서 발견한 버그 추적 과정을 따라감.
    • 분산 시스템을 구축하는 회사 내에서 Antithesis와 같은 도구가 얼마나 중요할지 상상할 수 없음.
  • 세 가지 생각

    • 올바른 시기에 온 훌륭한 아이디어.
    • 틈새 시장을 목표로 함.
    • 고품질의 글쓰기와 문서화에 대한 칭찬.