하나의 결합된 코드로 구성하기 때문에 초기 단계에서 설계하기 용이, 개발 단순, 코드관리 간편
(단점) 서비스 운영 과정에서 수정 많은 경우 -> 수정이 연관 서비스에 영향 미칠 가능성 커짐
한가지 서비스의 사용량이 늘었다고 다른 서비스가 포함된 애플리케이션까지 확장하는 것은 상당히 비효율적, 특정 서비스에서 에러 발생시 해당 서비스 외 전체 서비스 이용 못하는 상황 발생
==> 방안으로 마이크로서비스 아키텍처 등장
정해진 답은 X 주어진 상황에 적합한 기술이 있을 뿐
우리가 공부할 컨테이너 인프라 환경은 특히 마이크로서비스 아키텍처로 구현하기 적합하다.
컨테이너를 서비스 단위로 포장해 손쉽게 배포/ 확장 (1:1로 완벽하게 대응)
컨테이너 인프라 환경은 크게 컨테이너, 컨테이너 관리, 개발 환경 구성 및 배포 자동화, 모니터링으로 구성
도커 : 컨테이너 환경에서 독립적으로 애플리케이션 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 컨테이너 도구
운영체제 환경에 관계없이 독립적 환경에서 <일관된 결과> 보장
쿠버네티스 : 다수의 컨테이너 관리에 사용하고 컨테이너 자동 배포와 배포된 컨테이너에 대한 동작 보증, 부하에 따른 동적 확장 등의 기능을 제공
쿠버네티스는 컨테이너 인프라 기반, api gateway, 서비스 디스커버리, event bus, 인증 및 결제 등 다양한 서비스 효율적 관리 환경 제공 + 내외부 유연 연결
젠킨스 : CI/CD 지원
==지속적 통합과 지속적 배포
CI/CD : 개발한 프로그램의 빌드, 테스트, 패키지화, 배포 단계를 모두 자동화해 개발 단계 표준화함. -> 생산성 ↑
프로메테우스와 그라파나 : 모니터링을 위한 도구
프로메테우스 - 데이터 수집
그라파나 - 시각화
강의 특징
가상 환경 비해서 컨테이너 환경에서는 좀 더 많은 애플리케이션 동작시킬 수 있음
?쿠버네티스 배우기 전에 도커를 먼저 알아야하나
도커를 알면 배우는데 도움이 되지만 꼭 먼저 알아야하는건 아님
초창기는 그래야했지만 많은 부분이 애플리케이션으로 올라와있음
일단 시작하고 배우는데는 큰 무리없다.
현대의 가장 성공 오픈소스 프로젝트 : 리눅스
리눅스와 같은 형태 : 쿠버네티스