1장 새로운 인프라 환경이 온다

sua·2022년 9월 16일
0
post-thumbnail

온프레미스 환경 : 엔지니어가 개발 환경을 구축하면 사용자가 그에 해당하는 도구들을 모두 설치해야 하는 환경 (고전적인 인프라 환경임)

서비스로서의 인프라 환경(IaaS) : 이미 구성된 환경을 사용자가 필요에 따라서 선택 및 조합해서 사용할 수 있게 제공되는 환경

1.1 컨테이너 인프라 환경이란

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

1.1.1 모놀리식 아키텍처

모놀리식 아키텍처 : 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 하나로 통합돼 있는 구조
-> 코드 관리가 간편
-> but, 수정이 많을 경우 다른 서비스에 영향 미칠 가능성이 커짐


1.1.2 마이크로서비스 아키텍처

마이크로서비스 아키텍처(MSA) : 기능들이 독립된 서비스를 구성하고 있는 구조
-> 서비스 변경시에 다른 서비스에 영향을 미칠 가능성이 줄어듦
-> IaaS 환경에 적합!

  • 각 서비스는 API 게이트웨이와 REST API를 이용한 통시 방식으로 외부의 요청을 전달
  • 어떤 서비스가 등록돼 있는지 파악하기 위해 서비스 디스커버리 사용
  • 서비스의 내부 통신을 이벤트로 일원화하기 위해 이벤트 버스를 서비스로 구성

1.1.3 컨테이너 인프라 환경에 적합한 아키텍처

우리가 공부할 컨테이너 인프라 환경은 마이크로서비스 아키텍처로 구현하기에 적합
컨테이너는 마이크로서비스 아키텍처의 서비스와 1:1로 완벽하게 대응됨



1.2 컨테이너 인프라 환경을 지원하는 도구

컨테이너 인프라 환경의 구성 : 컨테이너, 컨테이너 관리, 개발환경 구성 및 배포 자동화, 모니터링

1.2.1 도커

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

도커로 애플리케이션을 실행하면 운영 체제 환경에 관계 없이 독립적인 환경에서 일관적인 결과를 보장


1.2.2 쿠버네티스

쿠버네티스 : 다수의 컨테이너를 관리하는 데 사용. 컨테이너의 자동 배포와 배포된 컨테이너에 대한 동작 보증, 부하에 따른 동적 확장 등의 기능을 제공


1.2.3 젠킨스

젠킨스 : 지속적 통합(CI)과 지속적 배포(CD)를 지원
-> 개발한 프로그램의 빌드, 테스트, 패키지화, 배포 단계를 모두 자동화해 개발 단계를 표준화함
-> 단일 기능을 빠르게 개발해 적용해야 하는 환경인 컨테이너 인프라 환경에서 매우 적합한 도구


1.2.4 프로메테우스와 그라파나

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



1.3 새로운 인프라 환경의 시작

이 책에서 구성할 컨테이너 인프라 환경


느낀점

이 책에서 학습할 컨테이너 인프라 환경에서는 컨테이너가 마이크로서비스 아키텍처의 서비스와 1:1로 대응되어 생산성이 향상되기 때문에 MSA를 채택한 것을 알게 되어서 무작정 MSA를 사용하는 것이 아니라, 이유 있는 선택인 것을 깨달았다.

데이터를 시각화하는 도구는 그라파나 외에도 키바나가 있는데, 키바나는 프로메테우스와 연결할 때 구성이 복잡하므로 간결하게 사용할 수 있는 그라파나를 책에서 다룬다는 것을 새로 알게 되었다.

profile
가보자고

0개의 댓글