보통 빠르게 배운다하더라도 도커만 해도 2달, 쿠버네티스만해도 반년이 걸린다 한다.
시니어의 영역(5~6년차 이상)이지만 맛보기 정도로 알아보자.
MSA의 꽃이라고 불리는 것들을 기억하자.
CI/CD 소스코드를 직접 보기 이전,
도커와 쿠버네티스가 무엇인지 알아보자.
우선, 도커(Docker)란 무엇인가?
도커의 핵심은 '컨테이너'이다.
만약 청국장 컨테이너, 꽃 컨테이너가 있다고 생각해보자.
불개미라는 불청객이 청국장 컨테이너에 발생했다면,
꽃 컨테이너에 영향이 끼칠까?
NO
둘은 격리되어있고, 분리되어있기 때문에 무관하다.
= 서비스를 격리함으로써, 서비스의 '안전성', 그리고 시스템의 '보안'을 챙기기 위해
= 컨테이너 기술이 나타난 것이다.
또, 빈 컨테이너를 만들고,
청국장 컨테이너 내부 내용을 그대로 넣는다면
똑같은 청국장 컨테이너가 2개가 생기는 거죠.
그럼 쿠버네티스는 무엇인가?
컨테이너 오케스트레이션 시스템
오케스트라 무대를 보면, 지휘자 한 사람이 각 악기 연주자들에게 지휘한다.
이 연주자들 하나하나를, '컨테이너'라고 생각하자.
'너는 복사 떠', '너는 사라져' 등등
이렇게 지휘해주는 역할이 '쿠버네티스'라고 한다.
그럼 도커 / 쿠버네티스를 쓰면 어떤 이점이 생길까?
컨테이너는 결국 '격리'가 핵심이다.
도커를 쓰는건 보통 개발환경에서 많이 쓴다.
왜냐하면, 어플리케이션 특성상 데이터 넣고 빼고, 테스트를 많이하게 된다.
회사에서 개발하게 되면, '베타 서버', '알파 서버', '릴리즈 서버' 이런식으로 내부적 테스트, 소수의 외부인에게 공개하고, 마지막으로 전체 공개하는 과정을 거치게 된다.
핵심은, 안에 있는 내용물들이 같을까 안같을까?
같은 경우도 있고, 다른 경우도 있다.
'대용량 트랜젝션'이라는 말이있다.
트랜젝션이라고 하면, '거래'를 뜻한다.
은행에 100명 200명 한꺼번에 가서 출금한다 그러면
은행은 순간적으로 매우 정신없는 상태가 됩니다.
이럴 때, 어떤 식으로 대응을 해야 100명, 200명 고객들을 오래 기다리지 않고 만족시키게 하느냐?
그리고 한명의 고객도 누락없이 다 처리해줄 수 있느냐. 라는 내용이 '대용량 트랜젝션'이다.
그래서, '대용량 트랜젝션'이라는 개념은 보통 신용카드, 지금 이 순간에도 쓰이고 있을 동시처리에 대한 이야기이다.
이 이야기를 꺼낸 이유는
베타 : 내부적으로 개발팀 내에서만 소수의 인원으로 테스트
알파 : 임의로 트래픽을 넣어서 한 컨테이너로 몇명의 고객을 수용 가능한지 가늠을 합니다. 임의로 테스트 하고 가짜고객 100명 10000명을 한번에 넣어서 극한의 상황까지 몰아 세워 보는 테스트를 하는거죠.
한계치를 테스트.
컨테이너 하나당 100명 정도 나온거같다? 라고 하면
5개의 컨테이너를 복사해서
릴리즈 단계로 가면 되겠죠.
하지만 데이터베이스 내용은 다르겠죠? (소스코드는 같지만)
즉, 주목해야할 점은 '안에 같은 환경 , DB내용은 다르지만 같은 환경이다.'라는 걸 주목하는겁니다.
CI/CD , 도커/ 쿠버네트는 자동배포랑 무슨 상관인가요?
CI/CD를 검색해보면, 지속적 통합, 지속적 제공이라는 키워드를 확인할 수 있다.
결국 "개발" 이다. 개발은 '소스코드'가 핵심인데
하루에 다섯, 여섯번 같은 작업을 한다?
말이 안된다.
하지만 만약,
우리가 한 것처럼 MSA 환경이라고 한다면..?
배포만 하루종일 하게 생긴것.
그렇기 때문에 소스코드가 올라가는 곳은 GIT에 올라가고,
GIT에서 BRANCH(가지)라는 개념
우리가 결국 지금 쓰고 있는 GIT LAB은 GIT LAB의 서버를 빌려 쓰고 있는 거예요.
우리의 소스코드는 GIT LAB이 보관 중인겁니다.
결국 GIT 서버라는 것도 '컴퓨터'예요.
GIT 서버란건 기본적으로 GIT 소스코드 관리기능도 있지만
'젠킨스'라는 기능도 설치되어 있어요.
결국 ci/cd라는 것을 알기 위해
도커, 쿠버네티스, 젠킨스, git-브랜치 라는 것들을 알아야 한다.
'IT_정보모음' 카테고리의 다른 글
네트워크, 리눅스, 쿠버네티스, AWS자격증 (0) | 2022.12.19 |
---|---|
as-is / to-be란 무엇인가 (0) | 2022.12.15 |
MSA, DOCKER, KUBERNETES (내용 추가 예정) (0) | 2022.12.02 |
MSA, Gateway,Load-balancing (0) | 2022.12.02 |
클라우드 서버에 대하여 (feat. 클라우드 플랫폼?) (0) | 2022.12.01 |