서버리스 컴퓨팅
Serverless computing서버리스 컴퓨팅은 클라우드 프로바이더가 필요에 따라 머신 자원을 할당하여 고객을 대신하여 서버를 관리하는 클라우드 컴퓨팅 실행 모델입니다."서버리스"는 클라우드 서비스 프로바이더가 개발자를 위한 코드를 실행하기 위해 서버를 여전히 사용하고 있다는 점에서 잘못된 명칭입니다.그러나 서버리스 애플리케이션 개발자는 컨테이너, VM 또는 물리 서버의 용량 계획, 구성, 관리, 유지보수, 폴트 톨러런스 또는 확장에 관여하지 않습니다.서버리스 컴퓨팅은 휘발성 메모리에 리소스를 보유하지 않습니다.컴퓨팅은 단시간에 이루어지며 그 결과는 스토리지에 유지됩니다.앱을 사용하지 않을 때는 앱에 할당된 컴퓨팅 리소스가 없습니다.가격은 애플리케이션이 [1]실제로 소비하는 자원의 양에 근거합니다.유틸리티 컴퓨팅의 한 형태일 수 있습니다.
서버리스 컴퓨팅을 사용하면, 실전 가동에 코드를 도입하는 프로세스를 심플화할 수 있습니다.서버리스 코드는 마이크로 서비스나 모노리스와 같은 기존 스타일로 배치된 코드와 함께 사용할 수 있습니다.또는 순수하게 서버가 없는 애플리케이션으로 쓰여 프로비저닝된 서버를 [2]전혀 사용하지 않을 수도 있습니다.이것은, 실제의 서버를 필요로 하지 않는 컴퓨팅 모델이나 네트워크 모델(P2P 등)과 혼동하지 말아 주세요.
서버리스 런타임
서버리스 벤더는 애플리케이션 로직을 실행하지만 데이터를 저장하지 않는 FaaS(Function as a Service) 플랫폼이라고도 하는 컴퓨팅 실행 시간을 제공합니다.서버리스 런타임에서 지원되는 공통 언어는 Java, Python 및 PHP입니다.일반적으로 함수는 Linux 컨테이너와 같은 격리 경계에서 실행됩니다.
상용 제품
최초의 "pay as you go" 코드 실행 플랫폼은 2006년에 출시된 Zimki였지만 상업적으로 성공하지 [3]못했다.2008년 구글은 구글 앱엔진을 출시했는데, 이 엔진은 커스텀 파이썬 프레임워크를 사용하는 어플리케이션에 대해 미터링된 과금을 제공하지만 [4]임의 코드를 실행할 수 없었다.2010년에 출시된 PiCloud는 [5]Python에 대한 FaaS 지원을 제공했습니다.
Kubless와 Nexpulation은 Kubernetes와 함께 작동하는 두 개의 오픈 소스 FaaS 플랫폼입니다.
2008년에 도입된 구글 앱 엔진은 최초의 추상 서버리스 컴퓨팅 제품이었다.[6]App Engine에는 60초 타임아웃이 있는 HTTP 기능과 자체 타임아웃이 있는 BLOB 스토어 및 데이터 스토어가 포함되어 있습니다.메모리 내 지속성은 허용되지 않았습니다.모든 작업은 이러한 제한 내에서 실행되어야 했지만, 이를 통해 App Engine에 내장된 앱은 거의 무한대로 확장할 수 있었고 Snapchat을 비롯한 초기 고객 및 많은 외부 및 내부 Google 앱을 지원하는 데 사용되었습니다.언어 지원은 네이티브 Python 모듈을 사용하는 Python과 구글이 선택한 C의 Python 모듈의 제한된 선택으로 제한되었습니다.이후 서버리스 플랫폼과 마찬가지로 App Engine도 사용량에 따른 [7]과금 방식을 사용했습니다.
2014년 [8]아마존이 선보인 AWS Lambda는 추상 서버리스 컴퓨팅 모델을 대중화했다.AWS SAM(Serverless Application Model) Amazon CloudWatch와 같은 여러 추가 AWS 서버리스 툴에서 지원됩니다.
Google Cloud Platform은 2016년에 [9]두 번째 서버리스 제품인 Google Cloud Functions를 만들었습니다.
Oracle Cloud Functions는 Oracle Cloud Infrastructure에서 제공되는 서버리스 플랫폼으로 오픈 소스 Fn 프로젝트를 기반으로 개발자가 다른 클라우드 및 사내 환경으로 이식할 수 있는 애플리케이션을 만들 수 있습니다.Python, Go, Java, Ruby, [10]Node의 코드를 지원합니다.
서버리스 데이터베이스
지난 몇 년 동안 여러 개의 서버리스 데이터베이스가 등장했습니다.이러한 시스템은 서버리스 실행 모델을 RDBMS로 확장하므로 가상화 또는 물리 데이터베이스 하드웨어를 프로비저닝하거나 확장할 필요가 없습니다.
Nutanix는 Oracle, MariaDB, Postgre 등의 기존 RDBMS를 전환하는 Era라는 이름의 솔루션을 제공합니다.SQL 또는 Microsoft SQL Server를 서버리스 [11]서비스로 만듭니다.
Amazon Aurora는 MySQL 및 Postgre 기반의 서버리스 데이터베이스 버전을 제공합니다.SQL: 온디맨드 자동 확장 [12]구성을 제공합니다.
Azure Data Lake는 확장성이 뛰어난 데이터 스토리지 및 분석 서비스입니다.이 서비스는 마이크로소프트의 퍼블릭 클라우드인 Azure에서 호스팅됩니다.Azure Data Lake Analytics는 리소스를 동적으로 할당하거나 할당 해제할 수 있는 분산 인프라를 제공하여 고객이 사용하는 서비스에 대해서만 비용을 지불하도록 합니다.
Oracle Cloud는 Autonomous Transaction Processing 서비스인 Oracle Autonomous Database의 서버리스 버전을 제공합니다.서버리스 서비스에는 JSON [13]에디션도 포함되어 있습니다.
Firebase도 Google이 [14]소유하고 있으며 계층형 데이터베이스를 포함하고 있으며 고정 요금제와 종량제 [15]요금제를 통해 이용할 수 있습니다.
이점
비용.
서버리스에서는 일정량의 [16]서버를 임대 또는 구입하는 것보다 비용 효율이 높아집니다.이는 일반적으로 상당한 기간 동안 낮은 사용률 또는 유휴 [1]시간을 필요로 합니다.기반이 되는 머신리소스의 bin-packing이 효율적이기 때문에, 자동 계산 그룹을 프로비저닝 하는 것보다 비용 효율이 높아집니다.
이는 사용량에[16] 따른 과금 컴퓨팅 또는 베어[16] 코드라고 할 수 있습니다.이는 코드 실행에 할당된 시간과 메모리만을 기준으로 과금되기 때문에 아이돌 [16]시간에 대한 관련 요금이 발생하지 않습니다.
라이센스, 설치, 의존관계, 유지보수, 지원 또는 [16]패치 적용 인건비 등 운영 비용 부족과 관련된 즉각적인 비용 이점이 있습니다.인건비 부족은 클라우드 컴퓨팅에 광범위하게 적용되는 이점입니다.
탄력성과 확장성
또한 서버리스 아키텍처는 개발자와 운영자가 자동 계산 정책 또는 시스템을 설정하고 조정하는 데 시간을 할애할 필요가 없음을 의미합니다. 클라우드 공급자는 수요에 [1][17][16]따라 용량을 확장할 책임이 있습니다.구글의 표현대로: "시제품에서 생산, 그리고 행성급까지"[16]
클라우드 네이티브 시스템은 본질적으로 스케일 다운과 스케일 업이 모두 이루어지기 때문에 이러한 시스템은 확장성이 아니라 탄력성이 있다고 알려져 있습니다.
인프라 및 지원 엔지니어 팀에 의존하지 않고 소규모 개발자 팀이 직접 코드를 실행할 수 있습니다. DevOps의 숙련자가 증가하고 소프트웨어 개발자 또는 하드웨어 엔지니어의 [16]구분이 모호해지고 있습니다.
생산성
Function as a Service에서 외부에 노출되는 코드 단위는 단순한 이벤트 구동 함수입니다.이는 일반적으로 프로그래머가 코드의 HTTP 요청을 멀티스레딩하거나 직접 처리할 필요가 없으므로 백엔드 소프트웨어 개발 태스크를 단순화할 수 있음을 의미합니다.
단점들
성능
자주 사용하지 않는 서버리스 코드는 전용 서버, 가상 머신 또는 컨테이너에서 지속적으로 실행되고 있는 코드보다 응답 지연 시간이 길어질 수 있습니다.이는 자동스케일링과 달리 클라우드 프로바이더는 일반적으로 서버리스 코드를 사용하지 않을 때 완전히 "스핀다운"하기 때문입니다.즉, 런타임(예를 들어 Java 런타임)이 부팅에 상당한 시간이 필요한 경우 추가 [18]지연이 발생합니다.
자원 제한
서버리스 컴퓨팅은 클라우드 프로바이더에 의해 부과되는 자원 제한과 특정 [19]시점에서 필요한 것으로 생각되는 수의 서버를 대량 프로비저닝하는 것이 저렴하기 때문에 고성능 컴퓨팅과 같은 일부 컴퓨팅 워크로드에는 적합하지 않습니다.
모니터링 및 디버깅
서버리스 코드에서 퍼포먼스나 과도한 자원 사용 문제를 진단하는 것은 기존 서버 코드보다 어려울 수 있습니다.이는 전체 기능을 타이밍을 [2]맞출 수 있지만 일반적으로 프로파일러, 디버거 또는 APM [20]도구를 연결하여 더 자세한 내용을 파악할 수 없기 때문입니다.또한 코드가 실행되는 환경은 일반적으로 오픈소스가 아니기 때문에 성능 특성을 로컬 환경에서 정확하게 복제할 수 없습니다.
보안.
서버리스(Serverless)는 기존 아키텍처보다 안전하다고 오해받는 경우가 있습니다.OS의 취약성은 클라우드 프로바이더에 의해 관리되기 때문에 어느 정도 사실이지만, 기존 아키텍처에 비해 애플리케이션 컴포넌트가 훨씬 많고 각 컴포넌트가 서버리스 애플리케이션의 엔트리 포인트이기 때문에 총 공격 표면은 상당히 커집니다.또한 엔드포인트 및 네트워크 레벨에 침입 탐지/예방 시스템(IDS/IPS)[21]과 같은 어떤 것도 제어 및 설치할 수 없기 때문에 클라우드 워크로드를 보호하기 위해 고객이 사용하던 보안 솔루션은 무용지물이 됩니다.
이는 전체 서버 네트워크의 단일 문화 속성에 의해 강화됩니다.(단일 결함은 글로벌하게 적용될 수 있습니다.)Protego에 따르면 서버리스 앱을 보호하는 솔루션은 개발자, DevOps 및 AppSec(DevSecOps라고도 함) 간의 긴밀한 파트너십입니다.개발자가 보안을 소유하지 않을 뿐만 아니라 책임에서 해방되지 않을 때 균형을 찾아보세요.모든 사람의 문제로 만들기 위한 조치를 취하세요.여러 부서로 구성된 팀을 구성하고 보안 전문가와 개발 팀 간의 긴밀한 통합을 위해 노력합니다.조직이 서버리스 [22]속도로 보안 위험을 해결할 수 있도록 협업하십시오."
사생활
많은 서버리스 기능 환경은 자체 퍼블릭 클라우드 환경을 기반으로 합니다.여기에서는, 공유 자원이나 외부 종업원의 액세스 등, 프라이버시에 관한 몇개의 영향을 고려할 필요가 있습니다.그러나 서버리스 컴퓨팅은 Kubernetes 플랫폼을 사용하여 프라이빗 클라우드 환경이나 사내에서도 실행할 수 있습니다.이것에 의해, 종래의 서버 셋업에서의 호스팅과 같이, 기업은 프라이버시 메카니즘을 완전하게 제어할 수 있게 됩니다.
표준
서버리스 컴퓨팅은 International Data Center Authority(IDCA)의 프레임워크 AE360에 [23]포함되어 있습니다.그러나 Docker 솔루션이 작성된 퍼블릭 클라우드 간에 비즈니스 로직을 이동할 때는 휴대성과 관련된 부분이 문제가 될 수 있습니다.Cloud Native Computing Foundation(CNCF)은 Oracle과의 [24]사양 개발에도 힘쓰고 있습니다.
벤더 록인
서버리스 컴퓨팅은 서드파티 서비스로 제공됩니다.서버리스 환경에서 실행되는 애플리케이션과 소프트웨어는 기본적으로 특정 클라우드 [25]벤더에 잠깁니다.따라서 서버리스로 인해 [26]이행 중에 여러 가지 문제가 발생할 수 있습니다.
용도/기능
서버리스 기능은 다음 [27]용도로 사용할 수 있습니다.
- 데이터 분석
- CI/CD 조작
- 파일 변환
- 로그의 집약과 재구축
- 동적 웹 사이트 콘텐츠 지원
「 」를 참조해 주세요.
레퍼런스
- ^ a b c Miller, Ron (24 Nov 2015). "AWS Lambda Makes Serverless Applications A Reality". TechCrunch. Retrieved 10 July 2016.
- ^ a b MSV, Janakiram (16 July 2015). "PaaS Vendors, Watch Out! Amazon Is All Set To Disrupt the Market". Forbes. Retrieved 10 July 2016.
- ^ Williams, Christopher. "Fotango to smother Zimki on Christmas Eve". The Register. Retrieved 2017-06-11.
- ^ "Python Runtime Environment App Engine standard environment for Python Google Cloud Platform". Google Cloud Platform. Retrieved 2017-06-11.
- ^ "PiCloud Launches Serverless Computing Platform To The Public". TechCrunch. Retrieved 2018-12-17.
- ^ Evans, Jon. "Whatever Happened to PaaS?". TechCrunch. Retrieved 17 December 2020.
- ^ Kincaid, Jason. "Google App Engine Offers Pricing Plan Beyond Quotas; Grab A Free I/O Ticket To Celebrate". TechCrunch. Retrieved 17 December 2020.
- ^ Miller, Ron (13 Nov 2014). "Amazon Launches Lambda, An Event-Driven Compute Service". TechCrunch. Retrieved 10 July 2016.
- ^ Novet, Jordan (9 February 2016). "Google has quietly launched its answer to AWS Lambda". VentureBeat. Retrieved 10 July 2016.
- ^ "How to choose a cloud serverless platform". www.arnnet.com.au. Retrieved 2022-03-23.
- ^ "One-click Database Administration & Automation Nutanix Era".
- ^ "Amazon Aurora Serverless - On-demand, Auto-scaling Relational Database - AWS". Amazon Web Services, Inc. Retrieved 2019-08-08.
- ^ "Oracle brings the Autonomous Database to JSON". ZDNet. Retrieved 2022-03-23.
- ^ Lardinois, Frederic. "Google Acquires Firebase To Help Developers Build Better Real-Time Apps TechCrunch". Retrieved 2017-06-11.
- ^ Darrow, Barb (2013-06-20). "Firebase gets $5.6M to launch its paid product and fire up its base". gigaom.com. Retrieved 2017-06-11.
- ^ a b c d e f g h Jamieson, Frazer (4 September 2017). "Losing the server? Everybody is talking about serverless architecture".
- ^ Miller, Ron (31 March 2016). "Microsoft answers AWS Lambda's event-triggered serverless apps with Azure Functions". TechCrunch. Retrieved 10 July 2016.
- ^ van Eyk, Erwin; Iosup, Alexandru; Abad, Cristina L.; Grohmann, Johannes; Eismann, Simon (2018). "A SPEC RG Cloud Group's Vision on the Performance Challenges of FaaS Cloud Architectures" (PDF). Companion of the 2018 ACM/SPEC International Conference on Performance Engineering. pp. 21–24. doi:10.1145/3185768.3186308. hdl:1871.1/8aa529e9-f8f9-4305-8073-91dd1a9451fb. ISBN 9781450356299. S2CID 4718290.
- ^ Hellerstein, Joseph; Faleiro, Jose; Gonzalez, Joseph; Schleier-Smith, Johann; Screekanti, Vikram; Tumanov, Alexey; Wu, Chenggang (2019). "Serverless Computing: One Step Forward, Two Steps Back". arXiv:1812.03651.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Leitner, Philipp; Wittern, Erik; Spillner, Josef; Hummer, Waldemar (2019). "A mixed-method empirical study of Function-as-a-Service software development in industrial practice". Journal of Systems and Software. 149: 340–359. doi:10.1016/j.jss.2018.12.013. hdl:11475/14313. ISSN 0164-1212. S2CID 67775784.
- ^ https://www.puresec.io/serverless-security-top-12-csa-puresec
- ^ Solow, Hillel (2019-02-05). "Serverless Computing Security Risks & Challenges". protego.io. Retrieved 2019-03-20.
- ^ "The Standards Framework for the Application Ecosystem International Data Center Authority (IDCA)".
- ^ "CNCF, Oracle Boost Serverless Standardization Efforts". SDxCentral. Retrieved 2018-11-24.
- ^ Bashir, Faizan (2018-05-28). "What is Serverless Architecture? What are its Pros and Cons?". Hacker Noon. Retrieved 2019-04-03.
- ^ "What Is Serverless? Here's a Plain Answer!". Squadex. 2019-01-17. Retrieved 2019-04-03.
- ^ "What Is Serverless Computing?". ITPro Today. 2021-12-13. Retrieved 2022-03-23.
추가 정보
- Roberts, Mike (25 July 2016). "Serverless Architectures". MartinFowler.com. Retrieved 30 July 2016.
- Jamieson, Frazer (4 September 2017). "Losing the server? Everybody is talking about serverless architecture". BCS, the Chartered Institute for IT. Retrieved 7 November 2017.