Docker
- 컨테이너 기반의 오픈소스 가상화 플랫폼
- 컨테이너로 추상화하고 동일한 인터페이스를 제공, 프로그램 배포 및 관리를 단순화
배포의 변화
- 전통적인 시대 : 물리서버 실행
- 가상화된 시대 : 단일서버에 여러 VM을 실행, APP을 격리하여 관리
- 컨테이너 시대 : 격리속성을 완화, APP간에 OS를 공유한다. 가상화에 비해 가볍다고 여겨진다. 컨테이너 간 자체 파일시스템, CPU, 메모리, 프로세스 공간을 가짐
오케스트레이션 도구
오케스트레이션(orchestration) > 관현악의 편곡, 통합, 결지, 편성 조직화 등
설정 관리 조정을 의미. 즉 배포 테스크의 자동화. 복잡성의 오류를 줄인다.
대표 오케스트레이션 : 쿠버네티스(사실상표준), 메소스피어, 도커스웜 간단히 말해 APP 서비스의 자동화된 배포를 관리해준다.
컨테이너 오케스트레이션
여러개의 서버에 컨테이너를 배포, 운영하며 서비스간 연결을 쉽게 해준다. 서버를 군으로 묶어 자동으로 선택, APP을 배포하고, 부하가 생기면 컨테이너를 늘리고 , 장애가 생기면 정상동작중인 서버에 다시 띄워 장애를 방지한다.
- 컨테이너 자동배치 및 복제
- 컨테이너 그룹에 대한 로드밸런싱
- 컨테이너 장애복구, 클러스터 외부서비스 노출
- 컨테이너 추가/제거
- 컨테이너간 인터페이스를 통한 연결 및 네트워크 포트 제어
쿠버네티스 kubernates > k8s/kube
- 컨테이너를 쉽고 빠르게 배포/확장 관리를 자동화 해주는 구글에서 2014년 공개한 오픈소스 플랫폼
- 명칭은 키잡이, 파일럿을 뜻하는 그리스어 에서 유래했다고 함. 기원을 찾아보면 다들 의문인듯.
Ingress (입장)
- 다양한 웹어플리케이션을 하나의 로드밸런서로 서비스하기 위해 Ingress 기능을 제공
- 기존 apache/nginx 등 웹서버 역할을 대신하는 프록시 서버
Remote debug
JPDA (Java Platform Debugger Architecture)
원격 톰캣 디버그를 가능하게 해준다. docker 를 설치하여 이미지를 빌드, 실행하여도 로그를 보려면 해당 컨테이너에 접속해야 하는데, 이를 편리하게 디버그 하기 위한 방법으로 활용된다.