1P by GN⁺ 1일전 | ★ favorite | 댓글 1개
  • Postman이 글로벌 클라우드 이슈로 일시적으로 서비스 중단 현상을 겪음
  • 장애는 클라우드 프로바이더의 문제로 인해 많은 사용자에게 기능 오류 및 간헐적 접속 불가 현상 유발
  • 엔지니어팀이 실시간으로 복구 작업을 진행하며, 점진적으로 서비스가 회복됨
  • 일부 검색 기능의 장애 및 크로스-디펜던시 이슈도 지속적으로 모니터링 및 해결
  • 현재 장애가 해결되어 정상 서비스 복구된 상태이며 추가 안정성 모니터링 진행 중

Postman 서비스 장애 타임라인 및 회복 과정

장애 식별 및 영향 (Oct 20, 05:39 ~ 05:52 PDT)

  • Postman에서 오류율 증가로 인해 기능적 문제가 나타남
  • 본 장애의 원인은 클라우드 서비스 프로바이더의 주요 이슈 발생임
  • Postman 팀이 클라우드 벤더와 협력해 신속한 정상화를 위해 대응함

서비스 부분 복구 및 모니터링 (Oct 20, 05:56 ~ 17:17 PDT)

  • 일부 시스템의 회복세가 관찰됨
  • 여러 서비스를 지속적으로 성능 모니터링하며 전면적인 복원 작업을 이어감
  • 대부분의 기능 회복이 확인되었고, 지속적인 모니터링으로 추가 장애 예방에 집중함

완전 복구 및 서비스 정상화 (Oct 20, 19:00 ~ 20:51 PDT)

  • 일부 서비스에서 간헐적 이슈가 남아 있었으나, 다수 시스템이 안정적으로 회복됨
  • 크로스-디펜던시 오류검색 기능 관련 문제까지 점진적으로 해결함
  • 모든 이슈 해결과 완전한 서비스 복원 완료 후, 안정성 확보를 위한 추가 모니터링 진행됨

요약 및 시사점

  • Postman이 클라우드 환경 의존성이 높아 글로벌 장애에 직접적 영향을 받는 구조임
  • 향후 비슷한 툴이나 로컬 동작에 의존하는 서비스도 클라우드 인프라 장애에 대비 필요성 부각
  • 장애 발생 시 실시간 이슈 모니터링과 커뮤니케이션이 유지보수 및 고객신뢰에 중대함
  • 서비스 복구가 점진적으로 이루어지는 과정에서 팀의 신속 대응과 투명한 공지가 중요함
  • 모든 서비스가 정상적으로 운영되고 있는지 확인하는 모니터링 체계 확립의 필요성 재조명
Hacker News 의견
  • Postman을 사용하지 않으면서 무언가를 놓치고 있는지 궁금함, 대안으로 Firefox의 "Edit and Resend" 기능과 재사용 예제에는 전통적인 curl 스크립트를 사용함
    • 회사에서 Postman을 약간 사용함, 헤더와 바디가 포함된 수많은 요청이 담긴 컬렉션 파일을 공유해 개발자가 손쉽게 로드하여 각자의 서버에 테스트할 수 있고, 서버 전환도 한 번의 클릭으로 가능함, 대체재로는 환경변수를 포함한 curl 스크립트가 들어있는 git 저장소가 될 수 있음, 기술자가 아닌 사람들도 Postman으로 테스트를 실행함
    • Postman만이 아니라 그런 클라이언트는 다양한 요청을 한 번에 준비하고 저장해 테스트 스위트를 만들 수 있음, 일부는 스크립트 작성, 요청 체이닝 등의 기능도 제공함, 텍스트 에디터와 IDE의 차이와 비슷한 개념임, 결국 본인에게 필요한 수준에 따라 선택해야 할 문제임
    • 가장 편리한 기능은 URL을 복사해 붙여넣으면 파라미터가 자동으로 파싱되고 UI에서 모두 쉽게 수정할 수 있다는 점임, 그 외에는 결국 익숙한 curl과 다를 것 없음
    • 요즘은 jupyter notebook과 requests로 작업함, 결국 Postman을 써도 collection으로 요청을 코드화하다 보면 제한적인 언어로 프로그래밍을 하는 느낌임
  • 이런 앱도 Electron과 클라우드를 사용하게 된 현실이 놀라움, 터미널에서 10메가바이트짜리 TUI 앱으로 충분했을 것임, 참고로 posting.sh라는 대체재가 있음
    • 10MB짜리 TUI 앱 이야기에 공감,요즘은 Electron 앱이 기가바이트 단위로 커진 세상임, 참고로 vim 패키지는 2.3MB, curl은 1.2MB, 그리고 lua는 362KB임
    • Electron을 사용하는 이유는 원래 크롬 확장으로 시작해서 standalone 형태로 발전한 경향 때문임
    • hurl(https://hurl.dev/)을 몇 년간 써왔으나 파일 정리가 안 되어 폴더에 텍스트 파일만 쌓이고 있음, 이번에 posting.sh를 한 번 써볼 예정임
    • SSH 서버나 VS Code의 원격 컨테이너 안에서 쓸 Postman/Bruno/foo 대체재를 찾고 있었는데 posting.sh가 딱임
  • RubyMine 및 JetBrains IDE(관련 제품)에는 강력한 HTTP 클라이언트(Tools -> HTTP Client)가 내장되어 있음, Postman이 복잡해진 뒤로 간단하게 웹 요청만 필요한 상황에 잘 맞음, Postman을 좋아하는 분들을 깎아내리는 의도가 아니라 본인의 필요에 비해 과했다는 느낌임
    • JetBrains의 HTTP 클라이언트가 정말 좋음, curl 명령어를 붙여넣으면 자동으로 변환 및 포매팅됨, 변경한 부분을 다시 curl로 복사할 수도 있음
  • 바로 이런 이유로 Yaak(https://yaak.app)을 만들었음, 완전 오프라인 가능, 텔레메트리 없음, 오픈소스이며 Git 연동 지원함
    • Yaak의 상업 라이선스 구조가 궁금함, 프로 라이선스 구입이 '신의성실 원칙'에 기반한 구조라면 MIT 라이선스와 어떤 차이인지 궁금함, 오픈소스 상업 라이선스를 공부하며 어떤 상황에 무엇이 효과적인지 항상 궁금함
    • 6-9개월째 Yaak을 사용 중이고, 처음엔 소스에서 직접 빌드하다가 현재는 유료 사용자로 전환함, 최근 Yaak이 가입자 수와 수익을 open metrics로 공개하는 것을 보고 투명한 운영 방식이 보기 좋았음
    • 현재 Bruno를 사용하고 있고, Yaak의 Bruno와의 비교 자료도 읽어봤음, 만약 Bruno에서 내가 원하는 모든 기능이 지원된다면, Bruno 대비 Yaak만의 차별점이 무엇인지 듣고 싶음
    • Insomnia를 만들어서 매각한 후에 새로운 경쟁 툴을 만든 건가 궁금증 있음, 거래 시 아무 제약이 없었나 궁금함
    • Insomnia 인수 이전 시절 제품을 무척 좋아했기 때문에, 그 정신적 후계로 Yaak이 나온 게 매우 기쁜 일임, Greg을 응원함
  • 사용 목적에 따라 별도의 앱이 필요 없는 경우도 많음, JetBrains(정보), Visual Studio(정보), VSCode(정보) 모두 http 파일 지원 가능함
    • VSCode용은 익명의 개발자가 만든 플러그인임, 내장 기능이라 보긴 어려움
    • 우리 조직에서는 개발자가 아닌 QA도 http api를 자주 쓰기 때문에 현재는 Bruno가 그 역할을 잘 해주고 있음
    • 제품마다 http 파일 포맷이 완전히 동일하지는 않음, 그래서 우리 팀은 hurl을 사용함, QA팀은 robot framework를 더 선호하고, 일부는 Bruno를 씀
    • 조직 규모가 커질수록 방대한 postman collection을 API 문서화, 회귀 테스트, QA용으로 많이 사용함, 특히 postman javascript 라이브러리와 커스텀 코드에 의존도가 큼
  • 대부분의 사람들이 Postman이 점점 기능이 늘어나서 비대해지고 온라인 종속성을 가지게 되었다는 것을 받아들이게 되었다고 생각함
    • 회사에서 Postman이 온라인 전환된 후 전 직원에게 Postman 삭제 요청 메일이 감, 현재 IT팀에서는 금지 소프트웨어로 위키에 등재함, 예전엔 정말 모든 곳에서 썼었음
    • Postman이 업계 표준 도구가 되어감에 따라 모두가 적응하게 된 상황임, 비즈니스 쪽 사람들도 Postman을 쓰고 컬렉션 공유가 기본이 됨, 본인은 Postman 사용을 싫어하지만 API 작업을 공유해야 할 때는 어쩔 수 없이 써야 함, Postman 사업에는 좋은 일이지만 모든 사용자에게 좋다는 생각은 들지 않음
  • 아주 간단한 경량 yaml 기반 Postman 대체재로 yapi(https://github.com/jamierpond/yapi)를 만들었음, 아래처럼 사용 가능함
    yapi -c ./users.yapi.yaml
    
    yaml 파일 예시(스키마, url, method, path, 쿼리 파라미터 명시 방식 포함), 단순히 yapi만 실행하면 fzf를 활용해 설정 파일을 쉽게 찾을 수도 있음
    • 정말 흥미로운 컨셉이고 워크플로우에 익숙해지면 잘 쓸 수 있을 것 같음, 그런데 Github에서 왜 이렇게 저조한 통계를 보이는지 궁금함, 결국 다들 Postman을 쓰고 있기 때문인 것 같음
  • 오랫동안 Paw를 사용해왔는데 최근 몇 년 전에 RapidAPI로 합병됨, 작은 앱인데 역할을 훌륭히 수행함, 최근에는 Phoenix LiveBook notebook과 Req 패키지를 조합해 사용하고 있음, 원하는 언어를 직접 다루며 데이터 가공도 자유로움, Elixir를 모른다면 jupyter나 다른 노트북 시스템도 대안이 될 것임
  • Bruno + git 조합이 우리 팀에는 완벽함, 컬렉션을 저장소 내에서 버전 관리하고 외부 의존성 없이 오프라인 가능함, 진작에 이렇게 할걸 그랬음
    • curl 붙여넣기(import)에서는 이상한 버그가 있었지만 해결 됨, 그 외에는 100% 만족 중임
  • 2018년 이후로 Postman 사용을 전면 중단함, API 쿼리를 하려면 로그인까지 해야 하는 점이 너무 불편하다고 생각했음, 솔직히 사용성도 별로 매력적이지 않았음