Heroku 대 Netlify

6075 단어 netlifyhostingheroku

어떤게 더 좋아?



나는 어느 것이 다른 것보다 진정으로 더 나은지 파악하지 못했지만 각각이 더 나은 점을 (어려운 방법으로) 알아 냈습니다.

헤로쿠



Heroku는 전체 스택 애플리케이션을 잘 처리할 수 있다는 이점이 있으며 백엔드 개발을 더 지향합니다. Rails 또는 Node/Express 백엔드 생성에는 파일을 가져올 때 사이트에 적용되는 자체 빌드팩이 함께 제공됩니다.

백엔드 배포는 Heroku에서 훌륭하지만 가장 최근 프로젝트에서 사용한 것과 같은 일부 빌드 스크립트를 사용하여 이 호스트된 프로젝트를 한 위치에 유지하면서 프런트 엔드를 배포할 수 있었습니다.

배포에 사용되는 코드는 다음과 같습니다.

// ./package.json

"scripts": {
  "heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
}


서버의 index.js에서 프런트엔드를 제공하는 데 사용되는 코드:

// ./index.js

const express = require("express");
const path = require("path");
require("dotenv").config();

const app = express();

if (process.env.NODE_ENV === "production") {
  app.use(express.static(path.join(__dirname, "../client/build")));

  app.get("*", (req, res) =>
    res.sendFile(
      path.resolve(__dirname, "../", "client", "build", "index.html")
    )
  );
} else {
  app.get("/", (req, res) => res.send("Please set to production"));
}

// Keep this code above the error handling middleware call


배포할 브랜치를 구성하고 환경 변수를 설정한 후 이 두 스니펫을 사용하여 노드 앱이 실행됩니다.

넷리파이



Netlify는 이전 애플리케이션을 호스팅하기 위한 대상 위치였지만, 서버용 프레임워크 유형을 사용하고 있었기 때문에 성공적으로 배포할 수 없다는 사실을 알게 되었습니다.

Netlify는 SPA 또는 독립 실행형 웹 페이지로 프런트엔드 프로젝트용으로 빌드됩니다. 프론트엔드 프레임워크는 빌드 폴더가 생성되고 페이지를 표시하기 위해 읽어들일 것이므로 netlify와 매우 쉽게 작동할 것입니다.

프런트엔드 배포로만 제한되는 부작용으로 사이트가 매우 빠르게 반응할 수 있으며 대화형이 되기 위한 "가동"시간이 거의 없습니다.

단점은 런타임이나 프레임워크를 방해하지 않고 백엔드 역할을 하는 서버리스 기능을 구현하지 않는 한 백엔드 프레임워크에서 작동하지 않는다는 것입니다.

Netlify에 배포



배포는 몇 가지 선택 사항이 있는 다소 단순합니다.
  • NetlifyCLI
    또는
  • Git 계정 연결

  • 두 방법 모두 동일한 결과를 얻지만 Git 저장소에 연결하면 단 몇 분 만에 배포가 가능합니다.

    로그인 후:
  • repo 선택
  • 배포할 분기
  • 배치!

  • 모노레포



    상위 디렉토리 내에 중첩된 모노 저장소 또는 프런트엔드 디렉토리는 브랜치 선택 > ./client 또는 ./frontend 중 배치될 전면에 있는 것이 작동하는 동안 약간의 특이성이 필요합니다.

    백엔드(있는 경우)가 호스팅되는 API 호출에 대한 리디렉션은 개발이 실행 중인 서버의 로컬 인스턴스를 확인하므로 API 호출 내에 반영되어야 합니다.

    결론



    Heroku는 백엔드 배포를 기반으로 하며 서버가 잠자기 상태인 경우 약간 느려질 수 있지만 작은 구성 후에 전체 스택 애플리케이션을 제공하는 이점이 있습니다.

    Netlify는 프런트엔드 배포를 기반으로 하며 서버리스 기능을 제외한 모든 백엔드 프레임워크를 동일한 방식으로 사용할 수 없습니다.

    좋은 웹페이지 즐겨찾기