🎯 Computer Science에 λŒ€ν•΄ μ •λ¦¬ν•©λ‹ˆλ‹€.


πŸ“— Today I Learned

νŒŒμ΄ν”„λΌμΈ λͺ¨λ‹ˆν„°λ§

λͺ¨λ‹ˆν„°λ§μ˜ ν•„μš”μ„±

  • νŒŒμ΄ν”„λΌμΈ λͺ¨λ‹ˆν„°λ§

    • λΉŒλ“œ 및 배포가 μΌμ–΄λ‚˜λŠ” 것을 μš΄μ˜μžκ°€ 인지할 수 μžˆλ„λ‘ μ•Œλ¦Ό μ„€μ •

    • μ½”λ“œ 리포지토리에 릴리슀 브랜치λ₯Ό λ³„λ„λ‘œ κ΅¬μ„±ν•˜μ—¬ λΉŒλ“œ 및 배포 μ œμ–΄

  • ν΄λŸ¬μŠ€ν„° λͺ¨λ‹ˆν„°λ§

    • μ‹œμŠ€ν…œ μžμ›μ˜ 이용 μƒνƒœμ™€ μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄μ˜ μ‹€ν–‰ μƒνƒœλ₯Ό 점검

    • ν΄λŸ¬μŠ€ν„° 내에 λ©”νŠΈλ¦­ 데이터 μˆ˜μ§‘μ„ μœ„ν•œ 도ꡬλ₯Ό μ„€μΉ˜

    • λŒ€μ‹œλ³΄λ“œλ₯Ό μ„€μ •ν•˜μ—¬ μœ μš©ν•œ 정보λ₯Ό λΉ λ₯΄κ²Œ νŒŒμ•…ν•  수 μžˆλ„λ‘ μ‹œκ°ν™”

μ‹€μŠ΅ 흐름

  • Slack μ•Œλ¦Ό μ„€μ •

    • Slack 채널 생성 및 Slack app (Jenkins CI) μ„€μΉ˜

    • Slack 채널 접근을 μœ„ν•œ authentication token 생성 Jenkins - credentials 에 등둝

    • Jenkins ν”ŒλŸ¬κ·ΈμΈ (Slack Notification) μ„€μΉ˜

    • Pipeline Script μ—μ„œ μ•Œλ¦Ό μ„€μ •, ν…ŒμŠ€νŠΈ

  • μΆ”κ°€ 정보 (code diff) 포함

    • 직전 컀밋과 λΉ„κ΅ν•˜μ—¬ μ½”λ“œ ν‘Έμ‹œμ—μ„œ λ³€κ²½λœ 사항을 μˆ˜μ§‘

    • μˆ˜μ§‘ν•œ λ³€κ²½ 내역을 Jenkins 에 κ²Œμ‹œν•˜κ³  링크λ₯Ό μ–»μ–΄ Slack μ•Œλ¦Ό λ©”μ‹œμ§€μ— 포함

Pipeline Script

stage("Start") {
 steps {
 slackSend(
 message: "Pipeline ${env.JOB_NAME} #${env.BUILD_NUMBER} Start",
 color: "good", tokenCredentialId: "slack-key"
 )
 }
post {
always {
(...)
slackSend(
message: "Pipeline ${env.JOB_NAME} #${env.BUILD_NUMBER} Completed " +
"with status [${currentBuild.currentResult}]",
color: "good", tokenCredentialId: "slack-key"
)
}
}

μ½”λ“œ λ³€κ²½ 사항 (컀밋 정보) λ°œν–‰

script {
 def publisher = LastChanges.getLastChangesPublisher "PREVIOUS_REVISION",
 "SIDE", "LINE", true, true, "", "", "", "", ""
 publisher.publishLastChanges()
 def htmlDiff = publisher.getHtmlDiff()
 writeFile file: "deployment-diff-${env.BUILD_NUMBER}.html",
 text: htmlDiff
}

ν΄λŸ¬μŠ€ν„° λͺ¨λ‹ˆν„°λ§

μ‹€μŠ΅ 흐름

  • Prometheus 와 Grafana λ₯Ό 둜컬 ν΄λŸ¬μŠ€ν„°μ— μ„€μΉ˜

    • Helm 을 μ΄μš©ν•˜μ—¬ kube-prometheus-stack 을 κ°„νŽΈ μ„€μΉ˜

    • 둜컬 μ»΄ν“¨ν„°μ˜ λΈŒλΌμš°μ €μ—μ„œ μ ‘κ·Όν•  수 μžˆλ„λ‘ μ„œλΉ„μŠ€ μ„€μ •

  • λͺ¨λ‹ˆν„°λ§ λŒ€μ‹œλ³΄λ“œ ꡬ성

    • 이미 λ§Œλ“€μ–΄μ Έ μžˆλŠ” ꡬ성을 (μΈν„°λ„·μœΌλ‘œλΆ€ν„° μ–»μ–΄μ™€μ„œ) 적용
  • μ‹œμŠ€ν…œ λΆ€ν•˜ λͺ¨λ‹ˆν„°λ§ ν…ŒμŠ€νŠΈ

    • Jenkins νŒŒμ΄ν”„λΌμΈμ„ μ‹€ν–‰ν•˜κ³  이것에 μ˜ν•˜μ—¬ λ°œμƒν•˜λŠ” 이벀트 κ΄€μΈ‘
profile
🌱개발 기둝μž₯

0개의 λŒ“κΈ€