소화전 Runbook을 통한 배포 롤백

8731 단어

FireHydrant 커뮤니케이션, 활동 조정 및 서비스에 영향을 미친 이벤트를 검토하는 데 사용되는 복잡한 대응 방법이 있습니다.Relay 인프라 전반에 걸친 조정 작업을 자동화하는 개선 조치를 통해 지원을 제공합니다.이 예시 작업 흐름에서 Kubernetes에 설치된 프로그램에 영향을 주는 이벤트는 자동으로 이전 버전으로 되돌아갈 수 있습니다.

작업 절차는 당신의 인프라 시설에 대해 몇 가지 가설을 했는데 이런 가설은 반드시 진실해야 상자를 열고 사용할 수 있다.추가 유연성이 필요하시면 love to work with you하겠습니다!구체적으로 말하면 소방전'서비스'를 Kubernetesdeployments에 비추고 소방전 환경을 Kubernetesnamespaces에 비춘다.배치와 스크롤 과정은 이 모듈을 만드는 과정과 다를 수 있지만, 중계 자동화 이벤트 응답 활동을 사용하는 데 좋은 출발점을 제공해야 합니다.

연결 서비스


소방전과 중계 간의 양방향 통신을 실현하기 위해서 우리는 쌍방에서 몇 가지 작업을 해야 한다. 중계가 소방전에 발표되려면 소방전 API 키가 필요하고 소방전이 중계 작업 흐름을 촉발하면 동적 생성된 중계 웹훅 URL을 사용한다.
먼저 계정에 트렁크 워크플로우를 추가합니다using this link."저장"을 누르면, Relay는 웹 훅 URL을 만들고, 비밀과 연결을 잃어버렸음을 알려 줍니다. 곧 찾을 수 있습니다.
Fire 소화전에서, 우리는 Runbook을 만들어서, Relay에 웹훅을 보내서 작업 흐름을 촉발할 것입니다.새 Runbook을 만들고 Send a Webhook 단계를 추가합니다.단점 URL의 경우, 중계된 설정 사이드바에 웹훅 주소를 붙여넣으십시오.HMAC 기밀 필드는 문자열입니다(현재 사용되지 않음).JSON 페이로드 필드의 경우 다음 템플릿을 붙여넣습니다.
{
  "incident_id": "{{ incident.id }}",
  "name": "{{ incident.name }}",
  "summary": "{{ incident.summary }}",
  "service": "{{ incident.services[0].name | downcase }}",
  "environment": "{{ incident.environments[0].name | downcase }}",
  "channel_id": "{{ incident.channel_id }}",
  "channel_name": "{{ incident.channel_name }}"
}

그런 다음 Relay에 대한 소화전 API 키를 생성하여 이벤트 이력에 정보를 다시 게시합니다.'소방전 속의 통합-로봇 사용자'아래 잊을 수 없는 명칭과 묘사를 가진 새로운 로봇 사용자를 만들었다.생성된 API 토큰을 트렁크 워크플로우 설정 사이드바에 (대소문자 구분)라는 트렁크 비밀에 저장합니다.

GCP 인증 설정


이 워크플로우는 트렁크에서 GCP 연결 유형을 사용하므로 클러스터에서 구성해야 합니다service account.GCP 설명서 API 서버 인증 섹션“Service in other environments”에 따라 설정합니다.이 워크플로우에는 서비스 계정에 추가 역할apiKey이 필요합니다.연결을 다른 작업 흐름에 다시 사용하면 추가 권한이 필요할 수 있습니다.서비스 계정 JSON 파일을 다운로드한 후 Relay에 GCP 연결을 추가하여 roles/container.developer라고 명명하고 JSON 파일의 내용을 대화상자에 붙여넣습니다.엔진 덮개 아래에서 Relay는 이를 우리의Vault 서비스에 안전하게 저장하고 작업 흐름의!Connection custom type를 통해 내용을 작업 흐름 용기에 제공한다.

GCP 클러스터가 아닌 경우 트렁킹된 Kubernetes 연결 유형을 사용할 수 있으므로 설정이 적게 필요합니다.GCP는 자동적으로 사용할 수 없도록 시간당 액세스 토큰을 번갈아 가며 사용합니다.Kubernetes 연결 형식은 영패, 그룹 URL, 그룹의 CA 인증서에 접근해야 합니다.동봉한 상세한 설명은 45915이다.

이 배포 워크플로우의 예 서비스 및 환경 구성


소방전의 가장 큰 장점은 인프라를 이해하는 것이다.이것은 약간의 초기 작업이 필요하지만, 만약 당신이 당신의 서비스와 환경을 계획하는 데 시간을 들인다면, 당신은 당신의 사건 응답을 크게 간소화할 수 있다.이 예에서는 Sock Shop 응용 프로그램을 구성하는 마이크로 서비스를 열거하고 이를 다른 실행 매뉴얼과 연결시켰다.다행히도 relay-service-account 서비스는 GKE에서 간단한 무상태 배치로 sockshop-frontend 명령을 사용하여 새로운 버전을 관리하기 쉽다.

이와 유사하게 환경 섹션에서는 서비스의 인스턴스를 열거하여 이벤트의 영향을 보다 잘 설명하고 구제책의 소유자를 지정하며 적절한 사용자에게 정지 정보를 전달할 수 있습니다.이 소방전을 살펴보고 인프라 시설 조직에 대한 더 자세한 정보를 알아보세요.프로그램 실행 중인 Kubernetes 네임스페이스에 환경을 매핑하는 것이 우리의 목적입니다.(생산 작업 부하에 대해 당신의 환경은 서로 다른 집단에 비칠 수 있습니다. 이것은 완전히 중계에서 처리할 수 있지만 본고의 소개 범위를 넘어섰습니다!)
helpdesk article on inventory management

이벤트 생성 및 응답


지금은 설레는 부분이다.예를 들어, 한 번의 업데이트로 전방 아나운서의 이미지를 고정 버전에서 kubectl rollout 으로 급증시켰는데, 모든 것이 망가졌다.
% kubectl set image deployment/sockshop-frontend nginx-1=nginx:latest \
   --record --namespace production deployment.apps/sockshop-frontend
image updated
% kubectl rollout history deployment sockshop-frontend --namespace production
deployment.apps/sockshop-frontend
REVISION CHANGE-CAUSE
1 kubectl set image deployment/sockshop-frontend nginx:1.18.0=nginx:latest --record=true --namespace=production
2 kubectl set image deployment/sockshop-frontend nginx-1=nginx:latest --record=true --namespace=production

그러나 배치 인력이 알지 못하는 상황에서 모든 것이 순조롭지 못했다.일부 문제 해결을 통해 애플리케이션의 성능이 저하되었음을 확인했으며 이는 볼륨 쇼크 탓으로 돌립니다.소방전에서 대기자들은 사고 발생을 알리고 영향을 받은 서비스와 환경을 지적했다.

이벤트를 만들면 웹훅을 포함하는 latest 런북을 이벤트에 추가할 수 있습니다.이렇게 하면 증빙서류가 중계에 저장되고 위처럼comamndlinerollback-via-relay을 설정할 필요가 없으며 새벽 4시에 고장이 나면 입력한 정확한 문법을 기억할 필요가 없습니다!올바른 절차가 작업 흐름에 저장되어 오류가 발생할 가능성을 줄였다.

이벤트 타임라인과 관련된 느슨한 채널은 이러한 동작의 발생을 보여 줍니다. 중계에서 웹훅이 들어오고 작업 흐름이 시작되며, 최종적으로 롤백 명령의 출력을 통해 타임라인으로 되돌아오는 것을 볼 수 있습니다.소방전 덕분에 실시간으로 이 채널에 접속해 채팅 정보가 반사돼 팀이 이들의 활동을 조율하고 발생한 일을 기록할 수 있게 됐다.이런 상황에서 롤백에 성공하면 우리는 문제를 신속하게 해결할 수 있다!
awesome Slack integration

결론과 다음 단계


소방전은 운행 매뉴얼을 기반으로 한 시스템으로 사고에 대한 행동을 조율하는 데 사용되며 기능이 매우 강하다.인프라에 대한 교육이 많을수록 문제가 생기면 더 빨리 응답할 수 있다.Runbook을 통해 Relay에 연결하면 다른 레벨의 자동 응답과 복구가 가능합니다.이 예에서 우리는 수동 명령을 실행할 필요가 없이 배치를 되돌릴 수 있다. 이것은 일을 더욱 나빠지게 할 수 있다.
많은 들이 구축 모듈이나 예로 자신의 이벤트 응답 작업 흐름을 구축할 수 있다.이를 소방전의 인코딩된 명확한 절차와 결합시켜 응답자들은 문제를 더욱 빨리 해결하고 정지 시간을 줄이며 더욱 가치 있는 업무로 돌아갈 수 있다.
직접 시도하려면 무료existing Relay workflows 계정과 FireHydrant 계정을 등록하고 자동화를 시작하세요!

좋은 웹페이지 즐겨찾기