* Bitbucket

- Atlassian 이 제공하는 버전 관리를 위한 Repository 서비스


* Web Server Middleware

- NGIX, IIS (Internet Information Services)


* Docker Machine

- Host Machine/Cloud/가상 환경 등에 Docker 의 실행환경을 만들 수 있는 Command Line 툴


* Docker Machine 실행환경 명령

- 버전확인 : docker-machine --version

- 작성 : docker-machine create --driver [드라이버명] [작성한 docker 머신명]

- 목록 표시 : docker-machine ls [옵션]

- 상태 확인 : docker-machine status [머신명]

- URL 확인 : docker-machine url [머신명]

- SSH 연결 : docker-machine ssh [머신명]

- 시작 : docker-machine start [머신명]

- 정지 : docker-machine stop [머신명]

- 재시작 : docker-machine restart [머신명]

- 실행환경에서 파일 다운 : docker-machine scp [머신명] : [파일경로]

- 삭제 : docker-machine rm [옵션] [머신명]

- 강제 종료 : docker-machine kill [머신명]

- IP 정보확인 : docker-machine ip [머신명]

- 상세 정보 확인 : docker-machine inspect [옵션] [머신명]


* Container Orchestration Tool

- Container Scheduling

- Container가 정상적으로 동작하고 있는지 감시


* Kubernetes

- Google 엔지니어를 중심으로 하는 커뮤니티에서 개발


* Docker Engine (Swarm 모드)

- Swarm 모드에서 Clustering 기능 제공


* Apache Mesos + Marathon

- Open Source Cluster Orchestration 툴

- 별도의 Container 관리용 Framework 필요 => Marathon


< Public Cloud 가 제공하는 Container Managed Service >


*  Amazon EC2 Container Service

- AWS 의 VM 기능을 제공하는 EC2를 사용한 Docker Container 관리 서비스

- ECS 에서는 '태스크 정의' 라고 하는 JSON 탬플릿을 사용하여 환경 정의

: Docker 의 Repository 와 이미지

: Memory, CPU 등과 같은 HW 요구사항

: Data Volume 의 Storeage, Container 간 연결 등을 정의

- ECS 에서는 장애 발생시에도 자동 복구됨

- ECS 에서는 EC2의 부하분산 기능인 ELB (Elastic Load Balancing) 을 사용

- Amazon Cloud Watch 와 연계하여 CPU 나 메모리 사용의 평균값과 합계량을 감시

- Amazon Elastic Container Service For Kubernetes (Amazon EKS)

- Amazon Batch : 과학 기술 계산 등의 용도


* Azure Container Service (AKS)

- MS 가 제공하는 MS Azure 의 Container Managed Service

- Orchestration 툴로 Kubernetes 를 지원

- Azure Container Registry : Docker 이미지를 Private 으로 관리

- Azure Batch Shipyard : 과학기술 계산 등의 용도


* Google Kubernetes Engine (GKE)

- GCP 의 Container Managed Service


* Google Compute Engine

- GCP 의 VM 제공 서비스


* Big Query

- GCP 에서 대규모 data 를 다루는 서비스


* Google Container Builder

- Dockerfile 을 바탕으로 Docker 이미지를 GCP 상에서 작성하기 위한 커맨드 툴


* Google Container Registry

- Docker 이미지를 GCP의 제품 안에서 관리할 수있는 Private 한 레지스트리 서비스


* Kubernetes

- 여러 개의 Host를 하나로 묶어 Docker를 이용하기 위한 Orchestration 툴

: 여러 서버에서 컨테이너 관리

: 컨테이너 간 네트워크 관리

: 컨테이너의 부하 분산

: 컨테이너의 감시

: 무정지로 업데이트


* Kubernetes Master (마스터 서버)

- Kubernetes 클러스터 안의 컨테이너를 조작하기 위한 서버


* etcd (Backend DB)

- etcd 라 부르는 분산 Key-value Store (KVS) 를 사용하여 클러스터의 구성정보 관리


* Node

- 실제로 Docker 컨테이너를 작동시키는 서버


* Pod (포드)

- 여러 개의 컨테이너를 모아서 Pod 로관리

- App 전개의 단위가 됨



* ReplicaSet

- Cluster 상에서 미리 지정된 pod 를 작성하여 실행 시켜두는 장치



* Deployment

- pod 와 ReplicaSet 을 모은 것으로, ReplicaSet 의 이력을 관리


* Kubernetes 의 구조



* API Server

- 리소스 정보를 관리하기위한 Front-end REST API


* Scheduler

- Pod 를 어떤노드에서 작동시킬지 제어하는 Back-end 컴포넌트

- Kubernetes 클러스터의 상태를 확인하고 빈 영역을 가진 노드를 찾아 Pod 를 실행시키는 스케줄링을 수행


* Controller Manager

- Kubernetes 클러스터의 상태를 항상 감시하는 Back-end 컴포넌트


* Node

- Kubelet

: pod 의 정의 파일에 따라 Docker Container 를 실행하거나 Storage 를 Mount

: Node 의 Status 를 정기적으로 감시


* Cold Stand by

- 구성이나 설정이 똑같은 서버나 네트워크 기기를 미리 백업 기기로서 마련해 두고, 실제 환경과 가까운 장소에설치하여 전원을 off 시킴. 실제 기기에     장애가 발생하면 백업 기기에 전원을 넣고 통째로 교환

- 소규모 On-Premise 환경에서 자주 채택하는 방식


*  Hot Stand by

- 동일한 구성의 서버를 2대 동시에 가동시키고, 만일 메인 서버에서 장애가 발생했을 때는 대기중인 다른 서버가 대신 처리를 이어받는 구성


* RTO (Recovery Time Objective)

- 재해 등으로 기업 시스템이 정지된 이후로 서비스를 복구할 때까지 필요한 경과 시간


* RPO (Recovery Point Objective)

- 재해 등으로 시스템이 정지되었을 때 어떤 시점까지 거슬러 올라가서 데이터를 복구시킬지에 대한 지표


* SLA (Service Level Agreement)

- 시스템의 제공자와 이요자 사이에 미리 서비스 레벨을 규정하고, 이 서비스 레벨을 유지 관리하는 것


* Performance Tuning

- 시스템의 처리 중 병목이 일어나는 장소를 찾아내고 최적의 작동이 되도록 각종 파라미터를 조정하는 작업

+ Recent posts