Cloud

Cloud | Cloud Native

만두는정말맛있어 2024. 1. 25. 16:43

1. 개념

- Cloud computing 환경에서 제공하는 분산 컴퓨팅을 활용하기 위해 애플리케이션을 구축 및 실행할 때의 소프트웨어 접근 방식

- 클라우드가 제공하는 확장성, 탄력성, 복원성, 유연성을 활용하도록 설계 및 구축됨

- Cloud Native 기술은 조직이 퍼블릭, 프라이빗, 하이브리드 클라우드에서 확장 가능한 애플리케이션을 구축하고 실행할 수 있도록 지원함

- 쿠버네티스, 도커, 서버리스 함수 등의 기술을 사용하여 최신 애플리케이션 개발을 지원함

 

 

2. CNCF(Cloud Native Computing Foundation)

- Cloud Native System을 채택하는 다양한 조직과 서비스에 대응하여 설립된 오픈 소스 소프트웨어 재단

- Microsoft, Oracle, VMWare, Intel, Amazon 등 

- Cloud Native 기술의 접근성, 가용성, 신뢰성 보장을 목표로 함

- MSA 내에서 컨테이너를 통합 관리하는 지속 가능한 환경을 구축하는 조직을 지원함

 

3. 특장점

1) 비용 효율성

- 물리적 인프라 조달 및 유지 관리 비용 절감

 

2) 독립성

- 애플리케이션을 서로 독립적으로 구축 가능, 개별적 관리 및 배치

 

3) 복원성

- 내장된 내결함성 및 재난 복구 메커니즘을 통해 강력한 수준의 복원력이 보장되어 있음

- 분산 아키텍처 및 자동 조정을 활용하여 리소스를 재할당하고 서비스 가용성을 유지함으로써 트래픽의 중단 또는 급증을 원활히 처리 가능

- Infrastructure가 중단되어도 온라인 상태 유지 가능

 

4) 표준 기반

- 오픈 소스 및 표준 기반 기술에 기반하는 경우가 많기 때문에 벤더 종속성이 줄어들고 이동성이 향상됨

 

5) 비즈니스 민첩성

- 네트워크에서 유연한 배포 옵션을 제공하며, 기존의 앱보다 작기 때문에 보다 쉽게 개발 및 배포 작업을 수행할 수 있음

 

6) 자동화

- 데브옵스 자동화 기능을 사용하여 정기적으로 릴리즈 되는 소프트웨어 변경 사항을 지속적으로 전달 및 배포 가능

- 확장성, 구축, 모니터링, 관리를 자동화하여 수동 작업을 줄임

- 구축 및 관리 절차를 간소화하소 가속화하여 일관성을 확보하고 오류를 줄여 리소스를 확보함

 

7) 작동 중지 시간 없음

- 쿠버네티스와 같은 컨테이너 통합관리자 덕분에 기본적으로 다운타임 없이 소프트웨어 업데이트 배포 가능

- 중단 시간 없는 구축 및 자동 조정을 통해 지속적 가용성 달성

 

 

4. Cloud Native Architecture

- 기존의 온프레미스 인프라가 아닌 클라우드에 존재하도록 특별히 설계된 애플리케이션 또는 서비스 설계

- 확장 가능한 Cloud Native Application을 구축하고 실행하는 데 사용하는 다양한 소프트웨어 구성 요소 결합

- 유지보수 용이, 비용 효율적, 자가 복구 가능, 높은 유연성

 

 

5. 활용 기술

1) 변경 불가능한 인프라

- 호스팅 서버가 배포 후에도 변경되지 않는 상태로 유지됨

- 더 많은 컴퓨팅 리소스가 필요한 경우, 이전 서버는 폐기되고 앱은 새로운 고성능 서버로 이전됨

- 변경 불가능한 인프라는 수동 업그레이드를 피함으로싸 클라우드 네이티브 배포 프로세스의 예측 가능성 높임

 

2) 마이크로 서비스

- 전체적으로 하나의 완전한 클라우드 네이티브 소프트웨어로 작동하는 소규모의 독립적인 소프트웨어 구성 요소

- 마이크로서비스 중 하나에 장애가 발생하더라도 애플리케이션이 계속 동작함

 

3) API (Application Program Interface)

- 둘 이상의 소프트웨어 프로그램이 서로 정보를 교환하는 데 사용하는 방식

- 클라우드 네이티브 시스템에서는 결합된 여러 개의 마이크로서비스를 통합하는 데에 사용됨

- 결과를 달성하기 위한 단계를 지정하는 것이 아닐, 마이크로서비스에 필요한 데이터와 결과를 알려줌

 

4) 서비스 메시

- 여러 마이크로서비스 간의 통신을 관리하는 소프트웨어 계층

- 새 코드를 작성하지 않고도 추가 기능 도입 가능

 

5) Container

- 클라우드 네이티브 애플리케이션에서 가장 작은 컴퓨터 유닛

- 마이크로서비스 코드 및 기타 필수 파일을 패키징하는 소프트웨어 구성 요소

- 마이크로서비스를 컨테이너화함으로써, 기반 운영 체제 및 하드웨어와 독립적으로 실행됨

 - 장점 : 기존 배포 방식보다 적은 컴퓨팅 리소스 사용, 거의 즉시 배포 가능, 컴퓨팅 리소스의 효율적인 확장

 

728x90