반응형
마이크로서비스 아키텍처에서 운영이 중요한 이유?
- 마이크로서비스 아키텍처에서의 시스템들은 단일 배포 모놀리스 구조가 아님.
- 각각 모듈은 별도 설치 및 배포, 운영 및 모니터링 해야하는 이슈가 있음.
- 마이크로서비스 아키텍처의 이슈
- 프로젝트가 오랜 기간 지속될수록 코드는 더욱 많아질 수 있고, 크기가 증가 될 수 있음.
- 위의 이슈 발생의 소지를 차단하려면?
- 마이크로서비스의 크기가 일정하게 유지되도록 해야하고 마이크로서비스 개수가 증가할 수 있도록 신규 마이크로서비스를 구축해야 함.
- 마이크로서비스가 개수가 증가하면 증가할수록, 운영의 어려움이 시간이 지날수록 커질 수 있음.
- 이를 해결하는 방법은?
- 표준화와 자동화
- 마이크로서비스 아키텍처의 이슈
마이크로서비스의 분산 시스템
- 마이크로서비스는 로컬 메소드 호출 대신 네트워크를 통해 통신함.
- 따라서 발생할 수 있는 네트워크와 서버 하드웨어 장애 에러 건수가 증가할 수 밖에 없음.
- 즉, 모든 컴포넌트의 신뢰성을 담당하는 운영에 대한 요구가 증가됨.
- 마이크로서비스가 호출되는 과정에서 특정 마이크로서비스의 장애가 발생할 때, 장애의 근본원인을 식별하기 위한 솔루션 및 방법이 필요함.
- 집킨(Zipkin) 사용
- 해당 장애의 근본원인을 추적하기 위해서 주로 현재는 집킨(Zipkin)이라는 기술적 솔루션을 사용함.
- ELK 스택 사용
- 로그 파일 분석을 위해서 모든 마이크로서비스의 장비에 로그인 할 수 없기때문에, 모든 마이크로서비스의 로그파일의 중앙 집중을 위해 ELK 스택 솔루션을 사용함.
- 프로메테우스 사용
- 모든 마이크로서비스에 대한 메트릭을 수집하기위해서 프로메테우스라는 기술적 솔루션을 사용함.
- 집킨(Zipkin) 사용
마이크로서비스의 동적확장
- 동적확장은 마이크로서비스의 장점 중 하나임.
- 현재 부하를 처리할 수 있도록 각 마이크로서비스의 인스턴스를 더 많이 또는 적게 실행할 수 있음.
- 그러므로, 새로운 인스턴스를 시작할 수 있는 기술 및 솔루션을 사용해야함.
- 쿠버네티스 사용
- 쿠버네티스는 동적 확장을 수행할 수 있고, 마이크로서비스의 운영을 위해 전체 클러스터의 자원을 사용함.
- 쿠버네티스 사용
- 그러므로, 새로운 인스턴스를 시작할 수 있는 기술 및 솔루션을 사용해야함.
- but, 동적확장기술을 사용하더라도, 클러스터에서 사용할 수 있는 서버개수는 제한적임. 인프라가 더 유연해지더라도 확장성을 보장하려면 용량 계획이 반드시 필요함.
마이크로서비스 운영을 위한 접근 방법
-
- 배포
- 도커 or 쿠버네티스와 같은 마이크로서비스 플랫폼 또는 PaaS(클라우드 파운드리)와 같은 기술로 해결 가능함.
- 모니터링
- 프로메터우스와 같은 기술적 솔루션으로 해결 가능함.
- 로그파일분석
- ELK 스택과 같은 기술적 솔루션으로 해결 가능함.
- 추적
- 집킨(Zipkin)과 같은 기술적 솔루션으로 해결 가능함.
- 배포
마이크로서비스의 독립배포의 필요성
- 마이크로서비스의 운영 측면의 장점
- 마이크로서비스는 배포 모놀리스보다 훨씬 작기에 배포하기가 더 쉬움.
- 마이크로서비스는 독립적으로 배포할 수 있어야함.
- 왜냐하면, 마이크로서비스가 배포 중 중단되더라도 다른 마이크로서비스는 계속 실행중이기 때문에 복원력으로 인해 심각한 결과가 일어나지 않아야함.
- 마이크로서비스는 이전 인터페이스와 신규 인터페이스를 병렬로 제공해야 함.
- 클라이언트가 여전히 이전 인터페이스를 사용할 수 있기에 특정 시점에 새로운 인터페이스를 사용해 배포할 수 있어야함.
- 즉, 독립배포를 위해 항상 노력해야함.
결론
- 운영을 잘하지 못하면 많은 마이크로서비스를 상용환경에 투입할 수 없음.
- 마이크로서비스 솔루션의 안정성과 성능은 운영에 크게 의존함.
- 즉, 운영은 마이크로서비스에서 매우 중요하다.
- 금일의 한마디 명언
- 말은 뜻을 전달하면 그만이다. -공자- 『논어』
300x250
'좋아하는 것_매직IT > 10.microservice' 카테고리의 다른 글
21.마이크로서비스, 일래스틱 스택을 활용한 로그 분석에 대해서 알아보자 (0) | 2021.01.13 |
---|---|
20.마이크로서비스, 프로메테우스를 이용한 모니터링에 대해서 알아보자. (0) | 2021.01.13 |
18.마이크로서비스, PaaS 그리고 클라우드 파운드리를 알아보자 (0) | 2021.01.13 |
17.마이크로서비스, 쿠버네티스에 대해서 알아보자. (0) | 2021.01.13 |
16.마이크로서비스, 마이크로서비스 플랫폼을 알아보자. (0) | 2021.01.13 |