※ 이번 구글 클라우드 스터디 잼 과정은 구글과 코세라가 연계한 코세라 수업과정을 수강완료하면 되는 것인데, 크게 한국어 코스와 영어 코스 둘 중 하나를 선택해서 진행한다. 여기서 필자는 영어과정을 선택하여 진행했기 때문에, 그 영어 필기들을 해석하는게 실제 공식 번역명과는 많이 다를 수도 있기에 유의하기 바란다.
(고마워요 파파고 사랑해요 파파고)
컨테이너
- 실행중인 어플리케이션 코드를 위한 독립(고립)된 사용자 공간
- 매우 효율적 : 경량인 대신 전체 OS를 포함하진 X
=> 기본 시스템에 촘촘히 스케쥴링 되거나 엮을 수 있음
- 매우 빠르게 생성 또는 시스템 종료 가능
: 개별 어플리케이션을 구성하는 프로세스를 그저 시작/종료하거나 전체 VM을 실행하지 않고 각 어플리케이션에 대해 OS를 초기화하지 않기 때문에 매우 빠르게 생성 및 종료 가능
도커
- 어플리케이션과 컨테이너를 생성하고 실행하게 해줄 수 있는 오픈소스 기술
- 다만 쿠버네티스만큼의 어플리케이션 오케스트레이션을 지원하진 않음
쿠버네티스
- 컨테이너 중심 관리 환경
- 벤더 중립 클라우드 네이티브 컴퓨팅 기반 프로젝트
: 컨테이너화된 어플리케이션의 배포, 스케일링, 로드 밸런싱, 로깅, 모니터링 및 그 외 관리 자동화
- IaaS 기능 촉진
(넓은 범위의 사용자 선호 및 구성 유연성 지원 등)
- 선언적 구성 지원으로 작업물 저장
쿠버네티스의 특징
- stateful (유저나 세션 데이터를 영구 보존) 및 stateless (Nginx, Apache 웹서버 등) 모두 지원
- 오토 스케일링
- 리소스 제한 가능
- 확장성 (extensibility)
- 이식성 (portability) : 어디서나 deploy 가능
시스템이 원하는 문서는 항상 문서화되며 오류의 위험도 감소
소감
오늘 올리는 포스트는 대주제 2, 즉 컨테이너와 쿠버네티스에 관한 것이긴 하지만 사실 진도 자체는 이미 다 나가서 사실상 수료 단계이다. 그럼에도 처음 초반만 해도 뭐가 뭔지 이해했지만 갈수록 급격히 어려워지는 난이도에 막판으로 진행할수록 그저 대충 재생버튼만 켜놓고 멍때리는 상황이 늘어갔다. 명목상으로는 마무리 지은 것이겠지만 실제 내실은 전혀 그렇지 않기에 사실 많이 찔린다.
물론 이와 관련한건 우리들의 영원한 친구인 블로그와 유튜브가 있기 마련이다. 아래와 같은 영상들이 오히려 더 실질적으로 도움이 된 것 같다.
노마드 코더 : 도커 / 쿠버네티스
얄팍한 코딩 사전 : 도커 (간단하게) / 도커 (자세하게)
위 리스트들은 일부 예시들일 뿐, 실제 설명 영상들은 얼마든지 훨씬 많다.