자동화 수용: DevOps에서 앞서가기

DevOps는 새로운 제품과 서비스를 대규모로, 안정적으로, 경제적으로 제공하는 것을 가속화하는 것입니다. 이를 위해서는 자동화가 필요합니다. 소프트웨어를 사용하여 다른 소프트웨어를 빌드, 구성, 배포, 확장, 업데이트, 관리하는 것입니다.
우리는 보통 모니터링이 이 프로세스와 함께 일어난다고 생각합니다. 그 일은 일이 잘못되었을 때 운영자에게 경고하고, 이슈를 분석하고, 서비스 수준 목표 준수를 확인하는 것입니다. 하지만 모니터링을 운영 자동화의 필수적인 부분으로 다루는 것이 더 나은 관행입니다. 현대적이고 기능이 풍부한 모니터링 플랫폼은 그 자체로 강력한 자동화 엔진이 될 수 있으며, 애플리케이션 및 인프라 수명 주기 관리와 문제 완화에서 더 큰 자동화 이니셔티브의 중요한 인에이블러가 될 수 있습니다. 많은 경우 자율 운영인 자체 확장과 자체 치유를 가능하게 할 수도 있습니다.
>참조: IT 모니터링: 자신을 광기로 모니터링하지 마라, Opsview
모니터링 시스템이 더 많은 일을 하게 하고, 사람의 실수를 없애고, SLO를 준수하는 것을 넘어 충족시키는 데 도움이 될 수 있는 몇 가지 방법은 다음과 같습니다:
간소화된 자동화된 모니터링 시스템 배포 및 수명 주기 관리. 온프레미스 모니터링 솔루션은 모니터링되는 인프라와 함께 상주할 수 있습니다. 클래식 프라이빗 클라우드와 데이터 센터, 공급자 호스팅 가상 프라이빗 클라우드(VPC) 모두에서 가능합니다. 이를 통해 보안, 프라이버시, 데이터 거버넌스 및 기타 규정을 준수할 수 있으며, SaaS 모니터링 솔루션의 확장성을 제한할 수 있는 대역폭과 비용 장벽을 극복하는 데 도움이 됩니다. 그러나 프레미스 모니터링은 배포, 확장, 업데이트되어야 합니다. 이는 매우 단순하고 단일 서버 구성이 아닌 모든 경우에 벅찰 수 있습니다.
앞을 내다보는 이런 종류의 모니터링 플랫폼 제작자들은 Ansible, Puppet, Chef 같은 인기 있는 배포 자동화 프레임워크(DevOps가 인프라 배포와 일상 작업을 자동화하는 데 사용하는 것과 동일한 것)를 활용하여 확장되고 고가용성 구성에서 모니터링 시스템 배포를 간소화하기 시작하고 있습니다. 운영자 편의를 위해 배포 도구 복잡성을 웹 UI와 단순화된 구성기 뒤에 숨기고 있지만, 표준 툴링은 모니터링 시스템 또는 메트릭 수집기 배포를 인프라 롤아웃과 결합하려는 DevOps 담당자가 접근할 수 있습니다. 이는 모범 사례입니다. 모니터링 세부 사항은 확정적인 "코드로서의 인프라(infrastructure as code)" 리포지토리의 일부로 정의되고 유지될 수 있습니다.
>참조: 데이터 센터에서 가시성의 가치
API를 통한 자동화된 에이전트 배포 및 모니터링 대상 객체 등록. Ansible 같은 표준 배포 도구를 사용하여 모니터링 구성요소(엔드포인트 에이전트, 필수 라이브러리 등)를 호스트에 주입, 구성, 업데이트할 수도 있습니다. 같은 도구로 배포 매니페스트에서 또는 배포 시 호스트에서 직접 사실을 추출한 다음, 모니터링 시스템 API를 사용하여 호스트 인프라와 애플리케이션에 대한 모니터링을 신속하게 구성하고, 수명 주기 끝에 호스트를 "모니터링 해제(unmonitor)"할 수 있습니다. 시스템이 배포되자마자 일상적으로 모니터링하에 두면 스테이징이나 프로덕션에서 이슈를 빠르게 탐지할 수 있으며, 필요한 경우 롤백을 트리거하는 데 사용될 수 있습니다. 이는 지속적 배포를 위한 중요한 모범 사례입니다.
CMDB 수집. 일부 모니터링 플랫폼은 ServiceNow 같은 공급자가 제공하는 운영 관리 도구와 구성 관리 데이터베이스(CMDB)에서 데이터를 수집할 수 있습니다. 이를 통해 운영자는 기존 인프라, 애플리케이션, 전체 비즈니스 서비스에 대한 모니터링을 빠르고 자신 있게 구성할 수 있습니다. 시스템 사실을 수동으로 수집하는 수고롭고 오류가 발생하기 쉬운 작업을 피할 수 있습니다.
>참조: DevOps 성공을 위해 필요한 올바른 스토리지 소프트웨어는 무엇인가?
발견 및 자동 모니터링. 정교한 모니터링 솔루션은 SSH를 통한 호스트 직접 접근, ActiveDirectory 같은 구성 리포지토리나 Windows Discovery 같은 서비스를 통한 간접 접근 등 점점 더 다양한 방법을 사용하여 기존 인프라에서 사실을 추출하고 운영자의 모니터링 구성을 가속화합니다. 최첨단 제품은 이제 프로세스를 완전히 자동화하는 방향으로 움직이고 있습니다. 인프라, 앱, 완전한 비즈니스 서비스의 포괄적인 맵을 만들고, 수동 개입이나 방향 없이 이러한 것들을 모니터링합니다.
알림 처리, 통지, 에스컬레이션, 통합. 알림은 물론 강력한 자동화 형태입니다. 의사결정을 수반합니다. 단순할 수도 있습니다(예: 어떤 메트릭이 주어진 임계값을 초과함). 또는 훨씬 더 복잡할 수도 있습니다(예: 별도 시스템의 여러 메트릭이 중요 비즈니스 서비스에 대한 특정 종류의 알려진 실패를 예측하는 상태에 진입함). 이슈, 팀 로타, 시간/날짜 및 기타 변수를 기반으로 정교한 할당과 에스컬레이션이 필요합니다. 이메일 같은 통신 방법이나 PagerDuty 같은 다중 모드 알림 플랫폼과의 아웃바운드 통합을 요구합니다. 또는 이슈 관리(JIRA 등)나 운영 워크플로 관리(ServiceNow 등), 협업(Slack 등) 및 기타 솔루션과 더 정교한 통합도 필요합니다. 이 모든 자동화 파워가 함께 작동하여 올바른 알림이 올바른 사람에게 올바른 시간에 가도록 하면서 과도한 알림과 피로를 피합니다. 운영을 부드럽게 하고 팀이 다운타임을 피하고 SLO 약속을 충족하도록 돕습니다.
>참조: 워크로드 자동화가 DevOps를 가속화하는 방법
선제적 이슈 완화. 마지막으로, 정교한 모니터링 솔루션은 이제 호스트에서 스크립트를 실행하거나, 중앙화된 자동화(예: Ansible)를 트리거하여 모니터링된 조건에 기반한 작업을 수행하는 능력을 제공합니다. 실패한 서버 재부팅부터 인프라 클러스터 확장까지. 향후 10년간 머신러닝 발전은 비즈니스 서비스의 추상적 구조와 기능을 추론하기 위해 시스템을 모니터링하는 능력을 점진적으로 개선하고, 자동으로 모니터링하고, 실패 모드를 예측하고, 복구하고, 성능을 최적화할 것입니다. 자율적으로, 또는 운영자 리소스를 작업에 최적으로 할당함으로써 말입니다.
작성자: 존 제인시그(John Jainschigg), Opsview 콘텐츠 전략 리드