개발자 1인 회사인 분들, 기술 스택은 어떤걸 쓰시나요?
(news.ycombinator.com)- OVH 클라우드의 큰 서버 하나에서 여러개의 SaaS앱을 운영중
- 하루에 약 6백만개의 캐쉬 안된 리퀘스트를 처리
- 백엔드는 Django/Python + MySQL + Redis + WebSocket(Pub/sub)
- 나의 비밀은 OpenResty (Dynamic web platform based on NGINX and LuaJIT)
- Lua 스크립트를 이용하여 복잡한 페이지 캐슁을 처리하고, DDos를 막고, 웹소켓을 처리하고, 장기 실행용 요청들을 오프로딩 처리함
- 1500 짜리 Lua 코드로 구성된 "가난한 자의 Cloudflare"
- 이 앱들은 Docker 전에 만들어진 것들이라 그냥 프로세스로 실행됨(systemd)
- 초기엔 uwsgi를 사용했지만, gunicorn 이 훨씬 효율적이어서 이제 완전히 바꿈
- 나의 SPOF는 DNS임. 나는 DNSMadeEasy와 관계가 좋아서 자동 ban 걱정은 안했는데, 이제 DigiCert가 그들을 인수해버려서 문제
- 결제는 Stripe 와 Paypal 로 처리. Paypal을 싫어하는 데도 추가한 것은, 언제 Stripe가 경고없이 차단할지 몰라서임
- 사용자 업로드는 aiohttp Python 서버로 파일을 Wasabi 와 Backblaze로 보내고 nginx에서 캐쉬함. 그래서 클라우드 전송량 요금은 0임
- 웹소켓 레이어는 약간 불안정. 처음엔 파이썬 웹소켓 asyncio 라이브러리로 모든걸 처리했는데, 어느정도는 동작했지만 나중에 멀티 프로세스로 처리하려고 하자 리소스를 엄청 먹기 시작함
- 그래서 OpenResty 의 웹소켓을 이용하기로 결정했지만 복잡한 로직을 Lua로 작성하기는 싫었음
- Redis Pub/Sub을 이용해서 메시지를 파이썬 프로세스에 전달하도록 변경
- 하지만 내 서비스 이름은 알려주지 않을 거임(경쟁자가 더 생기는 것은 싫거든!)
- 난 유명하지 않는 옵션을 선택하는 경향이 있는데, 솔로 개발자에게는 생산적이라고 생각
- PostgreSQL + SQLite
- 메인 언어 Rust
- 프론트엔드는 htmx + tailwindcss
- CloudFlare + Vultr 호스팅
- nginx + nixos + circle ci
- 누군가는 싫어하겠지만 난 Wordpress 를 선택한게 최선이었음
- 포럼은 bbPress
- 멤버가 포스팅하는 커뮤니티는 buddyPress
- 뉴스레터는 무지 비싼 SaaS 대신 저렴한 mailster.co 플러그인(Critsend.com 이용)
- 원하는 대부분의 기능들은 플러그인으로 찾아보면 다 있음 : 검색 가능한 FAQ, Captcha, 광고, 디스코드에 포스팅하기, 사용자 신고 시스템 등등
- https://rpgplayground.com/ 운영중
- OpenAI랑 경쟁하는 서비스인 https://text-generator.io 를 운영
- 기존엔 GCP에서 쿠버네티스 쓰다가, 이제는 Cloudflare 터널을 통해서 집에서 내 GPU들로 운영함. 이렇게 하면 GPU 가격이 10배 저렴.
- 입력된 링크나 이미지에서 Tesseract / Unified IO / OFA / Beautiful Soup 등을 통해서 분석하고 이미지/영수증에 대한 답변을 해줌
- 사이트 자체는 AppEngine에서 Python + Stripe + Firebase UI 로 되어있어서 매주 적은 비용으로 운영중
- Render 에서 호스팅중
- PostgreSQL + Rails + Hotwire
- Stimulus 와 Turbo Frames를 정말 좋아함
- UI는 Tailwind 와 Tailwind UI를 사용
- APM은 https://skylight.io 와 https://sentry.io
- https://allaboutberlin.com 운영중
- DigitalOcean 의 Docker 에서 Craft CMS로 운영중
- Craft는 워드프레스에서는 만들기 어려운, 사용자 정의 필드가 있는 사용자 정의 게시물 유형을 쉽게 만들수 있음
- 하지만 워드프레스가 아니기 때문에, 필요한 플러그인이 많지는 않음
- nginx 로 캐싱 및 많은 것들을 처리함
- 생산적이 되고 싶으면 PETAL을 시도해봐
- Phoenix + Elixir + Tailwind + Alpine.js + LiveView
- Rails + Postgres + Redis + SideKiq
- Herokus 에 호스팅, 에러 추적은 Sentry, 성능 모니터링은 New Relic, 메일은 ㄴend Grid
- 최근에 Google Analytics를 Plausible 로 교체하고, Ahoy(Rails Middleware) 사용해서 내부에서 심도있는 분석중
- 고객지원/채팅은 Intercom 사용중인데 Chatwoot로 교체예정
- Heroku 에서 벗어날 예정인데, 대표적인 대체제인 Render가 아직 자동 페일오버 되는 HA Postgres 옵션이 없음
- GitHub 마스터 브랜치에 푸시하면 프로덕션에 자동 디플로이.
- 마스터브랜치에 머지는 PR로만 가능하고, Linter(Rubocop) + Tests(Rspec on CircleCI) + 100% 커버리지(codecov.io) 에서 Green 이어야만 가능
- UI는 부트스트랩이고, 자바스크립트로 서버사이드 렌더링 중
- 더 인터랙션이 필요한 UI에 대해서는 Hotwire/Turbo vs. Alpine vs. Stimulus vs. React 고민중
- Agtech 플랫폼 개발중
- 백엔드 : Rust, Rocket, sqlx, Postgres, Ansible 약간
- 프론트엔드 : Rescript + React. Rust/WASM 꽤 많이 사용중인데 이건 실수였음. 되돌리려고 시도중
- 왜 WASM 선택이 실수였는지는 자세히 설명한 댓글이 있음 https://news.ycombinator.com/item?id=32965809
HN에 올라왔던 예전 글들도 참고하세요
2021년 https://news.ycombinator.com/item?id=28299053
2020년 https://news.ycombinator.com/item?id=25465582
2019년 https://news.ycombinator.com/item?id=21024041