2주차 보고 다시정리하자
BaaS(Backend as a Service), FaaS(FUntion as a Service)
-
서버로직을 별도로 써드 파티 업체가 구현한 것을 쓰거나, 코드는 작성하지 않지만 그 실행은 외부업체를 통해하는
-
장점
- 서버가 정말 필요한 경우에만 사용하여 비용을 절감할 수 있다.
- 코드 외적인 내용을 처리할 필요가 없어서 운영 비용을 절감할 수 있다. 스케일을 키우는데 걱정할 필요가 없다.
- 불필요한 작업(서버 구성, 서버 관리)을 줄일 수 있다.
-
단점
- 제공되는 환경 내에서만 일을 처리할 수 있기 때문에 튜닝이나 외부 라이브러리 등 접근 측면에서 제한이 있을 수 있다.
여러서버를 한대의 서버처럼 사용
- 장점
- 서버를 구성하는데 간단
- 기술 스택이 통일되어 있기 때문에 개발하기도 쉽다
- 하나의 어플리케이션만 배포하면 된다
- 관리하기 쉬워짐
-
장점
- 제품이 하나의 기술, 버전에 묶여있지 않아도 된다.
- 도메인별 어플리케이션들이 느슨하게 연결되어있기 때문에 추후 아키텍쳐 변화에 유연하게 대처할 수 있다.
- 여러 사람들이 큰 규모의 제품을 개발할때 각 서비스간의 스펙만 맞추고 개발을 진행하면 되기때문에 편하다.
- 전체 배포를 하지 않아도 되기 때문에 배포하기가 더 쉬워진다.
- 페이스북 등 대형 서비스들도 하루에 수십, 수백번 배포가 가능한 이유다
-
단점
- 복잡도가 올라간다.
- 규칙 없이 막 사용했다간 사람보다 더 많은 기술 스택이 쌓일 수 있다.
- 서비스들간 연동 테스트하기가 힘들다
- 테스트, 배포, 모니터링 자동화가 잘 되어있어야만 가능하다.