Heroku와의 지속적인 납품

소개하다.


연속교부(CD)는 소프트웨어 공학 방법으로 개발진이 짧은 주기 내에 가치 있는 소프트웨어를 생산하고 소프트웨어의 신뢰할 수 있는 버전이 언제든지 발표될 수 있도록 확보하는 것이다.
자신의 맞춤형 연속 교부 솔루션을 개발하는 것은 고통스러울 수 있지만 히로쿠를 이용한 개발은 상대적으로 간단하다.좋은 documentation about this on Heroku 을 찾을 수 있지만, CD에 완전히 집적된 프로그램의 예시를 한 곳에서 볼 수는 없다.이 문장의 목적은 이 예를 제공하여 진일보한 참고를 제공하는 것이다.
파이핑에는 다음 단계가 포함됩니다.
  • GitHub 저장소에서 PR을 열면 1개review app가 생성됩니다.
  • PR이 통합되면 Staging app에 변경 사항을 자동으로 배치합니다.
  • 프로덕션 환경으로 직접 업그레이드할 수 있습니다.
  • 나는 리뷰 앱을 사용하는 것을 좋아한다. 왜냐하면 이것은 당신에게 URL을 주고, 당신의 홍보 라이브러리 코드를 반영하기 때문이다. 당신의 팀이나 심지어 고객 (당신의 일을 위해 돈을 지불하는 사람) 과 쉽게 공유할 수 있기 때문이다.
    준비 환경은 일반적으로 프로덕션 환경의 복사본이며 변경 사항을 프로덕션으로 보내기 전에 최종 검증 단계로 사용됩니다.
    본문에서 프로젝트에서 자주 사용하는 설정을 보여 드리겠습니다.Ruby on Rails 애플리케이션을 구축할 예정이지만 다른 애플리케이션에 CD를 구성하기 위해 오신다면 걱정하지 마십시오. 구성이 매우 일반적입니다.

    Heroku 파이프 만들기


    먼저, Heroku에서 제작 응용 프로그램을 만듭니다(이름은 사용자가 정함).
    heroku apps:create generic-app-t
    
    이제 파이프를 생성합니다.
    ➜  ~ heroku pipelines:create -a generic-app-t
    ? Pipeline name generic-app-t-pipeline
    ? Stage of generic-app-t production
    Creating generic-app-t-pipeline pipeline... done
    Adding ⬢ generic-app-t to generic-app-t-pipeline pipeline as production... done
    
    매개변수-a는 파이프를 생성할 때 필요한 응용 프로그램 이름을 지정합니다.파이프의 기본 이름을 변경해서 프로그램 이름의 끝에 -pipeline 추가하고 (개인적인 취향, 원하시면 기본값을 보존할 수 있습니다) generic-app-t가 생산 프로그램임을 알려 줍니다.
    참고: Heroku 대시보드를 사용하는 것이 더 좋으면 Deploy 탭에서 위의 작업과 다음 작업을 찾을 수 있습니다.

    이제 스테이징 애플리케이션을 만들 때입니다.
    heroku apps:create generic-app-t-staging
    
    파이프에 추가하려면 다음과 같이 하십시오.
    ➜  ~ heroku pipelines:add generic-app-t-pipeline -a generic-app-t-staging
    ? Stage of generic-app-t-staging staging
    Adding ⬢ generic-app-t-staging to generic-app-t-pipeline pipeline as staging... done
    
    등단 응용 프로그램을 통해 우리가 무엇을 실현하고 싶은지 살펴보자. 메인 지점에서 PR을 통합할 때마다 변경 사항을 등단 응용 프로그램에 배치해야 한다.이를 위해서는 자동 배치를 사용해야 한다.구성 옵션은 배포 탭에 있습니다.

    GitHub에 응용 프로그램 저장소를 가지고 있다면, 파이프를 연결할 때가 되었습니다.

    이제 파이프라인에서 심사 프로그램을 사용할 수 있습니다.다음과 같은 구성 옵션을 선택할 수 있습니다.
  • 본고에서 소개한 부분의 건의에 따라 새로운 요청을 위해 자동으로 새로운 심사 응용 프로그램을 창설한다.
  • 삭제한 지 30일 만에 새로 배치된 심사 응용 프로그램이 없습니다.이것은 정말 당신에게 달려 있지만, 나는 오래된 평론 프로그램을 보존하는 것을 좋아하지 않는다. 만약 필요하다면 언제든지 새로운 것을 만들 수 있다.


  • 이것들이 있으면 파이프에 포함해야 할 모든 응용 프로그램이 있다.이제 우리는 계속해서 하나하나를 위해 구체적인 배치를 진행할 것이다.

    Heroku에서 환경 구성 및 응용 프로그램 보기


    두 환경 모두에 다음과 같은 Heroku 추가 구성 요소가 있다고 가정합니다.
    1) 두 개Heroku Postgres 데이터베이스;
    2)(915) 데이터베이스;
    3) Redis Cloud .
    어떤 목적에서 나는 두 개의 데이터베이스 또는 그 어떠한 추가 구성 요소를 사용할 것이다. 이것은 본고의 상하문에서 결코 중요하지 않다.그들이 이곳에 온 것은 단지 더욱 전면적인 배치를 제공하기 위해서이다.
    Rollbar
    Ruby on Rails 응용 프로그램에는 heroku/Ruby buildpack도 포함되어 있습니다.

    다음 단계에서는 구성 변수를 설정합니다.내 구성 변수는 암호화된 자격 증명 파일에 있으므로 암호화를 위해 RAILS\u MASTER\u KEY라는 키만 설정하면 됩니다.
    Add-ons,buildpack,config-vars: 무대에 오르는 프로그램과 똑같은 동작을 다시 실행합니다. (제 예에서 generic-app-t-staging이 동작을 완성하려면 리뷰 프로그램의 설정 변수를 설정하십시오.이것은 파이프라인의 설정 탭에서 찾을 수 있는 모든 검토 응용 프로그램에 적용되는 일반적인 구성입니다.


    응용 프로그램에서 검토 응용 프로그램 구성


    당신의 평론 프로그램이 실행되는 마지막 단계는 app.json 파일입니다.이것은 저장소 루트 디렉터리에 있어야 하는 파일입니다. 어떤 불러오는 항목/builpack을 사용해야 하는지에 대한 설명과 필요한 설정 변수를 포함합니다.
    내 예에서, 나는 생산/무대에 오르기 위한 설정에 회답하고 있는데, 다음은 그의 모습이다.
    {
      "env":{
         "RAILS_MASTER_KEY":{
            "require":true
         }
      },
      "scripts":{
         "postdeploy":"bin/bundle exec rake db:migrate rake db:seed"
      },
      "addons":[
         {
            "plan":"heroku-postgresql:free"
         },
         {
            "plan":"heroku-postgresql:free",
            "as":"audit"
         },
         {
            "plan":"rediscloud:free"
         },
         {
          "plan": "rollbar:free"
         }
      ],
      "buildpacks":[
         {
            "url":"https://github.com/heroku/heroku-buildpack-ruby"
         }
      ]
    }
    
    우리는 두 개의postgresql 마운트 항목이 있는데, 같은 이름의 마운트 항목을 동시에 추가할 수 없습니다.이 문제를 해결하기 위해서, 우리는 단지 as로 그 중의 하나를 명명할 수 있다.마운트 항목 기호는 add-on-name:plan 입니다. 추가할 마운트 항목의 이름을 어디서 찾을 수 있는지 질문할 수 있습니다. Heroku cli (heroku addons:create [name] 를 통해 마운트 항목을 추가할 수 있으며, 이름은 같은 기호를 따라야 합니다.이 이름은 추가 페이지에서 찾을 수 있습니다(예: .postdeploy 배치가 완료된 후 즉시 실행해야 하는지를 지정합니다.내 예에서, 나는 rails 명령을 사용하여 데이터베이스 테이블 만들기/업데이트 (db:migrate 를 하고 피드 데이터 (db:seed 를 제공했다.

    Redis 엔터프라이즈 클라우드 모든 것을 다 잘하다


    GitHub 저장소에 PR을 만들면 배치 중인 리뷰 프로그램을 볼 수 있습니다.

    PR을 병합하면 Staging 응용 프로그램에 자동으로 배포되어 프로덕션으로 업그레이드할 수 있는 옵션이 제공됩니다.

    이를 생산에 널리 보급하고 축하합니다. 당신은 연속적인 납품 방법을 사용하여 짧은 주기 내에 당신의 소프트웨어 변경 사항을 납품하였습니다!

    결론


    이 글은 Heroku를 사용하여 프로그램을 연속적으로 납품하는 방식으로 통합하는 방법을 보여 준다.파이프를 완전히 설정하는 방법을 소개했습니다. 이 파이프는 모든pull가 요청한 검토 프로그램, 테스트의 임시 저장 프로그램으로 구성되어 있으며, 생산 프로그램을 완성했습니다.
    제공된 설정은 예시일 뿐입니다. 무엇을 할 수 있는지 설명하고, 필요에 따라 수정할 수 있습니다.예: (CI).CI는 본 논문의 토론 범위에 있지 않지만, 사용자의 방법에 쉽게 포함할 수 있습니다. 예를 들어, 테스트가 통과되었을 때만 프로그램에 배치할 수 있습니다.
    여기에 표시된 내용 외에, 무대에 오르는 환경을 어떻게 처리하는지 이해하기 위해 프로그램을 설정해야 한다는 것을 기억하십시오.test, developmentproduction 환경에 대한 특정 구성 방식과 마찬가지로 응용 프로그램은 env == staging 시 어떻게 실행하는지 알아야 한다.
    마지막 건의는 연속 교부를 사용하지 않는다면 고려해 보는 것이다.당신의 프로젝트 규모가 얼마나 크든지 간에, 만약 당신의 팀 규모가 매우 작고, 심지어는 당신이 혼자서 일한다면, 가장 좋은 것은 당신의 프로젝트를 조직하는 것이다.
    그렇지!만약 당신에게 어떤 의견이나 건의가 있다면 망설이지 말고 내가 알게 해 주세요.
    컨텐츠를 좋아하고 직접 지원을 원하신다면 선택하십시오(필요하지 않지만 감사합니다).
    BTC 주소: bc1q5l93xue3hxrrwdjxcqyjhaxfw6vz0ycdw2sg06Continous Integration

    좋은 웹페이지 즐겨찾기