서버리스 란 무엇입니까?


42

모든 클라우드 제공 업체는 "서버리스"솔루션을 마케팅하고 있습니다. 서버리스는 개발자가 현재 소프트웨어를 개발하고 운영에서 소프트웨어를 관리하는 방식을 서버리스가 대신 할 것이라고 약속합니다.

"서버리스"란 무엇입니까? 그것에 대해 더 배울 수있는 곳은 어디이며 오늘날 어떻게 사용할 수 있습니까?


서버를 사용하지 않는 컴퓨팅은 당신이 개인적 닭 충족하지으로 "서버가 적은"A "치킨 버거"로 채식입니다
사이 Addanki

답변:


43

서버리스 컴퓨팅 에 관한 Wikipedia의 기사 는 다음과 같은 주제에 대한 적절한 소개를 제공합니다.

FaaS (function as a service)라고도하는 서버리스 컴퓨팅은 클라우드 공급자가 요청 및 요청을 처리하는 데 필요한 기능으로 PaaS (컨테이너 플랫폼 서비스)의 시작 및 중지를 완전히 관리하는 클라우드 컴퓨팅 코드 실행 모델입니다. 시간당 가상 머신이 아니라 요청을 충족시키는 데 필요한 리소스의 추상 측정 값이 청구됩니다.

아이디어는 개발자 가 서버 인프라를 전혀 신경 쓰지 않아도된다는 것 입니다. 클라우드 공급자는 물리적 서버, 사용 된 운영 체제 및 서버 실행과 관련된 모든 기존 어려움을 관리합니다.

서버리스 컴퓨팅 은 시스템 이 수행하는 작업에 대한 생각에서 기능 이 수행되는 작업으로 변경합니다. AWS Lambda 는 아래에서 실행중인 물리적 인프라 유형에 대한 언급없이 기능 비용을 지불하고 실행하는 예입니다 . Azure Functions 와 같은 경쟁 서버가없는 호스트도 있습니다 (또는 둘 중 하나에 관심이없는 경우 간단히 검색 할 수 있음).

서버리스에는 몇 가지 장점이 있습니다 (아마도 완전히 다른 아키텍처이기 때문에 예전과 약간 다른 방식으로 작성해야하지만).

  • 확장 성은 본질적으로 무료입니다. 기능을 실행하기 위해 비용을 지불하기 때문에 클라우드 공급자는 코드를 실행하는 데 필요한만큼 더 많은 하드웨어를 쉽게 전용 할 수 있습니다. 응용 프로그램을 한 번만 사용하든 백만 번을 사용하든 고정 요금을 지불하지 않고 수요가 증가함에 따라 확장 할 수도 있습니다.

  • 서버 소프트웨어 및 하드웨어는 더 이상 개발자가 관리 할 필요가 없습니다. 클라우드 공급자가이를 처리합니다. 서버에서 Arch와 같은 것을 사용한 적이 있다면 중요한 패키지를 지우고 모든 것을 분리하는 것이 얼마나 쉬운 지 알게 될 것입니다!

  • 개발자가 코드를 잘 작성하는 데 집중할 수 있습니다 . 대부분의 개발자는 아마도 서버 인프라 프로그래밍 모두에 능숙 하지 않을 것입니다. 서버 리스는 방정식에서 한 가지 문제 만 해결하면됩니다.


"서버 인프라에 전혀 신경 쓸 필요가 없습니다." 내 경험에 따르면 너무나 많은 사람들이 이미 /하지 않은 / 비참한 결과가 있기 때문에 그것은 정말 좋은 일입니다!
Phill W.

15

Martin Fowler의 개요는 다음과 같습니다.
https://martinfowler.com/articles/serverless.html

TL; DR
"서버리스"는 인프라가 임시적인 애플리케이션을 설계하는 애플리케이션 개발 및 아키텍처를 설명합니다. 이는 애플리케이션 이 컨테이너 기반 인 경향이 있으며 동적 스케일링 메커니즘을 기반으로 "come and go"할 수 있음을 의미합니다. 분산 기술 (예 : 키 / 값 저장소)에 의존하는 상태 비 저장 아키텍처의 사용을 규정합니다.


2
임시 일뿐 만 아니라 완전히 추상화되었습니다. 서버가없는 많은 최신 설정 (예 : AWS EC2 ASG)에서 인프라는 일시적입니다. ASG의 EC2 인스턴스는 언제든지 종료 할 수 있습니다.
Adrian

14

우리 공간의 많은 것들과 마찬가지로 '서버리스 (Serverless)'는 과부하 된 용어가되고 있습니다. 그러나 일반적으로 "기능적으로, 우리의 아키텍처는 서버의 프로비저닝 또는 지속적인 유지 관리에 의존하지 않습니다"

가장 먼저 떠오르는 것은 단일 페이지 자바 스크립트 앱으로, 로컬 스토리지를 사용하며 Amazon S # 또는 Github Pages (또는 정적 사이트-일반적인 예일뿐)와 같은 곳에 저장됩니다. 브라우저에서 완전히 실행되는 '할 일'또는 '완료된 작업'스타일의 응용 프로그램과 같은 것을 상상해보십시오. 브라우저는 S3와 같은 서비스를 통해 코드를 다운로드하고 저장 한 항목은 모두 브라우저의 로컬 저장소에 저장됩니다. 이를 위해 유지 관리하는 서버가 없습니다.

두 번째 인스턴스는 좀 더 복잡하며 '서버리스'라는 용어를 대중화 한 AWS Lambda와 같은 서비스를 사용합니다. 해결하는 문제를 제시하여이를 설명하겠습니다.

내 경력에서 여러 번 나는 정기적 인 추출, 변환 및로드 (일반적으로 레이크 작업으로 작성)를 수행하는 루비 코드를 거의 사용하지 않는 클라이언트의 비즈니스 문제를 해결했습니다. 일단 해결되면 일반적으로 cron으로 자동화합니다. 그런 다음 문제는 '1 시간에 한 번씩 실행되는 것을 어디에서 호스팅합니까?' 일부 클라이언트의 경우 기존 인프라에 서버를 설정했습니다. 다른 경우에는 99 %의 유휴 상태 였지만 EC2 인스턴스를 설정했습니다. 이러한 상황 중 하나에 프로비저닝, 패치, 모니터링, 업데이트 등이 필요한 서버가 있습니다.

Amazon Lambda를 사용하면 레이크 작업을 수행하여 순수한 '기능'으로 서비스에서 실행할 수 있습니다. 예약 할 수도 있습니다. 더 이상 클라이언트가 그러한 단순한 1 시간 작업을 위해 인프라를 필요로하지 않을 것입니다.

'serverless'에는 여전히 'cloud'와 마찬가지로 여전히 컴퓨터가있는 서버가 있습니다. 그 위에는 환경 책임의 일부를 취하는 추상화 수준이 있습니다.


일반적으로 EC2가 필요한 1 시간에 한 번의 실제 사례에 대한 저의 의견입니다. 이제 Lambda 함수 만 있으면됩니다!
HopeKing

10

모든 훌륭한 답변은 이미 있습니다. 나는 블로그 포스트 Thinking Serverless-새로운 접근 방식 이 HighScalability의 최신 데이터 처리 요구 를 해결하는 방법을 살펴 보았습니다.

"서버리스"라는 문구가 서버가 더 이상 관여하지 않는다는 의미는 아닙니다. 그것은 단순히 개발자들이 더 이상 그것에 대해 많이 생각할 필요가 없다는 것을 의미합니다. 컴퓨팅 리소스는 물리적 용량이나 한계를 관리 할 필요없이 서비스로 사용됩니다. 서비스 제공 업체는 서버, 데이터 저장소 및 기타 인프라 리소스를 관리해야 할 책임이 점점 커지고 있습니다. 서버리스를 사용하면 개발자가 서버 수준에서 작업 수준으로 집중할 수 있습니다. 서버리스 솔루션을 통해 개발자는 백엔드 인프라의 복잡성을 제거함으로써 애플리케이션 또는 시스템의 요구에 집중할 수 있습니다.

그리고 서버리스 인프라 구축에 대한 개인적인 경험을 통해 얻은 또 다른 교훈은 다음과 같습니다.

  • 서버리스 데이터 파이프 라인은 실제로 실시간 일 필요는 없습니다. AWS CloudWatch 경보 메커니즘을 통해 효율적인 배치 처리 서버리스 파이프 라인을 구축 할 수 있습니다.이를 통해 툴을 모니터링하고 (AWS) Lambda에 대해 경보를 계산할 수 있습니다.

예를 들어, 파일을 AWS SQS 대기열에 저장합니다. 대기열의 메시지 수가 10에 도달하면 Lambda에 이벤트를 발생시킵니다.


6

서버리스라는 용어의 정의를 간단히 설명하는 것 외에도 용어의 기원과 그 역사는 그 의미에 대한 통찰력을 제공합니다. 개념은 비롯 JAWS의 프레임 워크 에 의해 오스틴 콜린스 있어, 나중에 이름 으로 서버를 사용 . AWS re : Invent 2015 세션 에서 처음으로 배웠으며 , 개념을 업데이트하는 데 도움이 될 수 있습니다. 이것이 실제로 서버리스 (Serverless)라는 용어와 일치하여 다른 클라우드 시스템으로 빠르게 확산되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.