반복영역 건너뛰기
주메뉴 바로가기
본문 바로가기
제품/서비스
EMS Solution
Features
클라우드 관리
AI 인공지능
서버관리
데이터베이스 관리
네트워크 관리
트래픽 관리
설비 IoT 관리
무선 AP 관리
교환기 관리
운영자동화
실시간 관리
백업 관리
APM Solution
애플리케이션 관리
URL 관리
ITSM Solution
서비스데스크
IT 서비스 관리
Big Data Solution
SIEM
Dashboard
대시보드
Consulting Service
컨설팅 서비스
고객
레퍼런스
고객FAQ
문의하기
가격
자료실
카탈로그
사용자매뉴얼
회사소개
비전·미션
연혁
2016~현재
2000~2015
인증서·수상
투자정보
재무정보
전자공고
IR자료
새소식
공고
보도자료
오시는 길
채용
피플
컬처
공고
FAQ
블로그
열기
메인 페이지로 이동
블로그
기술이야기
블로그
최신이야기
사람이야기
회사이야기
기술이야기
다양한이야기
무선 AP를 WNMS를 통해 올바르게 관리하는 방법
Helm과 Argo의 개념과 통합 활용법?!
강예원
2024.03.08
페이스북 공유하기
트위터 공유하기
링크드인 공유하기
블로그 공유하기
지속적인 성과를 내기 위한 첫걸음, '이것'부터 관리 하라?!
애플리케이션을 클라우드 네이티브 환경에서 효율적으로 관리하고 운영할 수 있는 플랫폼인 쿠버네티스(kubernetes)를 활용하는 기업들이 점점 더 늘어나고 있습니다.
이에 따라 효율적인 애플리케이션 관리를 통해 패키징 배포, 관리를 자동화하고 일관된 상태를 유지하는 것이 중요해지고 있습니다. 이번 글을 통해서는 애플리케이션 개발 및 도구 중 최근 많이 사용되는
Helm과 Argo
에 대해서 자세히 알아보겠습니다.
ㅣHelm의 등장
쿠버네티스를 활용한 애플리케이션 배포에 가장 기본이 되는 단위는 yaml 파일로, 주로 쿠버네티스 object(리소스)들을 정의하고 다루는데 활용됩니다.
쿠버네티스를 통해 애플리케이션을 배포하다 보면 비슷한 틀과 내용을 공유하고, 내부 값(configuration)만 일부 변경하는 작업을 하게 되는데요, 이 과정에서 애플리케이션마다 모두 yaml 파일을 만들어야 하나 보니 매우 번거로웠습니다.
위 이미지를 보면, A 애플리케이션은 정적 파일인 yaml을 오브젝트별(Service, Pod, ConfigMap)로 만들어서 생성하고 배포합니다. 그러다가 프로젝트의 확장에 따른 기능 추가로 인해 B와 C 애플리케이션으로 쪼개어 각각의 yaml 파일을 복사해서 사용합니다.
하지만, 팀 단위로 인프라가 확장될 경우는 어떻게 할까요? 개별 오브젝트에 대한 yaml 개별적으로 관리할 수 있을까요? 만약, 개별적으로 관리한다면 파일의 갯수와 코드량의 증가로 인해 개발자들은 매우 혼잡하게 될 것입니다.
이러한 문제점을 해결하기 위해, 쿠버네티스에서 애플리케이션을 배포하기 위해 사용되는 대표적인 패키징 툴인 Helm이 등장하게 됐습니다.
Helm을 활용하면 컨테이너 배포뿐 아니라 애플리케이션을 배포하기 위해 필요한 쿠버네티스 리소스를Node의 npm, Ubuntu의 APT, Mac의 Homebrew처럼 모두 패키지 형태로 배포할 수 있습니다.
ㅣHelm의 역사
Helm은 v1부터 v3에 이르기까지 아래와 같은 변화의 과정을 거쳐왔습니다.
Helm v1
◾ [2015년 11월] DEIS의 내부 프로젝트로 시작되어 KubeCon에서 발표
◾
[
2017년 04월] MS에서 DEIS를 인수
Helm v2
◾ [2016년 01월] Google 프로젝트에 합류
◾ [2016년 ~ 2018년] Helm v2 고도화, 2.15.0 릴리스 발표에서 v2 향후 계획 세부사항 공유
Helm v3
◾
[
2018년 06월] CNCF 프로젝트에 합류, MS, 삼성 SDS, IBM 및 Blood Orange의 구성원 등이 참여
◾
[
2019년 11월] 릴리스 발표
v2에서 v3로 고도화되면서 가장 눈에 띄는 변화는 Tiller(클러스터 내에서 Helm 패키지 및 배포 상태를 관리하는 서버 구성요소)의 제거입니다.
Helm v2에서는 클러스터에 Tiller를 설치하여, API Server와 REST*1 통신을 하고, Client와 gRPC*2 통신을 진행했었는데요, Helm v3부터는 Tiller가 제거되면서 Client에서 바로 REST 통신을 통해 API Server로 요청하는 방식으로 변경되었습니다.
그 외에도 Helm v3으로 업그레이드되면서 보안 취약점이 줄어들었으며, 설치 및 관리 과정이 단순화되었습니다. 또한 사용자에게 보다 더 안전하고 효율적인 배포 및 관리 환경을 제공할 수 있게 되었습니다.
*1 REST (Representational State Transfer) : 웹 기반 애플리케이션에서 자원을 관리하기 위한 아키텍처 스타일, 데이터를 고유한 URL로 표현하고 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 해당 자원에 대한 행위를 정의함
*2 gRPC (google Remote Procedure Call) : 구글에서 개발한 오픈소스 프레임워크, 원격지에 있는 다른 시스템 또는 서버에 있는 함수를 호출하는 방식
ㅣHelm의 주요 개념
Helm은 애플리케이션을 배포해 주는 툴이라고 앞서 살펴봤는데요, Helm과 같이 사용되는 주요 개념들을 살펴보겠습니다.
◾
Helm Chart:
쿠버네티스 리소스를 하나로 묶은 패키지입니다. 이는 yaml 파일의 묶음(패키지)으로, 이 묶음 public 혹은 private registry에 push 해두고, helm 명령어를 통해 Helm Chart를 설치하여 쿠버네티스 리소스를 배포하는 역할을 합니다.
◾
Repository:
Helm Chart 들의 저장소
◾
Release:
kubernetes Cluster에서 구동되는 차트 인스턴스이며, Chart는 여러 번 설치되고 새로운 인스턴스는 Release로 관리됩니다.
ㅣHelm의 주요 기능
Helm의 두 가지 주요 기능을 살펴보겠습니다.
[1] Helm Chart를 통한 손쉬운 배포
Helm을 사용하면 어떻게 되는지 그림으로 살펴보겠습니다.
개발 클러스터가 있고 앱 2개를 배포한다고 가정했을 때, Helm Chart Template을 만들면 변수 처리를 통해 yaml 파일을 하나하나 수정할 필요 없습니다. kubectl 명령어를 통해 yaml 파일의 동적 값을 치환하여 템플릿 형태로 편리하게 배포할 수 있다는 장점이 있습니다.
[2] Helm Package를 이용한 오픈소스 설치 및 배포
Helm을 통해서 쿠버네티스에서 가동할 수 있는 아래와 같은 다양한 오픈소스들의 제품들을 쉽게 설치/배포할 수 있습니다.
위제품들 외에도 Helm Chart는 총 14,376개의 패키지와 281,373개의 릴리스를 오픈소스로 제공합니다. 이를 통해 사용자들은 자신의 요구에 맞는 가장 적합한 솔루션을 선택하여 개발할 수 있습니다. 또한 많은 사용자들이 검증하고 사용함에 따라 안정성 있는 운영도 가능하죠.
다양한 Helm Chart 패키지는 커스터마이징이 가능한 경우가 많은데요, 사용자는 필요에 따라 구성을 조정하고 수정해서 사용할 수 있는 장점이 있습니다.
다음으로는 Helm 못지않게 많이 활용되는 ArgoCD에 대해서 살펴보겠습니다.
ㅣ ArgoCD란?!
기존의 kubernetes 애플리케이션을 배포하고 관리하는 방식은 수동적이었습니다. yaml 파일을 직접 편집하고, kubectl로 변경사항을 클러스터에 적용하는 수동 배포 방식은 실수를 많이 유발했죠.
또한 여러 개발자나 팀이 각자의 방식대로 배포 및 관리를 수행하는 경우, 클러스터 상태의 일관성이 저하되었는데요. 이로 인해 개발 및 운영팀 간의 협업이 어렵고 생산성이 감소되는 문제가 발생하기도 했습니다.
이러한 기존 접근 방식에 대한 대안으로 GitOps가 탄생했는데요, GitOps는 Git 저장소를 사용하는 소프트웨어 배포 접근 방식입니다. GitOps는 인프라와 소프트웨어를 함께 관리함으로써, Git 버전 관리 시스템과 운영환경 간의 일관성을 유지할 수 있도록 합니다.
ArgoCD는 GitOps를 구현하기 위한 도구 중 하나로 kubernetes 애플리케이션의 자동 배포를 위한 오픈소스 도구입니다. kubernetes 클러스터에 배포된 애플리케이션의 CI/CD 파이프라인에서 CD 부분을 담당하며, Git 저장소에서 변경사항을 감지하여 자동으로 kubernetes 클러스터에 애플리케이션을 배포할 수 있습니다.
kubernetes 애플리케이션 배포 과정을 살펴보겠습니다.
① 사용자가 개발한 내용을 Git 저장소에 Push(이때, kubernetes 배포 방식인 Helm 배포 방식의 구조로 Git 저장소에 Push 할 수 있습니다.)
② ArgoCD가 Git 저장소의 변경 상태를 감지
③ Git 저장소의 변경된 내용을 kubernetes에 배포하여 반영
ㅣ ArgoCD의 주요 기능
◾ 애플리케이션을 지정된 환경에 자동으로 배포
◾
멀티 클러스터 관리기능 제공
◾
OCI, OAuth2, LDAP 등 SSO 연동
◾
멀티 테넌시와 자체적인 RBAC 정책 제공
◾
애플리케이션 리소스 상태 분석
◾
애플리케이션 자동 및 수동 동기화 기능 제공
◾
Argo가 관리하고 있는 쿠버네티스 리소스 시각화 UI 제공
◾
자동화 및 CI 통합을 위한 CLI 제공
위 내용은 ArgoCD가 제공하는 주요 기능을 나열한 것인데요, 이 중에서도 대표적인 다섯 가지 기능에 대해서 자세히 살펴보겠습니다.
① 쿠버네티스 모니터링
ArgoCD는 쿠버네티스를 항상 추적하고 있다가 저장소의 변경사항이 감지되면, 자동으로 클러스터의 상태를 저장소의 상태와 동기화합니다. 또한 문제가 생기면 이전 상태로 롤백 할 수 있으며, 이를 통해 시스템 복구 및 문제 해결을 용이하게 합니다.
② 멀티 클러스터 관리
다중 클러스터 환경에서도 배포를 관리할 수 있어 복잡한 인프라 환경에서의 효율적인 작업을 가능하게 합니다.
③ ArgoCD 대시보드
Argo에서는 클러스터 상태를 효과적으로 관리하고 모니터링할 수 있는 대시보드를 제공합니다.
ArgoCD 대시보드를 통해 애플리케이션의 실시간 상태와 동기화 상태와 같은 전체적인 배포 파이프라인을 자동화하여 시각적으로 확인할 수 있고, 롤백 및 이력 추적 기능도 동시에 제공하고 있습니다.
④ 안전한 인증 및 권한 관리
역할 기반 액세스 제어(RBAC) 및 권한 제어기능을 통해 민감한 정보에 대한 접근을 제어할 수 있습니다.
⑤ GitOps 지원
ArgoCD는 GitOps 방법론을 따르므로 애플리케이션의 배포를 Git Repository와 동기화할 수 있습니다. 이를 통해 코드와 인프라의 일관성을 유지하고 변경사항을 추적할 수 있습니다.
ㅣ Helm과 ArgoCD의 통합 활용 프로세스
Helm과 Argo를 함께 사용하면 개발, 테스트, 배포 프로세스를 효과적으로 관리할 수 있습니다. Helm으로 애플리케이션을 패키징하고 버전을 관리하며, Argo를 활용하여 GitOps 워크플로우를 통해 지속적인 통합 및 배포를 자동화할 수 있습니다.
① develop:
Helm을 사용하여 애플리케이션을 Helm Chart로 패키징 합니다. 이후 개발된 Helm Chart를 저장하기 위한 Git 저장소를 설정합니다. ArgoCD에서 저장한 저장소를 특정 배포 대상 Kubernetes 클러스터와 연결하여, Git 저장소의 변경사항을 감지하고 새로운 배포를 시작하여 클러스터에 적용합니다.
② git push:
개발자가 로컬 저장소 내용을 원격 저장소에 배포합니다.
③ Observe(GitOps):
ArgoCD는 Git 저장소의 변경 사항을 감지하여, 변경사항이 발생하면 새로운 버전의 애플리케이션을 배포하여 자동화 및 일관성을 유지합니다.
④ 운영/테스트/개발
ㅣ마무리
오늘 함께 살펴본 Helm과 ArgoCD 두 가지 강력한 도구를 함께 이용한다면 CI/CD 통합, 버전 관리, 자동화 등의 이점을 활용해서 kubernetes 환경에서 애플리케이션을 더 효율적으로 관리할 수 있습니다.
한편 애플리케이션을 효과적으로 개발하는 것도 중요하지만, kubernetes 환경의 프로세스를 실시간 모니터링하고 추적하여 관리하는 것도 매우 중요합니다.
브레인즈컴퍼니의 kubernetes 모니터링 솔루션 Zenius-K8s는 다양한 CI/CD 도구를 이용하여 개발한 kubernetes 애플리케이션의 전체 클러스터 및 구성요소에 대한 상세 성능 정보를 모니터링하고, 리소스를 추적함으로써 시스템의 안정성과 성능을 높여주고 있습니다.
#쿠버네티스
#Helm
#Argo
#K8s
#kubernetes
#ArgoCD
#ZeniusK8s
강예원
프리세일즈팀
고객에게 특화된 Zenius를 제공하기 위해, 비즈니스 요구에 알맞은 전략적 컨설팅을 제안합니다.
필진 글 더보기
목록으로
추천 콘텐츠
이전 슬라이드 보기
IT 인프라 모니터링 트렌드
IT 인프라 모니터링 트렌드
EMS란? EMS는 Enterprise Management System의 약자로, 여러 기업과 기관의 IT서비스를 이루는 다양한 IT Infrastructure를 통합적으로 모니터링하는 시스템을 의미합니다. 해외에서는 일반적으로 ITIM(IT Infra Management)이라는 용어로 많이 사용되고 있지만, 국내에서는 EMS라는 용어로 통용되고 있습니다. EMS는 IT인프라의 데이터를 실시간으로 수집 및 분석할 뿐만 아니라, 수집된 데이터를 활용해 비즈니스의 가치를 창출할 수 있습니다. 글로벌 IT분야 연구자문 기업인 “가트너(Gartner)”에서는 ITIM, 즉 EMS를 데이터센터, Edge, IaaS(Infrastructure as a Service), PaaS(Platform as a Service) 등에 존재하는 IT인프라 구성요소의 상태와 리소스 사용률을 수집하는 도구로 정의하며, 컨테이너, 가상화시스템, 서버, 스토리지, 데이터베이스, 라우터, 네트워크 스위치 등에 대한 실시간 모니터링이 가능해야 한다고 서술합니다. <사진 설명: 가트너의 ITIM 정의를 도식화한 그림> 이러한 EMS는 초기에는 기업 전산실에 물리적인 형태로 존재하는 서버, 네트워크의 리소스관리를 중심으로 모니터링해 왔습니다. 서버의 CPU, Memory 등의 리소스 정보를 수집하거나, 네트워크 장비의 트래픽 정보를 모니터링하고 임계치를 기반으로 이벤트 감지하는 역할이 대부분이었으며, 이 정도 수준에서도 충분한 IT 인프라 관리가 이뤄질 수 있었습니다. 그러나 가상화(Virtualization)라는 개념이 생겨나고 다양한 IT 인프라들이 기업 전산실에서 클라우드(Cloud) 환경으로 전환됨에 따라, EMS의 모니터링 분야도 조금씩 바뀌어 가고 있습니다. 많은 기업들이 효율적인 리소스 사용과 비용 절감을 목표로 VMware와 같은 가상화 시스템을 도입해 운영하게 됐으며, 모니터링 부문도 이에 대응하기 위해 가상화 리소스에 대한 관리 영역으로 확장됐습니다. 가상화 환경을 이루는 하이퍼바이저(Hypervisor)와 가상머신(Virtual Machine)의 연관성을 추적하고, 각 가상머신들이 사용하고 있는 리소스를 실시간으로 분석해 효율적인 자원 배분, 즉 프로비저닝(Provisioning)을 위한 근거 데이터를 제공할 수 있도록 하고 있습니다. 더 나아가 VMware, Hyper-V 등의 다양한 가상화 플랫폼에서 가상머신을 생성하고 삭제하고, 실제로 가상머신에 CPU, Memory 등과 같은 리소스를 할당해 줄 수 있는 컨트롤 영역까지 제공하는 제품을 개발하는 벤더사들이 많아지고 있습니다. 이러한 가상화 기술을 기반으로 현대에는 IT 인프라들이 대부분 클라우드 환경으로 전환하고 있는 추세입니다. 클라우드 환경으로의 전환 클라우드(Cloud)란, 언제 어디서나 필요한 컴퓨팅 자원을 필요한 시간만큼 인터넷을 통해 활용할 수 있는 컴퓨팅 방식으로, 최근 기업들은 각자의 목적과 상황에 맞게 AWS, MS Azure와 같은 Public Cloud 및 OpenStack, Nutanix 등을 활용한 Private Cloud 등의 환경으로 기업의 전산설비들을 마이그레이션 하고 있습니다. 클라우드로의 전환과 기술의 발전에 따라, EMS의 IT 인프라 모니터링은 더 이상 *On-Premise 환경에서의 접근이 아닌, Cloud 환경, 특히 MSA(Micro Service Architecture)를 기반으로 하는 클라우드 네이티브(Cloud Native) 관점에서의 IT 운영 관리라는 새로운 접근이 필요하게 됐습니다. (*On-Premise : 기업이 서버를 클라우드 환경이 아닌 자체 설비로 보유하고 운영하는 형태) 클라우드 네이티브란, 클라우드 기반 구성요소를 클라우드 환경에 최적화된 방식으로 조립하기 위한 아키텍처로서, 마이크로서비스 기반의 개발환경, 그리고 컨테이너 중심의 애플리케이션 구동환경 위주의 클라우드를 의미합니다. 클라우드 네이티브는 IT비즈니스의 신속성을 위해 도커(Docker)와 같은 컨테이너를 기반으로 애플리케이션이 운영되므로, EMS는 컨테이너의 성능, 로그, 프로세스 및 파일시스템 등 세부적인 관찰과 이상징후를 판단할 수 있는 기능들이 요구되고 있습니다. 자사 제품인 Zenius SMS에서는 이러한 변화에 따라 Docker에 대한 모니터링 기능을 기본적으로 제공하고 있습니다. Docker 컨테이너가 생성되면 자동으로 관리대상으로 등록되며, Up/Down 뿐만 아니라, CPU, Memory, Network 및 Process의 정보를 실시간으로 모니터링하고 발생되는 로그들을 통합관리 할 수 있도록 합니다. <사진 설명: Zenius-SMS에서 제공하고 있는 Docker 컨테이너 모니터링 기능> 또, 복원력과 탄력성을 위해 쿠버네티스와 같은 오케스트레이션 도구를 활용해 컨테이너를 스핀업하고, 예상되는 성능에 맞게 효율적으로 리소스를 맵핑하고 있으며, 이러한 기술에 대응하기 위해 EMS는 쿠버네티스(Kubernetes), 도커스웜(Docker Swarm) 등의 오케스트레이터들의 동작여부를 직관적으로 관찰하는 제품들이 지속적으로 출시되고 있는 상황입니다. 이와 더불어 컨테이너, 오케스트레이터의 동적 연결관계를 실시간으로 모니터링하고, 파드(POD), 클러스터, 호스트 및 애플리케이션의 관계를 표현하는 역할의 중요성이 점차 커져가고 있습니다. 통합 모니터링(Monitoring) EMS 모니터링의 또 다른 변화로는 통합(Integration)의 역할이 더더욱 강해지고 있다는 것입니다. IT 서비스가 복잡해지고 다양해짐에 따라 IT 인프라의 관리 범위도 점차 증가하면서, 다양한 IT 인프라들을 융합하고 관리하기 위한 노력들이 관찰되고 있습니다. 데이터독(Datadog), 스플렁크(SPLUNK)와 같은 장비 관점의 모니터링 벤더들은 APM과 같은 애플리케이션 모니터링 시장으로, 앱다이나믹스(AppDynamics), 다이나트레이스(Dynatrace), 뉴렐릭(NewRelic)과 같은 애플리케이션 모니터링 시장의 강자들은 인프라 장비 관점의 모니터링 시장으로의 융합이 확인되고 있습니다. 자사 제품인 Zenius 역시 서버, 네트워크 중심의 관리에서 애플리케이션, 데이터베이스 등의 시장으로 관리 범위를 확장해 나가고 있는 추세입니다. IT 서비스의 영속성을 유지하기 위해서는 IT 서비스를 구성하는 다양한 요소들을 실시간으로 모니터링하고 연관관계를 추적해 문제 원인을 찾아내는 것이 중요하기 때문에 다양한 IT 요소들을 통합적으로 모니터링하는 것 뿐만 아니라, 상호 연관관계를 표현하고 추적할 수 있는 기능들이 지속적으로 요구되고 있습니다. 모니터링의 트렌드는 서버, 네트워크 등의 독립적인 개체에 대한 모니터링 아닌 IT 서비스를 중심으로 기반 요소들을 모두 통합적으로 모니터링하고, 각 상호간의 의존성과 영향도를 파악해 RCA(Root Cause Analysis) 분석을 가능하게 하고 이를 통해 IT 서비스의 연속성을 보장할 수 있는 통찰력을 확보하게끔 하는 방향으로 흘러가고 있습니다. Zenius는 서버, 네트워크, 애플리케이션, 데이터베이스 및 각종 로그들의 정보를 시각적으로 통합 모니터링할 수 있는 오버뷰(Overview) 도구와 IT 서비스 레벨에서 인프라들의 연관관계를 정의하고 다양한 조건(Rule)에 따라 서비스 이상유무와 원인분석이 가능한 서비스 맵(Service Map) 도구를 기본적으로 제공하고 있습니다. <사진 설명: Zenius 오버뷰 화면> <사진 설명: Zenius 서비스맵 화면> 앞서 언급했듯이, 클라우드 환경으로 전환함에 따라 통합적 관리 요구는 더욱 높아지고 있습니다. IT 인프라에 대한 통합 뿐만 아니라, AD(Active Directory), SAP 및 AWS, Azure, GCP 등의 다양한 서비스의 주요 지표까지 연계하고 하나의 시스템으로 통합 모니터링하기 위한 노력들이 관찰되고 있습니다. 데이터독(Datadog)의 경우, 500개 이상의 시스템, 애플리케이션 및 서비스들의 지표들을 손쉽게 통합 관리할 수 있다고 돼있습니다. <사진 설명: 데이터독 홈페이지 캡처> 이처럼 IT 서비스의 복잡성과 다양화에 따라 관리해야 될 서비스와 지표들은 점점 늘어나고 있으며, 기업의 현황에 맞게 컴포넌트 기반으로 손쉽게 지표들을 통합할 수 있는 기능과 도구들이 요구되고 있습니다. AI 기반의 예측&자동화 모니터링의 세번째 변화로는 ’AI 기반의 예측과 자동화’입니다. IT 인프라 및 서비스의 주요 지표를 모니터링하는 것도 중요하지만, 축적된 데이터를 기반으로 미래의 상황을 예측 및 이상탐지해 사전에 대비할 수 있는 체계를 갖추는 일은 모니터링 시장에서 중요한 이슈로 자리잡고 있습니다. 현재의 AIOps(AI for IT Operations)를 표방하는 모니터링 기술들은 서버, 네트워크, 애플리케이션, 데이터베이스 등의 주요 지표들을 실시간으로 수집하고, 저장된 데이터를 기반으로 AI 알고리즘 또는 통계기법을 통해 미래데이터를 예측하며 장애 발생가능성을 제공하고 있습니다. 이와 같은 기술을 통해 미래 성능 값을 예측해 IT 인프라의 증설 필요성 등을 판단하고, 장애 예측으로 크리티컬한 문제가 발생되기 전에 미리 조치를 취할 수 있도록 해 효율적인 의사결정을 할 수 있도록 합니다. Zenius도 4차 산업혁명 및 디지털 뉴딜시대가 도래함에 따라 미래예측 기능을 최신 버전에 탑재했으며, 이를 통해 IT운영자가 미래 상황에 유연하고 선제적으로 대응할 수 있도록 합니다. Zenius에서는 서버, 네트워크, 애플리케이션 등 다양한 IT 인프라의 미래 성능 값, 패턴 범위, 이상 범위 등을 예측해 IT 운영자에게 제시합니다. <사진 설명: 인공지능(AI) 기반 미래데이터 예측 화면> 다만, 인공지능 기술을 통해 장애 발생 가능성을 탐지하는 기능 외에, 어디에 문제가 발생됐는지 알려주는 기능은 모니터링 시장에 과제로 남아있고, 이를 제공하기 위한 여러 업체들의 노력이 보이고 있습니다. 이제는 EMS에서 보편적인 것이 됐지만, 모바일 기기를 통해 시∙공간적 제약 없는 모니터링이 이뤄지고 있습니다. 다양한 기종의 스마트폰, 태블릿PC 등을 이용해 운영콘솔(Console) 뿐만 아니라, 회의 등 시간을 잠시 비우더라도 IT 인프라에 대한 연속적인 모니터링이 모바일기기를 통해 가능해졌습니다. <사진 설명: 다양한 기기를 통한 모니터링>
2022.09.05
Monitoring vs Observability, 모니터링과 옵저버빌리티 이해하기
Monitoring vs Observability, 모니터링과 옵저버빌리티 이해하기
옵저버빌리티는 "무슨 일이 일어났는가?", "왜 그런 일이 일어났는가?"와 같은 질문에 답하는 것을 목표로 합니다. 옵저버빌리티는 IT시스템 전체적인 관점에서 문제를 신속하게 식별하고 근본 원인을 분석할 수 있습니다. 최근 IT 인프라의 종류가 다양해지고, 수가 기하급수적으로 많아지고, 복잡도가 급격히 증가함에 따라 IT 인프라의 가용성을 보장하기 위해서 전통적으로 행해지던 모니터링의 범주를 넘어서는 옵저버빌리티라는 개념이 등장했습니다. 모니터링과 옵저버빌리티라는 두 용어들은 때로는 비슷한 개념으로 서로 바꿔서 사용되기도 하지만, 시스템 관리에 대한 다른 접근 방식을 나타냅니다. 이번 블로그에서는 모니터링과 옵저빌리티의 차이점을 알아보겠습니다. Monitoring이란? 모니터링은 IT 시스템에서 CPU 사용량, 메모리 사용량, 네트워크 트래픽과 같은 데이터를 수집하고 분석해 성능과 동작을 파악하는 것입니다. 모니터링의 목표는 시스템에 문제가 있는 것으로 추정되는 이상한 동작이나 조건을 감지하고 경고하는 것입니다. 모니터링은 종종 문제를 나타낼 수 있는 특정 메트릭이나 이벤트에 대한 알람 설정을 포함합니다. 이 접근 방식은 일반적으로 예측 가능한 개별 시스템에 사용합니다. 전통적인 모니터링 방법은 일정한 간격으로 수집되는 사전 정의된 메트릭이나 로그에 의존합니다. 예를 들어, 서버의 CPU 사용량을 1분마다 확인하고 사용량이 특정 임계값을 초과하면 알람을 보낼 수 있습니다. 이러한 방식은 특정 유형의 문제를 감지하는 데 효과적이지만, IT 시스템 동작을 전체적으로 파악하거나 근본 원인 분석에 대한 심층적인 인사이트는 제한적일 수 있습니다. Observability란? 옵저버빌리티는 IT 시스템 관리에 대한 새로운 접근 방식으로, 시스템의 내부 동작을 이해하는 것에 중점을 둡니다. 옵저버빌리티의 목표는 시스템의 동작을 깊이 이해하고 발생 가능한 모든 문제의 근본 원인을 파악하는 것입니다. 옵저버빌리티는 메트릭, 추적, 로그 등을 실시간으로 수집하고 분석하는 것을 포함합니다. 참고로 메트릭은 CPU 사용량, 메모리 사용량, 네트워크 트래픽과 같은 시스템 성능과 관련된 정량적 정보를, 추적은 요청의 호출 순서 및 응답 시간과 같은 시스템 동작에 대한 정보를, 로그는 사용자 작업 및 오류를 포함해 시스템 활동을 제공합니다. 옵저버빌리티가 필요한 이유 옵저버빌리티는 복잡하고 동적인 시스템에서는 문제를 빠르게 찾고 해결하기 위해 시스템의 동작과 성능을 측정하고 분석할 필요가 있습니다. 옵저버빌리티를 통해 다음과 같은 이점을 얻을 수 있습니다. 옵저버빌리티가 필요한 이유 1. 문제 해결 속도 향상: 옵저버빌리티를 사용하면 복잡한 시스템에서 발생하는 문제를 더욱 빠르게 파악할 수 있습니다. 이를 통해 시스템 장애나 성능 저하와 같은 문제를 빠르게 해결할 수 있습니다. 2. 전체 시스템 이해도 증가: 옵저버빌리티를 사용하면 전체 시스템의 내부 동작을 쉽게 이해할 수 있습니다. 이는 문제를 예방하거나 빠르게 대처할 수 있도록 도와줍니다. 3. 대규모 시스템 관리 가능: 대규모 분산 시스템에서는 옵저버빌리티가 필수적입니다. 이를 통해 수많은 서버, 네트워크, 애플리케이션 등에서 발생하는 다양한 데이터를 수집하고 분석할 수 있습니다. 4. 문제 예방 및 최적화: 옵저버빌리티를 사용하면 시스템의 성능을 지속적으로 모니터링하고 문제를 예방할 수 있습니다. 또한 시스템의 최적화를 위해 데이터를 분석하고 개선할 수 있습니다. 따라서, 옵저버빌리티는 복잡한, 여러 개의 세분화된 시스템으로 구성된 전체 시스템에서 필수적인 도구로, 시스템의 성능 개선과 장애 대응 등 다양한 측면에서 가치를 제공합니다. Monitoring vs Observability 모니터링과 달리, 옵저버빌리티는 사전에 정의된 메트릭과 알람에 의존하는 대신, 시스템 동작의 더욱 전체적인 관점을 제공합니다. 옵저버빌리티는 여러 소스에서 수집한 데이터를 같이 분석함으로써 쉽게 찾을 수 없는 어떤 패턴과 상관관계를 발견하는 데 도움을 줄 수 있습니다. 이 접근 방식은 예측할 수 없는 동작을 가진 복잡한 시스템에서 특히 유용합니다. 모니터링과 옵저버빌리티의 또 다른 중요한 차이점은 사람의 개입 수준입니다. 모니터링은 특정 이벤트 또는 조건을 감지하고 해당 이벤트 또는 조건이 발생할 때 경고를 트리거하도록 설계되므로 모니터링을 설정하고 구성하는데 사람의 개입이 필요할 수 있지만 일단 도구가 셋업되면 사람의 개입 없이 자동으로 작동하는 편입니다. 반면에, 옵저버빌리티는 데이터를 해석하고 결정을 내리고 조치를 취하는데 IT 운영자의 전문 지식을 사용해 프로세스에 관여합니다. 이러한 접근 방식은 시간이 더 많이 소요될 수 있지만, 문제의 근본 원인에 대한 더 많은 인사이트를 제공할 수도 있습니다. 올바른 어프로치 선택하기 모니터링과 옵저버빌리티는 각각 장단점이 있으며, 시스템의 특정 요구사항에 따라 어떤 접근 방식을 선택할지 달라져야 합니다. 비교적 상황 파악이 어렵지 않은 간단한 시스템의 경우, 전통적인 모니터링 도구로 충분할 수 있습니다. 그러나 복잡하고 시스템이 분산된 경우, 시스템 동작을 완전히 이해하기 위해 옵저버빌리티가 필요할 수 있습니다. 결국, 효과적인 시스템 관리의 핵심은 문제를 빠르게 감지하고 해결하기 위한 적절한 도구와 프로세스를 갖추는 것입니다. 모니터링 또는 옵저버빌리티를 선택하든, 시스템과 조직의 요구에 부합하는지 정기적으로 검토하고 개선하는 것이 중요합니다. 적절한 도구와 프로세스에 투자함으로써, 시스템의 신뢰성과 성능을 개선하고 비용이 많이 드는 다운타임과 서비스 중단을 피할 수 있습니다. Zenius EMS 브레인즈컴퍼니는 20년 이상 축적된 노하우를 바탕으로 레거시 환경은 물론 최근 더욱 복잡해지고 있는 클라우드 네이티브 시스템까지 모니터링과 옵저버빌리티 모두를 제공함으로써 고객이 원하는 방식으로 사용이 가능합니다. Zenius EMS는 SMS, NMS, APM 등 각 인프라별 모니터링을 통합해 시스템을 더욱 안정성 있게 관리하고 자동화된 장애대응 환경을 제공하며 객관적인 데이터 기반으로 리포팅이 가능한 지능형 IT 성능 모니터링입니다. 또한 쿠버네티스, 오픈 스택을 지원하는 클라우드 환경을 모니터링합니다. 국내 공공분야 관제 SW 1위, 제니우스의 상관관계 분석, 인공지능을 활용한 성능예측 등 옵저버빌리티 기술을 통해 다양한 시스템 레이어에서 성능, 장애, 구성에 대한 인사이트를 얻으시기 바랍니다.
2023.03.28
서버 모니터링 트렌드 살펴보기
서버 모니터링 트렌드 살펴보기
기업이나 조직의 IT 인프라 모니터링은 서버 모니터링에서 출발합니다. 통상적으로 서버 모니터링부터 네트워크, 데이터베이스, 웹애플리케이션, 전산설비 등으로 모니터링의 범위를 확장해 나가는 것이 일반적입니다. 서버는 초창기 메인 프레임부터 유닉스 서버, 리눅스 서버를 거쳐 최근의 가상화 서버에 이르기까지 물리적 및 논리적으로 그 성격이 변화해 왔습니다. 그에 따라 서버 모니터링의 관점도 많이 변모해 왔습니다. 기껏해야 1~2대 규모로 운영하던 메인 프레임의 시대와 수천, 수만대의 서버팜을 관리해야 하는 시대의 모니터링 개념은 달라야 합니다. 또, 가상화 시대를 맞아 물리적 서버 개념보다는 논리적 서버 개념이 중요해지고, 서버 1~2대의 장애 상황보다는 서버팜이 이루고 있는 서비스의 영속성이 중요해졌습니다. 이처럼 서버라는 인프라가 기술 발전에 따라 변모하고 있고, 그에 대응해 모니터링 콘셉트나 방법도 변화하고 있습니다. 이번 블로그에서는 서버 관련 새로운 인프라 개념 및 기술들이 대두되면서 변화하는 서버 모니터링의 새로운 트렌드에 관해 논의해 보고자 합니다. 1. 클라우드 네이티브 모니터링 더 많은 기업이나 조직이 전통적인 레거시 시스템에서 클라우드로 이동함에 따라 클라우드 모니터링의 필요성이 급격히 증가했습니다. 클라우드 네이티브 모니터링 도구는 Amazon Web Services(AWS), Microsoft Azure, Google Cloud Platform(GCP)과 같은 클라우드 환경에서 애플리케이션과 클라우드 인프라를 모니터링하도록 설계됐습니다. 또, 클라우드 인프라의 성능, 가용성 및 보안에 대한 실시간 인사이트를 제공해, IT운영부서가 문제를 신속하게 발견하고 해결할 수 있도록 지원합니다. 일반적인 클라우드 모니터링은 메트릭과 로그를 사용해 클라우드 인프라 및 애플리케이션 성능을 하나의 통합된 화면에 제공합니다. 또한 통합 IT 환경 측면에서는 컨테이너 오케스트레이션 플랫폼 및 서버리스 컴퓨팅과 같은 다른 클라우드 환경과 통합해 모니터링할 수도 있습니다. 클라우드 기반 모니터링의 최신 추세는 하이브리드 모니터링입니다. 조직은 하이브리드 모니터링을 통해 클라우드와 온프레미스에서 각각 실행 중인 서버 및 애플리케이션 모두를 단일 플랫폼에서 모니터링할 수 있습니다. 2. 인공지능과 머신러닝 서버 모니터링의 또 다른 트렌드는 인공 지능(AI)과 머신 러닝(ML)을 사용해 모니터링 과정을 자동화하는 것입니다. AI 및 ML 알고리즘은 모니터링 과정에서 생성된 방대한 양의 데이터를 분석하고 패턴을 식별해 이상 징후를 감지할 수 있습니다. 이는 실시간으로 수행될 수 있으므로 운영관리자는 발생하는 모든 문제에 신속하게 대응할 수 있습니다. ML 알고리즘은 과거 데이터를 분석해 트래픽이 가장 많은 시기나 잠재적 장애와 같은 미래 추세를 예측할 수 있습니다. 이를 위해 서버의 성능과 관련된 대규모 데이터 세트에서 ML 알고리즘을 교육해야 합니다. 이 데이터는 서버 로그, 시스템 메트릭, 애플리케이션 로그 및 기타 관련 정보가 해당됩니다. 다음으로 알고리즘을 학습해 다양한 메트릭 간의 패턴과 상관 관계를 식별하고 이상 징후와 잠재적 문제를 감지합니다. 머신 러닝 모델이 훈련되면 서버를 실시간으로 모니터링하도록 배포할 수 있으며, 모델은 지속적으로 서버 메트릭을 분석하고 이를 학습한 패턴과 비교합니다. 편차나 이상을 감지하면 문제를 해결하기 위해 경고 또는 자동화된 작업을 트리거할 수 있습니다. 예를 들어, 트래픽이 갑자기 증가하는 경우 리소스를 자동으로 Scaling 하거나 다운 타임을 방지하기 위해 다른 조치를 취할 수 있습니다. 전반적으로 인공 지능과 머신 러닝을 사용해 서버 모니터링을 자동화하면, 문제해결에 시간을 절약하고 인적 오류의 위험을 줄일 수 있습니다. 또, 심각한 문제로 번지기 전에 잠재적 문제를 식별해 서버 인프라의 전반적인 안정성과 가용성을 향상할 수 있습니다. 3. 컨테이너 모니터링 컨테이너가 애플리케이션 배포에 점점 더 많이 사용되면서, 컨테이너 모니터링은 서버 모니터링의 중요한 측면이 됐습니다. 컨테이너란 애플리케이션을 모든 인프라에서 실행하는데 필요한 모든 파일 및 라이브러리와 함께 번들로 제공하는 소프트웨어 배포 도구입니다. 컨테이너를 사용하면 모든 유형의 디바이스 및 운영 체제에서 실행되는 단일 소프트웨어 패키지를 만들 수 있습니다. 뿐만 아니라, 단일 시스템에서 한 컨테이너는 다른 컨테이너의 작업을 방해하지 않으므로 확장성이 뛰어나고, 결함이 있는 서비스가 다른 서비스에 영향을 주지 않아 애플리케이션의 복원력과 가용성이 향상되는 장점이 있습니다. 컨테이너 모니터링은 CPU 및 메모리 사용량과 같은 컨테이너 리소스 사용률에 대한 실시간 메트릭을 제공할 수 있습니다. 또, 애플리케이션이 의도한 대로 실행되고 있는지 확인하기 위해 Kubernetes(쿠버네티스)와 같은 컨테이너 오케스트레이션 플랫폼을 모니터링하고, 컨테이너 및 기본 인프라에 대한 실시간 가시성을 제공합니다. 4. 서버리스 모니터링 서버리스 컴퓨팅은 사용량에 따라 백엔드 서비스를 제공하는 방법으로, 개발자가 서버를 관리할 필요없이 애플리케이션을 빌드하고 실행하는 것을 가능하게 합니다. 서버리스 컴퓨팅은 벤더 종속성(Vendor lock-in), 콜드 스타드와 DB백업이나 영상 인코딩 등 단시간에 많은 컴퓨팅 용량이 필요한 경우, 효율적이지 않음에도 불구하고 최근 몇 년 동안 주목을 받아오며 서버리스 모니터링이 서버 모니터링의 새로운 트렌드가 됐습니다. 서버리스 모니터링은 CPU, 메모리, 디스크 사용량 등 리소스 사용률, 애플리케이션 성능, 호출 시간 및 오류율과 같은 기능 성능에 대한 실시간 인사이트를 제공합니다. 서버리스 모니터링은 데이터베이스 쿼리 성능과 같은 서버리스 함수의 종속성에 대한 인사이트도 제공합니다. 5. 마이크로서비스 모니터링 마이크로서비스는 하나의 큰 애플리케이션을 여러 개의 작은 기능으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처로, 각 서비스를 다른 서비스와 독립적으로 개발, 배포 및 확장할 수 있는 장점이 있습니다. 하지만 마이크로서비스는 일반적으로 분산된 환경에 배포되므로 성능을 추적하고 문제를 찾아내기가 어렵고, 독립적으로 설계됐으므로 호환성에 어떤 문제가 있는지 감지할 필요가 있어 마이크로서비스 모니터링이 필요합니다. 마이크로서비스 모니터링은 개별 마이크로서비스 및 전체 애플리케이션의 성능과 상태를 추적하는 프로세스로 로그, 메트릭 및 트레이스와 같은 다양한 소스에서 데이터를 수집하고 분석해 문제를 식별하고 성능을 최적화하는 작업입니다. 마이크로서비스 모니터링은 각 마이크로서비스 별 가용성, 응답 시간, 가동 시간, 지연 시간, 오류율을 포함합니다. CPU, 메모리, 디스크 사용량과 같은 리소스 사용률을 추적해 잠재적인 성능 병목 현상이나 리소스 제약을 식별할 수 있고, 마이크로서비스 간의 데이터 흐름을 추적하고 서비스 간의 종속성 추적을 모니터링합니다. 또, 마이크로서비스 모니터링은 애플리케이션 전체의 전반적인 상태와 성능뿐만 아니라 타사 서비스 및 API의 성능과 상태도 모니터링할 수 있습니다. ----------------------------------- 브레인즈컴퍼니는 꾸준히 연구개발에 매진해 상기와 같은 새로운 트렌드를 반영한 Zenius-EMS를 개발, 출시했습니다. Zenius-EMS는 고객들이 레거시 시스템에서부터 클라우드 네이티브 시스템에 이르기까지 다양한 관점의 서버모니터링을 할 수 있도록 지원합니다. *이미지 출처: Unsplash, flaction
2023.03.29
2023년 하반기 ‘고객사 및 파트너사’ 상생 세미나
2023년 하반기 ‘고객사 및 파트너사’ 상생 세미나
지난 10월 25일, 브레인즈컴퍼니 본사에서 「2023 하반기 ‘고객사 및 파트너사’ 상생 세미나」를 진행했어요! 브레인즈컴퍼니는 매 반기마다 고객사 및 파트너사 분들을 대상으로 상생 세미나를 진행하고 있는데요. 저희 브레인즈컴퍼니의 제니우스 EMS를 더욱 친숙하게 사용하는 것을 돕기 위해 기획되었어요. 이번 2023 하반기 상생 세미나에서는 우진·서울바이오허브·에스이랩·마이티시스템 등 산업용 장비를 만드는 제조기업부터, 바이오산업을 투자해 주는 공공기관까지! 다양한 산업 군의 고객사분들이 적극 관심을 보여주셨는데요. 교육 내용은 제니우스 EMS 패키지 설치, 모니터링 View를 구성하는 단계, 실무적인 모니터링에 초점을 맞춰 실시했답니다. 그럼 바로 2023 하반기 상생 세미나 후기를 들려드릴게요! Zenius SMS와 Zenius NMSㅣ김선효(TC팀) ‘제니우스 SMS(서버 모니터링 솔루션)’와 ‘제니우스 NMS(네트워크 모니터링 솔루션)’부터 교육을 시작했는데요. 우선 전반적인 성능 정보 수집 방식과 설치 방식을 배웠어요. 그다음, 화면을 통해 이벤트 분석하는 방법까지 세세한 교육이 이루어졌답니다. Zenius Overviewㅣ김기현(TC팀) ‘제니우스 EMS 오버뷰’는, 고객의 니즈와 운영 환경에 최적화된 서비스 관제 환경을 구현해 드리고 있어요. 웹과 CS방식의 토폴로지 맵을 통해 관제하는 IT 인프라들 간의 상호 관계도 표현 또한 가능하죠. 이 밖에도 IT 인프라와 네트워크 연결 관계에 대한 컴포넌트 지원, 사용자 니즈에 최적화된 연결 관계도 기반의 View를 제공해 드린답니다. 마무리하며 이번 2023 ‘고객사 및 파트너사’ 상생 세미나를 통해, 핵심적인 IT 인프라인 서버와 네트워크 모니터링 방안을 소개해 드렸는데요. 고객사 및 파트너 사분들께 교육을 진행하며, 브레인즈컴퍼니 또한 ‘IT 인프라 모니터링’ 인사이트를 넓힐 수 있었어요. 오는 11월 29일부터 12월 1일까지 「소프트웨이브 2023」가 진행되는데요. 클라우드 네이티브, 쿠버네티스, MSA 등! 급변하고 있는 IT 인프라 환경 변화를 브레인즈컴퍼니는 어떻게 준비하고 있는지 함께 이야기할 수 있는 자리를 마련했어요. 여러분들의 많은 관심과 참여 부탁드릴게요. 다시 한번 참여해 주신 모든 분께 감사 인사를 드려요! 앞으로도 IT 모니터링의 최전선에서 함께 고민하고, 최적의 관제 환경을 제공하는 브레인즈컴퍼니가 될게요🙇♀️
2023.11.10
다음 슬라이드 보기