혼자 새로운 서비스를 만들려고 하는데

Serverless vs Serverful 사이에서 고민이 됬음.


둘 다 많이 다뤄본 고수 개발자는 알겠지만 나같은 초보 개발자는 어떤 방식이 옮은지 알 수가 없었음 ㅜㅜ


그래서 레딧 뒤적거리다가 버클리대에서 2019년에 쓴 논문 하나를 읽게 됨.

서버리스의 역사 부터 장단점. 그리고 문제 해결법까지 자세히 적은 좋은 글이었음

나 같은 초보도 서버에 대해 손쉽게 이해할 수 있을정도로 ㅇㅇ


결론부터 말하자면 '서버리스를 쓸 수 있는 환경'이라면 서버리스 >>> 서버풀 이란 답이 나옴.

그리고 1인 수준에서 구축하는 거의 모든 앱은 서버리스 환경에 어울린다.


서버리스로 극복할 수 없는 환경은 대용량 데이터, 분산컴퓨팅, 60초 이상의 수행시간이 필요한 환경이고.

그 외의 환경에서는 서버리스가 비용 및 성능면에서 더 좋다고 말함.

(그리고 서버리스가 득세하기 힘든 환경은 추후에 BaaS의 형테로 제공될거라고 주장함)




글을 다 정리하는 건 힘들고 가장 핵심적이었던 '서버리스의 오해와 문제' 단락만 짧게 번역해봄


1. 오해: 서버리스는 서버풀 보다 더 비싸다

- ㄴㄴ 실제로 조사해보면 작동 안하는 유휴시간에 비용지출이 없는 것 떄문에 훨씬 쌈.


2. 문제: 서버리스 비용은 예측 불가능하다.

- 회사는 서버비용을 고정지출로 계산하고 싶기 떄문에 해당 파트는 문제가 될 수 있는 것 맞음.


3. 오해: 서버리스의 함수는 하이레벨 언어로 작성되기 때문에 벤더 락인 효과가 더 적을 수 있지 않을까?

- ㄴㄴ 함수의 작동 조건과 성능이 클라우드마다 다르기 때문에 생각보다 옮기기 힘듬. 즉 락인 효과 더 큰거 맞음

- 추가로 서버리스를 쓰는 앱은 다른 baas를 같이 혼용하는 경우가 흔하다. (dynamodb, s3등). -> 락인효과 더 커짐


4. 오해: 서버리스는 로우 레이턴시 환경에서 쓰기 힘듬

- ㄴㄴ 콜드스타트 아니면 속도 똑같음. 콜드스타트는 함수를 정기적으로 실행하는 것으로 상당부분 해결 가능함.


5. elastic이 붙은 서비스들이 서버리스랑 비슷한 것 같음.

- 비슷하지만 부족함. 서버리스는 사용하지 않을 경우 가격이 0일 수 있어야함. 또한 확장과 축소가 극단적으로 자유로워야 하는데 elastic이 붙은 서비스들 중 다수가 그정도 아님.




30쪽 내외의 짧은 글이지만 굉장히 알찼으니까 한번 읽어보기 바람