728x90
쿠버네티스를 알기 위해서는 '클라우드 네이티브' 라는 개념을 알아야 한다.
'클라우드 네이티브'는 무엇인가?
애플리케이션 개발 환경과 인프라 구조는 생산성과 민첩성을 높이는 방향으로 변화해왔다. 이러한 변화에 따라 업계 주류로 자리 잡은 트렌드가 바로 '클라우드 네이티브'이다. 쉽게 말해서, 클라우드의 장점을 최대한 활용할 수 있도록 애플리케이션을 개발하고 구축하고 실행하는 방식이다.
클라우드 네이티브 구성요소
클라우드 네이티브를 대표하는 것들은 데브옵스(DevOps), 마이크로서비스(MSA), 컨테이너, CI/CD라고 할 수 있다.
DevOps
먼저 데브옵스(DevOps)는 여러 도구들을 표준화하하여 효율성, 협력, 속도, 안정성을 개선하는 방식이다. 개발(Development)과 운영(Operation)을 결합해 탄생한 것으로, 시스템 개발자와 운영을 담당하는 전문가 간의 소통과 협업, 자동화를 강조하는 소프트웨어 개발 방법론이다.
MSA
마이크로서비스(MSA)는 각각을 마이크로하게 나눈 독립적인 서비스를 연결한 구조를 말한다. MSA의 특성으로 시스템 전체의 중단 없이 필요한 부분만 업데이트하고 배포할 수 있다.
- 기존의 Monolithic Architecture는 소프트웨어의 모든 구성 요소가 한 프로젝트에 통합된 형태이다. 예를 들어, 한 프로젝트를 진행할 때 모듈별로 개발한 후 결과물을 하나의 패키지로 구성하여 배포하는 방식이다.
- MicroService Architecture은 마이크로서비스 단위로 개발, 운영, 테스트를 수행할 수 있어 유지/보수가 매우 편리하다.
Container
컨테이너는 환경과 상관없이 실행을 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지이다. 컨테이너라는 분리된 공간에 애플리케이션과 운영 환경이 모두 들어있고, 덕분에 분리된 공간마다 다른 환경을 제공할 수 있다. 마치 '별도의 서버'인 것처럼 사용할 수 있게 만든 기술이다.
- 기존의 Virtual Machine(VM)은 공통적으로 하나의 서버와 Host OS가 존재하며 Host OS에 의해 가상화 시켜주는 하이퍼바이저가 있다. 하이퍼 바이저를 사용해 원하는 OS를 Guest OS로 올려 여러 개의 VM을 사용할 수 있다.
- 컨테이너 방식은 가상머신과 동일하지만, HostOS에 의해서 컨테이너를 가상화 시켜주는 소프트웨어를 통해 가상화 형태로 사용해 유지 관리가 매우 편리하다.
728x90
'클라우드' 카테고리의 다른 글
[Kubernetes] 쿠버네티스란 무엇인가 (0) | 2024.02.22 |
---|---|
도커란 무엇인가 (0) | 2024.02.22 |
Docker로 Apache 웹 서버 구축하기 (1) | 2024.01.02 |
docker 기본 명령어 모음 (0) | 2024.01.02 |