클라우드 네이티브에 대하여

이성현·2022년 6월 14일
1

클라우드의 중요성은 더욱 커지고 있다. 앞선 내용들은 클라우드의 개념에 대해 설명했는데, 근본적으로 왜 갑자기 클라우드가 중요해졌는지 정리할 필요가 있어 내용들을 짧게 정리했다. 이렇게 중요한 클라우드의 기술 앞에서 나는 어떤 지식을 쌓아야 먹고 살 수 있을까.

클라우드 네이티브

클라우드 네이티브는 '클라우드 컴퓨팅 모델'을 사용하는 것을 전제로 설계된 시스템과 서비스를 일컫는다. 특정 제품이나 서비스 이름이 아니었다. '네이티브'라는 말에서 짐작할 수 있듯이, 애플리케이션의 서비스를 애초에 클라우드에서 운영하는 것을 전제로 둔다는 것으로, 기존의 시스템과의 구분을 위해 '네이티브'라는 말이 붙었다. 클라우드 네이티브를 통해 얻을 수 있는 장점은 결국 '스피드'와 '유연성'이다.
클라우드 네이티브의 애플리케이션은 탄력적으로 결합된 소규모의 독립적인 서비스의 집합체이다. 새로운 애플리케이션을 구축하거나 기존 애플리케이션을 최적화할 수 있다. -레드헷-
고객의 요구 사항이나 비즈니스 환경의 변화를 빠르게 파악하고 (스피드-새로운 애플리케이션) 동시에 최적의 방법으로 적용(유연성-기존 애플리케이션의 최적화)하기 위해 클라우드 네이티브는 최고의 방안이다. 클라우드 네이티브를 통해 대응 능력, 확장성, 내결함성을 갖춘 애플리케이션을 퍼블릭, 프라이빗 또는 하이브리드 클라우드 환경이든 어디에나 구축할 수 있다.

클라우드 네이티브 개발이라 함은 일반적으로 DevOps(협업 프로세스의 자동화로 App 개선 속도 증가), MSA(마이크로서비스아키텍쳐-독립적인 서비스별 API를 통한 커뮤니케이션), 클라우드 플랫폼(AWS,Azure..), 쿠버네티스 및 도커와 같은 컨테이너, 그리고 지속적인 제공(Continuous Delivery)이 포함된다.

데브옵스 (DevOps)
클라우드 네이티브 애플리케이션의 시작은 조직 내 인력과 이들의 협업 프로세스를 자동화하는 것이다. 즉, DevOps를 도입하여 공통의 목적과 주기적인 피드백을 통해 개발팀과 운영팀의 협업을 지원할 수 있다.
DevOps 및 컨테이너 접근 방식에서는 하나의 대규모 릴리스 및 업데이트를 기다리는 것이 아니라 마이크로서비스처럼 여러 서비스가 탄력적으로 결합된 하나의 컬렉션으로 애플리케이션을 쉽게 출시한다.

컨테이너 (Container)
컨테이너를 도입하면 이상적인 애플리케이션 배포 유닛 및 독립적인 실행 환경을 제공하여 이러한 프랙티스를 지원할 수 있다.

CI/CD (지속적인 통합과 제공)
레거시 애플리케이션을 최적화할 수 있다. 이러한 최적화는 지속적인 통합(Continuous Integration, CI)과 지속적인 제공(Continuous Delivery, CD) 및 완전히 자동화된 배포 운영 같은 DevOps 워크플로우를 통해 지원되어야 한다.

마이크로서비스 아키텍터 (MSA)
아키텍처의 모듈화, 탄력적인 결합, 그리고 독립적인 서비스를 제공해야 한다. 자체 프로세스를 실행하고 애플리케이션 프로그래밍 인터페이스(Application Programming Interfaces, API) 또는 메시징을 통한 커뮤니케이션으로 관리한다.
-레드헷- http://www.opennaru.com/cloud/cloud-native/

profile
삼성전자 C-Lab 21기 Creative Leader SW개발자 (쪼랩)

0개의 댓글