최근 몇 년 동안 서버리스 기능 (때로는 "서버리스"또는 "서버리스 컴퓨팅")이 인기있는 기술이되었습니다. 그러나이 용어에 대해 여전히 많은 혼란이 있습니다. 서버없이 코드를 실행하는 방법? 이 기술의 장점과 단점은 무엇입니까? 어떤 상황에서 사용할 수 있습니까? 이 기사에서는 이러한 질문에 답변하고 기술에 대한 좋은 개요를 제공하고 싶습니다.
키 포인트
서버리스 기능을 통해 개발자는 서버를 관리하지 않고 코드를 실행할 수 있습니다.
청구 패턴으로 인해 (실제 계산 시간에 따라 청구되며, 일반적으로 밀리 초로 계산 됨) 이러한 기능은 산발적 또는 가벼운 워크로드에 비용 효율적입니다.
서버리스 기능은 트래픽 증가를 처리하기 위해 자동으로 스케일링되지만 클라우드 제공 업체가 부과하는 최대 실행 시간 제한으로 인해 짧은 수명주기 프로세스에 가장 적합합니다.
서버리스 기능의 일반적인 사용 사례에는 양식 메일러, 예약 된 CRON 작업 및 이미지 처리 작업과 같은 간단한 백엔드 작업이 포함되어 있으며, 이는 다양한 작은 백엔드 작업을 처리하는 데있어서의 다양성을 입증합니다.
서버리스 기능을 배포하려면 기능 코드를 작성하고 필요한 종속성으로 포장하고 클라우드 제공 업체에 업로드하는 것이 포함되며 공급자와 사용 된 특정 기술이 다릅니다. -
서버리스 기능이란 무엇입니까? -
"서버리스"라는 용어를 처음 들었을 때 반드시 호기심을 불러 일으킬 것입니다. "서버없이 웹에서 코드를 실행하는 방법?" 실제로 의미하는 바는 개발자로서 코드가 실행되는 서버에 대해 걱정할 필요가 없다는 것입니다. 하드웨어 구성, 네트워크 구성, 소프트웨어 설치 및 확장은 모두 서버리스 제공 업체에 의해 추상화됩니다.
개발 관점에서 Serverless 기능은 AWS 또는 Google과 같은 서버리스 제공 업체에 업로드하는 코드 패키지입니다. 이 코드는 URL을 통한 요청에 응답하거나 예약대로 실행하거나 (예 : CRON 작업을 통해) 다른 서비스 또는 서버리스 기능에서 호출하도록 구성 할 수 있습니다. -
서버리스 기능은 전체 서버를 실행하는 복잡성과 비용없이 프론트 엔드 애플리케이션에 백엔드 기능을 추가하는 데 이상적입니다.
다른 극단에서는 서버리스 함수를 사용하여 전체 응용 프로그램을 빌드 할 수도 있습니다. 파일 스토리지, 데이터베이스 시스템 및 인증을 제공하는 다른 클라우드 서비스와 결합하여 단일 서버를 구성하지 않고도 대규모의 강력하며 확장 가능한 응용 프로그램을 구축 할 수 있습니다. -
서버리스 함수의 장점
서버리스 기능은 주문형으로 시작된 미니 컨테이너에서 실행됩니다. 그들은 상당히 짧은 달리기를 위해 설계되었으므로 청구는 이것에 적용됩니다. 일반적으로 시간별로 청구되는 전체 서버 인스턴스와 달리 서버리스 기능은 일반적으로 GB 초로 청구됩니다. 가장 짧은 청구 시간은 약 밀리 초이므로 서버리스가 기존 서버 인스턴스보다 훨씬 저렴한 기능으로 인해 저주파 또는 산발적 인 워크로드가 실행되므로 실행됩니다. 가벼운 워크로드와 프로토 타이핑은 일부 제공 업체의 무료 계층에 속할 수도 있습니다.
서버리스 기능의 주문형 호출은 개발자가 추가 작업을 수행 할 필요없이 빠르고 쉽게 확장 될 수 있음을 의미합니다. 이렇게하면 트래픽이 예측할 수 없을 정도로 확산 될 수있는 상황에 이상적입니다. 그 후에는 기능이 스케일로 축소되므로 사용하지 않는 용량에 대한 비용을 지불 할 필요가 없습니다.
서버리스 모델의 주요 장점은 서버 처리가 필요하지 않다는 것입니다. 웹 애플리케이션을 실행하려면 보안 패치를 사용하여 소프트웨어를 최신 상태로 유지하고 서버가 보안 및 고성능을 위해 올바르게 구성되도록하기 위해 많은 시간 및 서버 관리 전문 지식이 필요합니다. 신생 기업 및 소기업의 경우 서버 관리를 처리하기 위해 사람들을 고용하는 것은 큰 오버 헤드입니다. 서버리스를 사용하면 개발자가 솔루션을 만드는 데 집중할 수 있습니다.
서버리스 함수의 단점
물론 는 완벽한 기술이 없으며 서버리스 기능에는 결점이 있습니다. 앞에서 언급했듯이 서버리스 모델의 디자인은 수명이 짧습니다. 최대 실행 시간은 몇 분 (예 : AWS에서 15 분, Google에서 9 분)이므로 대량의 데이터 처리와 같은 장기 작업에는 적합하지 않습니다.
널리 논의 된 또 다른 문제는 추운 시작 시간입니다. 이것은 서버리스 기능이 실행되기 전에 제공자가 컨테이너를 구성하고 초기화하는 데 걸리는 시간입니다. 함수가 실행되면 코드가 다시 실행될 때 컨테이너를 잠시 동안 유지합니다. 이 "콜드 스타트"지연은 함수의 응답 시간에 1 초에서 1 초의 지연을 추가 할 수 있습니다. 서버리스 프레임 워크 용 워밍업 플러그인을 포함한 일부 해결 방법이 있습니다.이 프레임 워크는 컨테이너를 활성화하도록 계획대로 기능을 핑합니다.
서버리스 함수를 사용하면 서버 구성 및 유지 보수에 대한 걱정을 피할 수 있지만 학습 곡선이 없다는 의미는 아닙니다. 서버리스를 사용하여 응용 프로그램을 구축하려면 기존 모 놀리 식 코드베이스를 사용하는 것과는 다른 사고 방식이 필요합니다. 서버리스 함수의 한계를 수용하기 위해 기능을 더 작고 더 독립적 인 서비스로 나누고 다른 방식으로 코드를 구축해야합니다. 각 기능이 독립적으로 버전 및 업데이트되므로 배포도 더 복잡합니다.
때로는 공급 업체 잠금 문제에 대한 참조도있어 서버리스 기술의 단점입니다. 현재이 분야의 주요 제공 업체 (AWS, Google, Azure)는 자체 구현 및 관리 도구를 가지고 있습니다. 이로 인해 한 클라우드 제공 업체에서 다른 클라우드 제공 업체로 서버리스 애플리케이션을 마이그레이션하기가 어려울 수 있습니다. Serverless Framework와 같은 프로젝트는 기본 서비스를 추상화하여 응용 프로그램이 제공자간에 포팅 될 수 있도록 시도합니다.
서버리스 기능 사용 사례
서버리스 기능을 사용하여 전체 응용 프로그램을 구축 할 수 있지만 서버리스가 평균 개발자에게 도움이 될 수있는 야심 찬 사용 사례를 살펴 보겠습니다.
양식 메일 링 프로그램
웹 사이트는 일반적으로 고객이 클릭 할 때 사용자에게 이메일을 보내고 자하는 연락 양식을 제외하고는 완전히 정적입니다. 웹 사이트의 호스팅 제공 업체는 서버 측 스크립팅을 지원하거나 지원하지 않을 수도 있으며, 지원 되더라도 익숙한 언어가 아닐 수도 있습니다. 서버리스 기능을 양식 Mailer로 설정하면이 기능을 정적으로 호스팅하는 웹 사이트에 추가 할 수 있습니다.
크론 할당
때로는 백그라운드에서 예정된 작업을 실행해야 할 수도 있습니다. 일반적으로 CRON 작업을 위해 서버를 설정하려면 비용을 지불해야 하며이 서버는 작업간에 유휴 상태입니다. 서버리스 함수를 사용하면 작업이 실행되는 데 걸리는 시간 만 지불합니다 (무료 계층 내에있는 경우 전혀 지불 할 수 없습니다).
썸네일 생성기
RECT 응용 프로그램을 사용하면 사용자가 응용 프로그램 전체에서 아바타로 사용할 사진을 업로드 할 수 있다고 가정합니다. 업로드 된 이미지를 크기를 조정하여 필요한 것보다 훨씬 큰 이미지를 제공하여 대역폭을 낭비하지 않도록합니다. 서버리스 기능을 사용하여 요청을 처리하고 이미지를 원하는 크기로 크기로 조정하고 S3 또는 Google Storage와 같은 서비스로 저장할 수 있습니다.
서버리스 함수의 실제 예
서버리스 기능의 작동 방식에 대한 더 깊은 이해를 얻으려면 실제 예를 살펴 보겠습니다. 서버리스 기능을 사용하여 사용자 이름과 이메일 주소를 Google 스프레드 시트에 저장하는 보도 자료 가입 양식이 포함 된 정적 페이지를 만듭니다.
제공자에 따라 서버리스 기능은 여러 언어로 작성 될 수 있지만 NetLify는 Node.js 함수를 지원하기 때문에 JavaScript를 사용합니다. 학습을 계속하기 위해 현지 컴퓨터에 최신 버전의 노드/NPM이 설치되어 있다고 가정합니다.
(다음 단계는 원래 예제와 동일합니다. 일관성을 유지하기 위해서는 여기에서 반복 된 번역이 없습니다.)
서버리스 : 단지 패션 일뿐입니다. 또는 백엔드의 미래?
서버리스는 또한 패션으로 비난되며 백엔드 애플리케이션의 미래로 환영받습니다. Amazon의 Lambda 기능은 2014 년부터 진행되었으며 AWS의 주요 제품입니다. 물론, 많은 경우, 전체 쉘 액세스로 24/7을 실행하는 실제 서버의 유연성과 기능은 여전히 필요합니다.
그러나 우리가 보았 듯이 서버리스, 확장 성 및 유지 보수 비용의 저렴한 비용은 일부 유형의 워크로드에 적합한 선택입니다. 서버리스 생태계의 점점 더 많은 책, 코스, 프레임 워크 및 서비스가 출현하면 서버리스 기능이 오랫동안 존재할 것이라고 말하는 것이 안전합니다.
(다음 FAQ 부분은 원래 예제와 동일합니다. 일관성을 유지하기 위해서는 여기에서 반복 된 번역이 없습니다.)
위 내용은 서버리스 기능 : 사용 및 배포 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!