본문 바로가기
컨테이너 인프라 환경 구축을 위한 쿠버네티스 도커

2022.07.13

by 치우치지않는 2022. 7. 14.

P1~50

 

서비스로의 인프라환경(IaaS) 가 나타남에 따라 애자일 방법론이 대두되었고, 애자일 방법론이 나타남에 따라 컨테이나 인프라 환경이 대두됨. (사용자가 요구하는 인프라르 즉각 제공하는 주요 기능은 유지하면서 사용자마다 독립적인 환경에서 개발해도 모두 동일한 결과를 얻을 수 있고 개발된 소프트웨어의 성능을 보장하며 인프라의 가용 리소스를 최대한 확보할 수 있는 인프라 환경)

 

컨테이너 인프라 환경 = 컨테이너를 중심으로 구성된 인프라 환경. 컨테이너 = 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태 -> 가상화 상태에서 동작하는 프로세스보다 가볍고 빠르게 동작 

 

컨테이너 인프라 환경의 장점을 이해하기 위한 필요조건 = 서비스의 설계 부분 이해 

 

1. 모놀리식 아키텍처

    하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 통합돼 있는 구조를 말함. 소프트웨어가 하나의 결합된 코드로 구성되므로 초기 단계에서 설계하기 용이하고 개발이 좀 더 단순하고 코드 관리가 간편함. but 수정이 많을 경우 어떤 서비스의 수정이 연관된 다른 서비스에 영향을 미칠 가능성 커지고, 서비스가 성장해 기능이 추가될 수록 서비스간의 단순했던 관계가 매우 복잡해짐. 

2. 마이크로서비스 아키텍처 

   시스템 전체가 하나의 목적을 지향하는 바는 모놀리식과 동일하나 개별 기능을 하는 작은 서비스를 각각 개발해 연결함. 따라서 사용자의 요구 사항에 따라 가용성을 즉각적으로 확보해야 하는 IaaS 환경에 적합함. but 복잡도가 높고 각 서비스가 서로 유기적으로 통신하는 구조로 설계되므로 네트워크를 통한 호출 횟수가 증가해 성능에 영향을 줄 수도 있음. 

각 서비스는 관련된 기능과 데이터베이스를 독립적으로 가짐. 또한 각 서비스는 API 게이트웨이와 REST API를 이용한 통신 방식으로 사용자의 요청을 전달함. 이런 구조 덕에 필요한 기능이 특화된 데이터베이스를 선택해 개별 서비스에 할당할 수 있음. 각 서비스는 독립적으로 동작할 수 있는 완결된 구조이므로 바로 재사용이 가능 

 

컨테이너 인프라 환경은 마이크로서비스 아키텍처로 구현하기에 적합함. 컨테이너는 마이크로서비스 아키텍처의 서비스와 완벽하게 1:1 대응을 이룸.

 

컨테이너 인프라 환경은 크게 컨테이너, 컨테이너 관리, 개발 환경 구성 및 배포 자동화, 모니터링으로 구성됨. 

1. 도커 

  도커는 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 컨테이너 도구. 

2. 쿠버네티스

  쿠버네티스는 다수의 컨테이너를 관리하는 데 사용. 컨테이너 인프라를 기반으로 API 게이트웨이, 서비스 디스커버리, 이벤트 버스, 인증 및 결제 등의 다양한 서비스를 효율적으로 관리할 수 있는 환경을 제공하고 이를 내외부와 유연하게 연결. 

3. 젠킨스

  젠킨스는 지속적 통합(CI), 지속적 배포(CD) 를 지원함. CI,CD 는 개발한 프로그램의 빌드, 테스트, 패키지화, 배포 단계를 모두 자동화해 개발 단계를 표준화함. 아울러 개발된 코드의 빠른 적용과 효과적인 관리를 통해 개발 생산성을 높이는 데 초점이 맞추어져 있음. 

4. 프로메테우스와 그라파나

  프로메테우스와 그라파나는 모니터링을 위한 도구임. 프로메테우스는 상태 데이터를 수집하고 그라파나는 프로메테우스로 수집한 데이터를 관리자가 보기 좋게 시각화함. 

 

*프로비저닝 = 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요할 때 시스템을 사용할 수 있는 상태로 만들어 주는 것 

댓글