- [C811] 마이크로서비스와 서버리스는 어떤 관계가 있나요?
마이크로 서비스는 각 내부 요소의 결합도와 의존성을 강하게 가지는 모놀리식의 문제를 해결하기 위해 제안된 대용량 분산형 아키텍쳐이다. 독립적인 작은 서비스 단위로 배포 및 업데이트하며 느슨한 결합으로 연결되어 다른 서비스를 전혀 알지 못해도 내 서비스 코드를 수정할 수 있고 API Gateway가 사용자 또는 마이크로서비스 간 API 통신을 지원할 수 있어 개발자는 다른 서비스들을 신경 쓰지 않고 개발에 집중할 수 있습니다.
서버리스는 서버가 없는 것이 아닌 서버에 관한 운영과 관련된 고민을 없애 코드개발에만 집중할 수 있다.
서버리스 컴퓨팅과 마이크로서비스 사이에는 시너지 효과가 있다.
모놀리식 애플리케이션의 경우 웹 애플리케이션을 실행하기 위해 전체 전용 서버를 사용하며 가상화 및 클라우드 컴퓨팅을 통해 전용 서버를 기본 전용 서버에서 작업할 필요 없이 실행 또는 종료할 준비가 된 여러 가상 서버로 나눌 수 있다. 마이크로서비스는 전용 서버에서 실행되는 모놀리식 애플리케이션을 "조각"으로 분해하고 있다. 조각으로 분해된 서버에 대한 관리량이 늘어났기에 이에 대한 해결책으로 서버리스를 선택하여 서버에 대한 관리를 하지 않아 개발에 더 집중할 수 있게 된다.
https://k0102575.github.io/articles/2017-12/serverless-computing
- [C812] 서버리스의 특징 중 하나인 무상태성(Stateless)는 무엇을 의미하나요?
서버리스 아키텍처의 대표적인 구현 방식은FaaS (Function as a Service)이며,FaaS는 Function 즉, 함수를 서비스로 제공한다.
Faas의 특징 중 하나는 Stateless이며, 함수를 한 번 실행할 때 파일을 디스크에 저장할 수 없으며 다음번에도 파일이 있다고 보장할 수 없습니다. 동일한 함수에 대한 두 번의 호출은 완전히 다른 컨테이너에서 실행될 수 있으므로 무상태성을 특징으로 가집니다.
https://hackernoon.com/what-is-serverless-architecture-what-are-its-pros-and-cons-cc4b804022e9