GN⁺: 무엇인가가 귀찮게 하나요?
(antithesis.com)CEO가 말하는 스타트업의 독특한 여정
- 스타트업이 5년간 은밀하게 운영되는 것은 이례적임.
- 대중에게 공개하기 전에 놀라운 제품을 만들고자 했으며, 이 과정에서 훌륭한 인재를 채용하고 초기 고객을 찾으며 투자자와 협력함.
- 스타트업으로서는 자연스럽지 않은 방법이지만, 이를 통해 많은 것을 구축할 수 있었음.
우리가 이것을 만든 이유
- FoundationDB라는 이전 회사에서 시작된 이야기의 연장선상에 Antithesis가 있음.
- 확장 가능하고 장애에 강한 분산 데이터베이스를 만들고자 했으나, 이를 테스트하고 올바름을 확신하는 것이 가장 어려운 문제였음.
- 소프트웨어 개발의 근본적인 문제는 개발자가 예상하지 못한 상황을 처리해야 한다는 것임.
우리가 만든 것
- 데이터베이스를 작성하기 전에 완전 결정론적인 이벤트 기반 네트워크 시뮬레이션을 먼저 작성함.
- 이 시스템을 통해 버그를 발견하면 동일한 랜덤 시드로 반복 실행하여 버그를 추적할 수 있음.
- FoundationDB는 거의 버그가 없는 데이터베이스로, 고객에 의해 보고된 버그가 거의 없었음.
우리가 만든 것
- 임의의 소프트웨어를 결정론적으로 만들기 위해 하이퍼바이저를 작성함.
- 이 플랫폼은 소프트웨어의 버그를 찾아내고 완벽하게 재현할 수 있음.
- 현재는 분산 시스템의 신뢰성과 내결함성 테스트에 집중하고 있음.
연락처?
- 분산 시스템의 신뢰성과 엔지니어링 생산성을 중시하는 조직과 대화를 나누고 싶음.
- 질문이나 코멘트가 있다면 TwitterX 또는 contact@antithesis.com으로 연락 가능함.
GN⁺의 의견
- 이 글에서 가장 중요한 것은 결정론적 테스팅 방법을 통해 거의 완벽한 소프트웨어를 만들 수 있다는 점임. 이는 엔지니어링 팀의 생산성을 극대화하고 버그 발견 시간을 단축시키는 데 큰 도움이 됨.
- Antithesis가 제공하는 플랫폼은 소프트웨어 개발의 패러다임을 바꿀 잠재력을 가지고 있으며, 이는 엔지니어링 커뮤니티에 큰 영향을 미칠 수 있음.
- 이 글은 소프트웨어 테스팅의 한계를 극복하고자 하는 혁신적인 접근 방식을 제시하며, 이는 기술 분야에 종사하는 사람들에게 매우 흥미롭고 유익한 정보를 제공함.
Hacker News 의견
-
엔지니어링 팀의 생산성이 50배 증가함
- "10배 개발자"라는 개념이 일주일에 6.5일, 하루 15시간 일하는 사람을 의미하게 변질되었다고 느낌.
- 실제 10배(또는 50배) 생산성은 불가능하다고 여겨진 것을 실현하여 소프트웨어를 훨씬 빠르게 제공하는 사람들에게서 나옴.
-
이것은 내가 읽은 소개글 중 최고임
- 사람들과 그들이 만든 것에 대한 기초를 잘 설명함.
- 현재 만들고 있는 것이 이전에 만든 것의 결과라는 점을 설명함.
- 이미 사용한 팀들(유명하고 복잡한 시스템을 가진)에 대해서도 언급함.
- 개발자/창업자에게 호소력 있는 좋은 글쓰기로 포장됨. 랜딩 페이지도 훌륭함.
-
이것은 훌륭한 제안이지만, "모든 버그를 찾았다"는 말은 버그의 정의가 매우 좁을 때만 사실일 수 있음
- 가장 까다로운 버그는 애플리케이션의 비즈니스 로직과 관련이 있음.
- "올바른" 것이 무엇인지를 처음부터 파악하는 문제임.
- 실제 세계에서 소프트웨어를 만드는 것과 버그 없는 상태를 상상하는 것은 다름.
-
소프트웨어에서 버그를 찾는 플랫폼
- 실제로는 통합 테스트를 실행하는 클라우드 서비스 같음.
- 특별한 환경에 배포하는 방법을 알아내야 하고, 특별한 라이브러리를 사용하여 통합 테스트를 작성해야 함.
- 이미 자체 환경과 통합 테스트로 찾을 수 있는 버그를 찾는 데 어떻게 도움이 될지 의문임.
-
이름에 대한 고민
- 단순히 'Hypothesis'라는 단어의 변형인지, 아니면 속성 기반 테스팅의 반대를 뜻하는 똑똑한 의미가 있는지 궁금함.
-
이 분야에 대한 관심
-
sled
시뮬레이션 가이드를 통해 FoundationDB가 무엇을 하는지 알게 됨. -
madsim
을 사용하여 비동기/await 스타일 서비스를 작성하고, 테스트에서는 모든 비결정적 요소를 패치하는 결정적 실행자로 대체함. - 이러한 테스트는 매우 강력한 도구임.
-
-
글쓰기가 정말 즐거움
- 모든 해를 방지하는 힘의 방패에 둘러싸인 것 같은 프로그래밍 경험.
- 의존성을 모두 삭제하고 자체 Paxos 구현을 매우 빠르게 작성함. 버그가 없음.
-
이것은 바로 성배 같은 것이 아닌가?
- 기존 애플리케이션을 그대로 사용하고 속성만 확인함.
- 비결정적인 CPU와 운영 체제가 항상 장애물이었음.
- 전체 수직 컴퓨팅 스택을 재구축하는 것은 거의 불가능하므로, 고해상도 결정적 시뮬레이터를 구축하여 이를 회피함.
-
Antithesis를 Strangeloop에서 만남
- 아마존에서 일할 때 따르던 자동 결함 주입의 최신 상태에 비해 제품이 크게 앞서 있음.
- Apache Spark 스트리밍에서 발견한 버그 추적 과정을 따라감.
- 분산 시스템을 구축하는 회사 내에서 Antithesis와 같은 도구가 얼마나 중요할지 상상할 수 없음.
-
세 가지 생각
- 올바른 시기에 온 훌륭한 아이디어.
- 틈새 시장을 목표로 함.
- 고품질의 글쓰기와 문서화에 대한 칭찬.