Nodejs 애플리케이션을 Cloud Foundry Pt에 배포합니다.삼. - 현실 세계에 안부를 묻다

소개


본 강좌second part에서 나는 노드를 어떻게 배치하는지 보여 주었다.Cloud Foundry의 js 응용 프로그램에서 배치된 응용 프로그램을 변경합니다. Cloud Foundry가 브라우저에서 우리의 응용 프로그램을 업데이트하는 속도가 얼마나 빠른지 보십시오. 마지막으로 우리의 응용 프로그램을 데이터베이스 서비스에 연결합니다.Cloud Foundry의 어떤 서비스와 이를 어떻게 사용하는지 소개했습니다.
이 강좌에서는 노드가 있는 Cloud Foundry에 풀 스택 응용 프로그램을 배치합니다.js 백엔드 및 MongoDB 데이터베이스 서비스나는 우리가 응용 프로그램에서 만들 데이터베이스 서비스를 이용하여 데이터를 읽고 응용 프로그램에 데이터를 쓰고 지속적인 데이터를 만드는 방법을 보여 줄 것이다.
또한 Cloud Foundry가 브라우저에서 응용 프로그램을 업데이트하는 속도를 파악하기 위해 배치된 응용 프로그램을 변경하고 응용 프로그램을 재배치할 것입니다.

선결 조건

  • Cloud Foundry CLI.
  • Cloud Foundry 배포 계정(본 강좌를 위해서 사용합니다anynines.
  • 업로드할 이미지(API 키 및 API 기밀)를 저장하는 계정입니다.
  • 기초 지식 MongoDB, 노드.js 및 Cloudinary
  • 구름 주조 기술 창고

  • 어플리케이션의 클라이언트는 EJS로 작성되었습니다.
  • 응용 프로그램의 서버 쪽은 노드에 쓰여 있다.js.
  • Cloudinary는 업로드 이미지의 저장을 처리합니다.
  • MongoDB는 클라이언트에 이미지를 표시하는 데 사용되는 이미지 URL을 저장합니다.
  • 어플리케이션 설정


    우선, 우리는 Github에서 응용 프로그램을 복제하고 기계에 의존 항목을 설치해야 한다.다음 명령을 실행하여 응용 프로그램을 컴퓨터로 복제합니다.
    git clone https://github.com/hacktivist123/cloudfoundry-nodejs-tutorial-pt-3
    
    Github 클론 응용 프로그램을 실행한 후 다음 명령을 실행하여 로컬 컴퓨터에 응용 프로그램을 설치할 수 있습니다.
    yarn install
    
    프로젝트를 설치한 후 .env 파일을 만들어야 합니다.구조는 .env.sample 파일의 외관과 프로젝트 루트 폴더에 포함해야 할 내용인 .env 파일이 있습니다.예:
    NODE_ENV = production
    MONGO_URI = <your mongodb service connection uri>
    CLOUDINARY_CLOUD_NAME = <your cloudinary cloud name>
    CLOUDINARY_API_KEY = <your cloudinary API key>
    CLOUDINARY_API_SECRET = <your cloudinary API Secret>
    
    어디:
  • NODE_ENV = 현재 배포 환경, 즉 개발 또는 생산.
  • MONGO_URI=MongoDB 서비스 연결 URI(클라우드 캐스트 데이터베이스 서비스를 만들 때 제공).
  • CLOUDINARY_CLOUD_NAME = 등록 후 Cloudinary 대시보드에서 사용할 수 있습니다.
  • CLOUDINARY_API_KEY = 등록 후 Cloudinary 대시보드에서 사용할 수 있습니다.
  • CLOUDINARY_API_SECRET = 등록 후 Cloudinary 대시보드에서 사용할 수 있습니다.
  • 로컬 시스템에서 yarn start를 실행하고 로컬 MongoDB 서버를 사용하여 프로그램을 실행하면 localhost:8080 또는 .env 파일에 제공된 포트 번호로 이동하면 브라우저에 다음과 같은 내용이 표시됩니다.

    이것은 로컬에서 작업할 수 있지만 Cloud Foundry에 응용 프로그램을 배치할 때 로컬 MongoDB 서버를 사용할 수 없습니다.우리는 실시간으로 배치된 데이터베이스를 관리하는 데 도움을 줄 데이터베이스 서비스가 필요하다.
    Cloud Foundry에 응용 프로그램을 배치하여 이 이론을 테스트해 보겠습니다.

    어플리케이션 배포


    다음 명령을 실행하여 애플리케이션에 배포할 수 있습니다.
    cf push <app name>
    
    만약 우리가 처음에 응용 프로그램을 밀어 넣었을 때 다음 오류가 발생합니다.

    이 오류는 Cloud Foundry가 MongoDB 데이터베이스에 연결된 URI를 인식하거나 볼 수 없기 때문입니다.
    이 오류를 복구하고 연결된 URI를 사용하려면 MongoDB 데이터베이스 서비스를 만들어야 합니다.

    MongoDB 데이터베이스 서비스 만들기


    왜 우리는 데이터베이스 서비스를 필요로 합니까?


    응, 우리는 데이터베이스 서비스가 필요하다. 왜냐하면 우리가 실시간으로 응용 프로그램을 배치하고 데이터를 저장할 때 로컬 데이터베이스 서버를 사용할 수 없기 때문이다.cfpush를 사용하면 응용 프로그램의 새로운 버전을 배치하고 모든 오래된 데이터를 삭제합니다.
    데이터베이스 서비스는 우리가 응용 프로그램에 업로드한 데이터를 저장하는 것입니다. 이렇게 하면 Cloud Foundry에서 응용 프로그램을 한 번 또 한 번 전송하더라도 우리는 응용 프로그램 데이터베이스에 업로드된 기존 데이터에 접근할 수 있습니다.

    서비스 만들기


    Cloud Foundry를 사용하여 데이터베이스 서비스를 만드는 것은 매우 쉽습니다.우리는 다음 명령을 실행함으로써 이 점을 실현할 수 있다.
    cf create-service SERVICE PLAN SERVICE_INSTANCE
    
    서비스 및 계획은 현재 사용 중인 Cloud Foundry의 배포에 따라 달라집니다.클라우드 주조 발행판은 서로 다른 유형의 서비스를 제공한다.이 강좌를 배우기 위해 다음 명령을 실행하여anynines MongoDB 서비스를 사용할 것입니다.
    cf create-service a9s-mongodb34 mongodb-nano cf-database
    
    어디:
  • a9s-mongodb34 = 서비스 이름
  • mongodb-nano = 서비스 계획
  • cf-database = 서비스 인스턴스 이름
  • 위의 명령을 실행하면 다음과 같이 표시됩니다.

    서비스가 성공적으로 생성되었는지 확인하려면 다음 명령을 실행하십시오.
    cf service cf-database
    
    위의 명령은 서비스에 대한 다음 세부 정보를 표시합니다.

    다른 한편, 귀하는 서비스의 상태가 "창설 성공"일 때만 이 서비스를 사용할 수 있습니다
    현재 우리의 서비스는 성공적으로 만들어졌습니다. 우리는 응용 프로그램이 이 서비스를 사용할 수 있도록 서비스를 우리의 응용 프로그램에 연결해야 합니다.우리는 다음 명령을 실행함으로써 이 점을 실현할 수 있다.
    cf bind-service APP_NAME SERVICE_INSTANCE
    
    응용 프로그램 이름과 서비스 이름에 따라 위의 명령을 실행하면 터미널에서 다음을 볼 수 있습니다.

    우리는 우리가 만든 데이터베이스 서비스를 응용 프로그램에 성공적으로 연결했다.
    다음은 MongoDB 서비스에서 제공하는 URI를 MONGO_URI 파일의 .env로 사용합니다.
    다음 명령을 실행하여 URI를 찾을 수 있습니다.
    cf env <APP_NAME>
    
    위의 명령을 실행하면 터미널에서 다음을 볼 수 있습니다.

    이 명령으로 생성된 JSON 파일을 자세히 보면 데이터베이스 URI, 사용자 이름 및 암호가 표시됩니다.
    이제 데이터베이스 URI를 가져와 응용 프로그램에서 사용해야 합니다.터미널에서 URI를 복사하여 .env 파일에 붙여넣을 수 있습니다.
    예:
    MONGO_URI = mongodb://a9s-brk-usr-5fce266678f7b5d5061399d079c7cb58e3541b95:a9sfa381ca6ba0d48f166c0299b1ce4d119ff6321e1@mod22bb57-mongodb-0.node.dc1.a9ssvc:27017/mod22bb57
    

    왜 이렇게 하면 효과가 있습니까?

    index.js 파일에서 MONGO_URI 파일에서 .env 변수를 가져와 데이터베이스 연결을 시작합니다.
    try {
     mongoose.connect(process.env.MONGO_URI, {
     useNewUrlParser: true,
     useUnifiedTopology: true
     })
    } catch (error) {
     if (isDevelopment) throw error
    }
    

    데이터베이스 서비스를 통해 실시간으로 응용 프로그램을 전송하다


    이제 오류가 발생했는지 다시 응용 프로그램을 전송해 봅시다.다음 작업을 실행할 수 있습니다.
    cf push <APP_NAME>
    
    위의 명령을 실행하고 배포가 완료될 때까지 기다린다면 터미널에서 다음 메시지를 볼 수 있습니다.

    만약 우리가 배치 후에 만든 경로를 탐색한다면, 우리는 응용 프로그램이 현장에 배치되는 것을 볼 수 있을 것이며, 어떠한 오류도 없을 것이다.

    어플리케이션 변경


    이제 응용 프로그램을 변경하고 재배치해서 데이터베이스에 있는 이미지가 변하지 않는지 봅시다.변경에 대해 제목 텍스트인'mini 인스타그램'의 색을 파란색으로 설정합니다.
    프로젝트 폴더의 css 디렉터리로 이동하여 스타일을 찾습니다.css 파일.파일에 다음 코드를 붙여넣습니다.
    h1 {
     color: blue
    }
    
    상기 코드를 추가하면 변경 사항을 볼 수 있도록 프로그램을 다시 전송할 것입니다.
    우리는 운행cf push <APP_ NAME>을 통해 이 점을 실현할 수 있다.
    전송 후, 변경 사항을 보기 위해 생성된 루트 링크로 배치하고 내비게이션/리셋할 때까지 기다립니다.
    위의 설명이 올바르게 실행되면 제목 텍스트 색상이 검은색에서 파란색으로 변하는 것을 볼 수 있습니다.

    우리는 응용 프로그램을 변경하고 재배치했는데, 우리는 여전히 사용할 수 있는 이미지 (데이터) 를 볼 수 있다.
    현재, 만약 당신이 무작위 그림을 업로드하고 페이지를 새로 고치려고 시도한다면, 우리는 여전히 이 그림과 다른 기존 그림을 사용할 수 있습니다.
    여기에는 프로세스에 대한 링크의 시각적 표현이 있습니다.

    위의 매체에서 나는 새로운 사진 한 장을 올린 후에 응용 프로그램을 한 번 또 한 번 갱신하여 우리가 어떤 데이터를 잃어버렸는지 검사했지만 우리는 없었다. 이것이 바로 우리가 사용하는 데이터베이스 서비스의 힘이다.
    이 강좌의 환매 지원https://drive.google.com/file/d/1XT7ux9Fktt8HbdW_D7DAdiQX5tqI-cDz/view?usp=sharing을 찾을 수 있고, 동영상을 더 좋아한다면 동영상 강좌here를 찾을 수 있다.

    여기 있다 결론


    이 강좌에서 우리는 이 응용 프로그램을 Cloud Foundry에 배치하고 이 응용 프로그램을 위해 MongoDB 데이터베이스 서비스를 만든 다음에 이를 Cloud Foundry에 재배치합니다.
    우리는 또한 응용 프로그램에 대해 약간의 변경을 하고 그것을 재배치해서 어떤 데이터도 잃어버릴지 보았지만, 우리가 사용하는 데이터베이스 서비스의 강력한 기능 때문에 우리는 이렇게 하지 않았다.
    Cloud Foundry의 서비스는 정말 강력합니다.우리는 클라우드 주조 사용자가 사용할 수 있는 각종 서비스를 통해 많은 일을 할 수 있다.
    당신은 이 강좌를 좋아합니까?네가 가장 좋아하는 방면의 강좌가 평론 부분에서 평론을 떨어뜨리는 것을 나에게 알려주었다.그리고 만약 당신에게 어떤 문제가 있다면, 당신은 평론 구역에 하나 써도 됩니다. 나는 반드시 당신에게 회답을 드리겠습니다.
    Cloud Foundry 커뮤니티와 연락하는 가장 좋은 방법은 우리의 Slack 작업 공간에 가입하는 것이다 .Slack 커뮤니티에 있는 사람들은 다른 구성원이나 Cloud Foundry Foundation에서 온 사람들과 신속하게 연락할 수 있도록 도와줍니다.

    좋은 웹페이지 즐겨찾기