성숙한 자동화 운영 및 유지 보수 시스템이 가져야하는 기능
다음은 몇 가지 답변입니다.,매우 가치.
클라우드 컴퓨팅과 DevOps의 현재 개발 추세 결합,성숙한 자동화 운영 및 유지 보수 플랫폼에는 다음과 같은 기능이 포함되어야한다고 생각합니다.:
하나、하이브리드 클라우드를 지원하는 CMDB
이제 점점 더 많은 서버가 클라우드로 전송됩니다.,주류 공용 클라우드、사설 클라우드 플랫폼에는 비교적 완전한 리소스 관리 API가 있습니다.,
이러한 API는 자동화 된 CMDB를 구축하기위한 기반이기도합니다.。
차세대 자동화 된 운영 및 유지 관리 플랫폼은 이러한 API를 기반으로 서버를 자동으로 유지 및 관리 할 수 있어야합니다.、저장、인터넷、부하 분산 된 리소스。
API를 통한 리소스에 대한 작업은 작업 로그로 기록되어야합니다.,후속 운영 감사를위한 기본 데이터로 준비。
CMDB는 진부하게 들립니다.,그러나 이것은 실제로 모든 운영 및 유지 관리 도구의 인프라입니다.。
오픈 소스 도구를 기반으로 한 플랫폼 운영 및 유지 관리의 가장 큰 문제,다양한 도구간에 CMDB를 통합하는 방법。
CMDB가 통합되지 않았습니다.,일단 서버를 추가해야 함을 의미합니다.,각 작업 및 유지 관리 도구에서 동기화해야 할 수 있습니다.,
이건 여전히 아주 많이。。。
두、보다 완벽한 모니터링 + 애플리케이션 성능 분석 (APM)
플랫폼의 가용성을 지원할 수 있습니다.、서버 성능、다양한 서비스 (웹 서비스、신청 서비스、데이터베이스 서비스) 성능 모니터링。
더 잘하면 더 깊이 갈 수 있어야합니다、또는 상관 성능 분석。
이제 시장은 일반적으로 리소스 성능 모니터링과 애플리케이션 성능 모니터링 (APM)을 혼합합니다.,실제로 많은 제품이 내부에 있습니다.
겹침,두 측면이 모두 관련됩니다.。
오픈 소스 성능 모니터링 시스템 주류 Zabbix、Nagios,국내 오픈 소스 모니터링 플랫폼에는 Xiaomi OpenFalcon이 있습니다.,하지만 이것들은 기본적으로
기본 리소스 모니터링 (서버,디스크、네트워크 등) 및 단순 서비스 소프트웨어 성능 모니터링 (미들웨어,데이터베이스 등)。
시장에서 APM 시스템의 더 중요한 기능은 애플리케이션 성능 분석입니다.,예를 들어, 애플리케이션의 URL에 대한 액세스 속도를 정확하게 찾을 수 있습니다.,
SQL 실행 속도의 속도,이는 개발자와 운영 및 유지 보수 담당자가 문제를 신속하게 찾는 데 여전히 매우 유용합니다.。
이 영역의 APM 비즈니스 도구,New Reclic은 해외에서 더 주류입니다.、Dynatrace,국내는 Xingbao입니다、Oneapm、
클라우드 듣기,또한 통합을위한 API를 제공합니다.。
이 영역에서 APM의 오픈 소스 도구는 정확합니다 (한국 팀에서 오픈 소스).,zipkin (twitter 오픈 소스),cat (공개 댓글 오픈 소스)。
세、UI가 좋은 일괄 운영 및 유지 관리 도구가 있습니다.
상대적으로 빠른 사업 개발의 경우,여러 서버에서,수십 대의 서버,수백 대의 서버,대량 작업 및 유지 보수에 대한 수요는 자연 스럽습니다.
생산,상사는 또한 적은 수의 사람들이 더 많은 일을하기를 원합니다.。
또한 많은 오픈 소스 배치 운영 및 유지 관리 도구가 있습니다.,더 성숙하다,꼭두각시 등、요리사、ansible、소금 더미。
꼭두각시와 요리사는 모두 루비로 만듭니다.,솔직히,시장에 루비 숙련자가 거의 없습니다.,파이썬보다 어렵지 않습니다.。
개인적으로 ansible 또는 saltstack을 추천합니다.,두 시스템 모두 파이썬으로 작성되었습니다.,코드 품질과 커뮤니티 활동은 꽤 좋습니다。
Ansible에는 공식 웹 UI 인 Tower가 있습니다.,하지만 진실은 사용하기 쉽지 않습니다,그래서 우리는 우리 스스로 사용하기 쉬운 웹 UI 세트를 다시 만들고 있습니다.。
네、중앙 집중식 로그 분석 도구
온라인 시스템의 가장 일반적인 문제 위치 방법,로그 분석。
서버 증가에 따라,로그 분석 및 포지셔닝도 어렵고 힘든 점이되었습니다 (상상,시스템이 실패한 후,수십 또는 심지어는
수백 개의 노드가 로그를 확인하기 위해 올라갔습니다.,얼마나 답답합니까?)。
중국에 Log Yi라는 회사가 있습니다.,로그 분석 운영 및 유지 관리 도구 전용。
로그 통찰력도 있습니다.,이 필드도 수행,하지만 제품은 아직 베타 버전 인 것 같습니다.。
로그 분석 분야는 이제 핫스팟입니다.,이제 더 많은 오픈 소스 솔루션이 있습니다.,유명한 ELKStack과 같은,
Flume + Kafka + Storm 시스템도 있습니다.。
위의 두 가지 계획은 상대적으로 무겁습니다.,배포가 더 복잡합니다.,온라인으로 소개되는 기사도 많이 있습니다。
비교적 가벼운 오픈 소스 로그 중앙 집중식 수집 솔루션에는 python이 만든 Sentry가 있습니다.,그는 로그 수집 프레임 워크를 다양한 언어로 변환하여 로그를 구현합니다.
중앙 집중식 수집,다양한 주류 개발 언어의 로깅 프레임 워크가 완벽하게 지원됩니다.,Java log4j 및 logpack과 같은。
Sentry의 공식 웹 사이트는 여기:
보초 – JavaScript에 대한 최신 오류 로깅으로 예외 추적, 파이썬, 루비, 자바, 및 Node.js
파이브、지속적인 통합 및 릴리스 도구
이런 점에서 통일 된 수요를 갖는 것은 실제로 어렵다,많은 회사의 통합 출판 관행은 상당히 다릅니다。
지속적인 통합,일반적으로 jekins를 더 많이 사용하십시오.,이와 관련하여 온라인으로 소개 된 많은 기사도 있습니다.。
각 서버에 패키지를 게시하는 방법,일괄 작업 및 유지 관리 도구 또는 스크립트를 통해 수행 할 수 있습니다.。
릴리스 프로세스에는 많은 세부 정보가 포함됩니다.,버전 파일 업로드 포함、분포、버전 관리、롤백과 같은 다양한 작업。
일반적으로 덜 복잡한 프로젝트,내가 선호하는 방법은 패키지 파일을 svn에 업로드하는 것입니다.,그런 다음 각 서버의 스크립트를 통해
게시 작업을 수행하십시오.,이것은 실제로 SVN을 사용하여 파일 업로드를 완료합니다.、분포、버전 관리、롤백과 같은 다양한 작업。
육、보안 취약성 검사 도구
이제 약간 잘 알려진 시스템,다양한 보안 공격에 시달림。
일반 회사는 정규 보안 엔지니어를 고용 할 여유가 없습니다.,따라서 운영 및 유지 보수 엔지니어가 몇 가지 보안 검색 도구를 사용하여 발견하는 것이 가장 좋습니다.
자체 시스템의 취약성。
보안 도구에 대해 잘 모릅니다.,이 분야의 오픈 소스 도구에 익숙하지 않음。
이전에 Wuyun.com은 SaaS 기반 누락 스캔 플랫폼 인 Tang Dynasty Cruise를 출시했습니다.,외부 취약점 스캔을 제공하는 API가 있습니다.,하지만 최근에 업그레이드되었습니다,
따라서 일시적으로 호출 할 수 없습니다.。
개인적으로 느낀다,위의 기능을 사용할 수있는 경우,기본적으로 대부분의 중소기업의 일상 운영 및 유지 보수 작업의 빈도가 높은 작업을 다룹니다.。
- 전산실 장비 데이터 시스템 (EMDB)
- 전산실에 서버 및 네트워크 장비의 각종 정보 입력,기계 모델과 같은,하드 디스크 크기,OS 유형,소유 한 애플리케이션,작동 상태,컴퓨터 실 이름,방에서,틀,위치 및 기타 정보,이것은 가장 기본적인 데이터베이스입니다.,주요 목적은 여러 차원에서 각 기계에 균일하게 라벨을 지정하는 것입니다.,다른 시스템의 사용 촉진。
- 다양한 쿼리 API 인터페이스 제공,그리고 권한 제어。목적은 다양한 상위 시스템에서 호출 할 수있는 것입니다.,일반적으로 나머지 인터페이스,xml 인터페이스。그런 다음 다양한 언어를 기반으로 해당 패키징 라이브러리를 만듭니다.。
- 애플리케이션 모니터링 시스템(Appmonitor)
- 통합 데이터 수집 모듈,장비 운영 정보 수집에 사용,디스크 IO 포함,네트워크 트래픽,CPU 사용률,네트워크 장치의 세션 수,PPS。이 수집 모듈은 일반적으로 네트워크 장비에서 snmp로 구현할 수 있습니다.,일반적으로 맞춤형 에이전트를 통해 서버에서 구현,이 에이전트의 가장 기본적인 기능은 서버 운영 데이터를 수집하는 것입니다.,가장 중요한 것은 다양한 스크립팅 언어를 실행할 수 있고 스크립팅 언어를 통해 서버에서 다양한 작업을 실현할 수 있다는 것입니다.(구성 변경 등,애플리케이션 로그 및 출력 결과 분석)。
- 데이터 저장 및 시각화 모니터링,데이터 수집 모듈에서 수집하는 많은 데이터가 있습니다.,그러나 거래성에 대한 요구 사항은 없습니다.,Hbase와 같은 다양한 NoSQL 데이터베이스를 사용할 수 있습니다.,달성하기 위해 카산드라 등。데이터 시각화는 수행 할 수있는 심층적이고 애플리케이션 수준의 작업입니다.,일반적으로 가장 기본적인 그래프 디스플레이 만 모니터링 시스템에서 구현됩니다.,기간별 선택 및 비교 기능 제공,기타 복잡한 시각화 작업은 다양한 API를 통해 구현됩니다.。
- 모니터링 항목 추가 및 경보 알림,모니터링 항목은 계층 구조입니다.,목록 구조 대신。상위 노드의 구성은 하위 노드의 구성으로 덮어 쓸 수 있습니다.。네트워크 장비의 경우 모니터링 항목이 다릅니다.。기본 데이터 수집 모듈의 도움으로,모니터링 항목은 기본적으로 서버용 스크립트입니다.。표준 모니터링 항목과 맞춤형 모니터링 항목으로 구분 가능,표준 모니터링 항목 최대화,CPU 구현,램,디스크,네트워크 및 기타 정보 모니터링。사용자 정의 모니터링 항목은 여러 시스템 관리 스크립팅 언어를 사용할 수 있습니다.(껍질,파이썬,펄)실현을 기다립니다,스크립트의 출력은 특정 사양을 충족 할 수 있습니다.,일반적으로 라인 구조 또는 json 문자열 사용。각 모니터링 항목에 대한 경고 설정,위험 경보 임계 값 및 여러 경보 접점,임계 값은 일반적으로 숫자입니다.,특수 문자는 문자열 일 수 있습니다.。임계 값을 초과하는 모니터링 항목은 연락처에 경보를 보냅니다.,알람은 SMS를 통해 가능,우편,IM 소프트웨어 발행。알람 전송은 결합 알람을 지원해야합니다.,주파수 제어,알람 끄기。그렇지 않으면 작은 오류에 대해 수천 개의 경보가 발생할 수 있습니다.,알람이 효과를 잃게됩니다.。
- Api 인터페이스 모니터링,그리고 권한 제어。EMDB와 동일한 관행 및 목적。개방형 모니터링 데이터 수집,알람 메시지 전송,푸시 인터페이스 구성。주요 목적은 모니터링 시스템의 데이터를 외부 세계에서 사용할 수 있도록하는 것입니다.,이러한 데이터를 기반으로보다 화려하고 복잡한 데이터 시각화 작업을 수행 할 수 있습니다.,또는 좀 더 개인화 된 모니터링 및 알람 수행。두 번째 목적은 서버의 통합 운영을 지원하는 것입니다.,예를 들어 회사의 모든 기계가 시스템 소프트웨어를 업그레이드합니다.。통합 운영을위한 API 인터페이스는 소수에게만 개방되는 것이 좋습니다.,그리고 권한은 엄격하게 통제됩니다.。
- 릴리스 및 온라인 구성 관리 시스템(ReleaseManager)
- 애플리케이션 릴리스 및 종속 라이브러리 버전 관리,응용 프로그램 릴리스는 운영과 유지 관리 및 개발 사이의 중요한 링크입니다.,일반 릴리스 시스템은 svn 시스템과 밀접하게 통합됩니다.,svn 시스템에 온라인 응용 프로그램 목록이 있습니다.,EMDB에 각 머신이 속한 애플리케이션이 있습니다.。게시 시스템은 이러한 데이터를 사용합니다.,svn 시스템에서 생성 된 애플리케이션 패키지 및 종속성을 온라인에 게시합니다.,또한 이러한 애플리케이션 패키지 및 종속 패키지에 대한 버전 관리 및 제어를 소유합니다.,애플리케이션 릴리스에 문제가있는 경우 이전 버전으로 롤백 할 수 있습니다.。
- 온라인 구성 관리,Linux에서 puppet의 기능과 유사,주로 애플리케이션 서버에서 키 구성 파일의 버전 제어에 사용됩니다.,분포,일관성 유지 작업。대규모 애플리케이션은 일반적으로 서비스를 제공하기 위해 클러스터를 형성하는 여러 서버로 구성됩니다.,이러한 서버의 애플리케이션 구성은 일관성이 있어야합니다.,그러나 때로는 응용 프로그램의 회색조 게시 작업이 있습니다.,또는 누군가 실수로 구성을 변경했습니다.。온라인 구성 관리 시스템에는 통합 구성 수정 항목이 필요합니다.,그레이 스케일 릴리스 지원 제공,동시에 잘못된 구성 변경을 수정하십시오.。Appmonitor 인터페이스를 사용하여 작업 수행。