외부 서비스 통합
GitHub Actions 워크플로를 외부 모니터링, 로그 기록, 인시던트 관리 도구와 연결합니다.
외부 서비스 통합은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
파이프라인 연결하기
GitHub Actions를 외부 서비스와 통합하는 방법을 살펴보겠습니다! 현대적인 소프트웨어 개발에서는 여러 도구가 함께 작동해야 합니다.
CI/CD 파이프라인을 이러한 도구에 연결하면 통신을 자동화하고 데이터를 중앙 집중화하며 전반적인 팀 효율성을 높일 수 있습니다.
- 알림: Slack 또는 Teams에서 알림을 받습니다.
- 이슈 추적: JIRA 티켓을 자동으로 생성합니다.
- 모니터링: Datadog 또는 Splunk로 데이터를 보냅니다.
웹후크: 기본 연결 고리
많은 외부 서비스는 정보를 받는 주요 방법으로 웹후크를 사용합니다. 웹후크를 특정 이벤트가 발생했을 때 한 애플리케이션에서 다른 애플리케이션으로 자동으로 보내는 메시지라고 생각해 보십시오.
GitHub Actions 워크플로가 완료되거나 실패하거나 특정 단계를 수행할 때, 외부 서비스가 제공한 웹후크 URL로 데이터와 함께 POST 요청을 보낼 수 있습니다. 그러면 해당 서비스에서 작업이 실행됩니다.
Slack 실시간 알림
워크플로 상태에 대한 실시간 알림을 받는 것은 중요합니다. Slack은 이를 위해 매우 널리 사용되는 도구입니다.
GitHub Actions에서 Slack으로 메시지를 보내려면 일반적으로 Slack 수신 웹후크 URL이 필요합니다. Slack 워크스페이스 설정의 '앱 및 통합'과 같은 메뉴에서 이 URL을 생성할 수 있습니다.
중요: 이 민감한 URL은 항상 GitHub 시크릿으로 저장하고 코드에 직접 입력하지 마십시오!
Slack 알림용 워크플로
워크플로에서 간단한 curl 명령어를 사용하여 기본 Slack 알림을 보내는 방법은 다음과 같습니다. 이 명령어는 SLACK_WEBHOOK_URL이라는 이름의 시크릿에 저장된 웹후크 URL을 사용합니다.
이 예제는 main으로 푸시할 때마다 알림을 보냅니다.
name: Slack Notification Demo
on:
push:
branches:
- main
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Send Slack Notification
run: |
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"GitHub Actions workflow *${{ github.workflow }}* for commit `{{ github.sha }}` by _${{ github.actor }}_ on branch `${{ github.ref_name }}` has completed!"}' \
${{ secrets.SLACK_WEBHOOK_URL }}마켓플레이스 작업으로 간소화하기
curl도 사용할 수 있지만, 미리 구축된 GitHub 마켓플레이스 작업을 사용하면 많은 통합을 간소화할 수 있습니다. 이러한 작업은 특정 서비스와 상호 작용하는 데 필요한 논리를 포함하므로 워크플로를 더 깔끔하고 읽기 쉽게 만들어 줍니다.
GitHub 마켓플레이스에서 원하는 서비스에 연결할 수 있는 작업을 검색할 수 있습니다. 예를 들어 Slack, JIRA, Microsoft Teams 등에 사용할 수 있는 작업이 많이 있습니다.
JIRA로 이슈 추적 자동화하기
JIRA와 같은 이슈 추적 시스템을 통합하면 다음과 같은 작업을 자동화할 수 있습니다:
- 워크플로가 실패할 때 새 버그 티켓 생성
- 풀 리퀘스트 이벤트에 따라 기존 이슈에 댓글 추가
- 코드가 파이프라인을 거치는 동안 이슈 상태 업데이트
이를 통해 수동 개입 없이 개발 팀과 운영 팀이 서로 보조를 맞출 수 있습니다.
JIRA 이슈용 워크플로
이 예제에서는 인기 있는 마켓플레이스 작업을 사용하여 특정 워크플로(예: CI 워크플로)가 실패할 경우 JIRA 이슈를 생성합니다. 인증에 GitHub 시크릿을 사용하는 방식에 주목하십시오.
workflow_run 트리거를 사용하면 다른 워크플로의 완료에 이 워크플로가 대응할 수 있습니다.
name: JIRA Issue on Failed Workflow
on:
workflow_run:
workflows: ["Your CI Workflow Name Here"]
types:
- completed
jobs:
create_issue:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
runs-on: ubuntu-latest
steps:
- name: Create JIRA Bug Ticket
uses: atlassian/github-jira-action@v2.1.0
with:
jira-base-url: ${{ secrets.JIRA_BASE_URL }}
jira-user-email: ${{ secrets.JIRA_USER_EMAIL }}
jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
project: 'DEV'
issue-type: 'Bug'
summary: 'Workflow failed: ${{ github.event.workflow_run.workflow_name }}'
description: 'Workflow run URL: ${{ github.event.workflow_run.html_url }}\nFailed commit: ${{ github.event.workflow_run.head_sha }}'모니터링 및 로그에 연결하기
알림과 이슈 추적 외에도 Datadog, Splunk, New Relic 또는 사용자 지정 로그 집계 도구와 같은 고급 모니터링 및 로그 기록 도구를 통합할 수 있습니다.
- 지표: 빌드 시간이나 테스트 결과에 대한 사용자 지정 지표를 전송합니다.
- 로그: 중앙 분석을 위해 워크플로 로그를 전달합니다.
- 추적: 배포 이벤트를 애플리케이션 성능과 연결합니다.
이러한 통합에는 도구 공급업체가 제공하는 특정 API 또는 전용 마켓플레이스 작업이 사용되는 경우가 많습니다.
통합 보안 유지하기
외부 서비스와 통합할 때는 보안이 가장 중요합니다. 외부 계정에 대한 액세스 권한을 부여하는 API 키, 토큰 및 웹후크 URL을 다루는 경우가 많기 때문입니다.
이러한 민감한 자격 증명은 항상 GitHub 시크릿을 사용하여 저장하십시오. 워크플로 파일에 직접 입력하지 마십시오. 이렇게 하면 실수로 정보가 노출되는 것을 방지하고 자격 증명을 안전하게 보호할 수 있습니다.
확인 문제: 통합 보안
API 키를 사용하여 GitHub Actions 워크플로를 외부 장애 관리 시스템에 연결해야 합니다. 워크플로에서 이 API 키를 처리할 때 가장 안전하고 권장되는 방법은 무엇입니까?
복습: 통합된 워크플로
GitHub Actions 워크플로를 다양한 외부 서비스와 통합하는 방법을 배웠습니다!
- 웹후크는 이러한 연결에 사용되는 일반적인 메커니즘입니다.
- Slack과 JIRA는 알림 및 이슈 추적에 사용되는 대표적인 예입니다.
- GitHub 마켓플레이스 작업을 사용하면 복잡한 통합을 간소화할 수 있습니다.
- API 키와 웹후크 URL 같은 민감한 자격 증명은 항상 GitHub 시크릿을 사용하여 안전하게 관리하십시오.
이러한 통합을 통해 CI/CD 파이프라인의 기능이 향상되고 팀의 더 넓은 생태계와 더욱 긴밀하게 연결할 수 있습니다.
자주 묻는 질문
“외부 서비스 통합” 강의는 무료인가요?
네 — “외부 서비스 통합” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“외부 서비스 통합”에서 뭘 배우나요?
GitHub Actions 워크플로를 외부 모니터링, 로그 기록, 인시던트 관리 도구와 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“외부 서비스 통합” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.