답변:
서버리스 컴퓨팅 에 관한 Wikipedia의 기사 는 다음과 같은 주제에 대한 적절한 소개를 제공합니다.
FaaS (function as a service)라고도하는 서버리스 컴퓨팅은 클라우드 공급자가 요청 및 요청을 처리하는 데 필요한 기능으로 PaaS (컨테이너 플랫폼 서비스)의 시작 및 중지를 완전히 관리하는 클라우드 컴퓨팅 코드 실행 모델입니다. 시간당 가상 머신이 아니라 요청을 충족시키는 데 필요한 리소스의 추상 측정 값이 청구됩니다.
아이디어는 개발자 가 서버 인프라를 전혀 신경 쓰지 않아도된다는 것 입니다. 클라우드 공급자는 물리적 서버, 사용 된 운영 체제 및 서버 실행과 관련된 모든 기존 어려움을 관리합니다.
서버리스 컴퓨팅 은 시스템 이 수행하는 작업에 대한 생각에서 기능 이 수행되는 작업으로 변경합니다. AWS Lambda 는 아래에서 실행중인 물리적 인프라 유형에 대한 언급없이 기능 비용을 지불하고 실행하는 예입니다 . Azure Functions 와 같은 경쟁 서버가없는 호스트도 있습니다 (또는 둘 중 하나에 관심이없는 경우 간단히 검색 할 수 있음).
서버리스에는 몇 가지 장점이 있습니다 (아마도 완전히 다른 아키텍처이기 때문에 예전과 약간 다른 방식으로 작성해야하지만).
확장 성은 본질적으로 무료입니다. 기능을 실행하기 위해 비용을 지불하기 때문에 클라우드 공급자는 코드를 실행하는 데 필요한만큼 더 많은 하드웨어를 쉽게 전용 할 수 있습니다. 응용 프로그램을 한 번만 사용하든 백만 번을 사용하든 고정 요금을 지불하지 않고 수요가 증가함에 따라 확장 할 수도 있습니다.
서버 소프트웨어 및 하드웨어는 더 이상 개발자가 관리 할 필요가 없습니다. 클라우드 공급자가이를 처리합니다. 서버에서 Arch와 같은 것을 사용한 적이 있다면 중요한 패키지를 지우고 모든 것을 분리하는 것이 얼마나 쉬운 지 알게 될 것입니다!
개발자가 코드를 잘 작성하는 데 집중할 수 있습니다 . 대부분의 개발자는 아마도 서버 인프라 와 프로그래밍 모두에 능숙 하지 않을 것입니다. 서버 리스는 방정식에서 한 가지 문제 만 해결하면됩니다.
Martin Fowler의 개요는 다음과 같습니다.
https://martinfowler.com/articles/serverless.html
TL; DR
"서버리스"는 인프라가 임시적인 애플리케이션을 설계하는 애플리케이션 개발 및 아키텍처를 설명합니다. 이는 애플리케이션 이 컨테이너 기반 인 경향이 있으며 동적 스케일링 메커니즘을 기반으로 "come and go"할 수 있음을 의미합니다. 분산 기술 (예 : 키 / 값 저장소)에 의존하는 상태 비 저장 아키텍처의 사용을 규정합니다.
우리 공간의 많은 것들과 마찬가지로 '서버리스 (Serverless)'는 과부하 된 용어가되고 있습니다. 그러나 일반적으로 "기능적으로, 우리의 아키텍처는 서버의 프로비저닝 또는 지속적인 유지 관리에 의존하지 않습니다"
가장 먼저 떠오르는 것은 단일 페이지 자바 스크립트 앱으로, 로컬 스토리지를 사용하며 Amazon S # 또는 Github Pages (또는 정적 사이트-일반적인 예일뿐)와 같은 곳에 저장됩니다. 브라우저에서 완전히 실행되는 '할 일'또는 '완료된 작업'스타일의 응용 프로그램과 같은 것을 상상해보십시오. 브라우저는 S3와 같은 서비스를 통해 코드를 다운로드하고 저장 한 항목은 모두 브라우저의 로컬 저장소에 저장됩니다. 이를 위해 유지 관리하는 서버가 없습니다.
두 번째 인스턴스는 좀 더 복잡하며 '서버리스'라는 용어를 대중화 한 AWS Lambda와 같은 서비스를 사용합니다. 해결하는 문제를 제시하여이를 설명하겠습니다.
내 경력에서 여러 번 나는 정기적 인 추출, 변환 및로드 (일반적으로 레이크 작업으로 작성)를 수행하는 루비 코드를 거의 사용하지 않는 클라이언트의 비즈니스 문제를 해결했습니다. 일단 해결되면 일반적으로 cron으로 자동화합니다. 그런 다음 문제는 '1 시간에 한 번씩 실행되는 것을 어디에서 호스팅합니까?' 일부 클라이언트의 경우 기존 인프라에 서버를 설정했습니다. 다른 경우에는 99 %의 유휴 상태 였지만 EC2 인스턴스를 설정했습니다. 이러한 상황 중 하나에 프로비저닝, 패치, 모니터링, 업데이트 등이 필요한 서버가 있습니다.
Amazon Lambda를 사용하면 레이크 작업을 수행하여 순수한 '기능'으로 서비스에서 실행할 수 있습니다. 예약 할 수도 있습니다. 더 이상 클라이언트가 그러한 단순한 1 시간 작업을 위해 인프라를 필요로하지 않을 것입니다.
'serverless'에는 여전히 'cloud'와 마찬가지로 여전히 컴퓨터가있는 서버가 있습니다. 그 위에는 환경 책임의 일부를 취하는 추상화 수준이 있습니다.
모든 훌륭한 답변은 이미 있습니다. 나는 블로그 포스트 Thinking Serverless-새로운 접근 방식 이 HighScalability의 최신 데이터 처리 요구 를 해결하는 방법을 살펴 보았습니다.
"서버리스"라는 문구가 서버가 더 이상 관여하지 않는다는 의미는 아닙니다. 그것은 단순히 개발자들이 더 이상 그것에 대해 많이 생각할 필요가 없다는 것을 의미합니다. 컴퓨팅 리소스는 물리적 용량이나 한계를 관리 할 필요없이 서비스로 사용됩니다. 서비스 제공 업체는 서버, 데이터 저장소 및 기타 인프라 리소스를 관리해야 할 책임이 점점 커지고 있습니다. 서버리스를 사용하면 개발자가 서버 수준에서 작업 수준으로 집중할 수 있습니다. 서버리스 솔루션을 통해 개발자는 백엔드 인프라의 복잡성을 제거함으로써 애플리케이션 또는 시스템의 요구에 집중할 수 있습니다.
그리고 서버리스 인프라 구축에 대한 개인적인 경험을 통해 얻은 또 다른 교훈은 다음과 같습니다.
예를 들어, 파일을 AWS SQS 대기열에 저장합니다. 대기열의 메시지 수가 10에 도달하면 Lambda에 이벤트를 발생시킵니다.