Cloud Native Architecture

Byung Seon Kang·2023년 10월 27일

Cloud Native Architecture란

  • 클라우드에서 빌드되고, 클라우드 컴퓨팅 모델을 최대한 사용하는 워크로드를 디자인하고, 생성 및 운영하는 접근 방식
  • 클라우드가 가지는 이점
    1. 관리 가능 및 관찰 가능한 느슨하게 결합된 시스템 사용 가능
    2. 복원력

구성 요소

CNCF, Pivotal이 제시

1. Microservice architecture

  • 클라우드에서 마이크로 서비스로 개발된다
  • 크게 inner 아키텍처와 outer 아키텍처로 나뉜다(가트너 도식 기반)
  • inner : 도메인 관련 부분을 비즈니스 로직을 가지고 서비스를 개발하는 파트
  • outer : 이너 아키텍처에 구성된 애플리케이션이 운영하고 작동될 수 있도록 지원하는 시스템
    • 예시 : 서비스 라우터, 로드밸런서, 서비스 디스커버리, ,Config store, CI/CD Automation

2. Containers

  • 마이크로 서비스로 개발하기 위해서 컨테이너 가상화 기술을 거의 표준처럼 사용
  • 매우 가볍다
  • container registry에 빌드한 이미지 저장하면 다른 환경에서 쉽게 가져다 쓸 수 있다.
    • 배포 편의성 증대!

3. Devops

  • 서비스에 발생하는 문제나 변경사항을 빠르게 반영하기 위해 개발과 운영 조치간 유기적 협력을 통해 지속적인 서비스의 개선을 해나가는 방법론
    • 개발과 운영 조직의 단일화
  • Development + Operation
    • Development쪽은 주로 고객의 요구사항 변화에 대응
    • Operation쪽은 안정성을 주로 작업
  • 위 두가지 과정에서 생기는 충돌을 해결하고 시스템의 개선작업을 지속적으로 할 수 있는 문화, 개발프로세스가 DevOps이다.
  • 변경사항에 맞춰 코드를 작성하고 테스트하는 개발
  • 배포하고 모니터링하는 운영단계
  • 모니터링하면서 다시 변경사항에 맞춰 개발로 돌아가는 이 순환과정이 계속해서 진행되는 것이 DevOps의 핵심

4. CI/CD

  • 이 파이프라인에 의해 자동으로 빌드 테스트 배포 과정 거친다

CI 작업

  • compile, test, packaging 작업
  • 통합을 위해 빌드, 테스트, merge 작업을 자동화하는 단계
  • XP에서는 주기적으로 머지하는 것을 강조
    • 자주 안하면 충돌이 매우 크게 일어나므로
  • VCS(git)을 활용해서 지속적으로 소스코드, 자료를 관리해주는 단계라고 보면 된다.

CD 작업

  • 개발, 테스트, 운영서버 배포 작업
  • 두가지 의미를 지님.
    Continuous Delivery
    • CI에서 통합된 데이터를 검증하고 최종 배포를 수동으로 하는 작업
    Continuous Deployment
    • 자동으로 전 과정을 배포하는 것
  • 수작업으로 하냐, 자동으로 하냐에 따라 의미가 갈린다.
  • MSA에서 CI/CD 안되면 매우 힘들다.
    • 서버 100개씩 되는데 하나하나 수동배포? 안된다.
profile
왜 필요한지 질문하기

0개의 댓글