클라우드를 이용한 DevOps 조직 만들기
참고
저희 회사의 클라우드 컨설턴트이자 저의 멘토이신 클라우드 교육& 솔루션 기업 2 miles 윤혜식 대표님께 배운 내용을 토대로 작성한 글입니다.
Why DevOps?
DevOps를 왜 도입한다고 생각하세요?
이 질문을 들었을 때 저는 당당하게 “개발 조직(Dev)과 운영 조직(Ops)를 통합해, 개발 환경과 운영 환경의 차이에서 오는 일정 지연을 극복하고, 운영과 배포까지의 개발 사이클의 속도를 높이는 것입니다.”라고 대답했습니다. 하지만 이 질문을 하신 윤혜식 대표님의 대답은 “그것이 전부가 아니다.” 라는 것이었습니다. 두둥!!
클라우드 서비스를 통해서, 전통적인 On-Premise 방식의 인프라 조직이 간소화 되었고, 훨씬 유연해졌습니다. 또한 도커와 같은 기술로 개발환경과 운영환경의 차이도 줄일 수 있었습니다. ‘구현과 배포’ 위주로 돌아가던 개발부서가 그동안 가지고 있던 많은 고민들이 기술적으로 해결이 된 것이죠. 그러면 이제 개발부서는 어느 부분에도 초점을 맞춰야 할까요? On-Premise, Cloud로 분산된 환경에서 데이터를 모아 모니터링할 수 있어야 합니다. 시스템 퍼포먼스와 에러 발생률과 같은 데이터들을 모니터링 하면서 비즈니스 목표를 더 잘 실현 할 수 있도록 집중할 수 있습니다. 또 사용자의 피드백과 로그 데이터를 제공해, 회사가 사용자와 시장을 분석하고 시장에 더 Fit한 서비스를 만들어 낼 수 있도록 도울수도 있겠죠.
이제 이 아래 그림이 더 잘 이해가 되시죠?
How to implement DevOps?
그러면 어떻게 DevOps를 우리 조직에 도입할 수 있을까요?
DevOps 조직의 구현 전략 중 CAMS 에 대해 알아봅시다.
Culture
- 변화를 수용하는 마음가짐🙃
- 개발 부서, 운영 부서가 함께 단기간의 공통된 비즈니스 목표를 갖고 빠르게 릴리즈합니다. (기존에 개발 부서, 운영부서가 분리되어, ‘전체 개발’ > ‘전체 배포 및 운영’되던 방식과는 다르죠.)
Automation
- 인프라 관리 자동화: IAC(InfraStructure as code) → Terraform, Chef
- CI/CD: jenkins
Measurement
저희 회사의 경우에는 Azure 클라우드에서 테스트 서버, 운영 서버 VM을 사용하고 있습니다. Azure VM에서 CPU, 네트워크 사용량 모니터링 기능을 무료로 제공해주고 있습니다. 또한 로그 데이터를 통합해서 모니터링 할 수 있는 서비스도 존재합니다. 클라우드를 사용하고 계시다면, 이런 서비스를 사용해 쉽게 모니터링 시스템을 구축할 수 있습니다.
Sharing
조직 내의 모두가 Measurement에 있는 데이터들에 접근할 수 있어야 합니다.
같이 읽어보면 좋은 글
글을 마치면서…
개인적으로는 이번 강의를 듣고 DevOps를 ‘왜 도입할 것인가’에 대한 인사이트를 배운게 가장 큰 도움이 되었습니다. 지금까지 저는 IT 기술은 빠르게 발전하고 끊임없이 새로운 기술이 나오다 보니, 그런 기술들을 따라가기에 급급했습니다. 하지만 왜 그런 기술이 나왔고, 왜 그 기술이 트렌드가 되고 있는지를 이해하니, 회사가 당면한 문제들을 어떻게 회사의 예산과 상황에 맞게 기술적으로 해결할 수 있는지가 더 잘 보였습니다. 😊