클라우드 컴퓨팅을 도입하는 것이 시기상조라고 여겨질 때가 있었는데 그때에는 클라우드를 왜 사용해야 하는지, 클라우드의 장점과 필요성에 대해 초점을 맞췄다면, 이제는 ‘왜(Why)’가 아닌, ‘어떻게(How) 사용할 것인가’에 대하여 고민하는 시점이 왔다.
점점 클라우드의 시대가 오면서 물리적인 서버의 역할 보다는 가상의, 그리고 컨테이너 개념의 이런 단어들이 더욱 익숙해지고 있다.
클라우드 네이티브 정의
- 넓은 의미의 정의
넓은 의미로 정의해 본다면 클라우드의 이점을 최대로 활용할 수 있도록 애플리케이션을 구축하고 실행하는 방식을 말한다.
기존 시스템에서의 애플리케이션은 클라우드의 이점을 100% 활용하지 못했다면, 마이크로서비스 아키텍처를 채택하고 컨테이너, 쿠버네티스와 같은 기술과 도구, DevOps, 애자일 방법론 등을 도입하여 개발자 생산성, 비즈니스 민첩성, 확장성, 가용성 및 비용 절감 효과를 크게 높일 수 있고, 그러기 위해서는 애플리케이션, 아키텍처, 인프라 및 개발 프로세스 등 전방위적 측면에서 변화가 필요하다.
여기서 변화의 방향은 무엇이며 클라우드를 네이티브하게 사용한다는 뜻은 아래 리눅스 재단의 정의를 통해 참고해 볼 수 있다.
CNCF 정의
2015년 처음 Cloud Native라는 용어를 사용한 리눅스는 CNCF(Cloud Native Computing Foundation)재단을 만들어 클라우드 네이티브로 전환할 수 있는 오픈소스 기술들을 추진하고 관리한다.
이 재단에는 550개가 넘는 여러 클라우드 공급자와 기술 기업들이 참여하여 운영되고 있는데 클라우드 네이티브에 대한 정의를 아래와 같이 하고 있다.
- 퍼블릭, 프라이빗, 하이브리드 클라우드 환경에서 확장성 있는 애플리케이션을 만들고 운영할 수 있음
- 컨테이너, 서비스 메시, 마이크로서비스, 불변의 인프라스트럭처, 그리고 선언적 API가 전형적인 접근 방식에 해당
- 회복성이 있고, 관리 편의성을 제공하며, 가시성을 갖는 느슨하게 결합된 시스템을 사용할 수 있음
- 견고한 자동화와 함께 사용하면, 엔지니어는 최소한의 수고로 영향력이 크고 예측 가능한 변경을 할 수 있음
위의 정의를 정리해 보면, 클라우드 네이티브로 가기 위한 주요 요소는 아래 4가지로 요약할 수 있는데
1. DevOps
애플리케이션 개발-운영 간의 협업 프로세스를 자동화하는 것을 말하며 결과적으로 애플리케이션의 개발과 개선 속도를 빠르게 한다.
2. CI/CD
지속적인 통합(Continous Intergration)은 개발자가 작업한 코드를 자동으로 테스트하고 테스트에 통과하면 코드를 통합하여 저장한다.
지속적인 배포(Continuos Deployment)는 작업한 코드 및 변경사항들은 테스트를 거쳐 리포지토리에 업로드되고 실 서비스 배포로 릴리즈까지 자동화하는 것을 말한다.
3. 컨테이너 기반 인프라
가상화 기술 중 하나로, 시스템을 가상화하는 것이 아니라 애플리케이션을 구동할 수 있는 컴퓨팅 작업을 패키징하여 가상화한 것이다.
좀더 자세한 설명으로는 IT 기술의 컨테이너도 물류 분야의 컨테이너처럼 이동성을 실현하기 위한 기술로
즉, 어느 환경이나 어느 인프라로든 쉽게 이동할 수 있다는 말이다.
컨테이너는 애플리케이션을 실행하기 위한 컴퓨팅 작업을 패키징하여 이미지로 만들기 때문에 경량화되어있고, 서버나 OS 환경에 종속적이지 않아 진정한 애플리케이션 이식성이 실현될 수 있다.
4. Microservice
애플리케이션을 구성하는 서비스들을 독립적인 작은 단위로 분해하여 구축하고 각 구성 요소들을 네트워크로 통신하는 아키텍처로 서비스 안정성과 확장성(scaling)을 지원한다.
가장 많이 나오는 단어인 마이크로 서비스를 좀더 자세히 설명하자면,
마이크로서비스 아키텍처는 애플리케이션을 이루는 서비스들을 기능 단위로 쪼개서 구축하는 것을 말한다.
서비스끼리는 프로그래밍 언어에 구속받지 않는 API(Application Programming Interface)를 통해서 통신하며 각 서비스는 각각 자체 DB를 가지게 된다.
현시점에서는 다양한 클라우드 사례가 있지만
그들 중에 대표적으로 넷플릭스에서 많은 클라우드 사례를 제시하였는데 다음 포스팅에서 다뤄보도록 할것이다.
'IT > Knowledge' 카테고리의 다른 글
.dat 파일 (59) | 2022.10.10 |
---|---|
클라우드 네이티브란?(사례 - 넷플릭스) (35) | 2022.10.08 |
ELK 란? (45) | 2022.09.23 |
kibana 란? (49) | 2022.09.22 |
Logstash 란? (50) | 2022.09.21 |
댓글