Knative Autoscaling 연구하기안녕하세요. 이전 포스팅에서 Serving과 Eventing 그리고 Auto Scaling에 대해서 알아보았습니다. Knative의 Auto Scaling은 기존의 Metric, Event 방식의 Autoscaler들과는 달리 KPA(Knative Pod Autoscaler)에 의해 Concurrency 즉, Request 수에 따라 Autoscaling이 이루어지게 됩니다. 따라서 이번 포스팅에서는 Knative에서 Auto Scaling이 내부적으로 어떻게 동작하고 어떻게 구현되어있는지 그리고 어떠한 수식과 로직에 따라계산되는지 등에 대해 코드레벨에서 분석한 내용을 말씀드리고자합니다. * 코드의 내용이 방대하여 전체 코드를 세세하게 보진 못하여 틀린 부..
Knative Eventing 연구하기안녕하세요. 이전 포스팅에서 Serving과 Auto Scaling에 대해서 알아보았습니다. Knative는 서버리스 서비스의 라이프사이클 뿐만아니라 서비스로 전달되는 다양한 이벤트를 관리하거나 혹은 이벤트를 직접 생성할 수있는 기능을 제공하고 있습니다. 따라서 이번 포스팅에서는 Eventing에 속해 있는 개념들과 이러한 Eventing들이 제공하는 다양한 기능들에 대해서 설명드리겠습니다. Knative Eventing서버리스 서비스들을 개발하는 개발자들은 이벤트를 기반으로하여 다양한 서비스들을 개발할 수 있습니다. Knative Eventing에서는 특히 이벤트를 생성하는 이벤트 생성자와 이벤트를 수신하는 이벤트 컨슈머등의 개념을 기반으로 기능을 제공하고 있..
Knative 연구하기안녕하세요. 최근 개인적으로 Serverless 분야를 흥미있게 연구하고 있는데 이전에 포스팅 했던 Faas(Function as a Service) 프로젝트인 OpenFaaS와 더불어 Kubernetes 인프라 상에서 동작하는 Serverless 프로젝트인 Knative에 정리하고자 합니다. Knative는 2018년 7월 구글에서 발표한 오픈소스 프로젝트로 Knative를 사용하면 컨테이너 기반의 어플리케이션을 쉽게 개발하고 배포하며 또 관리 할 수있게 됩니다. 그림 1과 같이 Knative를 통해 개발자들은 서버 관리 등에 대해서 고려할 필요없이 오로지 어플리케이션 개발 및 배포에만 신경쓸 수 있게 되며, 사용자 역시 API를 통해 어플리케이션이 제공하는 기능을 사용할 수 있..
Knative AutoScaling 연구하기안녕하세요. 이전 포스팅에서 Serving에 대해서 알아보았습니다. 서버리스 서비스들은 일정 시간 동안 요청이 없으면 Pod가 제거 되고, 요청이 오면 Pod를 생성하게 됩니다. 이러한 기능을 Knative에서는 Auto Scaling이라고 부르며, 이번 포스팅에서는 Auto Scaling을 위한 각각의 컴포넌트들과 순차적인 워크플로우에 대해서 살펴보도록 하겠습니다. Knative Auto Scaling서버리스 서비스가 Pod로 생성되게 되면, 자동적으로 Queue Proxy가 포함되게 됩니다. 해당 컨테이너는 서비스 컨테이너의 요청을 파악하고, 요청이 없다면 다른 컴포넌트에 이를 알려주게 됩니다. Queue Proxy는 서비스 컨테이너와 함께 사이드카 형태..