배포 설정 및 모니터링

배포 설정

이 가이드에서는 배포 환경의 일반적인 설정을 다룹니다.

먼저 Bitbucket 설정에서 환경을 정의합니다.

다음을 설정할 수 있습니다.

  • 환경 이름

  • 환경의 유형

  • 대시보드에 표시되는 순서

  • 해당 환경에서 명시한 변수

  • 프리미엄 플랜일 경우, 누가 각각에 배포할 수 있는지

그런 다음 bitbucket-pipelines.yml 파일을 참조하여 대시보드에서 확인하기만 하면 됩니다.

1 단계 : 환경 정의

먼저 환경에 대한 세부 정보를 추가합니다.

파이프라인을 활성화하면 기본적으로 'Test'라는 테스트 환경, 'Staging'이라는 스테이징 환경, 'Production'이라는 프로덕션 환경의 3 가지 기본 환경이 생성됩니다.

환경 유형 은 환경을 논리적으로 정렬하는 데 사용되지 그 이상은 아니므로 유형이 사용하는 기능과 일치하지 않아도 걱정하지 마십시오.

  • repository settings로 이동하십시오.

  • 파이프라인 섹션에서 Deployments를 선택합니다.

  • 환경을 클릭하여 다음을 수행합니다.

    • 이름 변경

    • 각 환경 별로 배포 변수 설정
      배포 변수는 팀 및 저장소 변수를 모두 재정의합니다. 또한 동일한 이름의 변수는 각 배포 환경에 대해 다른 을 가질 수 있습니다 . 예를 들어 각 환경에 대해 다른 $DEPLOYMENT_SECRET_KEY 를 설정할 수 있습니다. 그런 다음 환경도 제한하면 관리자만 비밀키를 사용할 수 있습니다.

    • 배포 기능을 관리자 또는 특정 브랜치로 제한합니다.

더 많은 환경을 추가하려면 환경을 가장 잘 설명하는 환경 유형 (테스트, 스테이징 또는 프로덕션)을 결정하고 해당 섹션에서 add environment를 클릭 하십시오.

왼쪽 가장자리를 클릭하고 드래그하여 유형 내에서 환경을 이동할 수도 있습니다.

2 단계 : 배포 Step 구성

deployment 키워드를 추가하고, 환경 이름을 추가한 후, bitbucket-pipeline.yml 파일의 관련 step에 추가합니다.

예제:

- step: name: Deploy to production deployment: production-east script: - python deployscript.py prod

해당 step은 이제 배포 대시보드에 표시됩니다. 

teststaging 및  production 타입의 환경을 위한 배포를 지원하며, 각 파이프라인에서 이 순서로 나열되어야합니다. 예를 들어 2 개의 테스트 환경과 2 개의 프로덕션 환경이있는 경우 테스트 환경에 배포하는 step은 프로덕션 유형 환경에 배포하는 step 보다 먼저 와야 합니다.

bitbucket-pipeline.yml 파일에 대한 업데이트를 커밋  하여 배포 파이프라인을 실행합니다 .

image: node:10.15.0 pipelines: default: - step: name: Build and push to S3 script: - apt-get update - apt-get install -y python-dev - curl -O https://bootstrap.pypa.io/get-pip.py - python get-pip.py - pip install awscli - aws deploy push --application-name $APPLICATION_NAME --s3-location s3://$S3_BUCKET/test_app_$BITBUCKET_BUILD_NUMBER --ignore-hidden-files - step: name: Deploy to test image: aneitayang/aws-cli:1.0 deployment: testbed script: - python deploy.py test - step: name: Deploy to staging image: aneitayang/aws-cli:1.0 deployment: staging1 trigger: manual script: - python deploy.py staging - step: name: Deploy to production image: aneitayang/aws-cli:1.0 deployment: production-east trigger: manual script: - python deploy.py prod

3 단계 : 배포 추적

배포 step이 실행되면 배포 대시보드에서 배포를 추적 할 수 있습니다.

배포 대시보드의 이해

배포 대시보드를 사용하여 모든 배포 환경에 대한 정보를 한 눈에 볼 수 있습니다. 또한 배포할 사람이나 브랜치를 지정하기 위해 권한이 있는 배포 변수를 사용할 수도 있습니다.

배포 리뷰 및 Promote

배포 step 매뉴얼을 만든 경우 배포 대시보드에 Promote 버튼이 표시됩니다 . Promote 버튼을 클릭하면 배포 될 커밋 및 파일 변경 사항을 리뷰 할 수있는 배포 미리보기 화면이 시작됩니다. 괜찮아 보이는 경우 Deploy클릭하면 수동 배포 step이 트리거됩니다.

참고 : 각 환경에서는 하나의 배포만 진행할 수 있습니다. 동일한 환경에 배포되는 이후의 파이프라인은 자동으로 일시 중지 됩니다. 진행중인 배포가 완료되면 일시 중지 된 배포 단계를 수동으로 재개 할 수 있습니다.

배포 정보

environment card에서 액세스 할 수있는 다양한 정보가 있습니다.

1. 배포 내역

환경 이름을 클릭하면 환경에 대한 모든 이전 배포 기록을 볼 수 있습니다. 이들 중 하나를 클릭하여 요약 된 배포 정보를 얻을 수 있습니다.

2. 파이프라인보기

파이프라인 번호를 클릭하면 해당 파이프라인 실행에 대한 요약으로 이동하여 로그 등을 볼 수 있습니다.

3. 배포 요약

environment card 또는 기록 목록에서 배포를 클릭하여 배포 요약에 액세스합니다. 요약에서는 다음이 포함된 배포에 대한 정보가 표시됩니다.

  • 배포 된 환경

  • 환경의 이전 배포

  • 배포 상태

  • 배포를 트리거 한 사람 (배포가 수동 step인 경우)

  • 배포가 발생한 날짜

  • 배포의 전체 커밋 목록

  • 환경에서 새 배포와 이전 배포 간의 파일 차이

  • 커밋 메시지에서 언급 한 모든 연결된 Jira 이슈

Jira를 사용하여 작업을 추적하는 경우에는 추가 이점을 위해 Jira와 Bitbucket을 연결할 수 있습니다  .

해당 App들이 연결되면 배포와 관련된 이슈가 배포 요약 및 배포 미리보기 화면에 표시되고 배포가 관련 Jira 이슈에 표시됩니다. 커밋 메시지에 이슈 키 또는 키를 추가하기 만하면 나머지는 자동으로 처리됩니다.

예제

git commit -m "PT-323 Add created workers to container cluster"

Bitbucket에서는 다음과 같이 표시됩니다.

Jira에서는 다음과 같이 표시됩니다.

성공적인 배포를 재실행하는 경우 Jira는 재실행이 아니라 첫 번째로 성공한 배포의 세부 정보를 계속 표시합니다.

배포 롤백

Bitbucket Pipelines를 사용하면 전체 파이 라인을 실행하지 않고도 배포 Step을 롤백 할 수 있습니다. 배포가 실패한 경우 몇 번의 클릭으로 마지막으로 성공한 배포를 복원 할 수 있습니다.

시작하기 전

Redeploy 버튼 활성화:

  • 파이프라인의 초기 배포 step을 성공해야 합니다.

  • step을 재배포 할 수 있도록 배포 권한을 허용 해야합니다. (프리미엄 플랜 만 해당)

  • 아티팩트는 만료 될 수 없습니다.

배포 롤백

배포 step을 롤백하려면 :

  1. 재배포 할 배포를 선택하고 Redeploy 버튼을 클릭합니다. 

  2. 재배포 화면에서 변경 사항을 검토하고 Redeploy 클릭합니다  .