DevOps 텍스트 교육
일상적인 DevOps 업무에서 조직의 학습을 어떻게 촉진하나요?
본인과 팀이 DevOps에서 얻는 핵심 원칙 중 하나는 일상 업무에서 계속 배우고, 배운 내용을 조직 전체에서 재사용할 수 있는 자산으로 바꾸는 것입니다.
채팅방으로 지식 전파하기
채팅방을 활용해 조직의 지식을 기록하고 만드세요. 채팅방에 연동된 봇을 만들어 운영 작업을 빠르게 수행하도록 합니다. 예를 들어 채팅방에서 봇에 아래 메시지를 보내면 TestServer-9 환경에 FrontEndApp 애플리케이션을 설치하고, 명령줄에서 명령을 실행한 것처럼 실행 결과를 채팅방에 표시할 수 있습니다.
@bot install FrontEndApp TestServer-9
이런 방식으로 팀원 모두가 업무 진행 상황을 빠르게 공유할 수 있습니다. 비공개 메시지와 이메일에서 정보가 유실되지 않습니다. 협업과 업무 투명성의 문화를 키우며, 국지적 지식을 조직 전체의 학습으로 바꾸는 매우 효과적인 방법입니다.
공통 채팅방은 팀이나 회사의 신규 구성원 온보딩을 앞당기는 데도 도움이 됩니다. 팀의 업무 방식 중 상당 부분을 쉽게 관찰할 수 있기 때문입니다. 제품, 서비스, 구성 요소, 도구, 라이브러리 또는 통합 항목마다 채팅방을 따로 쓰면, 시스템의 특정 요소와 관련된 지난 활동을 더 쉽게 검색하고 찾을 수 있습니다.
문서보다 실행 가능한 결과물에 집중하기
전문 지식과 경험을 문서나 위키에 담기보다 가능한 한 실행 가능한 표준과 프로세스를 만드세요. DevOps 조직에서 지식을 만들고 공유하는 가장 좋은 방법 중 하나는 재사용 가능한 도구를 만들어 코드 버전 관리 시스템에 저장하여, 필요한 사람이 찾을 수 있게 하는 것입니다. 사람마다 다르게 또는 잘못 해석할 수 있는 정적 문서 대신 표준과 업무 방식을 실행 가능한 코드로 표현하면, 비즈니스가 더 빠르고 간단해집니다. 감사와 규정 준수가 필요한 프로세스를 코드가 어떻게 처리하는지 설명하는 최소한의 간단한 문서가 있다면 여러 감사 및 규정 준수 점검을 통과하는 데도 도움이 됩니다.
자동화할 수 없는 업무, 프로세스, 표준은 명확하고 구별되는 단계와 체크리스트가 있는 재사용 가능한 사용자 스토리로 만드세요. 그러면 DevOps 조직의 모든 사람이 이런 자산을 재사용해 이점을 얻고, 여러 팀이 비슷한 업무를 일관되게 수행할 수 있습니다. 코드 라이브러리를 계속 검토하고 재사용하고 개선하듯 이 자산도 개선합니다.
재사용 가능한 소프트웨어 청사진 만들기
설계 단계부터 비기능 요구사항을 반영한, 바로 쓸 수 있는 구성 요소, 애플리케이션, 서비스, 마이크로서비스의 청사진을 만드세요. 그러면 개발자는 새 코드를 쓸 때마다 비기능 요구사항을 다시 고민하지 않아도 됩니다.
또한 전체 애플리케이션 스택에서 일관된 비기능 요구사항을 구현할 수 있습니다. 이러한 기능을 내장하면 소프트웨어가 테스트 및 프로덕션 플랫폼에서 실행될 때 배포, 모니터링, 문제 해결, 전반적인 운영도 간단해집니다. 비기능 요구사항의 예는 다음과 같습니다.
- 텔레메트리 지표.
- 런타임 구성.
- 기능 토글.
- 종속성 추적 기능.
- 사용자가 시작한 요청을 추적하는 기능.
- 복원력과 내결함성을 갖춘 서비스.
- 필요할 때 원활하게 기능을 낮출 수 있는 서비스.
- 로그 메시지 검색 기능.
- 이전 버전 및 이후 버전과의 호환성.
- 데이터 보관 및 프로덕션 데이터 세트 관리.
- 로그 관리 및 보관.
코드로 작성한 청사진에 포괄적인 자동화된 테스트를 포함해야 합니다. 자동화된 테스트는 코드의 목적과 재사용 가능한 코드를 가장 효율적으로 쓰는 법을 명확히 하고, 재사용 가능한 청사진에서 파생된 맞춤형 애플리케이션의 자동화된 테스트 작성을 앞당깁니다.
단일 코드 저장소 사용하기
배운 내용과 업무를 모두에게 공유하려면 단일 저장소에 소스 코드뿐 아니라 배포 도구, 배포 파이프라인을 구축하고 실행하는 코드, 자동화된 테스트, 텔레메트리 구축 및 통합 코드, 표준, 튜토리얼, 문서, 위키, 보조 도구 및 플랫폼 구성 표준도 저장하세요.
이렇게 하면 모든 자산을 DevOps 조직 전체에 투명하게 공유합니다. 동일한 산출물, 구성 요소, 타사 도구가 중복되거나 여러 버전으로 생기는 일을 방지합니다. 단일 저장소를 쓰면 런타임에 모든 것을 컴파일하고 링크하고 빌드할 수 있으며, 개발, 테스트, 배포에 모든 항목의 최신 버전을 사용할 수 있습니다.
기술 표준을 세우되 유연하게 운영하기
DevOps 팀원 모두가 서로의 코드를 읽고 검토하고 수정하기를 원한다면, 개발 및 운영팀 누구나 배우고 쓸 수 있는 주요 기술 표준을 정하세요. 컴파일 언어 하나, 스크립트 언어 하나, GUI 언어 하나가 필요합니다. 동시에 모두가 관심 있는 기술을 자유롭게 탐색하도록 해 지속적으로 배우고 실험할 수 있게 하세요. 새로운 영역을 탐색하고 시험하지 않으면 어떻게 다음 혁신에서 앞서갈 수 있을까요?
결론
이 장에서는 일상 업무 중에도 DevOps 조직이 배우고 자산을 만들 수 있도록 널리 쓰이는 기법을 정리했습니다. 이러한 방법을 활용하면 조직 전체에 축적된 경험과 전문 지식이 각 DevOps 팀원의 전문성과 업무 품질을 뒷받침하고 높여 줍니다.
DevOps 여정에 행운이 함께하기를 바랍니다!
