Mus Jung

DevOps Engineer

Mus Jung

DevOps Engineer

ChatOps 시작하기(1단계~2단계)2 min read

Jun 20, 2019

  ChatOps 시작하기

지난 블로그에서 ChatOps에 대해서 간단하게 알아봤습니다. ChatOps를 구축하여 피드백 루프 시간을 줄이고 다른 사람들과 협업할 수 있는 환경을 만들 수 있습니다. 그런데 ChatOps가 훌륭하다는 것은 알겠지만, 어떻게 시작해야 할까요? 많은 분이 이 부분에 대해서 어렵게 느끼고 계실 것 같습니다. 이번에는 ChatOps를 시작하는 방법을 단계별로 살펴보도록 하겠습니다.

 

1단계 – 작게 시작하기, 매뉴얼로 해보기

 

첫 번째로는 조직이 챗 앱을 사용하도록 하는 것입니다. Slack, Mattermost과 같이 많은 사람이 ChatOps로 채택하고 있는 챗 앱을 사용하도록 하는 것이 좋습니다. 챗 앱을 준비했거나 기존에 챗 앱을 사용하고 있다면, 업무를 문서와 메일을 기반이 아닌 채널 기반의 채팅 시스템으로 전환합니다. 업무를 진행하는 데 있어서 가장 중요한 것 중 하나는 키(Key) 채널 기반 의사소통을 해야 하는 것입니다. 여러 타입의 이슈에 키값을 만들어 모든 것을 키를 통하여 채널에 공유합니다. 스크린샷부터 로그, 커맨드 라인까지 하나하나 공유가 된다면 채널에 모든 내용이 기록이 되어 나중에 이력을 쉽게 확인할 수 있습니다. 채널에 사람을 추가하는 것을 두려워하면 안됩니다.  지난 블로그에서 Agile 방법론과 유사한 점을 확인했었는데요, 업무를 모든 사람과 공유를 하고 누구든지 그 업무에 관여할 수 있습니다. 이슈에 대하여 내가 아닌 다른 누군가가 해결책을 가지고 있을 가능성은 항상 존재합니다. 당신의 팀은 문제 해결을 위한 매우 중요한 비밀 지식을 가지고 있기 때문입니다.  

  • Chat 기반 조직 만들기
  • 모든 사람들이 채널 기반의 채팅 시스템으로 전환
  • 사고 대응의 키(key) 채널 기반 의사소통
  • 화면 공유 – 보드게임처럼 생각하기
  • 모든 것을 기록
  • 처음부터 사람을 추가하는 것을 두려워하지 않기
  • 당신의 팀은 문제해결을 위한 매우 중요한 비밀 지식을 가지고 있음

 

문제를 매뉴얼로 해결하는 팀 예시

 

2단계 – 단순한 것 자동화하기

 

챗 앱을 업무를 진행하는 데 사용했다면 ChatOps를 시작한 것이나 다름없습니다. 시작이 반이라는 말이 있으니 ChatOps를 시작하기에 막막하셨던 부분은 어느 정도 해결하셨을 겁니다. 그래도 자동화가 안 된다면 ChatOps라고 하기 민망하겠죠? 자동화는 단순한 것부터 시작합니다. 모든 문제를 해결하는 강력한 봇으로 시작할 필요가 없습니다. 오히려 작은 것부터 차근차근 자동화하는 것이 단단한 ChatOps를 만드는 데 도움이 됩니다. 우선 보안, 성능, 빌드 시스템 등 서로 다른 알림을 위한 채널을 만듭니다. 그리고 대단한 기능이 아닌 간단한 웹 훅을 사용하여 시작하고 채널에 팀이 업무에 대해서 협조적인지 지켜봅니다. ChatOps에서는 모든 업무 내용이 다른 사람들에게 공유되어야 하므로 오른손이 하는 모든 일을 왼손이 알도록 합니다.

 

  • 모든 문제를 해결한 강력한 봇으로 시작할 필요가 없음
  • 간단한 알림을 자동화하여 채널로 안내
  • 서로 다른 알림을 위한 특정 채널을 만들기
    • 보안
    • 성능
    • 빌드 시스템
    • 지휘 센터
  • 간단한 웹 훅을 사용하여 시작하기
  • 팀이 협조적인지 지켜보기
    • 오른손이 하는 일을 왼손이 얼마나 모르는지

 

간단한 웹 훅으로 문제를 해결하는 예시

2단계(계속) – 더 어려운 것 자동화하기

 

단순한 것들을 웹 훅과 채널 알림을 통하여 ChatOps의 첫발을 내디뎠습니다. 그렇다면 더 어려운 것 자동화에는 어떤 것이 있는지 알아보도록 하겠습니다. 이제 좀 더 많은 데이터를 채널로 가져오는 것이 목표입니다. 고급 슬래시 명령어 혹은 경고 훅을 추가하여 ChatOps의 기능을 추가하고 더 많은 노티를 받을 수 있도록 합니다. 더 많은 스크린샷과 markdown 형식의 내용과 테이블을 볼 수 있도록 합니다. 로그를 위한 파일도 공유합니다. 최대한 업무의 많은 내용을 포함할 수 있도록 많은 데이터를 가져옵니다.

 

  • 고급 슬래시 명령어 혹은 경고 훅 추가 시작
  • 더 많은 데이터 가져오기
  • 더 많은 스크린 샷
  • markdown 테이블
  • 로그를 위한 파일 첨부
  • markdown 형식

 

 

Rich MarkDown Table 예시

 

Rich 메시지와 로그 파일 예시

 

(내용, 이미지 출처 Mattermost – Lessons learned implementing ChatOps)