Serverless computing platform의 장점
Lambda에 대해서 적었지만, 이런 식의 Serverless computing platform의 활용처라고 생각하면 됨.
- N사는 사내에 Lambda라는 플랫폼을 제공하고 있음
- Serverless computing platform = Function as a Service(Faas) = event-driven compute platform
- 별도의 서버 없이 특정 이벤트에 대응하여 코드를 실행하거나, 직접 코드를 실행할 수 있다.
- 급하게 개발해야 할 때나, 가볍게 개발해야 할 때 서버 신청 / 설정 / 관리 안해도 되니 부담 적음.
- 배포 필요 없이 수정하면 수정하는대로 바로 반영된다는게 장점.
이러한 플랫폼의 장점과 언제 어떻게 사용하면 유용한지?
A. 유저가 직접 기능 확장이 필요할 때
내 생각에 이런 서버리스 플랫폼을 가장 잘 활용한 사례.
사용자 개발자가 서버에 새로운 기능을 필요로 하면, 플랫폼 개발자는 플랫폼 서버에 기능을 추가하고 수정 재배포 해야 함.
하지만 FaaS를 활용하면?
사용자 개발자가 FaaS에 자기가 원하는 액션을 구현하고, 플랫폼 서버는 FaaS에 data를 전송하며 트리거만 시켜주면 됨!
B. 서버 까진 필요 없는 가벼운 작업일 때
기타 1. 어떤 검색 키워드가 오류가 나는지 테스트 하기 위해 여러 client로부터 장 시간 요청이 필요할 때
별도 서버를 받기 보다는 FaaS를 활용해서 200개의 액션 컨테이너를 동시 실행하고 에러 발생 시 이를 수집.
일회성 이니까 서버나 다른 자원 요청하기 좀 애매할 때. 클라우드라도 인스턴스 여러 개 신청해야 하니까...
기타 2. Works 메시지로 FaaS 액션 트리거
뭔가 서버 정보를 가져온다던가, 로그를 가져온다던가 하는. 사실 이런건 그냥 cloud에 Works 메시지 받고 액션 트리거하는 서버 하나 띄워서 해도 되긴 함.
기타 3. Github 마일스톤 지난 이슈, 안닫은 branch 알람
기타 4. 주기적으로 ES 데이터 당겨와 수집
이런것도 역시 cloud에 서버 하나 띄워서 해도 되긴 하는데, 그러기엔 너무 잡이 작으니까 FaaS 같은걸로 하면 좋긴 하다.
기타 5. HealthCheck
'Coding Note' 카테고리의 다른 글
[Thread-safety] 동시성 문제와 shared mutable state 관리 (0) | 2021.08.30 |
---|---|
[Test] 통합 Test를 위한 DB는 어떻게 구성하면 좋을까? - Testcontainers (0) | 2021.05.03 |
Promise / Future에 대한 개념 정리 (0) | 2020.03.20 |
의존성 주입(DI, Dependency Injection)이란? (4) | 2019.05.10 |
자료 구조 선택 가이드 (0) | 2018.12.20 |