1. 각 클라우드에서 절반 이상의 조직이 서버리스를 채택했다.
- 2020년에는 AWS에서 50%가 넘었는데 이젠 AWS, Azure, Google Cloud 모두에서 50%가 넘었다.
- AWS: AWS Lambda, AWS App Runner, ECS Fargate, EKS Fargate
- Azure: Azure Functions, AKS running on Azure Container Instances
- Google Cloud: Google Cloud Functions, Google App Engine, Google Cloud Run
2. Lambda 사용자에서 Python, Node.js가 여전히 지배적이다.
- 이 두 언어는 Lambda 초기부터 지원되었던 언어이다.
- 처음 Lambda를 도입할 때 편하고 자료도 많은 Python, Node.js를 주로 사용한다.
- 이후 Lambda에 익숙해 지면 Python, Node.js로 작성되지 않은 워크로드를 Lambda로 마이그레이션 할 가능성이 높아진다.
- 이로 인해 Lambda에서 Go와 Java의 채택이 높아져서 Lambda 조직의 30% 이상이 이 두 언어를 사용하고 있다.
3. 큰 조직의 60% 이상이 최소 3개의 언어로 Lambda를 배포한다.
- 이는 서버리스 애플리케이션을 만드는데 모든 상황에 맞는 한가지 방법은 없다는 것을 보여주고 사용사례에 따라 다른 런타임을 쓴다는 것을 의미한다.
4. Lambda 함수를 가장 많이 호출하는 AWS 기술은 API Gateway와 SQS다.
5. API Gateway가 호출하는 Lambda의 80%는 단일 목적 함수이다.
- Lambda 함수에서 API를 제공하는 두가지 패턴은 모노리식 함수와 단일목적 함수다.
- 모노리식 함수는 여러 HTTP 엔드포인트를 제공하고 여러 타입의 작업을 실행할 내부 라우팅 로직이 있다.
- 단일목적 함수는 하나의 HTTP 메서드/엔드포인트에만 응답한다.
- 이는 단일 목적함수가 많은 장점이 있다는 것을 보여준다.
- 단일 목적함수는 다른 것과 격리되어 있고 더 안전하게 운영할 수 있으며 콜드 스타트시간도 짧다.
6. Lambda 사용자 5명 중 한명은 컨테이너 이미지로 배포한다.
- AWS는 2020년 zip 파일 외에 Docker 컨테이너 이미지로 배포할 수 있도록 Lambda에서 지원하기 시작했다.
- 이후 서버리스와 컨테이너 기술의 장접을 합쳐서 쓰는 것이 지속적으로 증가해서 20%가 되었다.
- zip 파일의 제한은 250MB이지만 컨테이너 이미지는 10GB까지 가능하다.
7. Lambda 사용자의 20% 이상은 ECS Fargate도 사용한다.
- Lambda가 인기를 끌면서 사용자들은 서버리스를 확장할 방법을 찾게되어 ECS Fargate도 쓰게 되었다.
- ECS EC2의 사용은 줄어들고 ECS Fargate의 사용은 늘어나고 있다
8. Google Cloud에서 서버리스 애플리케이션을 배포하는 방법 중 Google Cloud Run이 가장 빠르게 늘어나고 있다.
- Google Cloud를 쓰는 DataDog 고객 중 40%가 Google Cloud Functions를 채택했지만 이는 Google Cloud Run보다 3% 정도만 높은 채택율이다.
9. Azure Functions는 Azure에가 가장 인기있는 서버리스 제품이지만 Azure Container Instances의 채택이 빠르게 증가하고 있다.
- Azure 고객 중 40% 이상이 Azure의 FaaS 제품인 Azure Functions를 사용하고 있다.
- 서버리스 컨테이너 제품인 Azure Container Instances의 채택이 크게 증가해서 30%에 가까워졌다.