도커와 쿠버네티스(1)
◆ 시작하기 전에 알아야 할 개념
도커: 여러 개의 컨테이너를 묶는 단위로 사용하는 것(LXC(=리눅스 컨테이너) 기반이다)
- 패키징, 배포, 단순화 등도 한다. 도커엔진: 이미지, 네트워크, 디스크 등의 관리 역할
1:1 컨테이너와 프로세스, 이미지 컨테이너(여러 이미지)를 관리
- 단점: 양이 많아지면 안좋다.
컨테이너: 가상머신을 사용해 각 마이크로 서비스를 격리(isolate)하는 기술, 독립된 공간에서 실행한 가상 환경
컨테이너 오케스트라: vCenter Server
쿠버네티스: 구글에서 사용하는 컨테이너 기술(IT를 운영 및 관리 한다)
하이퍼바이저: 하드웨어 추상화
셸: 커널(=프로세스)에 접근하기 위해 사용하는 것 ex) unix
데몬: 명령어 세트, 관리하는 도구, process
◆ 도커 기본 개념
모놀리식: 서비스가 하나의 어플리케이션으로 돌아감, 서버에서 실행, 거대한 하나의 구조
단점: 로드밸런싱 - 불필요한 것까지 해서 메모리를 낭비함
종속적인 라이브러리 충돌 - 라이브러리는 서로 다른 기능을 제공하기 때문에 각 기능에 대한 종속성이 필요하다.
(지금 이상태로는 매번 업데이트를 할 때마다 관리가 어렵다.*서로가 충돌되었기 때문)
조금만 수정해도 다 배포해야 한다.
마이크로서비스: 어플리케이션의 기능을 분리하여 관리 (빠르고 배포가 쉽고 효율적(확장 기능(scale out)까지 됨))
* scale out: 더 많은 자원에 필요한 서비스를 확장 , 복잡도 감소
단점: 분산 시스템 - 트랜잭션 보장, 테스트, 배포 관리가 복잡하다.
그래서 컨테이너 개념이 나온거다, 새로운 개념이 나온게 쿠버네티스!
*마이크로서비스 활용 사례

◆ 쿠버네티스 :
다수의 컨테이너를 자동으로 운영하기 위한 오케스트레이션 도구
(많은 시스템을 통합, 컨테이너를 다루는 API 제공)
도커들을 관리하는 기술이다.
◆ 모델 종류 / 개발자와 시스템 개발자
DevOps: 개발과 IT 운영하는 사람
NoOps : 개발자는 운영 말고 개발하고 배포만 하기(인프라는 굳이 안알아도 됨)