티스토리 뷰
[ 밑줄/연결 ]
컨테이너를 관리하는 쿠버네티스
(가상화와 클라우드의 차이점)
가상화는 물리적인 서버, 스토리지, 네트워크 등의 인프라를 가상 형태로 추상화하여 이를 논리적으로 합치거나 나누는 기술을 의미함.
반면 클라우드는 필요한 자원을 사용자에게 즉시 할당할 수 있도록 자동화된 방식으로 셀프서비스가 가능한 환경을 갖추는 것에 목표를 두고 있다. 즉, 클라우드는 가상화 기술을 이용하여 사용자가 스스로 필요한 컴퓨팅 자원을 자동화된 방식으로 즉시 제공받을 수 있는 서비스 환경을 의미하는 것이다.
CSP(Cloud Service Provider) : 클라우드 서비스 제공 사업자
MSP(Managed Service Provider) : 전문지식을 가지고 컨설팅과 운영까지 대행해주는 사업자. 기존 레거시의 경우도 외부 전문업체를 통해 서비스 인프라를 도입, 구축 및 유지보수 서비스를 제공받아왔던 것과 비슷하다고 보면 됨
PaaS는 OS, DB, 미들웨어, 프레임워크, 보안 등의 인프라 SW를 이미지 형태로 할당해 주는 개념이며, 사용자는 자신의 코드를 빌드하여 개발된 응용프로그래만 실행하면 됨
PaaS는 수만 가지의 시스템 SW영역까지 표준 이미지로 만들고 관리해야 하기 때문에 IaaS에 비해 더욱더 고도화된 전문지식이 필요한 관계로 시장 규모가 가장 작다.
PaaS와 SaaS가 다른 점은 PaaS의 경우 런타임 SW를 각 기업의 특성에 맞추어 별도 개발하여 탑재할 수 있지만 SaaS는 이런 선택지 없이 서비스 제공자가 제공하는 애플리케이션을 그대로 사용하여야 한다....
SaaS는 사용자의 요구대로 응용서비스를 고쳐주거나 개발해 주지 않으므로 사용자는 그들이 제공하는 서비스를 이용만 할 수 있다.
데이터베이스, 미들웨어, 프레임워크, 형상 관리, 빌드 및 배포 솔루션, 동적 테스트 솔루션, 협업 도구, 개발 IDE, 보안 솔루션 등 다수의 시스템 SW를 일일이 구축하게 된다.
PaaS가 추구하는 목적
(1) IT 운용 표준화와 단순화
ㅇ 서버, 스토리지, 네트워크 등의 HW 인프라들은 VM을 통하여 형태의 표준화와 단순화가 가능. SW는 그렇지 못함
ㅇ 다양한 SW가 단일의 표준 이미지 형태로 관리가 되어야 배포와 운영의 표준화가 가능
(2) 비즈니스 요구사항에 민첩하게 대응
ㅇ 요즘은 업종별로 응용프로그램의 배포 주기가 평균 3일
(3) 자동화를 통한 생산성 증대
ㅇ 가장 훌륭한 생산성 향상은 사람의 수작업을 최소화하는 것
ㅇ 문제는 수천 가지의 다양한 형태의 SW를 어떻게 단일의 표준 이미지로 구현해 낼 수 있으냐는 것
어떤 조직에 3개의 시스템 SW와 3개의 OS배포판을 PaaS형태로 서비스를 제공 한다고 할 때 사전에 VM에 탑재하여 이미지를 만든다고 가정하면 몇 개의 샌드박스를 미리 만들어 관리해야 할까?....총 21개의 샌드박스를 생성해야 함....
공통요소인 커널을 가상의 이미지들이 공유하고 개별 가상의 이미지들에 필요한 고유의 바이너리와 라이브러리 등의 환경변수들만 이미지 내에 포함한다.
(컨테이너란)
애플리케이션을 실행하는 데 필요한 모든 요소들, 즉 애플리케이션 코드, 런타임, 바이너리, 환경변수 등의 종속적인 요소들을 함께 포함한 패키지를 의미하며 일종의 가상화 기술이다.....
VM과는 달리 가상화 영역에 OS를 내포하지 않고, Host OS 커널을 공유하여 사용하므로 매우 가볍고 오버헤드가 작다.
기업이나 기관에서 멀티 클라우드 전략을 펼치겠다고 했을 때 가장 고심이 되는 부분은 애플리케이션의 호환성일 것이다.
(VM과 달리 컨테이너의 특징)
ㅇ 가상화 내 OS가 없으며, 여러 개의 컨테이너는 Host OS를 공유
ㅇ 컨테이너는 물리, VM , 클라우드 인프라에 모두 기동이 가능하며 하이퍼바이저의 호환성에 대한 제약이 없음
ㅇ VM은 Host OS의 커널에 비종속적인데 반해 컨테이너는 Host OS의 커널에 종속적임. 따라서 컨테이너 내부의 앱은 Host OS와 동일한 OS 계열만 실행할 수 있음.
ㅇ 컨테이너 내부에는 애플리케이션의 실행에 필요한 종속적인 바이너리, 라이브러리, 환경변수 들을 포함할 수 있음
ㅇ 레이어 구조로 기존 이미지에 다른 이미지가 병합되어 새로운 이미지를 생성할 수 있고 새로이 생성된 이미지에 대한 용량이 증가하지 않음
ㅇ 컨테이너의 이미지는 불변성이란 특성이 있어 한번 생성되면 수정할 수 없음
컨테이너는 다양한 애플리케이션을 표준 이미지로 인프라화한 가상화 솔루션
(컨테이너의 비즈니스적인 이점)
ㅇ 환경의 일관성
ㅇ 개발자 생산성 증대
ㅇ 효율적인 인프라 운영의 제고
ㅇ 쉬운 하이브리드 클라우드 전략
컨테이너 오케스트레이션은 초기 컨테이너 배포, 배치, 확장, 장애 복구, 롤백, 네트워킹, 삭제 등의 전체적인 라이프사이클을 자동화하고 제어의 역할을 담당하는 클라우드 세상의 OS와 같은 존재로 그 위상이 높아졌다.
(쿠너네티스의 주요 기능)
컨테이너에 대한 오케스트레이션을 수행
ㅇ 다중의 Host를 Cluster로 묶어 관리
ㅇ 대규모 컨테이너에 대한 배포와 관리
ㅇ 컨테이너에 대한 스케줄링, 롤링 업데이트, 롤백, 동적 배치, 자동 스케일 아웃, 자동 장애 복구 등의 라이프사이클 관리
CI (지속적 통합)
ㅇ 빌드와 테스트를 자동화함
ㅇ Git, SVN 등 소스 저장소 저장. 변경 시 버전 관리. 다수 개발자와 소스와 변경 사항 정기 병합. 공동 코드 리뷰 등
CD(지속적 배포)
ㅇ 애플리케이션 빌드 이후 모든 코드 변경을 테스트 환경과 운영환경에 배포 준비가 된 상태로 유지하여 애플리케이션의 빌드 및 배포 주기를 단축하는데 목적
ㅇ 쉽게 말해 배포를 자동화
오픈소스 기반의 CI/CD 도구 : Jenkins, Bamboo, Gitlab 등
현대화는 과거에 존재해왔던 것을 재해석하여 현대의 환경에 맞게 업데이트하는 행위....
집으로 따지면 재건축이 아닌 리모델링의 개념으로 이해할 수 있음.
애플리케이션에 현대화를 접목해 본다면, 기존 인프라와 애플리케이션을 현대의 비즈니스 요구사항과 변화의 속도와 흐름에 대응할 수 있게 최신의 기술과 아키텍처로 전환하는 것을 의미함
현재는 애플이케이션의 경우 개방형 구조의 MSA, 플랫폼은 클라우드 네이티브로 전환하는 방식이 주를 이루고 있음
(현재이 시점에서 현대화를 이루기 위해서는 다음 4가지 요소를 충족해야 함)
(1) 시스템 SW와 플랫폼은 개방형 구조여야 함
ㅇ 종속성이 강한 HW, 시스템 SW, OS, 미들웨어, 라이브러리를 사용
(2) 애플리케이션의 설계와 호스팅을 표준화된 환경 위에 이행 및 구축해야 함
ㅇ 사설 클라우드, Public 클라우드, 베어메탈서버, 가상화 등의 다양한 인프라 구조와 OS 배포판과 무관하게 애플리케이션이 호스팅되어야 함
(3) 빠르게 변화하는 비즈니스에 맞게 애플리케이션과 인프라 환경 또한 민첩성을 확보해야 함
ㅇ 애플리케이션은 신속히 배포되어야 하며, 요구사항 증가 시 신속한 확장성 또한 확보되어야 함
(4) 자동화된 관리와 운영 환경을 확보해야 함
ㅇ 인력의 의존한 수작업 방식의 인프라 구성, 애플리케이션 배포, 확장 등의 작업은 민첩성 조건에 부적합
ㅇ 인프라와 애플리케이션의 할당, 배포, 확장, 부하 분산, 장애 처리 등 일련의 운영에 필요한 작업들을 자동화할 수 있는 환경을 갖춰야 함
(Cloud Native Application의 키워드)
ㅇ 동적인 환경에서 확장 가능한
ㅇ 느슨하게 결합된 시스템
ㅇ 자동화
ㅇ 최소한의 노력
ㅇ 벤더 중립적 등
(IT의 민첩성, 무중단, 확장성의 요건을 충족하기 위한 CNA의 3가지 필수 요소)
(1) MSA
애플리케이션을 작은 서비스 단위로 나누고 필요시 서로 API를 통해 호출하는 방식의 상호 비종속적인 애플리케이션 아키텍처로 개발하여야 속도전, 무중단, 확장성의 요구사항에 유연하게 대처할 수 있음
(2) DevOps
마이크로서비스 단위로 나누어진 애플리케이션의 소스 코드 관리, 빌드, 단위 테스트, 동적 테스트, 통합 테스트, 배포 등의 애플리케이션의 라이프사클을 유지할 때 민첩성을 확보하기 위한 지속적인 CI/CD의 자동화가 반드시 필요
(3) 컨테이너
MSA로 잘게 나누어진 서비스를 호스팅하기 위한 서버의 형태
[ 자평 ] 자기가 쓰고자 하는 목적과 범위를 정확하게 깔끔하게 지킨 책
2023년 출판된 저자의 약력에 1998년 처음 직장생활을 시작하여, 24년간의 IT산업에 대한 경험을 말씀했으니, 얼추 나랑 비슷한 세대일 듯 하다.
'IT' 카테고리의 다른 글
더 나은 웹 개발을 위한 가이드 by 고승원 (1) | 2023.10.15 |
---|---|
정보의 지배 by 한 병철 (0) | 2023.10.14 |
생계형 개발자 SI에서 살아남기 by 연서은 (1) | 2023.08.20 |
시스템을 잘 만드는 기술 by 시라카와 마사루 외 (0) | 2023.08.20 |
플랫폼 비즈니스의 미래 by 이성열 (0) | 2023.08.15 |
- Total
- Today
- Yesterday
- 혁신
- 인공지능
- 전략에 전략을 더하라
- 참을 수 없는 존재의 가벼움
- 돈
- 제로 성장 시대가 온다
- 사회물리학
- 안나 카레니나
- 디지털 트랜스포메이션 엔진
- 경계의 종말
- 함께 있으면 즐거운 사람
- 불교
- 상대성이론
- 이노베이션
- 당신은 AI를 개발하게 된다
- 플랫폼의 시대
- Ai
- 양자역학
- 데브옵스 도입 전략
- 고도를 기다리며
- 스케일의 법칙
- 직감하는 양자역학
- 함께 있으면 피곤한 사람
- 파괴적 혁신
- 최진석
- 개발자가 아니더라도
- 복잡계의 새로운 접근
- 개발자에서 아키텍트로
- 부정성 편향
- 경영혁신
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |