애저 펑션 vs 파이어베이스 펑션

9945 단어 serverlessazure
이 문서는 #ServerlessSeptember의 일부입니다. 이 서버리스 콘텐츠 컬렉션에서 기타 유용한 문서, 자세한 자습서 및 비디오를 찾을 수 있습니다. 커뮤니티 구성원과 클라우드 지지자들의 새로운 기사는 매주 월요일부터 목요일부터 9월까지 게시됩니다.

Microsoft Azure가 서버리스 기능을 지원하는 방법에 대해 자세히 알아보십시오https://docs.microsoft.com/azure/azure-functions/.

소개



서버리스 기능은 수요에 따라 확장되는 미리 구성된 서버에서 실행되는 마이크로서비스입니다. 서버리스 기능은 챗봇 실행 및 데이터베이스 정리와 같은 작업을 수행하는 데 사용됩니다.

Azure와 Firebase는 모두 클라우드 오퍼링의 일부로 서버리스 기능을 제공합니다. Firebase 기능은 Google Cloud Platform(GCP)의 일부로 볼 수 있습니다. 이 기사의 코드를 GCP에서 직접 테스트했습니다. Firebase를 통해 이동하는 경우에도 동일한 결과를 얻어야 합니다. Azure 및 Google Cloud에서 실행할 때보다 서버리스 기능의 속도, 개발 용이성 및 배포 용이성을 비교할 것입니다.

계산 속도



실행 속도를 비교할 때 기능을 실행하는 한 시스템이 다른 시스템보다 우리에게 더 가깝다는 점에 유의해야 합니다. 또한 기능을 실행하는 데 다른 기계가 사용된다는 점에 유의해야 합니다. 따라서 함수를 여러 번 실행한 다음 결과의 백분율 범위를 계산합니다.

두 스크립트 모두에서 이 장기 실행 작업 기능을 사용합니다.

function longRunningTask() {
  return new Promise((resolve, reject) => {
    const start = new Date();

    let a = 0;
    for (let i = 0; i < 90000000; i++) {
      a += i;
    }

    const end = new Date() - start;
    resolve(end / 1000);
  });
}


Google Cloud의 서버리스 기능



다음은 gcloud에서 실행할 함수입니다.

{Add longRunningTask function here}

exports.longRunningFunction = async (req, res) => {

  return new Promise((resolve) => {
    const loopCount = req.query.loopCount || 10
    const runTimes = [];

    for (let i = 0; i < loopCount; i++) {
      longRunningTask()
        .then((data) => {
          runTimes.push(data);
        })
        .catch((error) => {
          console.error(error);
        });
    }

    resolve(runTimes)
  }).then((data) => {
    res.status(200).send(data);
  })
};


진입점을 longRunningFunction로 설정했는지 확인하세요.

Azure의 서버리스 기능



아래는 Azure에서 실행될 함수입니다.

{Add longRunningTask function here}

module.exports = async function (context, req) {
  const runTimes = [];

  for (let i = 0; i < 10; i++) {
    longRunningTask()
      .then((data) => {
        runTimes.push(data);
      })
      .catch((error) => {
        console.error(error);
      });
  }

  context.res = {
    body: runTimes,
  };
};


결과



이러한 기능을 실행하고 this repl에서 결과를 테스트하면 다음과 같은 결과가 나타납니다.

Azure
Min: 0.278
Max: 0.672
Percentage Range: 108%
GCloud
Min: 0.619
Max: 0.705
Percentage Range: 12%


결과에서 우리는 azure가 google cloud보다 더 빠르게 기능을 실행한다는 결론을 내릴 수 있습니다.

상태
아주르: 1
지클라우드: 0

개발 용이성



이 섹션에서는 두 플랫폼에서 함수를 작성, 테스트 및 디버그하는 것이 얼마나 쉬운지 비교합니다. Azure는 기능을 편집하고 테스트하기 위한 직관적인 인터페이스를 제공합니다.



GCloud의 인터페이스는 즉각적인 테스트를 허용하지 않습니다. 편집한 후 함수를 다시 배포해야 합니다.



상태:
아주르: 2,
지클라우드: 0

배포 용이성



이러한 플랫폼에 함수를 배포하는 것은 배포 파이프라인에 따라 다릅니다. 대시보드를 사용한 배포만 비교하면 둘 다 직관적이라는 결론을 내릴 수 있습니다. 그래서 우리는 넥타이가 있습니다.

상태:
아주르: 3,
지클라우드: 1

결론



이 기사에서는 Google Cloud와 Azure에서 서버리스 기능의 속도, 개발 및 배포를 비교하려고 시도했습니다. 위의 메트릭을 사용하여 Azure에서 서버리스 기능으로 작업하면 Google Cloud보다 더 나은 경험을 제공한다는 결론을 내릴 수 있습니다. 이것은 절대적인 결론이 아닙니다. 우리는 많은 메트릭을 고려하지 않았습니다. 그러나 이것은 시작일 수 있습니다. 읽어 주셔서 감사합니다. ✌🏽🧡

좋은 웹페이지 즐겨찾기