Serverless란?
serverless란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델을 말한다
서버 운용 및 서버 환경의 고려를 크게 하지 않고 애플리케이션 서비스를 구축하고 실행할 수 있는 클라우드 개발 모델을 말합니다. 하지만 사실 서버를 전혀 운용하지 않는 다던가 고려하지 않는 다는 것은 아니라 생각합니다. 서버리스 모델로 서비스를 구축하고 운용하는덴 적지 않은 클라우드 서비스를 구축자원이 들기 때문입니다.
많은 이점과 단점
이점
- 서버 관리 리소스 감축
- 서버 스펙을 유연하게 조정 가능 (스케일 업 & 스케일 다운 )
- 요청 수와 이벤트 작업 량에 따른 과금
- 배포의 편의
- 모니터링 용이
단점
- 단기적 프로세스에 적합, 단기 작업에 적합
- 지연 시간의 문제
- 서드파티 업체의 의존도가 높음
- 디버깅의 어려움
- 컨테이너 로드의 대기 시간
서버리스의 서비스 형태
개발자가 서버리스를 언급하는 경우에는 FaaS 모델을 가리키는 경우가 일반적, FaaS의 경우 개발자는 사용자 정의 서버 측 로직을 작성할 수 있지만, 이러한 로직은 클라우드 서비스 제공업체가 전체를 관리하는 컨테이너에서 구동
BaaS
- BACKED-AS-A-SERVIECE
- 애플리케이션 개발 시 요구되는 복잡한 백엔드 기능들을 개발자가 직접 개발하지 않고 클라우드 공급자가 제공하는 서비스를 이용해 쉽고 안정적으로 구현 하는 것
- 단일 웹페이지나 모바일 앱 기반의 서비스에서 필요한 서버 기능들을 사용하기 위해 이용하는 써드파티(Third Party) 애플리케이션이지만 클라우드 서비스
FaaS
- Function-as-a-Service
- 개발자가 사용자 정의 서버 측 로직을 작성하지만 클라우드 제공 업체가 관리를 전담하는 서버 컨테이너에서 실행 되는 서비스 기능
- 서버 측 로직을 개발자가 직접 작성
'IT아키텍처 > Architecture' 카테고리의 다른 글
Software Architecture 역사로 이해하는 MSA (0) | 2021.10.10 |
---|